操作系统 第三章课后答案 P2 P3 P4 P5 平均等待时间 非抢占式的优先数调度算法: 进程 P1 P4 P3 P5 P2 平均等待时间 25、UNIX进程由哪些部分组成?各起什么作用?
10 11 13 14 1 2 1 5 (0+10+11+13+14)/5=9.6 等待时间 0 10 11 13 18 运行时间 10 1 2 5 1 (0+10+11+13+18)/5=10.4 答:在UNIX系统中进程由三部分组成:进程控制块、正文段和数据段。
UNIX系统为了节省进程控制块所占的主存空间,把每个进程控制块分成两部分。一部分常驻内存,记录了进行进程调度时必须使用的一些主要信息,不管进程是否占有处理器运行,系统经常会对这部分的内容进行查询和处理。UNIX系统把作为基本控制块,把它的数据结构称为proc结构。另一部分非常驻内存,当进程不占有处理器时,系统不会对这部分内容进行查询和处理,因此这部分内容可以存放在磁盘的对换区中,它随着用户程序和数据换进或换出主存。
而正文段的功能则是在多道程序设计系统中,不同的进程可能要调用相同的程序。供多个进程共享的程序称为进程的正文段。正文段是可再入的程序,它由不可被修改的程序和常数组成。
进程执行程序时用到的数据构成数据段,如果进程执行的顺序是非共享的,则也构成数据段的一部分。UNIX把进程的数据段又划分成三部分,用户栈区、用户数据区和系统工作区。
26、UNIX中创建一个进程要做哪些主要工作?
答:UNIX中一个进程使用系统调用fork来创建新进程,形成父子关系经。父进程与子进程可以并发执行。
fork生成一个新进程的工作由函数newproc完成的,它的工作过程如下:
1、在进程表proc[]中为子进程找一个空闲的表项,用来存放子进程的proc结构。 ? 2、为子进程分配一个惟一的标识号,UNIX系统进程标识号的范围是0-255。
? 3、把父进程proc中字段复制到子进程的proc中,但把p-pid置为分配到的标识号,把p-pid
置为父进程标识号,把p_stat置为“创建”状态。
4、按父进程中p_size所示的长度为子进程申请分配空间。
27、答:运行状态、就绪状态、睡眠状态、创建状态、僵死状态。
第 11 页 共 36 页
操作系统 第三章课后答案
28、UNIX采用怎样的进程调度算法?
UNIX对进程的调度采用动态优先数算法,进程的优先数随进程的执行情况而变化。
29、UNIX优先数和优先权之间有什么关系?
?
答:UNIX中每
个进程都有一个优先数,就绪进程能占用处理器的优先权取决于进程
的优先数,优先数越小则优先权越高。
30、UNIX什么情况下要进行进程调度?调度程序swtch的主要任务是什么?
答:当进程执行中由于各种事件让出处理器时,或一个处理器的进程用完了一个时间片后被剥夺了占用处理器的权利(被抢占)时。进程调度程序swtch从内存就绪队列中选取优先数最小的进程占用处理器运行。
? 在UNIX系统中,Swtch程序是用来完成进程调度的。Swtch进行调度的时机是: ? 进程完成了预定任务而终止
? 进程因等待某些时间而进入睡眼状态
? 进程由于与其他进程协同完成某一任务时因同步需要而主动放弃处理器 ? 发现比线性进程更高优先权的进程。 ? 进程用完了一个规定的时间片
? 其他异常处理时强迫对处理器进行调度。 ? Swtch程序的主要任务是: ? 保存现在运行进程的现场信息
? 从在内存就绪的进程中选择一个优先数最小(优先权最高)的进程占用处理器 为被选中的进程恢复现场信息。
31、答:p_pri=p_cpu/2+PUSER+p_nice+NZERO
=p_cpu/2+25+p_nice+20
每隔一个时钟周期(20ms),p_cpu加1,优先数增大,优先权降低,在进程切换时再次占用cpu的机会减少;系统每隔1s对所有进程执行p_cpu/2;他们的优先数减小,使得进程的优先权就提高,在进程切换时再次占用处理器的机会就增大。
第 12 页 共 36 页
操作系统 第四章课后答案
第四章复习题P114
1.解释下列术语 逻辑地址;绝对地址;地址转换
答:逻辑地址:对于用户来说,他无须知道自己的作业究竟是在主存的什么位置,他们可以认为自己的程序和数据就是放在从0地址开始一组连续的地址空间中,这个地址空间是程序用来访问信息所用的一系列连续地址单元的集合,该地址空间就是逻辑地址空间。逻辑地址空间中,地址单元的编号称为逻辑地址。
绝对地址:主存也被按照连续的存储单元进行编号,绝对地址空间就是主存中一系列连续存储信息的物理单元的集合,也称绝对地址空间为存储地址空间或物理地址空间。绝对地址空间中物理单元的编号称为绝对地址。 地址转换:由于一个作业装入到与其逻辑地址空间不一致的绝对地址空间,使得逻辑地址与绝对地址不同,而引起的对有关地址部分的调整,即逻辑地址转换成绝对地址的过程称为重定位,也称为地址转换。
2.存储保护的目的是什么?怎样实现存储保护?
答:存储保护的目的就是为了保护主存中各区域内的信息不被破坏,它包括存储的权限,存储不可跨越区域等等。为实现存储保护,必须由硬件和软件配合实现。比如在页式管理中,要由操作系统提供页表,硬件机构确定页的使用必须是安全的,如不能访问不属于自己的页等。
3.什么叫重定位?重定位的方式有哪两种?比较它们的不同。
答:由于一个作业装入到与其逻辑地址空间不一致的绝对地址空间,使得逻辑地址与绝对地址不同,而引起的对有关地址部分的调整,即逻辑地址转换成绝对地址的过程称为重定位,也称为地址转换。 重定位有静态和动态两种情况。
所谓静态重定位是在装入一个作业的时候,把作业中的指令地址和数据地址全部一次性地转换成绝对地址。
所谓动态重定位是由软件和硬件相配合来实现的。地址重定位不再是装入的时候一次完成了,而是设置一个基址寄存器,装入作业的时候,将作业在主存区域的首地址放入到基址寄存器中。作业执行的时候,由硬件的地址转换机构动态地对地址进行转换,执行指令的时候,只要将逻辑地址加上基址寄存器的内容,就得到了绝对地址。
静态重定位和动态重定位的不同在于:①静态重定位是在作业装入的时候一次完成,动态重定位是在作业执行时再实现的。②静态重定位是软件支持的,动态重定位是硬件和软件合作实现的。③静态重定位不能实现主存的移动,而动态重定位可以。④动态重定位还可能提供虚拟存储空间。
4、比较固定分区、可变分区和页式存储管理的优缺点。
答:固定分区优点:
①能支持多道程序设计。
②无需专门的硬件地址转换机构。 缺点:
①主存利用率不算太高,分配中出现内部零头问题。 ②分区大小固定不灵活,不能为程序动态申请内存。 ③不具备虚拟存储能力。 可变分区优点:
①支持多道程序设计。
②没有内部零头问题,主存利用率比固定分区高。
③采用移动技术后可以满足正在执行的作业的主存扩充的要求。 缺点:
①动态重定位和保护措施需要硬件机构支持,成本高。 ②由于有外部零头,所以主存利用率依然不算很高。 ③移动技术开销很大。
④每次必须将作业完整调入并连续存放,主存利用率不高。 ⑤不具备虚拟存储能力。
第 13 页 共 36 页
操作系统 第四章课后答案
页式存储管理优点: ①支持多道程序设计
②解决了外部零头问题,内部零头大大减少(一个作业平均只有50%页面大小的内部零头)主存利用率比较高。
③用户作业无需在主存中连续存放,提高主存的利用率。
④如果是分页虚拟存储管理,可以提供大容量的多个虚拟存储器,主存利用率更高了。 缺点:
①动态重定位和保护措施需要硬件机构支持,成本高; ②采用页表,占用了一部分主存空间和处理机时间。
③分页虚拟存储管理中,增加了缺页中断的处理,增加了系统开销。
5、在可变分区管理方式下,为什么要引入移动技术?移动一道作业时操作系统要做哪些工作?
答:采用移动技术的主要优点是:
1)可以使分散的空闲区集中起来,可以容纳新的作业,提高主存空间的利用率
2)方便作业执行过程中扩充主存空间,一道作业在执行中要求增加主存量时,只要移动邻近作业就可以增加它所点的分区长度。
移动一道作业时操作系统要进行的处理:
1)判断被移动的作业是否在与外围设备交换信息,如是则不能移动,否则可以移动。 2)操作系统在移动作业信息时先移动作业信息的存储位置。
3)修改主存分配表中和保存在进程控制块中的分区起始地址和长度信息。 4)采取必要措施,尽量减少移动的作业数和信息量,提高系统效率。
6、假定某计算机系统的主存容量为32K,对主存采用动态定位可变分区分配算法。现在已经有3个作业在主存储器中(如图),当作业J2执行时,要求扩充3K作业,为了满足作业J2这一要求,应移动几道作业的信息?写出它们的次序、方向和距离。
答:因为采用可变分区的管理方式,要求作业的逻辑地址空间是连续的,并且主存空间也是连续的。因此,作业J2要求扩充的主存区域应该在原占有区域之后,于是必须通过移动来集中空闲区以供J2扩充之需。移动的方法有两种:
①先把J1向上移动1K再把J2向上移动2K. ②J3向下移动2K.
显然,第二种方法只要进行一次移动,明显比第一种方法好。
7、用可变分区方式管理主存时,假定主存中按地址顺序依次有五个空闲区,空闲区的大小依次为32K、10K、5K,228K,100K.现有五个作业J1,J2,J3,J4,J5.它们各需主存1K,10K,108K,28K和115K.若采用最先适应分配算法能把这五个作业按J1--J5的次序全部装入主存?你认为按怎样的次序装入这五个作业可使主存空间利用率最高?
答:按最先适应算法时32K空闲区可装入J1、J2,剩下21K。228K空闲区中装入J3,J4,剩下92K,结果是J5无法装入。仍按最先适应算法,若调整作业装入次序为J4、J1、J2、J3、J5。即在32K空闲区中依次装入J4(28K),J1(1K)(或先J1再J4),剩下3K,在10K空闲区中装入J3刚好,在228K空闲区中装入J3和J5,
剩下5K。这时的主存空间利用率最高。
8、解释页式存储管理中为什么要设置页表和快表?
答:在页式存储管理中,主存被分成大小相等的若干块,同时程序逻辑地址也分成与块大小一致的若干页,这样就可以按页面为单位把作业的信息放入主存,并且可以不连续存放,为了在作业执行过程中准确地查表逻辑地址与绝对地址的的对应关系,就需要为每个作业建立一张页表,表示逻辑地址中的页号与主存中块号的对应关系。
页表一般存放在主存中,当要按给定的逻辑地址访问主存时,要先访问页表,计算出绝对地址,这样两次访主存延长了指令执行周期,降低了执行速度,而设置一个高速缓冲寄存器将页表中的一部分存放进去,这部分页表就是快表,访问主存时二者同时进行,由于快表存放的是经常使用的页表内容,访问速度很快,这样可以大大加快查找速度和指令执行速度。
第 14 页 共 36 页
操作系统 第四章课后答案
9、页式存储管理中页面大小是根据什么决定的?页表的长度又是根据什么决定的?
答:页面的大小是由地址结构决定的。页表的长度是由作业的信息量决定的,作业有多少页,页表中就有多少个记录项。
10、答:
1) 1MB/4KB=256块 2) 4MB/4KB=1024页 3)
11、叙述页式存储管理中地址转换过程。
答:首先,操作系统为每个作业创建一张页表,它建立了逻辑地址中的页号到绝对地址中的块号的映射。然后,借助于硬件地址转换机构,在作业执行过程中,每执行一条指令时,按逻辑地址中的页号查页表得到对应的块号,再根据公式“绝对地址=块号×块长+页内地址”换算出欲访问的主存单元的绝对地址。
12、什么叫虚拟存储器?怎样确定虚拟存储器的容量?
虚拟存储器是为“扩大”主存容量而采用的一种设计技巧,它利用作业在只装入部分信息时就可以执行的特性和程序执行中表现出来的局部性特性,借助于大容量的辅助存储器实现小主存空间容纳大逻辑地址空间的作业。
虚拟存储器的容量由计算机的地址结构(地址总线位数)决定。如计算机的地址总线位数为32位,则最大的虚存容量为2^32=4294967296B=4GB
13、叙述页式虚拟存储器的基本原理。
答:页式虚拟存储器是在页式存储的基础上实现虚拟存储器的,其工作原理是:
首先把作业信息作为副本存放在磁盘上,作业执行时,把作业信息的部分页面装入主存,并在页表中对相应的页面是否装入主存作出标志。
作业执行时若所访问的页面已经在主存中,则按页式存储管理方式进行地址转换,得到绝对地址,否则产生“缺页中断”由操作系统把当前所需的页面装入主存。
若在装入页面时主存中无空闲块,则由操作系统根据某种“页面调度”算法选择适当的页面调出主存换入所需的页面。
14、采用可变分区方式管理主存时,能实现虚拟存储器吗?为什么?
答:不可以,因为可变分区每次必须将作业完整调入并连续存放,这不适合虚拟存储的要求。同时,可变分区的硬件地址转换机构把绝对地址超出限定范围时作地址错处理,而不是产生“缺分区中断”。
15、什么叫“抖动”?怎样衡量页面调度算法的好坏?
答:如果选用了一个不合适的调度算法,就会出现这样的现象:刚被淘汰了的页面又立即要用,又要把它调入进来,而调入不久又被调出,调出不久再次被调入,如此反复,使得调度非常频繁,以至于大部分时间都花费在来回调度上。这种现象叫“抖动”。一个好的调度算法应减少和避免抖动现象。
16、某采用页式虚拟存储管理的系统,一个共7页的作业,作业执行时依次访问的页为1,2,3,4,2,1,5,6,2,1,2,3,7,6,3,2,1,2,3,6。若采用最近最少使用(LRU算法),作业得到四块主存空间时会产生多少次中断?如果采用先进先出(FIFO)算法又会怎样的结果?
答: LRU算法时四块主存空间时: 1 2 3 4 2 1 5 6 2 1 2 3 7 6 3 2 1 2 3 6 当前页 1 2 3 4 2 1 5 6 2 1 2 3 7 6 3 2 1 2 3 1 2 3 4 2 1 5 6 6 1 2 3 7 6 3 3 1 2 1 1 3 4 2 1 5 5 6 1 2 2 7 6 6 6 1 调出页 缺页中断 采用FIFO算法四块主存空间时: 第 15 页 共 36 页
3 4 5 6 1 7 共6次