第一章:引论
1.系统调用与中断的概念。
作业题解 第一章 引论
PE1-14. 陷阱和中断的主要差别是什么?
答:陷阱是由程序造成的,并且与它同步。如果程序一而再地被运行,陷阱将总在指令流中相同的位置的精确发生。而中断则是由外部事件和其他时钟造成的,不具有重复性。
PE1-20. 有一个文件,其文件描述符是fd,内含下列字节序列:3,1,4,1,5,9,2,6,5,3,5.有如下系统调用:
lseek (fd, 3, SEEK_SET); // 从文件开头偏移量为3,此时将读写位置移到文件1,5,9,2的1处 Read(fd, &buffer, 4);
其中lseek调用寻找文件中的字节3.在读操作完成之后,buffer中的内容是什么? 答:包含字节: 1,5,9,2。
PE1-22. 块特殊文件和字符特殊文件的基本差别是什么?
答:块特殊文件包含被编号的块,每一块都可以独立地读取或者写入。而且可以定位于任何块,并且开始读出或写入。这些对于字符特殊文件是不可能的。
PE1-29. 下面是单位转换练习: (a)一微年是多少秒?
(b)微米常称micron.那么gigamicron是多长? (c)1TB存储器中有多少字节?
(d)地球的质量是6000 yottagram,换算成kilogram是多少? 答:这些都可以直接转换:
(a) micro year = 10-6 X 365 X 24 X 3600 = 31.536 sec。 (b) 1km或者1000。
(c)有 240字节,也就是 1,099,511,627,776 字节。 (d)它是 6 X 1024公斤。
第二章:进程与线程 1.进程的概念。
答:进程是对正在运行的程序的一个抽象。是容纳运行一个程序所需要的所有信息的容器。也可以说一个进程就是就是一个正在运行的实例。
2.进程的三种基本状态。
运行态(该时刻进程实际占用CPU)。
就绪态(可运行,但因为其他进程正在运行而暂时停止)。 阻塞态(除非某种外部事件发生,否则进程不能运行)。
3. 进程与线程的区别。
答:进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行
资源分配和调度的一个独立单位.
线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源.
一个线程可以创建和撤销另一个线程;同一个进程中的多个线程之间可以并发执行.
PE2-37. 有5个批处理作用A到E,它们几乎同时到达一个计算中心。估计他们运行的时间分别为10,6,2,4和8分钟。其优先级(由外部设定)分别为3,5,2,1和4.其中5为最高优先级。对于下列每种调度算法,计算其平均进程周转时间,可忽略进程切换的开销。
(a)轮转法
(b)优先级调度
(b)先来先服务。(按照10,6,2,4,8次序运行) (c)最短作业优先。
对a),假设系统具有多道程序处理能力,每个作业均公平共享CPU时间,对b)到d),假设任一时刻只有一个作业运行。直到结束。所有的作业都完全是CPU密集型作业。 答:a)对于轮转调度,每个作业在最初的10分钟内获得了1/5的CPU,10分钟之后,C先完成作业,在接下来的8分钟,每个作业获得1/4的CPU,在此期间,D完成作业。剩下来的3个作业在以后的6分钟里各获得CPU的1/3,一直到B结束等等。这5个作业完成的时间分别是,10, 18, 24, 28和 30,平均22分钟。
b)对于优先级调度,B首先运行,6分钟之后完成。剩下的4个作业完成的时间分别是14,24,26和30.平均为18.8分钟。
c)对于先来先服务。运行作业顺序从A到E,完成时间分别为10,16,18,22和30。平均为19.2分钟。
d)最短优先作业,完成的时间分别为2,6,12,20和30,平均为14分钟。
PE2-41. 一个软实时系统有4个周期,其周期分别为50ms,100ms,200ms和250ms。假设这4个事件分别需要35ms, 20ms, 10ms和X ms的CPU时间,保持系统可调度的最大X值是多少?
答:所使用的 CPU 的片断为 35/50 + 20/100 + 10/200 + x/250。为了使得进程可调度,必须是 总和小于 1。因此,x 必须小于 12.5 msec。 PE2-51.
第三章 存储管理
1.页面、页表、页框(物理块)、页表项等概念。
见百度百科(http://baike.http://www.njliaohua.com//view/3224034.htm)
2.交换的定义
练习题解析:
PE3-4. 在一个交换系统中,按内存地址排列的空闲区大小是:10KB, 4KB ,20KB,18KB, 7KB, 9KB,12KB和15KB。对于连续的段请求:a) 12KB; b)10KB; c)9KB。使用首次适配算法,找出哪个空闲区?使用最佳适配、最差适配、下次适配算法呢?
答:首次适配:20KB,10KB,18KB;// 沿着段链表进行搜索,直到找到一个足够大的空闲区 最佳适配:12KB,10KB,9KB; // 找出能够容纳进程最接近实际需要的空闲区, 最差适配:20KB,18KB,15KB;// 总是分配最大的可用区的空间
下次适配:20KB,18KB,9KB。 // 同首次适配,但记录空闲区当时位置,下次从此处进行搜索
PE3-10. 假设一个机器有48位虚拟地址和32位的物理地址。
a)假设页面大小是4KB,如果只有一级页表,那么在页表里有多少页表项?请解释。
b)假设同一系统有32个TLB表项,并且假设一个程序的指令正好能放入一个页,并且该程序顺序地从有数千个页的数组中读取长整型元素。在这种情况下TLB的效果如何?
答: (a) We need one entry for each page, or 224 = 16 × 1024 × 1024 entries, since there
are 36 = 48 ? 12 bits in the page number ?eld.
(b) Instruction addresses will hit 100% in the TLB. The data pages will have a 100 hit rate until the program has moved onto the next data page. Since a 4-KB page contains 1,024 long integers, there will be one TLB miss and one extra memory access for every 1,024 data references.
(a)因为有36 =48 - 12位的页号字段,所以每一页我们需要一个页表项,或者224 = 16 × 1024 × 1024页表项
(b) TLB访问的命中率达100%。在指令访问下一个页面之前读取数据的命中率是100%,一个4KB大小的页面包含1024个长整型数据,每访问1024个数据就会有一次TLB失效和一个额外的内存的存取。
解析:偏移量是12位,则页面长度是212 = 4KB,共有220个页面,
PE3-12. 一个32位地址的计算机使用两级页表。虚拟地址被分成9位的顶级页表域、11位的二级页表域和一个偏移量,页面大小是多少?在地址空间中一共有多少个页面? 答:偏移量=32 - 9 - 11 = 12(位),所以页面大小为:212 = 4KB,页面数为:232/212=220 。
PE3-22.如果将FIFO页面置换算法用到4个页框和8个页面上,若初始时页框为空, 访问字符串为0172327103,请问会发生多少次缺页中断?如果使用LRU算法呢? 答:FIFO的页框如下: 0 1 7 2 3 2 7 1 0 3 X 0 1 7 2 3 3 3 3 0 0 X x 0 1 7 2 2 2 2 3 3 X x x 0 1 7 7 7 7 2 2 X x x x 0 1 1 1 1 7 7 LRU的页框如下: 0 1 7 2 3 2 7 1 0 3 X 0 1 7 2 3 2 7 1 0 3 X x 0 1 7 2 3 2 7 1 0 X x x 0 1 7 7 3 2 7 1 X x x x 0 1 1 1 3 2 7
FIFO发生6次缺页中断,LRU发生7次缺页中断。
PE3-28一个计算机有4个页框,装入时间、上次访问时间和每个页面的R位和M位如下所示(时间以时间滴答为单位): 页面 装入时间 上次访问时间 R M 0 126 280 1 0 1 230 265 0 1 2 140 270 0 0 3 110 285 1 1 a)NRU算法置换哪个页面? b)FIFO算法置换哪个页面? c)LRU算法置换哪个页面?
d)第二次机会算法置换哪个页面? 答:a)页面2
b)页面3 c)页面1 d)页面2
解析:按照装入时间排序先被装入的是页面是3、0、2最后是1, 对于FIFO算法,则将置换表页面3,置换掉。
对于第二机会算法,在3、0、2、1中检查最老页面的R位,如果R位为0.则置换,所以置换出较老的页面2.
对于NRU算法,按照(R,M)的次序(0,0),(0,1),(1,0),(1,1)给上述4个页面排序得
(0,0),(0,1),(1,0),(1,1)分别代表了页面2、1、0、3,所以类编号最小的是页面2,置换它。
对于LRU算法,核心思想是:置换出未使用最长的页面,所以根据上次访问时间最远到近排序得: 1、2、0、3.所以置换出页面1.
第四章,文件系统 练习题解析:
PE4-15. 考虑图4-13中的i节点。如果它含有用4个字节(即4B)表示10个直接地址,而且所有的磁盘块大小是1024B(1KB),那么文件最大可能有多大? 答:间接块可以保存256个磁盘地址。与10直接的磁盘地址总加起来,最大文件有266块。
由于每块为1KB,最大的文件是266KB。
PE4-28.考虑图4-21背后的思想,目前磁盘平均寻道时间为8ms,旋转速率为15000rpm,
188
每道为262144字节(2B=2KB=256KB)。对大小各为1KB、2KB和4KB的磁盘块,传送速率各是多少?
答:对于15000 rpm(每分钟旋转),每旋转一周需60/15000 = 0.004秒 = 4 ms。那么读取k字节的平均存取时间为8 ms(寻道时间) + 2 ms(旋转延迟:4 ms/2) + (k / 262144)* 4 ms(读取k字节的时间)。对于1 KB,2 KB,4 KB的块,访问时间分别为10.015625 ms,10.03125 ms和10.0625 ms(几乎没有什么不同)。其数据速率分别为102240 B/sec,204162 B/sec,407056 B/sec(秒)。
解析:读取K个字节的块所需的时间的公式由以上化简是:t = 10 + (K/256)*4,将k = 1KB、2KB、4KB分别代入可得 t1 =10.015625 ms,t2 =10.03125 ms,t4 = 10.0625 ms;
那么其数据速率U1 = 1024B /(t1*10-3) = 102240B/sec,同样依次求出U2,U4;
PE4-32. 一个UNIX系统使用1KB磁盘块和4字节磁盘地址。如果每个i节点中有10个直接表项以及一个一次间接块、一个二次间接块和一个三次间接块,那么文件的最大尺寸是多少?
答:一个i节点可存储10个磁盘地址。一个一次间接块存储256个磁盘地址。一个二次间
接块存储2562磁盘地址。一个三次间接块存储2563磁盘地址。把这些全部加起来,我们得到的最大文件大小16843018块,约16.06 GB.
解析:由于1KB = 210B= 1024B,所以1KB磁盘块可以容纳的磁盘地址个数是210B/4 = 28(个) = 256个。
所以文件大小是((10+256+2562+2563)* 4 )B
第五章 输入/输出 练习题解析:
PE5-11. 以下各项工作是在四个I/O软件层的哪一层完成的? (a)为一个磁盘读操作计算磁道、扇区、磁头。 (b)向设备寄存器写命令。
(c)检查用户是否允许使用设备。
(d)将二进制整数转换成ASCII码以便打印。 答:a)设备驱动程序
b)设备驱动程序; c)设备无关的软件; d)用户级软件。