北工大操作系统作业合集_第1页
北工大操作系统作业合集_第2页
北工大操作系统作业合集_第3页
北工大操作系统作业合集_第4页
北工大操作系统作业合集_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选资料,欢迎下载第八次作业基础作业1. 假设一个磁盘驱动器有 5000个柱面,从0到4999。驱动器正在为143的一个请求服务, 且前面的一个请求在 125。按照FIFO的顺序,即将到来的请求是 86, 1470,913,1774,948,1509,1022,1750,130。请按照 FCFS SSTF SCAN LOOK C-SCAN C-LOOK 要满 足队列中的服务要求磁头总的移动距离是多少。143 86 1470 913 1774 948 1509 1022 1750 130a. FCFS : 143, 86, 1470, 913, 1774, 948, 1509, 1022, 17

2、50, 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,

3、4999, 0, 86, 130.总寻道距离9813f. C-LOOK : 143, 913, 948, 1022, 1470, 1509, 1750, 1774, 86, 130.总寻道距离3363.2. 为什么文件分配的位图必须保存在大容量存储器中,而不是主存中?答:因为如果保存在内存中,当系统崩溃时,这些空闲区间的信息将会被丢失,而如果保存在大容量存储器中就可以解决这个问题。3 假设要为一个文件换一个名字。一种选择是使用操作系统提供的RENAME方法,另一种方法是:把文件复制为新文件,然后删除原来的文件以实现重命名。请问,这两种方法在 实现上有什么不同?答:RENAME方法是修改目录文件

4、的文件名部分,而删除原来文件再重命名则需要再创立一 个新文件,目录文件中增加一项,分配新空间;删除目录文件中的文件项目,然后回收占用 的空间。4请解释使用索引节点有什么好处答:减小目录文件的大小,提高查找文件的效率5. 在UNIX中open系统调用绝对需要么?如果没有会产生什么结果。答:如果没有open命令,那么每个read命令都需要确定要打开的文件名。系统必须找到文件的i节点,虽然这个数据放入 cache可以减少一些时间,但是当数据变化的时候,i节点的数据需要刷新到磁盘上。6. UNIX系统中有关盘块的分配与释放是借助超级块中的栈来进行的。假如某个时刻系统状 况如下图所示,若此时某个进程要删

5、除文件 A,并归还它所占用的盘块 220,110, 645,549, 176。请说明过程,并给出删除完毕后有关数据及表目的更改情况。s*nfree97100199786278802301106457. 考虑一个索引节点所表示的UNIX文件的组织。假设有12个直接块指针,在每个索引节点中有一个单重、双重和三重间接指针。此外,假设系统块大小和磁盘扇区大小都是8K,如果磁盘块指针是 32位,其中8位表示物理磁盘,24位表示物理块,那么a. 该系统支持的最大文件大小是多少?b. 该系统支持的最大文件分区是多少?c. 假设主存中除了文件索引节点外没有其他信息,访问在位置12423956中的字节需要多少磁

6、盘访问?答: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=128GBc. 使用从(a)得到的信息,发现直接块只能表示96KB,而一次间接块表示16MB.题目中要求 的请求位置在13M左右,使用一次间接块.就可以了。所以要用两次磁盘访问,一次访问一 次间接块,另一次访问包含数据的

7、盘块第七次作业1什么是设备无关性?应用程序只按套路调用操作系统提供的功能即可,不关心实际的设备是什么,这就是与设备无关性2.以下各项工作a. 为一个磁盘读b. 向设备寄存器c. 检查用户是否d. 将二进制整数3为什么在要扌 答:达到缓冲的乍由I/O软件的哪一层完成??操作计算磁道、扇区、磁头;设备驱动程序;写命令;中断处理程序允许使用设备;设备独立性软件转换成 ASCII码以便打印硬件:丁印的文件通常都假脱机输出到磁盘上?目的,实现提高I/O设备性能的目的。为了打印一个文件,一个进程首先要生成需要打印的整个文件并把它放在假脱机目录里。由守护进程打印该目录下的文件,该进程是允许使用打印机设备文件

