操作系统.docx
《操作系统.docx》由会员分享,可在线阅读,更多相关《操作系统.docx(14页珍藏版)》请在冰豆网上搜索。
![操作系统.docx](https://file1.bdocx.com/fileroot1/2023-2/22/d2d4ecca-c754-497c-9d09-f4e57408d367/d2d4ecca-c754-497c-9d09-f4e57408d3671.gif)
操作系统
第三章
假设一个系统有5个进程,他们的到达时间和服务时间如上表所示,忽略I/O以及其他的开销时间,若分别按先来先服务(FCFS)、非抢占式及抢占的短进程优先(SPF)调度算法进行CPU调度,请给出各进程的完成时间、周转时间、带权周转时间、平均周转时间和平均带权周转时间。
进程
到达时间
服务时间
A
0
3
B
2
6
C
4
4
D
6
5
E
8
2
进程
A
B
C
D
E
平均
到达时间
0
2
4
6
8
服务时间
3
6
4
5
2
FCFS
完成时间
3
9
13
18
20
周转时间
3
7
9
12
12
8.6
带权周转时间
1
1.17
2.25
2.4
6
2.56
SPF(非抢占)
完成时间
3
9
15
20
11
周转时间
3
7
11
14
3
7.6
带权周转时间
1
1.17
2.75
2.8
1.5
1.84
SPF(抢占)
完成时间
3
15
8
20
10
周转时间
3
13
4
14
2
7.2
带权周转时间
1
2.16
1
2.8
1
1.59
假设一个系统有5个进程,他们的到达时间和服务时间如上表所示,忽略I/O以及其他的开销时间,若按高响应比优先调度算法进行CPU调度,请给出各进程的完成时间、周转时间、带权周转时间、平均周转时间和平均带权周转时间。
进程
A
B
C
D
E
平均
高响应比优先
完成时间
3
9
13
20
15
周转时间
3
7
9
14
7
8
带权周转时间
1
1.17
2.25
2.8
3.5
2.14
假设一个系统有5个进程,他们的到达时间和服务时间如上表所示,忽略I/O以及其他的开销时间,若按只按时间片进行抢占的多级反馈队列以及立即抢占的多级反馈队列(第i级队列的时间片=2i-1)调度算法进行CPU调度,请给出各进程的完成时间、周转时间、带权周转时间、平均周转时间和平均带权周转时间。
某多道程序设计系统配有一台处理器和两台外设IO1、IO2,现有3个优先级由高到低的作业J1、J2和J3都已装入了主存,它们使用资源的先后顺序和占用时间分别是:
J1:
IO2(30ms),CPU(10ms),IO1(30ms),CPU(10ms)
J2:
IO1(20ms),CPU(20ms),IO2(40ms)
J3:
CPU(30ms),IO1(20ms)
处理器调度采用可抢占式的优先数算法,忽略其他辅助操作时间,回答下列问题:
(1)分别计算作业J1、J2和J3从开始到完成所用的时间;
(2)3个作业全部完成时CPU的利用率;
(3)3个作业全部完成时外设IO1的利用率。
分析:
本题是一个多道系统中兼有作业调度和进程调度的计算题,其中系统中的三个进程不仅要竞争使用处理器,而且还要竞争使用外设,从而使得进程之间的关系更加复杂。
另一方面,本题略去了具体的作业调度(假设作业都已装入了主存),减少了所要考虑的因素。
本题进程的执行过程可以借助图示的方法来描述,如图所示:
解答:
(1)由图可知,J1从开始到完成的时间是0~80ms,J2从开始到完成的时间是0~90ms,J3从开始到完成的时间是0~90ms。
(2)3个作业全部完成总共需要90ms,CPU总共使用的时间是:
20+10+10+10+10+10=70(ms)
所以CPU的利用率是:
70/90×100%=77.8%
(3)3个作业全部完成时IO1的利用率是:
(20+30+20)/90×100%=70/90×100%≈77.8%
图3-5示出了时间片分别为q=1和q=4时,A、B、C、D、E五个进程的运行情况,而图3-6为q=1和q=4时各进程的平均周转时间和带权平均周转时间。
图中的RR(RoundRobin)表示轮转调度算法。
有4个进程P1,P2,P3,P4,它们进入就绪队列的先后次序为P1、P2、P3、P4,它们的优先数和需要的处理器时间如下表所示。
假定这四个进程执行过程中不会发生等待事件,忽略进程调度等所花费的时间,从某个时刻开始进行调度,请回答下列问题:
写出分别采用“先来先服务”、“非抢占式优先数”(固定优先数,优先数大者优先级高)及“时间片轮转”(时间片大小为5)三种调度算法选中进程执行的次序、计算出各进程在就绪队列中的等待时间以及平均等待时间。
进程
处理器时间
优先数
P1
8
3
P2
6
1
P3
22
5
P4
4
4
若有3个周期性任务,任务A要求每20ms执行一次,执行时间为10ms;任务B要求每50ms执行一次,执行时间为10ms;任务C要求每50ms执行一次,执行时间为15ms,应如何按最低松弛度优先算法对它们进行CPU调度?
第四章
作业:
某系统采用动态分区分配方式管理内存,内存空间为640K,高端40K用来存放操作系统。
在内存分配时,系统优先使用空闲区低端的空间。
对下列请求序列:
作业1申请130K、作业2申请60K、作业3申请100K、作业2释放60K、作业4申请200K、作业3释放100K、作业1释放130K、作业5申请140K、作业6申请60K、作业7申请50K、作业6释放60K,请分别画图表示出使用首次适应算法和最佳适应算法进行内存分配和回收后内存的实际使用情况。
(不需要画出计算过程,直接给出结果即可)
【例】某系统采用页式存储管理策略,拥有逻辑空间32页,每页2K,拥有物理空间1M。
(1)写出逻辑地址的格式。
(2)若不考虑访问权限等,进程的页表有多少项?
每项至少有多少位?
(3)如果物理空间减少一半,页表结构应相应作怎样的改变?
答:
(1)该系统拥有逻辑空间32页,故逻辑地址中页号必须用5位来描述:
而每页为2K,因此,页内地址必须用11位来描述,这样可得到它的逻辑地址格式如下:
1511100
页号页内地址
(2)每个进程最多有32个页面,因此,进程的页表项最多为32项;若不考虑访问权限等,则页表项中只需给出页所对应的物理块块号,1M的物理空间可分成29个内存块,故每个页表项至少有9位
(3)如果物理空间减少一半,则页表中页表项数仍不变,但每项的长度可减少1位。
对一个将页表存放在内存中的分页系统:
(1)如访问内存需要0.2μs,有效访问时间为多少?
(2)如果加一快表,且假定在快表中找到页表项的机率高达90%,则有效访问时间又是多少(假定查快表花费时间为0)?
答:
(1)有效访问时间为:
0.2×2=0.4μs
(2)有效访问时间为:
0.2×0.9+0.2×2×(1-0.9)=0.22μs
某采用分页存储管理的系统中,物理地址占20位,逻辑地址中页号占6位,页大小为1KB,问:
该系统的内存空间大小为多少?
每块的大小为多少?
逻辑地址共几位,每个作业最大长度为多少?
若0页放在3块中,1页放在7块中,2页放在9块中,逻辑地址0420H对应的物理地址是多少?
已知某分页系统,主存容量为64K,页面大小为1K,对一个4页大的作业,其0、l、2、3页分别被分配到主存的2、4、6、7块中。
(1)将十进制的逻辑地址1023、2500、4500转换成物理地址。
(2)以十进制的逻辑地址1023为例画出地址变换过程图。
根据所示段表,将逻辑地址(0,137),(1,4000),(2,3600),(5,230)转换成物理地址。
段号
内存始址
段长
O
50K
10K
l
60K
3K
2
70K
5K
3
120K
8K
4
150K
4K
答:
(1)段号0小于段表长5,故段号合法;由段表的第0项可获得段的内存始址为50K,段长为10K;由于段内地址137,小于段长10K,故段内地址也是合法的,因此可得出对应的物理地址为50K+137=5l337。
(2)段号l小于段表长,故段号合法;由段表的第l项可获得段的内存始址为60K,段长为3K:
经检查,段内地址4000超过段长3K,因此产生越界中断。
(3)段号2小于段表长,故段号合法;由段表的第2项可获得段的内存始址为70K,段长为5K;故段内地址3600也合法。
因此,可得出对应的物理地址为70K+3600=75280。
(4)段号5等于段表长,故段号不合法,产生越界中断。
例如:
一个多用户系统,同时有40个用户执行文本编辑程序,该程序有160KB的代码和40KB的数据区,非共享时共需8MB的内存空间。
若160KB代码为可重入的,则无论在分页或分段系统中,该代码都能被共享,内存只需保留一份文本编辑程序的副本,此时所需内存空间仅为1760KB(40*40+160)。
【例1】:
在一个请求分页系统中,假如一个作业的页面走向为4,3,2,1,4,3,5,4,3,2,1,5,目前它还没有任何页装入内存,当分配给该作业的物理块数目M分别为3和4时,请计算采用FIFO页面置换算法时访问过程中所发生的缺页次数和缺页率,并比较所得的结果。
表1.访问过程中的缺页情况(M=3,FIFO算法)
【例2】:
有一个程序要把100×100数组置初值为“0”,现假定有两个主存块可用来存放数组信息,主存块的大小为可存放200个数组元素,数组中的元素按行编址。
两个主存块的初始状态都为空,若编程编制如下:
①VarA:
arrary[1..100]ofarray[1..100]ofinteger;
forj:
=1to100do
fori:
=1to100do
A[i,j]:
=0;
②VarA:
arrary[1..100]ofarray[1..100]ofinteger;
fori:
=1to100do
forj:
=1to100do
A[i,j]:
=0;
当采用LRU页面调度算法时各会产生多少次缺页中断?
解析:
①首次缺页中断(访问A[1][1]时发生)将装入数组的第1、2行共200个整数,但由于程序是按列对数组进行访问的,因此在处理完2个整数后又会再次产生缺页中断;以后每调入一页,也只能处理2个整数,因此,处理100*100个整数共将发生5000次缺页。
②首次缺页中断同样将装入数组的第1、2行共200个整数,由于程序是按行对数组进行访问的,只有在处理完200个整数后才会再次产生缺页中断;以后每调入一页,也能处理200个整数,因此,处理100*100个整数共将发生50次缺页。
【例3】:
(2009年考研题)请求分页管理系统中,假设某进程的页表内容如下表所示。
页号
页框号
有效位(存在位)
0
101H
1
1
0
2
254H
1
页面大小为4KB,一次内存的访问时间是100ns,一次快表(TLB)的访问时间是10ns,处理一次缺页的平均时间为108ns(已含更新TLB和页表的时间),进程的驻留集大小固定为2,采用最近最少使用置换算法(LRU)和局部淘汰策略。
假设:
①TLB初始为空;②地址转换时先访问TLB,若TLB未命中,再访问页表(忽略访问页表之后的TLB更新时间);③有效位为0表示页面不在内存,产生缺页中断,缺页中断处理后,返回到产生缺页中断的指令处重新执行。
设有虚地址访问序列2362H、1565H、25A5H,请问:
(1)依次访问上述三个虚地址,各需多少时间?
给出计算过程。
(2)基于上述访问序列,虚地址1565H的物理地址是多少?
请说明理由。
【例3】解析:
(1)因为页大小为4KB,所以虚地址中的低12位表示页内地址,剩余高位表示页号。
则十六进制虚地址的低三位为页内地址,最高位为页号。
因此访问上述三个虚地址所需时间如下:
2362H:
页号为2,页内地址为362H。
访问快表10ns,未命中;访问内存中的页表100ns,根据页表指示该页在内存,根据页框号形成物理地址再次访问内存100ns,共计10ns+100ns*2=210ns。
【例3】解析:
1565H:
页号为1,页内地址为565H。
访问快表10ns,未命中;访问内存中的页表100ns,根据页表指示该页不在内存,处理缺页108ns,再次访问快表10ns命中,根据页框号形成物理地址再次访问内存100ns,共计10ns*2+100ns*2+108ns=328ns。
25A5H:
页号为2,页内地址为5A5H。
访问快表10ns,命中(访问2362H时已更新TLB),根据页框号形成物理地址访问内存100ns,共计10ns+100ns=110ns。
【例3】解析:
(2)虚地址1565H的页号为1,页内地址为565H。
目前页0、页2在内存,访问页1时发生缺页,根据LRU置换算法和局部淘汰策略,将页0换出页1换入,因此页1对应的页框号为101H,则虚地址1565H的物理地址为101565H。
第五章
【例】某文件占10个磁盘块,现要把该文件磁盘块逐个读入主存缓冲区,并送用户区进行分析。
假设一个缓冲区与一个磁盘块大小相同,把一个磁盘块读入缓冲区的时间为100μs,将缓冲区的数据传送到用户区的时间是50μs,CPU对一块数据进行分析的时间为50μs。
在单缓冲区和双缓冲区结构下,读入并分析该文件的时间分别是()。
A.1500μs、1000μs
B.1550μs、1100μs
C.1550μs、1550μs
D.2000μs、2000μs
【例】设系统缓冲区和用户工作均采单,从外读入1个数据块到系统缓冲区的时间为100,从系统缓冲区读入1个数据块到用户工作区的时间为5,对用户工作区中的1个数据块进行分析的时间为90(如下图所示)。
进程从外设读入并分析2个数据块的最短时间是()。
A.200B.295
C.300D.390
【例】用户程序发出磁盘I/O请求后,系统正确的处理流程是()。
A.用户程序→系统调用处理程序→中断处理程序→设备驱动程序
B.用户程序→系统调用处理程序→设备驱动程序→中断处理程序
C.用户程序→设备驱动程序→系统调用处理程序→中断处理程序
D.用户程序→设备驱动程序→中断处理程序→系统调用处理程序
【例】本地用户通过键盘登录系统时,首先获得键盘输入信息的程序是()。
A.命令解释程序B.中断处理程序
C.系统调用程序D.用户登录程序
【例】用户程序发出磁盘I/O请求后,系统的处理流程是:
用户程序→系统调用处理程序→设备骆动程序→中断处理程序。
其中,计算数据所在磁盘的柱面号、磁头号、扇区号的程序是()。
A.用户程序
B.系统调用处理程序
C.设备驱动程序
D.中断处理程序
【例】程序员利用系统调用打开I/O设备时,通常使用的设备标识是
A.逻辑设备名
B.物理设备名
C.主设备号
D.从设备号
有5个记录A、B、C、D、E存放在磁盘的某个磁道上,且每个磁道正好可以存放5个记录。
设磁盘旋转速度为30ms/转,处理程序每读出一个记录后用6ms的时间进行处理,磁头位于记录A开始处,则
(1)当记录A、B、C、D、E按顺序存放在磁道上时,顺序处理这5个记录花费的总时间是多少?
(2)如何采取优化方法使处理这些记录所花费的总时间最短?
求出该最短时间。
解:
(1)磁盘旋转速度是30ms/转,共分成5个扇区,因此每个扇区的读写时间为30/5=6ms;若按顺序编号,每读出一个扇区后用6ms的时间进行处理,此时磁盘仍在转动,处理完A记录后,磁头已到达C记录,因此要等磁盘再转一圈后才可读B(如图1),以此类推,顺序处理5个记录的时间是(其中A是第一个,因此处理有别于其他扇区):
A:
6ms+6msB~D:
6ms*4+6ms+6ms,共计156ms。
(2)采用的优化方法是扇区交替编号,使得A记录在处理完后可以在最短的时间内定位B记录,排列方式如下图。
求出的花费时间是:
12ms*5=60ms。