答:①A和B顺序执行时,A执行完毕B才开始,总共耗时80s,占用CPU40s,故利用率为40/80=50%。 ②
多道时,两程序共耗时45s,占用CPU 40s,故利用率40/45=88.89% 已知一个求值公式(A2+3B)/(B+5A),
若A、B已赋值,画出该公式求值过程的前趋图
问题:管程中的多个进程进入
当一个进入管程的进程执行等待操作时,它应当释放管程的互斥权;当一个进入管程的进程执行唤醒操作时(如P唤醒Q),管程中便存在两个同时处于活动状态的进程 处理方法有三种:
P等待Q继续,直到Q退出或等待√(Hoare) Q等待P继续,直到P等待或退出
唤醒是管程中可执行的最后一个操作(Hansen)
例1: 作业名 到达时间 服务时间 A 0 1 B 1 100 C 2 1 D 3 100 调度次序:A B C D
例2:下面三个作业几乎同时到达系统并立即进行FCFS调度: 作业名 所需CPU时间 作业1 28 作业2 9 作业3 3
假设提交顺序为1、2、3,则平均作业周转时间T =
若提交顺序改为作业2、1、3,则T= 若提交顺序改为作业3、2、1,则T=
FCFS调度算法的平均作业周转时间与作业提交的顺序有关。
练习:有如下四个进程,它们的到达时间和服务时间如下所示,请分别计算在采用FCFS、SPF非抢占调度算法时的平均周转时间和平均等待时间。 进程 到达时间 服务时间 P1 0 7 P2 2 4 P3 4 1 P4 5 4 进程 到达时间 服务时间 P1 0 7 P2 2 4 P3 4 1 P4 5 4 FCFS
平均周转时间= ((7-0)+(12-2)+(8-4)+(16-5))/4=8
平均等待时间= ((0-0)+(8-2)+(7-4)+(12-5))/4 = 4
例:一个分时OS,10个终端,时间片100ms,每个用户的请求进程要300ms的时间处理,问终端用户提出二次请求的时间间隔最少是多少?
解:响应时间=100ms×10=1s,每个用户的请求要获得3个时间片才能处理完,要轮转3次,才能都处理完,所以终端用户的二次请求时间间隔最少应为3s。 一个系统共有150个存储单元。现有三个进程对存储的 最大需求及已分配量如下表所示:
试用银行家算
法说明下面的请求是否安全:
(1)第4个进程到达,最多需要60个存储单元,现提出25个单元的请求。试问,若系统接受该请求,处于安全状态吗?
(2)第4个进程到达,最多需要60个存储单元,现提出35个单元的请求。试问,若系统接受该请求,处于安全状态吗?
考虑有5个作业A到E,运行时间分别为2、4、1、1、1,到达时间分别是0、0、
3、3、3。对它们实行“短作业优先”、“高响应比优先”作业调度算法。请分别计算它们的平均周转时间及平均等待时间。
例:设有一页式存储管理系统,向用户提供的逻辑地址空间最大为16页,每页2048B,内存总共有8个存储块,试问逻辑地址至少应为多少位?内存空间有多大? 解:(1)页式存储管理系统的逻辑地址为:其中页内地址表每页的大小即 2048B=2*1024B=211B,所以页内地址为11位;页号表最多允许的页数即 16页=24页,所以页号为4位。故逻辑地址至少应为15位。
(2)物理地址为:其中块内地址表每块的大小与页大小相等,所以块内地址也为11位;其中块号表内存空间最多允许的块数即 8块=23块,所以块号为3位。故内存空间至少应为14位,即214 =16KB。
例1:若在一分页存储管理系统中,某作业的页表如下表所示,已知页面大小为1024B,试将逻辑地址1011,2148,5012转化为相应的物理地址?画出其地址转换图。 页号 0 1 2 3 块号 2 3 1 6
解:由题知逻辑地址为: 物理地址为: 页号2位 位移量w 10位
(1)逻辑地址1011(十进制)的二进制表示为: 块号b 3位 块内位移d 10位
00 1111110011,由此可知逻辑地址1011的页号0,查页表知该页放在第2物理块中; 其物理地址的二进制表示为:010 1111110011,所以逻辑地址1011对应的物理地址为0BF3H。其地址转换图如后所示。
2)逻辑地址2148(十进制)的二进制为:
10 0001100100,由此可知逻辑地址2148的页号是2,查页表知该页放入物理块1中; 其物理地址的二进制是:001 0001100100,所以逻辑地址2148对应的物理地址是0464H。 (3)逻辑地址5012(十进制)的二进制表示为:
100 1110010100,可知该逻辑地址的页号为4,查页表知该页为不合法页,则产生越界中断。
例:设有一页式存储管理系统,向用户提供的逻辑地址空间最大为16页,每页2048B,内存总共有8个存储块,试问逻辑地址至少应为多少位?内存空间有多大?
页号p 位移量w 解:(1)页式存储管理系统的逻辑地址为:其中页内地址表每页的大小即 2048B=2*1024B=211B,所以页内地址为11位;页号表最多允许的页数即 16页=24页,所以页号为4位。故逻辑地址至少应为15位。 (2)物理地址为:其中块内地址表每块的大 块号b 块内偏移d 小与页大小相等,所以块内地址也为11位;其中块号表内存空间最多允许的块数即 8块=23块,所以块号为3位。故内存空间至少应为14位,即214 =16KB。 例: 有一页式系统,其页表存放在主存中。
(1)如果对主存的一次存取需要100ns,试问实现一次页面访问的存取时间是多少? (2)如果系统加有快表,对快表的一次存取需要20ns,若平均命中率为85%,试问此时的存取时间为多少? 解:(1)页表放主存中,则实现一次页面访问需2次访问主存,一次是访问页表,确定所存取页面的物理块,从而得到其物理地址,一次根据物理地址存取页面数据。所以实现一次页面访问的存取时间为:100ns*2=200ns
(2)系统加有快表,则实现一次页面访问的存取时间为: 0.85*(20ns+100ns)+(1-0.85)*(20ns+2*100ns)=135ns 例1、在一个段式存储管理系统中,其段表为: 段号 内存起始地址 段长
0 210 500 1 2350 20 2 100 90 0 430 2 120
3 1350 590 4 1938 95 试求右表中逻辑地址对应的物理地址是什么? 解:逻辑地址为: 段号 段内地址
逻辑地址 0 430 对应的物理地址为:210+430=640。 逻辑地址 2 120 因为段内地址120>段长90,所为该段为非法段。 由段表可知段号为3位,段内地址为10位。 例2、某段表的内容如下:
段号 段首址 段长度
0 120K 40K 1 760K 30K 2 480K 20K 3 370K 20K
对于逻辑地址2154,它对应的物理地址为多少? 解:逻辑地址为: 段号 段内地址
由段表可知段号为2位,段内地址为16位,段允许的最大长度为 216=210*26=1024*64=65536。
所以逻辑地址2154(二进制为100001101010)的段号为0,查段表知其对应的物理地址为:120K+2154=125034
某虚拟存储器的用户空间共有32个页面,每页1KB,主存16KB。假定某时刻系统
为用户的第0、1、2、3页分别分配的物理块号为5、10、4、7,试将虚拟地址0A5C和093C变换为物理地址。
解:虚拟地址为:页号5位(25=32),页内位移10位(110=1024);物理地址为:物理块号4位(24=16),块内位移(110=1024)10位。
虚拟地址0A5C对应的二进制为:00010 1001011100,即虚拟地址0A5C的页号为
2,页内位移为1001011100,由题意知对应的物理地址为:0100 1001011100即125C。 同理求093C的物理地址为293C。略 第六章
例:请分别解释在连续分配方式、隐式链接分配方式、显式链接分配方式和索引分配方式中如何将文件的字节偏移量3500转换为物理块号和块内位移量(设盘块大小为1KB,盘块号需占4个字节)。
解:首先,将字节偏移量3500转换成逻辑块号和块内位移量:3500/1024得到商为3,余数为428,即逻辑块号为3,块内位移量为428。
(1) 在连续分配方式中,可从相应文件的FCB中得到分配给该文件的起始物理盘块号,例如a0,故字节偏移量3500相应的物理盘块号为a0+3,块内位移量为428。 (2) 在隐式链接方式中,由于每个盘块中需留出4个字节(如最后的4个字节)来存放分配给文件的下一个盘块的块号,因此字节偏移量3500的逻辑块号为3500/1020的商3,而块内位移量为余数440。
从相应文件的FCB中可获得分配给该文件的首个(即第0个)盘块的块号,如b0;然后可通过读第b0块获得分配给文件的第1个盘块的块号,如b1;再从b1块中得到第2块的块号,如b2;从b2块中得到第3块的块号,如b3。如此,便可得到字节偏移量3500对应的物理块号b3,而块内位移量则为440。
(3) 在显式链接方式中,可从文件的FCB中得到分配给文件的首个盘块的块号,如c0;然后可在FAT的第c0项中得到分配给文件的第1个盘块的块号,如c1;再在FAT的第c1项中得到文件的第2个盘块的块号,如c2;在FAT的第c2项中得到文件的第3个盘块的块号,如c3。如此,便可获得字节偏移量3500对应的物理块号c3,而块内位移量则为428。
(4) 在索引分配方式中,可从文件的FCB中得到索引表的地址。从索引表的第3项(距离索引表首字节12字节的位置)可获得字节偏移量3500对应的物理块号d,而块内位移量为428。
例:存放在某个磁盘上的文件系统,采用混合索引分配方式,其FCB中共有13个地址
项,第0-9个地址项为直接地址,第10个地址项为一次间接地址,第11个地址项为二次间接地址,第12个地址项为三次间接地址。如果每个盘块的大小为512字节,若盘块号需要用3个字节来描述,而每个盘块最多存放170个盘块地址。问: (1) 该文件系统允许文件的最大长度是多少?
(2) 将文件的字节偏移量5000、15000、150000转换为物理块号和块内偏移量。 (3) 假设某个文件的FCB己在内存,但其他信息均在外存,为了访问该文件中某个位置的内容,最少需要几次访问磁盘,最多需要几次访问磁盘? 解:(1) 该文件系统中一个文件的最大长度可达: 10+170+170×170+170×170×170=4942080块,共4942080×512字节=2471040KB (2) 5000/512得到商为9,余数为392,即字节偏移量5000对应的逻辑块号为9,块内偏移量为392。由于9<10,故可直接从该文件的FCB的第9个地址项处得到物理盘块号,块内偏移量为392。
15000/512得到商为29,余数为152,即字节偏移量15000对应的逻辑块
号为29,块内偏移量为152。由于10< 29< 10+170,而29-10=19,故可从FCB的第10个地址项,即一次间址项中得到一次间址块的地址;并从一次间址块的第19项(即该块的第57~59这3个字节)中获得对应的物理盘块号,块内偏移量为152。
150000/512得到商为292,余数为496,即字节偏移量150000对应的逻辑块号为
292,块内偏移量为496。由于10+170< 292< 10+170+170×170,而292-(10+170)=112,112/170得到商为0,余数为112,故可从FCB的第11个地址项,即二次间址项中得到二次间址块的地址,并从二次间址块的第0项中获得一个一次间址块的地址,再从这一次间址块的第112项中获得对应的物理盘块号,块内偏移量为496。 (3) 由于文件的FCB己在内存,为了访问文件中某个位置的内容,最少需要1次访问磁盘(即可通过直接地址直接读文件盘块),最多需要4次访问磁盘(第一次是读三次间址块,第二次是读二次间址块,第三次是读一次间址块,第四次是读文件盘块)。 例:在某个文件系统中,每个盘块为512字节,文件控制块占64个字节,其中文
件名占8个字节。如果索引节点编号占2个字节,对一个存放在磁盘上的256个目录项的目录,试比较引入索引节点前后,为找到其中一个文件的FCB,平均启动磁盘的次数。
解:在引入索引节点前,每个目录项中存放的是对应文件的FCB,故256个目录项的目录总共需要占用256×64/512=32个盘块。故,在该目录中检索到一个文件平均启动磁盘次数为(1+32)/2=16.5。
在引入索引节点后,每个目录项中只需存放文件名和索引节点的编号,因此256个目录项的目录总共需要占用256×(8+2)/512=5个盘块。因此,找到匹配的目录项平均需要启动3次磁盘;而得到索引节点编号后还需启动磁盘将对应文件的索引节点读入内存,故平均需要启动磁盘4次。可见,引入索引节点后,可大大减少启动磁盘的次数,从而有效地提高检索文件的速度。
例1:设某系统的磁盘有500块,块号为:0,1,2,3,…,499。 (1) 若用位示图法管理这500块的盘空间,当字长为32位时,此位示图占了几个字? (2) 第i字的第j位对应的块号是多少?(其中:i=0,1,2,…,j=0,1,2,3,…) 解:(1) 位示图法就是在内存用一些字建立一张位示图,用其中的每一位表示一个盘块的使用情况,通常用“1”表示占用,“0”表示空闲。因此,本问题中位示图所占的字数为:「500/32」=16。
(2) 第i字的第j位对应的块号N=32*i+j
例2:有一计算机系统利用下图所示的位示图(行号、列号都从0开始编号)来管理空闲盘块。如果盘块从1开始编号,每个盘块的大小为1KB。 (1) 现要为文件分配两个盘块,试具体说明分配过程。 (2) 若要释放磁盘的第300块,应如何处理? (编号从0开始)
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 答:(1)为某文件分配两个盘块的过程如下:
① 顺序检索位示图,从中找到第一个值为0的二进制位,得到其行号il=2,列号jl=2。第二个值为0的二进制位,得到其行号i2=3,列号j2=6。 ② 计算出找到的两个空闲块的盘块号分别为: b1=i1×16+j1+1=2×16+2+1=35 b2=i2×16+j2+1=3×16+6+1=55
③ 修改位示图,令map[2,2]=map[3,6]=1,并将对应块35、55分配出去。 (2) 释放磁盘的第300块时,应进行如下处理:
① 计算出磁盘第300块所对应的二进制位的行号i和列号j: i=(300-1)/16=18,j =(300-1)%16=11
② 修改位示图,令map[18,11]=0,表示对应块为空闲块。
因篇幅问题不能全部显示,请点此查看更多更全内容