8、的唯一进程。通过保护设备文件来防止用户直接使用,可以解决某些进程不必要地长期空占打印机的问题。第六次作业1假设页表在内存保存的分页系统,a. 如果一次访问内存用 200ns,那么访问一个页内的一次数据访问用多少时间?b. 如果加入TLB,有75%勺命中率,那么内存有效访问时间是多少?a)访问一个页内数据需要访问两次内存,第一次访问内存中的页表,第二次根据页表中的信息形成的物理地址访问内存访问数据,所以要用200*2=400nsb)加入TLB,获得物理地址的过程为:先在TLB中查找,如果TLB中命中,则直接获得物理地址,如果 TLB中不存在,则去访问页表,所以需要的访问时间为0.25*200=5

9、0ns总共需要的时间为 50 ns+200ns=250ns2.在一个虚拟存储管理系统中采用页式方法对内存空间进行管理,它有24位的虚拟地址空间,而实际的物理地址空间是16位,页框大小为2k。假设有两个进程 A和B。其中A进程的0、2页已经调入到内存的2、3号页框;B进程的1、3页已经调入到内存的7、8号页框。请问:A进程的虚拟地址12FF可以转换成什么物理地址?B进程的虚拟地址17BA可以转换成什么物理地址?如果不能转换,操作系统会执行什么操作?页框大小为2k=2A11,有11位的位移。A进程:12FF=0001 0010 1111 1111 ,00010=2,A进程中2页调进3号框,因此物理

10、地址为: 0001 1010 1111 1111B进程:17BA=0001 0111 1011 1010,在进程2中没有2号页,需要的页面不在内存时,请 求调入所需的页面 判断对错如果缺页率太高,通常说明一个进程分得的页框太多了。第五次作业基础作业1内部碎片与外部碎片之间的区别?内部碎片:内存分页时,最后一页未装满的部分就是内部碎片。或因调入的数据小于分区而产生分区空间的浪费,称为内部碎片。外部碎片:共享时要分段,在段的换入换出时未使用的部分就是外部碎片。一开始运行得很好,但是在执行一段时间后,会出现一些小的洞。这种在分区外的洞称为外部碎片。内存按顺序有100k, 500k, 200k, 30

11、0k, 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位

12、4. ( 8.12 )有段表段基地址长度02196001230014290100313275804195296下面的物理地址是多少?a) 0,430;b)1,10;c)2,500;d)3,400; e)4,122a、 649 b 、 2310 c 、 590 d 、 1727 e 、 20745. 在页面大小为4k的系统中,根据图中所示页表,下面的逻辑地址经过重定位之后的物理地址是什么?a)20; b)4100; c)8300A 49172 b 、 53252 c 、 615486. 台计算机为每个进程提供65536字节的地址空间,页面的大小为4k。一个程序有32768字节的正文,16386字

13、节的数据,15870字节的堆栈,此程序是否能装入此地址空间?若页 面大小为512字节呢?4k不能,512字节可以;解析过程:65536/4096=16,共计16个页面;正文需要页面:32768/4096=8数据需要页面:16386/4096=5对战需要:15870/4096=4共需17个页面,所以不能装入512字节同理可得正好能够装入补充作业判断对错编译时绑定是大多数通用操作系统使用的地址绑定方法。X最佳适配法可以在内存分配过程中留下最小的洞。V为解决内存分配时导致的外部碎片可以采用压缩的方法来解决,因此需要在地址绑定的时候采用静态重定位方法。 X如果现在基地址寄存器的值是1200,界限寄存器

14、的值是 350,那么当前进程产生对绝对地址1551的访问是合法的。X可重入代码不可以被共享。X基础作业1.考虑下面一组进程,进程占用的CPU区间长度以毫秒计算。 假设在0时刻进程以P1, P2,P3, P4, P5的顺序到达。进程区间时间优先级P1103P211P323P414P552(1)画出4 个 Gantt 图,分别演示使用 FCFS, SJF,非抢占优先级(数字越小表示优先级越高)和RR (时间片=1)算法调度时进程的执行过程。(2 )每个进程的周转时间是多少?(3)每个进程在每种调度算法下的等待时间是多少?解:(1) GANTT图FCFS P1 P2 P3 P4 P5SJF: P2

15、P4 P3 P5 P1非抢占优先级:P2 P5 P1 P3 P4RR P1 P2 P3 P4 P5 P1 P3 P5 P1 P5 P1 P5 P1 P5 P1(2)周转时间:FCFSSJF非抢占优先级RRP110191619P211112P3134187P4142194P5199614Allocati onMaxA B C DA B C DP00 0 1 20 0 1 2P11 0 0 01 7 5 0P21 3 5 42 3 5 6P30 6 3 20 6 5 2P40 0 1 40 6 5 6使用银行家算法回答下面的冋题:(1)Need矩阵的内容(2)系统是否处于安全状态(3)如果从进程P

