进程和进程管理
进程是一个运行程序并为进程提供执行环境的实体,它包括一个地址空间和至少一个控制点,进程在这个地址空间上执行单一指令序列
进程调度又称为CPU调度,其根本任务是按照某种原则为处于就绪状态的进程分配CPU
进程管理相关概念:
(1)上下文(context):上下文指进程运行的环境
(2)上下文切换(context switching):多任务系统中,上下文切换是指CPU的控制权由运行进程转移到另外一个就绪进程时所发生的事件,当前运行进程转为就绪状态,另一个被选定的就绪进程成为当前进程
(3)抢占(preemptive):抢占是指当前系统处于核心态运行时,允许进程的重新调度
(4)优先抢占(preemptive priority):每一个进程都有一个优先级,系统核心保证优先级最高的进程运行于CPU
(5)轮转调度(round-robin scheduling):使所有相同优先级,状态为就绪的进程公平分享CPU
标准Linux的进程管理
Linux进程调度策略:
(1)分时调度策略(SCHED_OTHER)
面向普通进程的时间片轮转策略,采用该策略时,系统为处于TASK_RUNNING状态的每个进程分配一个时间片,当时间片用完时,进程程序调度再选择下一个优先级相对较高的进程,并授予CPU使用权
(2)先到先服务的实时调度策略(SCHED_FIFO)
适用于对响应时间要求比较高,运行所需时间比较短的实时进程。采用该策略时,各实时进程按其进入可运行队列的顺序依次获得CPU
(3)时间片轮转的实时调度策略(SCHED_RR)
适用于对响应时间要求比较高,运行所需时间比较长的实时进程。采用该策略时,各实时进程按时间片轮流使用CPU,当一个运行进程的时间片用完后,进程调度程序停止其运行并将其置于可运行队列的末尾