1. 进程
单道程序设计环境下,系统具有如下特点:
(1) 资源的独占性;
(2) 执行的顺序性;
(3) 结果的再现性;
多道程序设计环境下,系统具有如下特点:
(1) 执行的并发性;
(2) 相互的制约性;
(3) 状态的多变性;
进程是指一个程序在给定数据集合上的一次执行过程,是系统进行资源分配和运行调度的独立单位。
进程的主要特征以及与程序的区别有如下几个方面:
(1)“进程”是一个动态的概念;
(2)不同的进程可以执行同一个程序;
(3)每一个进程都有自己的生命期;
(4)进程之间具有并发性;
(5)进程间会相互制约;
系统中的进程具有5种状态:创建、运行、就绪、阻塞、撤销。
就绪状态:一个进程已经具备了运行的条件,只要有机会获得CPU,它就可以投入运行。
运行状态:一个进程获得了CPU,正在执行中。若系统中只有一个CPU,那么任何时候系统中最多只有一个进程处于运行状态。
阻塞状态:进程正在等待某个时间(比如I/O的完成)的发生。在事件到来之前,即使把CPU分派给这个进程,它也无法运行。阻塞状态有时也被称为“等待状态”。
2. 进程控制块
在计算机系统内部,一个进程要有3个部分组成:程序、数据集合以及进程控制块(Process Control Block,PCB)。
在PCB中大致包含以下四方面内容:
(1) 标识信息:即进程名
(2) 说明信息:包括进程状态、程序存放位置、数据存放位置
(3) 现场信息:包括通用寄存器内容、控制寄存器内容、断点地址
(4) 管理信息:包括进程优先数、队列指针
3. 进程的调度与管理
常用的进程调度算法有先来先服务、时间片轮转、优先数以及多级队列等四种。
(1) 先来先服务调度算法
基本思想:以到达就绪队列的先后次序为标准来选择占用处理机的进程。
(2) 时间片轮转调度算法
基本思想:为就绪队列中的每一个进程分配一个称为“时间片”的时间段,他是允许该进程占用CPU的最长时间长度。
时间片轮转调度算法经常用在分时操作系统中。
时间片大小的设定影响着系统效率的发挥,粗略的看,时间片值应略大于大多数分时用户的交互时间。
(3) 优先数调度算法
基本思想:为系统中的每个进程规定一个优先数,就绪队列中具有最高优先数的进程有优先获得处理机的权利;如果几个进程的优先数相同,则对他们实行先来先服务的调 度。
进程的优先级考虑方面:
1) 进程类型;
2) 进程执行任务的重要性;
3) 进程程序的性质
4) 根据对资源的要求;
5) 根据用户的请求。
(4) 多级(反馈)队列调度算法
基本思想:他是时间片调度算法与优先数调度算法的结合。实行这种调度算法时,系统中将维持多个就绪队列,每个就绪队列具有不同的调度级别,可以获得不同长度的时间 片,第一级就绪队列中进程的调度级别最高,可获得的时间片最短。
多级队列调度算法优先照顾输入/输出繁忙的进程。输入输出繁忙的进程在获得一点CPU时间后,就会提出输入/输出请求,因此他们总是被保持在1、2级等较前面的队列,总 能获得较多的的调度机会。
多级调度算法采用的是“你要的越多,你就必须等待越久”的原则来分配处理机。
4. 作业调度
特权指令:只能由操作系统使用的指令。例如:启动外设、设置时钟,以及设置中断屏蔽。
非特权指令:大家(指操作系统和用户)都能使用的指令。
管态:(管理程序态)当CPU处于管态时,可以执行包括特权指令在内的一切机器指令。
目态:(目标程序态)当CPU处于目态时,禁止使用特权指令,只能执行非特权指令。
访管指令:是一条非特权指令,功能是执行它就会产生一个软中断,促使中央处理机由目态转为管态,进入操作系统,并处理该中断。
作业:用户要求计算机系统所做的一个计算问题或一次事务处理的完整过程。
把一个作业提交给系统时,系统也要开辟一个作业控制块(Job Control Black,JCB),以便随时记录作业信息。
处理机的调度工作分为作业(高级)调度和进程(低级)调度二级进行。
作业的状态:
1) 提交状态;
2) 后备状态:建立起作业控制块JCB;
3) 运行状态:由作业调度阶段进入了进程调度阶段
4) 完成状态:撤除作业的JCB
作业调度算法:
(1)“先来先服务”作业调度算法
基本思想:以作业进入后备作业队列的先后次序,作为作业调度程序挑选作业的依据。
(2)“短作业优先”作业调度算法
基本思想:从后备作业队列中挑选所需CPU时间最少且资源能够得到满足的作业进入内存投入运行。
(3)“响应比高者”作业调度度算法
基本思想:响应比=(已等待时间)/(所需CPU时间),短作业比较容易获得较高的响应比。
“响应比高者优先”的作业调度算法,既照顾了短作业的利益,也照顾到了长作业的利益,是一种折中的作业调度算法。