进程控制块的主要结构

进程控制块
进程控制块

多道程序设计

让多个计算问题同时装入一个计算机系统的主存储器并行执行,这种设计技术称为多道程序设计,这种计算机系统称为多道程序设计系统或简称多道系统

多道程序设计怎样提高系统效率,使用多道程序一定会提高系统效率吗

通过增加并行执行的程序道数,减少处理器的空闲时间,提高处理器的使用率,从而提高单位时间内的算题量;

利用和发挥硬件中各种资源的并行工作能力,使用多道程序不一定会提高系统效率,因为主存器的空间大小,限制了可同时装入的程序数量,其次外围设备的数量也是限制条件,第三多个资源同时使用同一个资源的情况时有发生,在产生系统竞争时,可能发生等待,有等待则会影响系统效率。

进程的基本状态和变化关系

进程在执行的过程中不同的时刻的状态可以分为三种基本状态:

等待态:等待某个事件的完成,就绪态:等待系统分配处理器以便运行,运行态:占用处理器正在运行。

变化关系如下:

①运行态-->等待态,等待外设,主存等资源分配或等待人工干预而引起
②等待态-->运行态,表示等待的条件已经满足,只要分配到处理器就可以运行
③运行态-->就绪态,不是由于自身原因,而是由外界原因使运行态的进程让出处理器,例如,时间片用完,有更高优先级的进程来抢占处理器。
④就绪态-->运行态,系统按照某种策略选中就绪队列中的一个进程占用处理器,此时就变成了运行态

进程队列基本概念

在多道程序设计的系统中往往会同时创建多个进程,在单处理器情况下,每次只能让一个进程运行,其他的进程处于就绪状态或者等待状态。为了便于管理,经常把处在相同状态的进程链在一起,称为进程队列

UNIX的进程组成,状态及转换

在UNIX系统中进程由三部分组成:进程控制块,正文段,数据段。UNIX进程在执行过程中由于各种原因使其状态不断发生变化,且当内存空间不够时,可以把一些进程换出到磁盘上,需要时又可以把进程换进内存,进程的状态有运行态,就绪态,睡眠态,创建态,僵死状态。

线程的中断优先级和中断屏蔽

中断优先级是硬件设计时确定的。中断装置按照预定的顺序来响应同时出现的中断事件,这个预定的事件称为中断优先级,中断优先级是按照中断事件的重要性和紧迫程度来确定的,是由硬件设计时确定下来的,一般情况下,优先级由高到低的顺序依次为:硬件故障中断,自愿中断,程序性中断,外部中断和输入输出中断。
中断屏蔽的作用,当中断装置响应了某个中断后,中断处理程序在处理中断时,中断装置可能去响应另一个中断事件,=。因此会出现优先级低的中断事件打断优先级高的中断事件,,使得中断事件的处理顺序与响应顺序不一致,而且会形成多重嵌套处理,使多现场保护,程序返回等工作变得复杂。,中断屏蔽技术是为了解决上述问题而提出的在一个中断处理程序没有结束之前不响应其他中断事件。于是当中断装置检查到有中断事件后,还要查看当前PSW的中断屏蔽标志,如果没有屏蔽标志则响应该中断,否则暂时不响应该中断,待屏蔽标志消除后再响应,自愿中断是不能屏蔽的。

进程调度

按照选定的进程调度算法从就绪队列中选择一个进程,让它占用处理器。

进程调度算法的几个准则

提高处理器的使用率,增大吞吐量,减少等待时间,缩短响应时间

进程调度的常用算法

先来先服务,最高优先级,时间片轮询,和分级调度算法。

①先来先服务算法,该算法按照进程进入就绪队列的先后次序来选择可以占用该处理器进程
②最高优先级调度算法,对每个进程确定一个优先级,该算法总是让优先级高的进程先使用处理器。对具有相同优先级的进程,再采用先来先服务的算法分配处理器。系统常以任务的紧迫性和系统效率等因素确定进程的优先级,进程的优先级可以固定,也可以随进程的执行过程而发生变化。
③时间片轮询调度发,把规定的进程一次占用处理器的最长时间称为时间片。时间片轮转调度算法让就绪进程按照就绪的先后次序排成队列,每次总选择该队列的第一个进程占用处理器,但规定只能使用一个时间片,如果该进程尚未完成则放到就绪队列尾,各个进程就这样轮转运行,时间片轮转算法常用于分时操作系统。
④分级调度算法,由系统设置多个就绪队列,每个就绪队列中的进程按照时间片轮训占用处理器。这就是分级调度算法。

进程的切换

进程调度从就绪队列中另选一个进程占用处理器,使一个进程让出处理器,由另一个进程占用处理器的过程称为进程切换。