16、1发来一个请求(解:(1) Need 矩阵AvailableA B C D1 5 2 00, 4, 2, 0),这个请求是否可以立即满足?(3)等待时间:FCFSSJF非抢占优先级RRP10969P210001P3112165P4131183P5144192.考虑下面一个系统在某一个时刻的状态。ABCDP00000P10750P21002P30020P40642(2)处于安全状态,先是 P0完成,之后P3,之后P2,之后P1,之后P4。(3)可以立即满足,满足后仍处于安全状态。补充作业判断对错在RR调度中,上下文切换的时间应该小于时间片的长度。XSJF调度算法是最适合分时系统的调度算法。XFC

17、FS调度算法只能是非抢占式的。V如果资源分配图中有环,那么就一定有死锁。X死锁的时候系统一定处于非安全状态。V第三次作业一、基础作业1. 什么是忙等待? 持续地检测一个变量直到它具有某一个特定值称为忙等待。2吸烟者问题: 有 3 个吸烟者和一个供应者。 第一个吸烟者有自己的烟草; 第二个吸 烟者有自己的纸;第三个吸烟者有自己的火柴。供应者每次随机放两样东西到桌子上 提供给 3 个吸烟者之中的一个以完成吸烟。请用信号量为吸烟者和供应者进程编写程 序。Semaphore n2=0;Semaphore s=1;0 代表烟草, 1 代表纸, 2 代表火柴 ./ 供应者程序Void procucer()

18、While(1)随机生成一个在02之间的数i ;Wait(s);将除了 i表示的另外两件东西放在桌子上;Signal(ni);/ 吸烟者程序Void smoker(int i)While(1)Wait(ni);Somke();Signal(s);二、 补充作业1.假设有三个进程 R、W1 W2共享缓冲区B。B中只能存放一个数。R每次从输入设备中读一个整数放入 B中。如果这个整数是奇数,由W1取出打印。如果这个整数是偶数,则由W2取出打印。规定仅当B中没有数据或数据已经被打印才会启动R去读数。W1 W2对B中的数据不能重复打印,当B中没有数据时也不能打印。要求用信号量操作写出R W1 W2三个进

19、程的程序。(请详细描述所使用变量的含义)Semaphore s=1;进程R可以存入缓冲区 B的数据个数信号量Semaphore n2=0;/n0/n1表示进程 W1/W2可以从缓冲区 B中取出的数据个数;/ 进程 RVoid R()While(1)读入一个正数 m;Wait(s);将 m 放入 B 中;if(m/2!=0)Signa(n0);ElseSignal(n1);Void w1()While(1);Wait(n0);从缓冲区 B 取数据 k;Signal(s);打印 K;Void w1()While(1);Wait(n1);从缓冲区 B 取数据 k;Signal(s);打印 K;2 有

20、一个铁笼子, 猎手放入老虎,农民放入猪,动物园等待取走老虎,饭店等待取走 猪。笼子中只能放入一个动物。请使用信号量方法为猎手、农民、动物园、饭店进程编写程 序。Semaphore cage=1;/ 可以放入笼子中的动物数量Semaphore tiger=0;/Semaphore pig=0;/动物园从笼子中取出老虎的数量 饭店从笼子中取出猪的数量猎手进程Void hunter() While(1)Wait(cage);将老虎放入笼子 ;Signal(tiger);Void farmer()While(1)Wait(cage);将猪放入笼子 ;Signal(pig);Void zoo()Whil

21、e(1)wait(tiger);从笼子中取出老虎 ;signal(cage);Void restaurant()While(1)waitl(pig);从笼子中取出猪;signal(cage);3某寺庙,有小、老和尚若干。 有一个水缸,由小和尚提水入缸供老和尚饮用。水缸 可容 10 桶水。水取自一个井中,水井窄,每次只能容一个水桶。水桶总数为3。水缸每次进出也仅 1 桶水,不可以同时进行。 请设置合适的信号量描述小和尚、 老和尚取水、入水的 算法。Semaphore bucket=3;/ 水桶的数量Semaphore tank=1;/ 水缸每次能容水桶的数量 ;Semaphore s=10;/

