四十一、在UNIX系统中运行下面程序,最多可产生多少个进程?画出进程家族树。
P249main(){fork();fork();fork();}[分析及相关知识]系统调用fork的功能是创建一个新进程,新进程运行与其创建者一样的程序,新创建的进程称为子进程,调用fork的进程称为父进程,父子进程都从fork调用后的那条语句开始执行。
当程序执行时,若所有进程都能成功地执行系统调用fork,则会产生最多数目的进程。
为了描述方便起见,将开始执行时的进程称为A进程,此时程序计数器PC,指向第一个fork调用。
main(){fork(); /* ←PC,进程A*/fork():fork();}当进程A成功地执行完第一个fork调用时,它创建了一个子进程,将此子进程称为进程B。
此时,进程A、B的程序计数器PC指向第二个fork调用,进程A派生了1个子孙进程.main(){fork():fork(); /* ←PC,进程A*/fork();}main(){fork();fork(); /* ←PC,进程B*/fork();}当进程A、B成功地执行完第二个fork调用时,它们分别创建了一个子进程,将这些子进程分别称为进程C、D.此时,进程A、B、C、D的程序计数器PC指向第三个fork调用,进程A派生了3个子孙进程。
main(){fork();fork();fork(); /* ←PC,进程A*/}main(){fork();fork();fork(); /* ←PC,进程B*/}main(){fork();fork();fork(); /* ←PC,进程C*/)main(){fork();fork();fork(); /* ←PC,进程D*/)当进程A、B、C、D成功地执行完第三个fork调用时,它们分别创建了一个子进程,将这些子进程分别称为进程E、F、C、H.此时,进程A、B、C、D、E、F、G、H的程序计数器PC指向程序结束处,进程A派生了7个子孙进程。
main(){fork();fork();fork();} /* ←PC,进程A*/main(){fork();fork();fork();) /* ←PC,进程B*/main(){fork();fork():fork();} /* ←PC,进程C*/main(){fork();fork();fork();} /* ←PC,进程D*/main(){fork();fork();fork():} /* ←PC,进程E*/main(){fork();fork();fork();} /* ←PC,进程F*/main(){fork();fork();fork();) /* ←PC,进程G*/main(){fork();fork();fork();} /* ←PC,进程H*/进程家族树是一棵有向树,有向树的节点代表进程,由进程P指向进程Q的边表示由进程P创建了进程Q.我们称进程P是进程Q的父进程,进程Q是进程P的子进程,这样便形成了进程树。
解:从上面的分析过程可以看出,执行第一个fork调用时,进程A 创建了进程B;执行第二个fork调用时,进程A创建了进程C,进程B创建了进程D:执行第三个fork调用时,进程A创建了进程E,进程B创建了进程F,进程C创建了进程G,进程D创建了进程H。
因此,在UNIX系统中运行题目中的程序,最多可产生7个进程,其进程家族树如图8.26所示。
1、进程调度又称为低级调度,其主要功能是()A 选择一个作业调入内存B 选择一个主存中的进程调出到外存C 选择一个外存中的进程调入到主存D 将一个就绪的进程投入运行2、下列进程调度算法中,进程可能会长期得不到调度的情况是()A 先来先服务调度算法B 抢占式静态优先权法C 时间片轮转调度算法D 非抢占式动态优先权法❖下列属于预防死锁的方法是()A 剥夺资源法B 资源分配图简化法C 资源互斥使用D 银行家算法❖下列属于检测死锁的方法是()A 银行家算法B 撤销进程法C 资源静态分配法D 资源分配图简化法❖为了照顾紧迫性作业,应采用()A 先来先服务调度算法B 短作业优先调度算法C 时间片轮转调度算法D 优先权调度算法设某多道系统,有磁带机2台,打印机1台,采用资源的静态分配法(假设作业获得资源后才允许进入内存)以及短作业优先调度算法和先来先服务进程调度算法。
忽略I/O时间,现有作业序列如下,求5个作业完成的时间设某多道系统,有供用户使用的内存空间为200K,磁带机2台,打印机1台,系统采用可变分区管理方式,对磁带机、打印机采用静态分配,并忽略I/O时间,现有一作业序列如下:设作业调度采用短作业优先,且优先分配主存低地址区域,且不能移动内存中的作业,内存中的作业采用平分CPU时间,则作业调度的次序是:J1->j3->j4->j5->j2设某任务被分为大小相等的4段,系统为每段建立了一个由8个页表项的页表,设页面大小为2KB,问(1)每段最大尺寸为多少?(2)逻辑地址空间多大?(3)逻辑地址格式是什么?(4)设该任务访问到物理单元为00021ABCH中的一个数据,则该系统的物理地址空间最大为多少?解:(1)2*8=16KB(2)16*4=64KB(3)❖判断:请求分页管理系统,若把页面大小增加一倍,则缺页中断次数会减少一半❖判断:虚地址即程序执行时所要访问的内存地址❖在请求分页存储管理系统中,地址变换过程可能会因为()原因而发生中断❖虚存的理论基础是()❖虚存中LRU算法,分配3页,每页存200个整数,其中第一页存放程序,程序已在内存,数组A按先行后列存储,求程序A 和B的缺页次数分别为多少?程序A:程序B:For i:=1 to 100 do For j:=1 to 100 doFor j:=1 to 100 do For i:=1 to 100 doA[i,j]:=0 A[i,j]:=01.设备管理的()功能来实现用户程序与实际的物理设备无关。
A 设备分配B 设备独立性C 缓冲管理D 虚拟设备2.Spooling技术可以实现设备的()A 独占分配B 共享分配C 虚拟分配D 物理分配3.以下()是磁盘寻道调度算法A 时间片轮转法B 优先级调度算法C 最近最久未使用算法D 先来先服务算法4.缓冲技术中的缓冲池是在()A ROMB cacheC 内存D 外存5.为了使系统中多个进程同时处理输入输出,最好使用()技术。
A 缓冲池B 循环缓冲C 双缓冲D 单缓冲6.OS中以下( ) 是硬件机制?A spoolingB 通道C 文件D 虚拟设备7.以下关于缓冲的描述正确的是()A 以空间换时间B 以时间换空间C 提高外设的处理速度D 提高CPU的处理速度8.在Spooling系统中,用户输出数据首先送入()A 内存固定区域B 打印机C 磁盘固定区域D 输出设备9.中断处理中,I/O中断是指()A设备出错B数据传输结束C数据传输开始D数据传输结束或设备出错10.磁盘请求以10,22,20,2,40,6,38柱面的次序到达磁盘驱动器,寻道时每个柱面的移动需要6ms,计算以下算法的寻道时间是多少?(假设磁头由20号柱面向柱面号大的方向移动)FCFS,SSTF,SCAN,CSCANFCFS:(10+12+20+38+34+32)*6=(30+50+66)*6=146*6=876ms11.磁盘扇区大小为512B,每个磁道有80个扇区,磁盘转速360rpm。
处理机使用中断方式从磁盘读取数据,每个字节产生一次中断,如果处理中断需要2.5ms,试问:(1)处理机花费在处理I/O上的时间占整个磁盘访问时间的百分比是多少?(忽略寻道时间)(2)若采用DMA方式,每读完一个扇区产生一次中断,处理机花费在处理I/O上的时间占整个磁盘访问时间的百分比又是多少?19 桌上有一个空的水果盘,盘中一次只能放一个水果,服务员,男顾客和女顾客共用这个盘子,服务员可以向盘中放草莓,也可以向盘中放香蕉,男顾客专等吃盘中的草莓,女顾客专等吃盘中的香蕉,规定每次当盘子空时只能放一个水果供顾客取用,请用信号量机制实现服务员,男顾客,女顾客三个进程的同步解:设信号量:dish 表示服务员是否可以向盘中放水果 1strawberry表示男顾客是否可以取草莓 0banana 表示女顾客是否可以取香蕉吃 0p(dish) p(banana) p(strawberry) 服务员放水果女顾客取草莓吃男顾客取香蕉吃if 放的是草莓 v(dish) v(dish)v(banana)elsev(strawberry)20 设有两个优先级相同的进程P1、P2,令信号量S1,S2的初值为0,已知z=2,试问P1,P2 并发执行后x,y,z的值。
进程P1 进程P2y:=1; x:=1;y:=y+2; x:=x+1;V(S1); P(S1);z:=y+1; x:=x+y;P(S2); V(S2);y:=y+z; z:=x+z;解1.x=5,y=7,z=4;2.x=5,y=7,z=9;3.x=5,y=12,z=9;某系统有R1,R2,R3共3种资源,在T0时刻,P1,P2,P3和P4这4个进程对资源的占有和需求情况见下表,此刻系统可用资源向量为(2,1,2),问:若此时P1,P2均发出资源请求向量Request (1,0,1)为保持系统安全性,应该如何分配资源给这两个进程?说明所采用的原因。
解:设两个向量work=Available(2,1,2),Finish[i]=false;i=1,2,3,4;当Request2(1,0,1)时;1.Request2<=Need2;2.Request2<=Available;3.所以Available=Available-Request2=(1,1,1);Allocation2=Need2+Request2=(5,1,2);Need2=Max2-Allocation2=(1,0,1);此时work=Available=1,1,1;因由Need2<=work,故P2可完成,完成后,work=Available+Max2=(8,2,5).当P2完成后,释放资源后。
Request1(1,0,1)均满足。
故采取分配方式:先给P2(1,0,1)资源,等P2完成后,再把资源分配给P1.即可安全完成。
在采用页式管理的系统中,某作业的页表如图,页面大小为1k,逻辑地址2049对应的物理地址是(1k+1)解:2049=2*1024+1;由表可得:页号对应的块号为1,则物理地址为:1024*1+1=1K+1=1025;一个进程有8个页面,对页面的访问轨迹如下:1,0,2,2,1,7,6,7,0,1,2,0,3,0,4,5,1,5,2,4,5,6,7采用OPT,LRU,FIFO置换算法,分配给进程的存储块数为4块时,缺页次数分别为多少?(设初始内存无进程页面)OPT(缺页:11)FIFO(缺页:14)LRU(缺页:14)设某文件A由100个物理块组成,现分别用连续文件、链接文件、索引文件来构造。