北工大操作系统作业合集.docx
《北工大操作系统作业合集.docx》由会员分享,可在线阅读,更多相关《北工大操作系统作业合集.docx(19页珍藏版)》请在冰豆网上搜索。
![北工大操作系统作业合集.docx](https://file1.bdocx.com/fileroot1/2022-11/18/9f6dbac6-a410-49bf-87b8-2900d7f3c9e7/9f6dbac6-a410-49bf-87b8-2900d7f3c9e71.gif)
北工大操作系统作业合集
第八次作业
基础作业
1.假设一个磁盘驱动器有5000个柱面,从0到4999。
驱动器正在为143的一个请求服务,且前面的一个请求在125。
按照FIFO的顺序,即将到来的请求是86,1470,913,1774,948,1509,1022,1750,130。
请按照FCFS、SSTF、SCAN、LOOK、C-SCAN、C-LOOK,要满足队列中的服务要求磁头总的移动距离是多少。
1438614709131774948150910221750130
a.FCFS:
143,86,1470,913,1774,948,1509,1022,1750,130.
总寻道距离7081.
b.SSTF:
143,130,86,913,948,1022,1470,1509,1750,1774.
总寻道距离1745.
c.SCAN:
143,913,948,1022,1470,1509,1750,1774,4999,130,86.
总寻道距离9769.
d.LOOK:
143,913,948,1022,1470,1509,1750,1774,130,86.
总寻道距离3319.
e.C-SCAN:
143,913,948,1022,1470,1509,1750,1774,4999,0,86,130.
总寻道距离9813
f.C-LOOK:
143,913,948,1022,1470,1509,1750,1774,86,130.
总寻道距离3363.
2.为什么文件分配的位图必须保存在大容量存储器中,而不是主存中?
答:
因为如果保存在内存中,当系统崩溃时,这些空闲区间的信息将会被丢失,而如果保存在大容量存储器中就可以解决这个问题。
3.假设要为一个文件换一个名字。
一种选择是使用操作系统提供的RENAME方法,另一种方法是:
把文件复制为新文件,然后删除原来的文件以实现重命名。
请问,这两种方法在实现上有什么不同?
答:
RENAME方法是修改目录文件的文件名部分,而删除原来文件再重命名则需要再创立一个新文件,目录文件中增加一项,分配新空间;删除目录文件中的文件项目,然后回收占用的空间。
4.请解释使用索引节点有什么好处
答:
减小目录文件的大小,提高查找文件的效率
5.在UNIX中open系统调用绝对需要么?
如果没有会产生什么结果。
答:
如果没有open命令,那么每个read命令都需要确定要打开的文件名。
系统必须找到文件的i节点,虽然这个数据放入cache可以减少一些时间,但是当数据变化的时候,i节点的数据需要刷新到磁盘上。
6.UNIX系统中有关盘块的分配与释放是借助超级块中的栈来进行的。
假如某个时刻系统状况如下图所示,若此时某个进程要删除文件A,并归还它所占用的盘块220,110,645,549,176。
请说明过程,并给出删除完毕后有关数据与表目的更改情况。
100
199
786
278
…
80
230
110
645
2
549
176
…
7.考虑一个索引节点所表示的UNIX文件的组织。
假设有12个直接块指针,在每个索引节点中有一个单重、双重和三重间接指针。
此外,假设系统块大小和磁盘扇区大小都是8K,如果磁盘块指针是32位,其中8位表示物理磁盘,24位表示物理块,那么
a.该系统支持的最大文件大小是多少?
b.该系统支持的最大文件分区是多少?
c.假设主存中除了文件索引节点外没有其他信息,访问在位置12423956中的字节需要多少磁盘访问?
答:
a.通过用块大小除以指针大小得到盘块指针的数目:
每块8K/4=2K
这样I节点可以支持的最大文件容量是:
12+2k+2k*2k+2k*2k*2k=(12+2K+4M+8G)*8K(块大小)=96KB+16MB+32GB+64TB
直接寻址一级间接寻址二级间接寻址三级间接寻址
b.在一个分区中识别一个块需要24位。
所以:
*8K=16M*8K=128GB
c.使用从(a)得到的信息,发现直接块只能表示96KB,而一次间接块表示16MB.题目中要求的请求位置在13M左右,使用一次间接块.就可以了。
所以要用两次磁盘访问,一次访问一次间接块,另一次访问包含数据的盘块
第七次作业
1.什么是设备无关性?
应用程序只按套路调用操作系统提供的功能即可,不关心实际的设备是什么,这就是与设备无关性
2.以下各项工作由I/O软件的哪一层完成?
a.为一个磁盘读操作计算磁道、扇区、磁头;设备驱动程序
b.向设备寄存器写命令;中断处理程序
c.检查用户是否允许使用设备;设备独立性软件
d.将二进制整数转换成ASCII码以便打印硬件
3.为什么在要打印的文件通常都假脱机输出到磁盘上?
答:
达到缓冲的目的,实现提高I/O设备性能的目的。
为了打印一个文件,一个进程首先要生成需要打印的整个文件并把它放在假脱机目录里。
由守护进程打印该目录下的文件,该进程是允许使用打印机设备文件的唯一进程。
通过保护设备文件来防止用户直接使用,可以解决某些进程不必要地长期空占打印机的问题。
第六次作业
1.假设页表在内存保存的分页系统,
a.如果一次访问内存用200ns,那么访问一个页内的一次数据访问用多少时间?
b.如果加入TLB,有75%的命中率,那么内存有效访问时间是多少?
a)访问一个页内数据需要访问两次内存,第一次访问内存中的页表,第二次根据页表中的信息形成的物理地址访问内存访问数据,所以要用200*2=400ns
b)加入TLB,获得物理地址的过程为:
先在TLB中查找,如果TLB中命中,则直接获得物理地址,如果TLB中不存在,则去访问页表,所以需要的访问时间为0.25*200=50ns
总共需要的时间为50ns+200ns=250ns
2.在一个虚拟存储管理系统中采用页式方法对内存空间进行管理,它有24位的虚拟地址空间,而实际的物理地址空间是16位,页框大小为2k。
假设有两个进程A和B。
其中A进程的0、2页已经调入到内存的2、3号页框;B进程的1、3页已经调入到内存的7、8号页框。
请问:
A进程的虚拟地址12FF可以转换成什么物理地址?
B进程的虚拟地址17BA可以转换成什么物理地址?
如果不能转换,操作系统会执行什么操作?
页框大小为2k=2^11,有11位的位移。
A进程:
12FF=0001001011111111,00010=2,A进程中2页调进3号框,因此物理地址为:
0001101011111111
B进程:
17BA=0001011110111010,在进程2中没有2号页,需要的页面不在内存时,请求调入所需的页面
判断对错
如果缺页率太高,通常说明一个进程分得的页框太多了。
X
第五次作业
基础作业
1.内部碎片与外部碎片之间的区别?
内部碎片:
内存分页时,最后一页未装满的部分就是内部碎片。
或因调入的数据小于分区而产生分区空间的浪费,称为内部碎片。
外部碎片:
共享时要分段,在段的换入换出时未使用的部分就是外部碎片。
一开始运行得很好,但是在执行一段时间后,会出现一些小的洞。
这种在分区外的洞称为外部碎片。
内存按顺序有100k,500k,200k,300k,600k,用首次适应、最佳适应和最差适应如何放置212k,417k,112k,426k的进程?
首次适应:
212k分配给500k,417k分配给600k,112k分配给200k,426k没有可分配
最佳适应:
首先将212k分配给300k,将417k分配给500k,将112k分配给200k,将426k分配给600k;
最差适应:
将212k分配给600k,将417分配给500k,将112分配给300k,最后426没有可分配的。
2.假设一个有8个1k页面的逻辑地址空间,映射到一个32个页框的物理内存,问:
逻辑地址多少位?
物理地址多少位?
逻辑地址:
13位
物理地址:
15位
4.(8.12)有段表
段基地址长度
0219600
1230014
290100
31327580
4195296
下面的物理地址是多少?
a)0,430;b)1,10;c)2,500;d)3,400;e)4,122
a、649b、2310c、590d、1727e、2074
5.在页面大小为4k的系统中,根据图中所示
页表,下面的逻辑地址经过重定位之后的物理地址是什么?
a)20;b)4100;c)8300
A、49172b、53252c、61548
6.一台计算机为每个进程提供65536字节的地址空间,页面的大小为4k。
一个程序有32768字节的正文,16386字节的数据,15870字节的堆栈,此程序是否能装入此地址空间?
若页面大小为512字节呢?
4k不能,512字节可以;
解析过程:
65536/4096=16,共计16个页面;
正文需要页面:
32768/4096=8
数据需要页面:
16386/4096=5
对战需要:
15870/4096=4
共需17个页面,所以不能装入
512字节同理可得正好能够装入
补充作业
判断对错
编译时绑定是大多数通用操作系统使用的地址绑定方法。
X
最佳适配法可以在内存分配过程中留下最小的洞。
√
为解决内存分配时导致的外部碎片可以采用压缩的方法来解决,因此需要在地址绑定的时候采用静态重定位方法。
X
如果现在基地址寄存器的值是1200,界限寄存器的值是350,那么当前进程产生对绝对地址1551的访问是合法的。
X
可重入代码不可以被共享。
X
基础作业
1.考虑下面一组进程,进程占用的CPU区间长度以毫秒计算。
假设在0时刻进程以P1,P2,P3,P4,P5的顺序到达。
进程区间时间优先级
P1103
P211
P323
P414
P552
(1)画出4个Gantt图,分别演示使用FCFS,SJF,非抢占优先级(数字越小表示优先级越高)和RR(时间片=1)算法调度时进程的执行过程。
(2)每个进程的周转时间是多少?
(3)每个进程在每种调度算法下的等待时间是多少?
解:
(1)GANTT图
FCFS:
P1P2P3P4P5
SJF:
P2P4P3P5P1
非抢占优先级:
P2P5P1P3P4
RR:
P1P2P3P4P5P1P3P5P1P5P1P5P1P5P1
(2)周转时间:
FCFS
SJF
非抢占优先级
RR
P1
10
19
16
19
P2
11
1
1
2
P3
13
4
18
7
P4
14
2
19
4
P5
19
9
6
14
(3)等待时间:
FCFS
SJF
非抢占优先级
RR
P1
0
9
6
9
P2
10
0
0
1
P3
11
2
16
5
P4
13
1
18
3
P5
14
4
1
9
2.考虑下面一个系统在某一个时刻的状态。
AllocationMaxAvailable
ABCDABCDABCD
P0001200121520
P110001750
P213542356
P306320652
P400140656
使用银行家算法回答下面的问题:
(1)Need矩阵