操作系统核心之 作业管理与设备管理

作业管理

一、作业状态

一个批处理型作业,从进入系统并驻留在外存的后备队列上开始,直至作业运行完毕,要经历提交、后备、执行和完成4个状态。

二、处理机调度

1、高级调度( High Scheduling )
2、中级调度( Intermediate-Level Scheduling )
3、低级调度( Low Level Scheduling )

1、高级调度( High Scheduling )

也称为作业调度,是指在后备队列中选择一个或一作业,为它们建立进程,分配必要的资源,使它们能够运行。

在批处理系统中,因作业进入系统后先驻留在外存,故需要有作业调度。
在分时系统中,为做到及时响应,命令或数据被直接送入内存,故不需作业调度。
在实时系统中,不需作业调度。

2、中级调度(中程调度、置换调度)

是为了提高内存利用率和系统吞吐量。应使那些暂时不能运行的进程不再占用宝贵的内存资源,而将它们调到外存去等待,把此时的进程状态称为就绪驻外存状态或挂起状态。

3、低级调度( Low Level Scheduling )

也称为进程调度或短程调度,用来决定就绪队列中的哪个进程应获得处理机。为最基本的一种调度,三种类型0S中都必须有进程调度。

三种调度的关系如上图所示

三、调度算法

1、先来先服务FCFS
2、短作业(进程)优先调度算法(SJF算法是以作业的长短来计算优先级,作业越短,其优先级越高。)
3、高优先权优先调度算法(一种在紧迫型作业进入系统后能得到优先处理的计算机算法。)
4、高响应比优先调度算法(实际上是一种动态优先调度算法,它以相应比作为作业或进程的动态优先权,其目的是既照顾短作业,又考虑到作业的等待时间,使长作业不会长期等待;但每次调度前,都要进行响应比计算,会增加系统开销。)

 

设备管理

计算机系统的一个重要组成部分是I/O系统。I/O系统包括:输入、输出设备;存储功能的设备;设备控制器

一、设备管理的概念

设备管理程序提供下述功能
1、提供和进程管理系统的接口
2、进行设备分配
3、实现设备和设备之间、设备和CPU之间的并行操作
4、进行缓冲区管理。

二、I/O控制方式

1、程序I/O方式
2、中断控制I/O方式
3、直接存储器访问(DMA)方式
4、I/O通道控制方式(字节多路通道;选择通道;成组多路通道)

三、磁盘管理

1、磁盘的访问时间

寻道时间Ts:把磁臂从当前位置移到指定磁道上所经历的时间
旋转延迟时间Tr:指定扇区移动到磁头下面所经历的时间。
传输时间Tt:数据从磁盘读出或向磁盘写入数据所经历的时间

在访问时间中,寻道时间和旋转延迟时间,通常是占据了访问时间的大头。适当地集中数据(不要太零散)传输,将有利于提高传输效率。

例1:某磁盘磁头从一个磁道移至另一个磁道需要10ms,文件在磁盘上非连续存放,逻辑上相邻数据块的平均移动距离为10个磁道,每块的旋转延迟时间及传输时间分别为100ms和2ms,则读取一个100块的文件需要(D)ms时间。
A.10200    B.11000     C.11200    D.20200

题解:一个磁道移至另一个磁道需要10ms,一共10个磁道,每块花费的时间就是(10ms*10)+100ms+2ms=202ms,一百块就是202ms*100=20200ms。

2、磁盘调度算法

(1)先来先服务(FCFS)
(2)最短寻道时间优先
(3)扫描(SCAN)算法(电梯调度算法)
(4)循环扫描CSCAN

(1)先来先服务(FCFS)

根据进程请求访问磁盘的先后次序进行调度。
优点:公平、简单,且每个进程的请求都能依次得到处理,不会出现某一进程的请求长期得不到满足的情况。
缺点:未对寻道进行优化,致使平均寻道时间可能较长。仅适用于请求磁盘I/O的进程数目较少的场合。

先来先服务调度算法:9个进程先后提出读盘请求,访问的磁道号为:55;58;39;18;90;160;150;38;184。目前磁头停留在100道。此时开始磁盘调度;其调度序列为:

可以看到所有的访问都是按先后累加最终平均寻道长度为55.3.

(2)最短寻道时间优先SSTF

优先满足访问磁道与当前磁头所在磁道距离最近的进程,以使每次的寻道时间最短。
问题:可能导致某些进程发生“饥饿”。
因为只要不断有所要访问的磁道与磁头当前所在磁道的距离较近的新进程到达,就会出现”老进程饥饿”现象。这种调度算法不能保证平均寻道时间最短。

最短寻道时间优先调度算法:9个进程先后提出读盘请求,访问的磁道号为:55;58;39;18;90;160;150;38;184。目前磁头停留在100道。此时开始磁盘调度;其调度序列为:

从最近的地方开始移动,平均寻道长度27.5

(3)扫描(SCAN)算法(电梯调度算法)

SCAN算法中磁头移动的规律似电梯的运行,又称为电梯调度算法。算法既能获得较好的寻道性能,又能防止进程饥饿,被广泛用于大、中、小型机和网络中的磁盘调度。
问题:当磁头刚从里向外移动过某一磁道时,恰有一进程请求访问此磁道,这时该进程必须等待,待磁头从里向外,然后再从外向里扫描完所有要访问的磁道后,才处理该进程的请求,致使该进程的请求被严重地推迟。

扫描SCAN算法:9个进程先后提出读盘请求,访问的磁道号为:55;58;39;18;90;160;150;38;184。目前磁头停留在100道。此时开始磁盘调度;其调度序列为:

150 160 184后90 58 55...类似于电梯的形式,平均寻道长度27.8

(4)循环扫描CSCAN算法

为了减少请求进程的延迟,CSCAN算法规定磁头单向移动。若规定只自里向外移动,当磁头移到最外的被访问磁道时,磁头立即返回到最里的欲访磁道,即将最小磁道号紧接着最大磁道号构成循环,进行扫描。

循环扫描SCAN算法:9个进程先后提出读盘请求,访问的磁道号为:55;58;39;18;90;160;150;38;184。目前磁头停留在100道。此时开始磁盘调度;其调度序列为:

四、虚设备与SPOOLing技术

为缓和CPU的高速性与IO设备低速性间的矛盾而引入了脱机输入、脱机输出技术。该技术是利用专门的外围控制机,将低速设备上的数据传送到高速磁盘上;或者相反。
这样就可以在主机的直接控制下实现脱机输入输出。此时外围操作与CPU对数据的处理同时进行,我们把这种在联机情况下实现的同时外围操作称为SPOOLing ( Simultaneaus Periphernal Operating On——Line ) ,或称为假脱机操作。

1、SPOOLing系统的有三大部分组成

输入井和输出井。是磁盘上开辟的两个大存储空间。
输入缓冲区和输出缓冲区。在内存中开辟两个缓冲区,输入缓冲区暂存由输入设备送来的数据,后送输入井;输出缓冲区暂存从输出井送来的数据,后送输出设备。
输入进程和输出进程。利用两个进程模拟脱机IO时的外围处理机。

2、SPOOLing系统的特点

提高了I/O的速度。 利用输入输出井模拟成脱机输入输出,缓和了CPU和I/O设备速度不匹配的矛盾。 将独占设备改造为共享设备 实现了虚拟设备功能。多个进程同时使用一台独占设备,虚拟成了多台设备。