课后练习P294页第5题
答:将访问请求按照柱面号3,7,7,7,30的次序进行处理,7号柱面的访问按照7-1-2,7-2-5,7-2-8执行,将使得磁盘的旋转次数最少。
课后练习P294页第7题
(1)先来先服务(FCFS):
移动的总量:(143-86)+(147-86)+(147-91)+(177-91)+(177-94)+(177-94)+(150-94)+(150-102)+(175-102)+(175-130)=565
移动的顺序:86,147,91,177,94,150,102,175,130
(2)最短查找时间优先算法(SSTF):
移动的总量:(147-143)+(150-147)+(150-130)+(130-102)+(102-94)+(94-91)+(91-86)+(175-86)+(177-175)=162
移动的顺序:147,150,130,102,94,91,86,175,177
(3)扫描算法(SCAN):
移动的总量:(147-143)+(150-147)+(175-150)+(177-175)+(199-130)+(130-102)+(102-94)+(94-91)+(91-86)=169
移动的顺序:147,150,175,177,199,130,102,94,91,86
(3)电梯调度算法:
移动的总量:(147-143)+(150-147)+(175-150)+(177-175)+(177-130)+(130-102)+(102-94)+(94-91)+(91-86)=125
移动的顺序:147,150,175,177,130,102,94,91,86
补
处理器调度算法
1. P117页,练习15:最高响应比
HRRF最高响应比优先算法
2. P119页,练习22(2):时间片轮转
进程P1运行完成时,P2和P3到达就绪队列
进程P2运行完成时,P3,P1,P4依次到达就绪队列
进程P3运行完成时,P1,P4,P2依次到达就绪队列
3. 现设定采用三级反馈队列调度算法,三个队列分别为0、1和2,对应时间片为2、4、8。现有四个进程A、B、C、D,到达时刻分别为0、5、7、12,执行时间分别为7、4、13、2。请写出整个进程调度过程,包括每个时间段,执行的进程,执行后进程状态,各个队列内进程的变化。
4. 从以下几个方面比较各个调度算法的优缺点:
1.资源利用率
2.吞吐率
3.周转率
4.响应时间
5.公平性
6.适用范围
(1)先来先服务调度算法:先来先服务调度算法是一种非抢占式的算法,先进入就绪队列的进程,先分配处理机运行。一旦一个进程占有了处理机,它就一直运行下去,直到该进程完成工作或者因为等待某事件发生而不能继续运行时才释放处理机。最简单的调度算法,当作业调度中采用该算法时,系统将按照作业到达的先后次序来进行调度,优先从后备队列中,选择一个或多个位于队列头部的作业,把他们调入内存,分配所需资源、创建进程,然后放入“就绪队列”。
(2)最短作业优先算法:最短作业优先算法这是对FCFS算法的改进,其目标是减少平均周转时间。对预计执行时间短的作业(进程)优先分派处理机。通常后来的短作业不抢先正在执行的作业。
(3)最短剩余时间优先算法:这是一个剥夺式调度算法。此算法的资源利用率和吞吐率较高,周转率较快,响应时间较短,也是一个不是很公平的算法,适用于剩余时间短的进程。优缺点:能够克服FCFS算法偏爱长作业的缺点,实现起来比较复杂,要时时观察每个作业的剩余时间,但是此算法的平均等待时间和平均周转时间都比FCFS和SJF的好。
(4)最高响应比优先算法:最高响应比优先法是对FCFS方式和SJF方式的一种综合平衡。FCFS方式只考虑每个作业的等待时间而未考虑执行时间的长短,而SJF方式只考虑执行时间而未考虑等待时间的长短。
(5)优先级调度算法:优先级算法是多级队列算法的改进,平衡各进程对响应时间的要求。适用于作业调度和进程调度,可分成抢先式和非抢先式。静态优先级,作业调度中的静态优先级大多按以下原则确定:由用户自己根据作业的紧急程度输入一个适当的优先级。由系统或操作员根据作业类型指定优先级。系统根据作业要求资源情况确定优先级。进程的静态优先级的确定原则:按进程的类型给予不同的优先级。
(6)轮转调度算法:轮转法是让每个进程在就绪队列中的等待时间与享受服务的时间成正比例。将系统中所有的就绪进程按照FCFS原则,排成一个队列。每次调度时将CPU分派给队首进程,让其执行一个时间片。时间片的长度从几个ms到几百ms。在一个时间片结束时,发生时钟中断。调度程序据此暂停当前进程的执行,将其送到就绪队列的末尾,并通过上下文切换执行当前的队首进程。进程可以未使用完一个时间片,就出让CPU(如阻塞)。受时间片长度变化的影响,过长->退化为FCFS算法,进程在一个时间片内都执行完,响应时间长。过短->用户的一次请求需要多个时间片才能处理完,上下文切换次数增加,响应时间长。对响应时间的要求:T(响应时间)=N(进程数目)*q(时间片),就绪进程的数目:数目越多,时间片越小,系统的处理能力:应当使用户输入通常在一个时间片内能处理完,否则使响应时间,平均周转时间和平均带权周转时间延长。
(7)多级反馈队列调度算法:多级反馈队列算法是轮转算法和优先级算法的综合和发展。设置多个就绪队列,分别赋予不同的优先级,如逐级降低,队列1的优先级最高。每个队列执行时间片的长度也不同,规定优先级越低则时间片越长,如逐级加倍。新进程进入内存后,先投入队列1的末尾,按FCFS算法调度;若按队列1一个时间片未能执行完,则降低投入到队列2的末尾,同样按FCFS算法调度;如此下去,降低到最后的队列,则按“时间片轮转”算法调度直到完成。
操作系统实验一:处理器管理
实验报告
一、实验目的
(1)加深对处理机调度的作用和工作原理的理解。
(2)进一步认识并发执行的实质。
二、实验要求:
本实验要求用高级语言,模拟在单处理器情况下,采用多个调度算法,对N个进程进行进程调度。语言自选。
并完成实验报告。
三、实验内容:
在采用多道程序设计的系统中,往往有若干个进程同时处于就绪状态。
当就绪状态进程个数大于处理器数时,就必须依照某种策略来决定哪些进程优先占用处理器。
- 进程及进程队列的表示。
- 处理器调度算法:FCFS,SJF,RR,HRRN,MLFQ等
- 跟踪进程状态的转化
- 输出:系统中进程的调度次序,计算CPU利用率,平均周转时间和平均带权周转时间
四、实验过程与结果
1.FCFS:
1.1算法思想:按照作业进入系统后备作业队列的先后次序来挑选作业,先进入系统的作业将优先被挑选进入内存,创建用户进程,分配所需资源,然后移入就绪队列。
1.2算法设计:
2.SJF:
2.1算法思想:以进入系统作业所需要求的CPU运行时间的长短为标准,总是选取预计计算时间最短的作业投入运行。
2.2算法设计:
3.RR:
3.1算法思想:调度程序每次把CPU分配给就绪队列首进程/线程使用规定的时间间隔,称为时间片,通常为10ms~200ms,就绪队列中的每个进程/线程轮流的运行一个时间片,当时间片消耗尽时就强迫当前运行进程/线程让出处理器,转而排列到就绪队列尾部,等候下一轮调度。
3.2算法设计:
虚拟存储管理
1.P251,习题20
32=2^5,所以页号要5位,每页1KB,则页内地址要10位。
(1)0AC5=0000101011010101,则1011010101为页内地址,页号为0010=2,对应的物理块号8=1000,故物理地址=10001011010101=22C5.
(2)1AC5=0001101111010101,则1111010101为页内地址,页号为0110=6,但是页表中没有分配的页框所以发生缺页中断。
2.P252,习题31
操作系统实验一:并发程序设计
一、实验目的
(1)加深对进程并发执行的理解,认识多进程并发执行的实质。
(2)观察进程共享资源的现象,学习解决进程互斥和同步的方法。
二、实验要求:
本实验要求用高级语言,启动多进程并发运行,设计相应代码,显示进程无关并发、进程共享变量并发的运行结果。并完成实验报告。
三、实验内容:
分别实现以下四种情况的并发:
1.并发的进程之间无关,显示进程名称,开始与结束时间。
模拟多终端售票情况,并发的多个终端进程之间共享剩余票数这个共享变量。
2.用全局变量实现。
3.用进程间共享数据机制实现。
4.用进程间共享数据机制和加锁机制实现。
四、实验过程与结果
- 算法思想与设计
- 算法实现代码
- 运行结果