22、水缸容水桶水量 ;Semaphore well=1;/ 井每次能容水桶的数量;Semaphore empty=0;/ 水缸中现有的水量;Void youngmonk()While(1)Wait(bucket); 获得水桶 ;Wait(well); 井中取水; signal(well); Wait(s); Wait(tank); 倒水入水缸 ;Signal(tank);Signal(bucket);Signal(empty);Void oldmonk()While(1)Wait(empty);Wait(bucket); 获得水桶;Wait(tank); 从水缸中取水; Signal(tank);

23、 Signal(s); Signal(bucket);4. 判断对错(1) 一个系统中进程之间可能是独立的也可能是合作的。(2) 如果用锁来保护临界区可以防止竞争条件。V(3) 一个计数信号量的值只能 取 0 或者 1. X(4) 在管程中本地变量只能由本地过程来访问。 V5. 选择题(1) 关于竞争条件那句话是对的? BA. 几个线程要并发访问同样的数据B. 几个线程要并发访问并修改同样的数据C. 只有在执行结果与执行顺序无关的时候发生(2) 关于原子指令那句话是对的? BA. 原子指令只能由一条机器指令组成B. 作为一个单独的,不可以中断的单元执行C. 不能用于解决临界区问题(3) 一个临

24、界区的解决方案不需要实现下面的哪一条? CA. 互斥 B. 有空让进C. 原子性 D. 有限等待(4) 当低优先级的进程正在访问一个数据的时候,若一个高优先级的进程需要访问同样 的数据,可能发生 AA. 优先级反转 B. 死锁C. 竞争条件 D. 临界区附加题:1 独木桥问题:某条河上只有一座独木桥,两边都有人要过河,为保证安全,一个方向 有人过河另一个方向的人就要等待, 并且允许一个方向上的人连续过河。 请使用信号量实现 正确的管理。Semaphore s=1;/ 两岸过河能使用的桥的数量;Semaphore left=1,right=1;Int leftcount=0,rightcount

25、=0;/ 左岸过河进程Void Left()While(1)Wait(left);Leftcount+;If(leftcount=1)Wait(s);Signal(left);左岸过河;Wait(left);Leftcount-;If(leftcount=0)Signal(s);Signal(left);/ 右岸进程Void right()While(1)Wait(right);Rightcount+;If(rightcount=1)Wait(s);Signal(right); 右岸过河 ;Wait(right);Rightcount-;If(rightcount=0)Signal(s);Si

26、gnal(right);第二次作业一、基础作业1. 论述短期、中期、长期调度之间的区别短期调度一从就绪队列中选择进程执行并把CPU分配给它。中期调度主要在分时系统中使用。 将内存中的作业换出到外存中等到内存允许的情况下 再换入到内存中执行。长期调度确定把哪个作业放到内存中执行。 它们之间的主要区别是执行的频率不同。短期调度执行频率高而长期调度执行频率低。2. 两个进程进行上下文切换的操作通常, 操作系统必须保存当前运行进程的状态并恢复下一个要调度的进程的状态。保存一个进程的状态通常包括 CPU所有寄存器的值和内存的分配情况。3. 用户级线程和内核级线程之间的区别?相互对比的优势在哪里?(1)内

27、核不知道用户级线程的存在,但内核知道内核级线程的存在(2)内核调度内核级线程, 而用户级线程则由线程库调度在要体现系统灵活性的时候使用用户级线程好, 因为用户级线程可以自己设计自己的调度。内核级线程则被内核知道, 所以可以保证一个线程阻塞时可以调度一个进程的另一个线程,减少系统开销。三、 补充作业1假设有一个进程,它的工作流程是先运行150ms,然后进行I/O,最后执行250ms结束。如果系统中的进程有三个状态,当时间片为200ms时,请写出进程A从被系统接纳到运行结束所经历的状态转换并说明原因。答:被系统接纳之后:就绪 - 运行(原因:被调度执行)、运行 - 阻塞(原因:执行 I/O 操作)、阻塞 -就绪(原因: I/O 操作完成)、就绪 -运行(原因:被调度执行)、运行 - 就 绪(原因:时间片到)、就绪 -运行(原因:被调度执行)、结束。2. 图中程序的运行结果。Value=103. 图中程序运行完共有多少进程?4. 判断对错(1)程序是活动的实体,进程是被动的实体。X(2 )对于一个单处理器系统,最多只能有一个进程处于运

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论