版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
图8-7空闲盘块表空闲盘区的分配与内存的分区(动态)分配类似,同样是采用首次适应算法和最佳适应算法(2)空闲链表法这种方法的优点是用于分配和回收一个盘块的过程非常简单.c.缺点这是将磁盘上的所有空闲盘区(每个盘区可包含若干个盘块)拉成一条链。在每个盘区上除含有用于指示下一个空闲盘区的指针外,还应有能指明本盘区大小(盘块数)的信息。c.缺点2.位示图法(1)位示图由所有盘块所对应的位构成一个集合,称为位示图。如图8-8所示。图8-8位示图(2)盘块的分配制位位于位示图的第i行、第J列,则其相应的盘块号应按下式计算:③修改位示图,令map[i,j]=1。(3)盘块的回收j=(b-1)MODn+1(4)优点3.成组链接法(1)空闲盘块的组织用来存放当前可用的一组空闲盘块的盘块号(最多含100个号),以及栈中尚有的空闲盘块(号)数N。顺便指出,N还兼作栈顶指针用。图8-9左部示出了空图8-9空闲盘块的成组链接法②文件区中的所有空闲盘块被分成若干个组,如图8-11所示。③将每一组含有的盘块总数N和该组所有的盘块号记入其前一组的第一个盘块的S.free(0)~S.free(99)中。这样,由各组的第一个盘块可链成一条链。⑤最末一组只有99个可用盘块,其盘块号分别记入其前一组的S.free(1)~S.free(99)注意:最后一组的盘块数仍为100,但实际可供使用的空闲盘块数却是99,对应的编号应为(1~99),0号中放空闲盘块链的结尾标志,而不再是空闲盘块号。(2)空闲盘块的分配与回收a.该过程首先检查空闲盘块号栈是否上锁,如未上锁,便从栈顶取出一空闲盘块号,将与b.若该盘块号已是栈底,调用磁盘读过程将栈底盘块号所对应盘块的内容读入栈中,作为新的盘块号栈的内容,并把原栈底对应的盘块分配出去。然后,再为该盘块的缓冲区)。c.最后,把栈中的空闲盘块数减1并返回。盘块号栈的顶部,并执行空闲盘块数加1操作。当栈中空闲盘块号数目已达100时,表示栈已满,便将现有栈中的100个盘块号记入新回收的盘块中,再将其盘块号作为新栈底。三、提高磁盘I/O速度的途径1.磁盘高速缓存(DiskCache)(1)数据交付(DataDelivery)方式如果I/0请求所需要的数据能从磁盘高速缓存中获取,此时就需要将磁盘高速缓存中的数(2)置换算法由于请求调页中的联想存储器与高速缓存(磁盘I/0中)的工作情况不同,因而使得在置存中的数据将会丢失;而其中有些盘块(如索引结点盘块)中的数据己被修改,但尚未拷回(3)周期性地写回磁盘根据LRU算法,那些经常要被访问的盘块数据可能会一直保留在高速缓存中,长期不会被写回磁盘。为了解决这一问题,在UNIX系统中专门增设了一个修改(update)程序,使之2.提高磁盘I/O速度的其它方法(1)提前读(2)延迟写(3)优化物理块的分布(4)虚拟盘所谓虚拟盘,又称为RAM盘。该盘的设备驱动程序也可以接受所有标准的磁盘操作,但这②主要问题虚拟盘中的内容完全由用户控制,而磁盘高速缓存中的内容则是由OS3.廉价磁盘冗余阵列(RAID)RAID系统是利用一台磁盘阵列控制器来统一管理和控制一组磁盘驱动器,组成一个大型磁(1)并行交叉存取以提高对磁盘的I/O速度。图8-10示出了磁盘并行交叉存取方式。图8-10磁盘并行交叉存取方式(2)RAID的分级②优点RAID0级的主要优点是,它能够实现高效的传输,并能实现高速的I/O请求。③缺点RAIDO级的主要缺点是无冗余校验功能,致使磁盘系统的可靠性并不是很高。只要阵列中②优点RAID1级的主要优点是可靠性好,且从故障中恢复很简单。③缺点RAID1级的主要缺点是磁盘容量的利用率只有50%,它的优点是以牺牲磁盘容量为代价的。这是具有并行传输功能的磁盘阵列。它只利用一台奇行读/写,且无专门的校验盘。用来进行纠错的校验信息是以螺旋(Spiral)方式散布在所⑤RAID6级和RAID7级在RAID6级的阵列中,设置了一个专用的、可快速访问的异步校验盘。该盘具有独立的数据访问通路,具有比RAID3级及RAID5级更好的性能,但其性能改进得很RAID7级是对RAID6级的改进,在该阵列中的所有磁盘都具有较高的传输速率和优异的(3)RAID的优点除了RAID0级外,其余各级都采用了容错技术。当阵列中某一磁盘损坏时,并不会造成数②磁盘I/O速度高由于采取了并行交叉存取方式,可使磁盘I/0速度提高N-1倍。RAID的体积与具有相同容量和速度的大型磁盘系统相比,只是后者的1/3,价格也只是后者的1/3,且可靠性高。换言之,它仅以牺牲1/N的容量为代价,换取了高可靠性。1.第一级容错技术SFT-I第一级容错技术(SFT-I)是最基本的一种磁盘容错技术,主要用于防止因磁盘表面缺陷所(1)双份目录和双份文件分配表可在不同的磁盘上或在磁盘的不同区域中分别建立(双份)目录表和FAT。其中一份为主目录及主FAT,另一份为备份目录及备份FAT。一旦由于磁盘表面缺陷而造成主文件目录或主FAT的损坏时,系统便自动启用备份文件目录及备份FAT,从而可以保证磁盘上的数(2)热修复重定向和写后读校验2.第二级容错技术SFT-IⅡ③缺点(1)磁盘镜像(DiskMirroring)一磁盘控制器下,再增设一个完全相同的磁盘驱动器,如图8-11所示。图8-11磁盘镜像示意图(2)磁盘双工(DiskDuplexing)器上,同样使这两台磁盘机镜像成对,如图8-12所示,在磁盘双工时,每一个磁盘都有自图8-12磁盘双工示意图3.基于集群技术的容错功能(1)双机热备份模式如图8-13所示,在这种模式的系统中,备有两台服务器,两者的处理能力通常是完全相同图8-13双机热备份模式②优点从服务器处于被动等待状态,整个系统的使用效率只有50%。(2)双机互为备份模式图8-14双机互为备份系统的示意图②优点两台服务器都可用于处理任务,因而系统效率较高,现在已将这种模式从两台机器扩大到4台、8台、16台甚至更多。系统中所有的机器都可用于处理任务,当其中一台发生故障时,(3)公用磁盘模式②优点4.后备系统(1)配置后备系统的原因(2)后备系统的设备磁盘机的主要优点是容量大,一般可达数GB至数十GB,且价格便宜,故在许多大、中型c.缺点①原子性②硬盘a.移动磁盘保存方便,而且保存时间也较长,可比磁带机长出3~5年。但单位容量的费用较高。近年b.固定硬盘驱动器硬盘系统。每个硬盘都被划分为两个分区:一个数据区,一个备份区,如图8-15所示。这图8-15利用大容量硬盘兼做后备系统a.只读光盘驱动器CD-ROM和DVD-ROM这两种驱动器主要用于播放音频和视频信号。但由于它们都只能播放(读)不能写,故难于b.可读写光盘驱动器又把它称为刻录机。它们既能播放(读)又能刻录(写),故可将它们作为后备设备,存储第二,COMBO刻录机,它能播放DVD光盘,但只能刻录CD、VCD光盘;(1)事务的定义(2)事务的属性一个事务在对一批数据执行修改操作时,应该是要么全部完成,并用修改后的数据去代替原来的数据,要么一个也不修改。即事务在完成时,必须使所有的数据都保持一致状态;即对一个事务对数据所作的修改,必须与任何其它与之并发事务相隔离,换言之,一个事务查看数据时数据所处的状态,要么是另一并发事务修改它之前的状态,要么是另一事务修改它之后的状态,而不会是任何中间状态的数据;即事务完成之后,它对于系统的影响是永久性的。(3)事务记录(TransactionRecord)为了实现上述的原子修改,通常须借助于称为事务记录的数据结构来实现。该记录中包括有①事务名:用于标识该事务的唯名字;②数据项名:它是被修改数据项的唯一名字:③旧值:修改前数据项的值;④新值:修改后数据项将具有的值。在事务记录表中的每一记录描述了在事务运行中的重要事务操作,如修改操作、开始事务、托付事务或夭折事务等。利用事务记录表系统能处理任何故障而不致使故障造成非易失性存储器中信息的丢失。恢复算法可利用以下两个过程:①undo<T;>。该过程把所有被事务Ti修改过的数据恢复为修改前的值。②redo<Ti>。该过程能把所有被事务Ti修改过的数据设置为新值。2.检查点(1)检查点(CheckPoints)的作用引入检查点的主要目的是,使对事务记录表中事务记录的清理工作经常化,即每隔一定时间便做一次下述工作:①首先是将驻留在易失性存储器(内存)中的当前事务记录表中的所有记录输出到稳定存储器中;其次是将驻留在易失性存储器中的所有已修改数据输出到稳定存储器中;②然后是将事务记录表中的(检查点)记录输出到稳定存储器中;③最后是每当出现一个(检查点)记录时,系统便执行上小节所介绍的恢复操作,即利用redo和undo过程实现恢复功能。(2)新的恢复算法在引入检查点后,可以大大减少恢复处理的开销。因为在发生故障后,并不需要对事务记录表中的所有事务记录进行处理,而只需对最后一个检查点之后的事务记录进行处理。如果把所有在事务Ti以后开始执行的事务表示为事务集T则新的恢复操作要求如下①对所有在T中的事务TK,如果在事务记录表中出现了<Tk托付>记录,则执行redo(Tk)②如果在事务记录表中并未出现,<Tk托付>记录,则执行undo(Tk)操作。3.并发控制(ConcurrentControl)(1)利用互斥锁实现“顺序性”实现顺序性的一种最简单的方法,是设置一种用于实现互斥的锁,简称为互斥锁(ExclusiveLock)。在利用互斥锁实现顺序性时,应为每一个共享对象设置一把互斥锁。当某一事务Ti要去访问某对象时,应先获得该对象的互斥锁。若成功,便用该锁将该对象锁住,于是事务Ti便可对该对象执行读或写操作;而其它事务由于未能获得该锁,因而不能访问该对(2)利用互斥锁和共享锁实现顺序性为了提高运行效率而又引入了另一种形式的锁—共享锁(SharedLock)。a.互斥锁仅允许一个事务对相应对象执行读或b.共享锁则允许多个事务对相应对象执行读操作,但不允许其中任何一个事务对对象执行4.重复数据的数据一致性问题(1)重复文件的一致性对于通常的UNIX文件目录,其每个目录项中含有一个ASCLL码的文件名和一个索引结点点号组成,每个索引结点号都是指向各自的索引结点。图8-16示出了UNIX类型的目录和图8-16UNIX类型的目录a.当一个文件被修改后可查找文件目录,以得到其它几个拷贝的索引结点号,再从这些索b.为新修改的文件建立几个拷贝,并用新拷贝去取代原来的文件拷贝。(2)链接数一致性检查点中有一个链接计数count,用来指出共享本文件的用户(进程)数。在正常情况下这两个1.目前常用的外存有哪几种组织方式?答:(1)连续组织方式(2)链接组织方式(3)索引组织方式2.由连续组织方式所形成的顺序文件的主要优缺点是什么?它主要应用于何种场合?答:(1)连续组织方式所形成的顺序文件的主要优点(2)连续组织方式所形成的顺序文件的主要缺点(3)主要适用场合3.在链接式文件中常用哪种链接方式?为什么?答:(1)链接方式的分类在整个磁盘仅设置一张,表的序号是物理盘块号,从0开始,直至N-1,N为总块数。在每或者说是每一条链的链首指针所对应的盘块(2)在链接式文件中常用显式链接的原因为了适应磁盘容量不断增大的需要,在进行盘块分配时,不再以盘块而是以簇(Cluste(2)以簇作为基本分配单位的好处表的项数是与簇的大小成反比),使FAT表占用更少的存储空间,并减少访问FAT表的存FAT12表中的表项有限制,亦即最多只允许4096个。这样,随着磁盘容量的增加,必定会位数(宽度)。如果我们将FAT表项位数增至16位,最大表项数将增至65536(216)个,此时便能将一个磁盘分区分为65536(216)个簇。由于FAT16表的长度只有65535项,随着磁盘容量的增加,簇的大小也必然会随之增加,为了减少簇内零,也就应当增加FAT表的长度,为此需要再增加FAT表的宽度,这样也就由FAT16演变为FAT32。6.试解释逻辑簇号和虚拟簇号这两个名词,NTF答:(1)逻辑簇号的定义逻辑簇号(LCN)是对卷进行管理的工具,使用逻辑簇号可对卷的第一个簇到最后一个簇进(2)虚拟簇号的定义虚拟簇号(VCN)也是对卷进行管理的工具,使用虚拟簇号可对特定文件的簇从头到尾进行编号。它不要求物理上是连续的,要确定VCN的磁盘上的定位需先将其转换为LCN。NTFS在进行地址映射时,可以通过卷因子与LCN的乘积,算出卷上的物理字节偏移量,从而得到文件数据所在的物理磁盘地址。为了方便文件中数据的引用,NVCN,以文件为单位,将属于某个文件的簇按顺序进行编号。只要知道了文件开始的簇地址,便可将VCN映射到LCN。7.在MS-DOS中有两个文件A和B,A占用11、12、16和14四个盘块;B占用13、18和20三个盘块。试画出在文件A和B中各盘块间的链接情况及FAT的情况。图8-1文件A、B盘块间的链接情况和FAT情况8.NTFS文件系统中的文件所采用的是什么样的物理结构?一个簇只属于一个文件。通过簇来间接管理磁盘,可以不需要知道盘块(扇区)的大小,使NTFS具有了与磁盘物理扇区大小无关的独立性,很容易支持扇区大小不是512字节的非标的,其大小同FAT一样,也是物理磁盘扇区的整数倍,即一个簇包含2n(n为整数)个盘目录信息以及可用的未分配空间信息,都以文件记录的方式记录在一张主控文件表9.假定一个文件系统的组织方式与MS.DOS相似,在FAT中可有64K个指针,磁盘的盘块大小为5128,试问该文件系统能否指引一个512MB的磁盘?答:该文件系统不能指引一个512MB的磁盘。因为该系统中的盘块个数为个,而每个盘块都应有一个指针来指示,所以应该有1M个指针,因为64K<1M,所以若有64K指针则该文件系统不能指引一个512MB的磁盘。10.为了快速访问,又易于更新,当数据为以下形式时,应选用何种文件组织方式?(1)不经常更新,经常随机访问;(2)经常更新,经常按一定顺序访问;(3)经常更新,经常随机访问。答:(1)顺序结构的文件组织形式便于随机访问,但更新困难,因此对于不经常更新,经(2)索引顺序结构在顺序结构的基础上增加了索引项,使得数据容易更新,并且易于按一(3)索引结构的文件组织形式容易更新且便于随机访问,因此经常更新,经常随机访问的11.在UNIX中,如果一个盘块的大小为1KB,每个盘块号占4个字节,即每块可放256商为逻辑块号,余数是块内偏移量。在UNIX的FCB中,第0~9个地址为直接地址,第10个为一次间接地址,第11个地址为二次间接地址,第12个地址为三次间接地址。在将(1)9999/1024=9余783,则逻辑块号为9,直接索引第9个地址得到物理块号,块内偏移地址为783;(2)18000/1024=17余592,则逻辑块号为10<17<10+256,通过一次间接索引在第10个地址可得到物理块号,块内偏移地址为592;(3)420000/1024=410余160,则逻辑块号为10+256<410,通过二次间接索引在第11个地址中可得到一次间址,再由此得到二次间址,再找到物理块号,其块内偏移地址160。12.什么是索引文件?为什么要引入多级索引?答:(1)索引文件的定义相应的表项,用于记录该记录的长度L及指向该记录的指针(指向该记录在逻辑地址空间的首址),以加快对记录检索的速度。(2)引入多级索引的目的13.试说明增量式索引组织方式。答:(1)为了能较全面地照顾到小、中、大及特大型作业,可以采取多种组织方式来构成文件的物理结构。如果盘块的大小为1KB或4KB,对于小文件(如1KB~10KB或4KB~40KB)而言,最多只会占用10个盘块,为了能提高对数量众多的小型作业的访问速度,最好能将它们的每一个盘块地址都直接放入文件控制块FCB(或索引结点)中,这样就可以(2)一般把这种寻址方式又称为直接寻址。对于中等文件(如11KB~256KB或5KB~4MB),可以采用单级索引组织方式。此时为获得该文件的盘块地址,只需先从FCB中找到又采用了单级和多级索引组织方式(间接寻址)。通常又可将这种组织方式称为混合组织方式。在UNIX系统中所采用的就是这种组织方式。14.有一计算机系统利用图8-2所示的位示图来管理空闲盘块。盘块的大小为1KB,现要为图8-2某计算机系统的位示图(1)顺序扫描位示图,找到第一个值为0的二进制位,得到行号i=3,列号j=3;(2)将找到的二进制位转换成对应的盘块号。盘块号b=(3-1)*16+3=35;(3)修改位示图,令map[3,3]=1,并将该盘块分配出去。类似地,可使用相同的方法找到第二个值为0的二进制位,得到行号i=4,列号j=7,其对应的盘块号为55,令map[i,j]=1,并将该盘块分配出去。15.某操作系统的磁盘文件空间共有500块,若用字长为32位的位示图管理盘空间,试问:(1)位示图需多少个字?(3)给出申请,归还一块的工作流程。答:(1)位示图需要的字数为500/32(向上取整)=16个字;(2)第i字第j位对应的块号为b=(i-1)*32+j;16.对空闲磁盘空间的管理常采用哪几种分配方式?在UNIX系统中是采用何种分配方式?答:(1)空闲磁盘空间的管理采用的分配方式17.可从哪几方面来提高对文件的访问速度?(1)改进文件的目录结构以及检索目录的方法来减少对目录的查找时间:(2)选取好的文件存储结构,以提高对文件的访问速度;(3)提高磁盘的I/O速度,能将文件中的数据快速地从磁盘传送到内存中,或者相反。18.何谓磁盘高速缓存?在设计磁盘高速缓存时需要考虑哪些问题?答:(1)磁盘高速缓存的定义(2)在设计磁盘高速缓存时需要考虑的问题19.可以采取哪几种方式将磁盘高速缓存中的数据传送给请求者进程?(1)数据交付,这是直接将高速缓存中的数据传送到请求者进程的内存工作区中:(2)指针交付,只将指向高速缓存中某区域的指针交付给请求者进程。后一种方式由于所20.何谓提前读和廷迟写?答:(1)提前读的定义提前读是指用户(进程)对文件进行访问时,经常采用顺序访问方式,即顺序地访问文件各先读方式,即在读当前块的同时,还要求将下一个盘块(提前读的块)中的数据也读入缓冲可直接从缓冲区中取得下一盘块的数据,而不需再去启动磁盘I/O,从而大大减少了读数据的时间。这也就等效于提高了磁盘I/O的速度。(2)延迟写的定义可能还会再被本进程或其它进程访问(共享资源),因而并不立即将该缓冲区中的数据写入I/O时间。21.试说明廉价磁盘冗余阵列RAID的主要优点。答:(1)可靠性高除了RAID0级外,其余各级都采用了容错技术。当阵列中某一磁盘损坏时,并不会造成数(2)磁盘I/O速度高由于采取了并行交叉存取方式,可使磁盘I/O速度提高N-I倍。(3)性能,价格比高RAID的体积与具有相同容量和速度的大型磁盘系统相比,只是后者的1/3,价格也只是后者的1/3,且可靠性高。换言之,它仅以牺牲1/N的容量为代价,换取了高可靠性。22.在第一级系统容错技术中,包括哪些容错措施?什么是写后读校验?答:(1)第一级容错技术包含的容错措施①双份目录和双份文件分配表:在磁盘上存放的文件目录和文件分配表FAT,是文件管理分别建立(双份)目录表和FAT;②优点(2)写后读校验的定义23.在第二级系统容错技术中,包括哪些容错措施?请画图说明之。答:(1)第二件容错技术包含的容错措施(2)第二级容错技术的图示说明如图8-3所示。图8-3磁盘镜像和磁盘双工示意图24.具有容错功能的集群系统的主要工作模式有哪几种?请简要说明之。答:(1)双机热备份模式该模式的缺点是从服务器处于被动等待状态,整个系统的使用效率只有50%。(2)双机互为备份模式②优点两台机器扩大到4台、8台、16台甚至更多。系统中所有的机器都可用于处理任务,当其中(3)公用磁盘模式②优点25.为什么要在系统中配置后备系统?目前常用做后备系统的设备有哪几种?答:(1)在系统中配置后备系统的目的(2)常用的后备系统设备26.何谓事务?如何保证事务的原子性?答:(1)事务的定义对分布在不同位置的同一数据所进行的读和写(含修改)操作全部完成时,才能再以托付操(2)保证事务原子性的方法27.引入捡查点的目的是什么?引入检查点后又如何进行恢复处理?答:(1)引入检查点的目的次下述工作:首先是将驻留在易失性存储器(内存)中的当前事务记录表中的所有记录输出然后是将事务记录表中的(检查点)记录输出到稳定存储器中;最后是每当出现一个(检查点)记录时,系统便执行恢复操作,利用redo和undo过程实现恢复功能。(2)引入检查点后恢复处理的方法的事务Ti。在找到这样的事务后再返回去搜索事务记录表,便找到第一个检查点记录,恢28.为何引入共享锁?如何用互斥锁或共享锁来实现事务的顺序性?答:(1)引入共享锁的目的(2)用互斥锁或共享锁实现事务顺序性的方法在为一个对象设置了互斥锁和共享锁的情况下,如果事务Ti要对Q执行读操作,则只得对象Q的共享锁。如果对象Q已被互斥锁锁住,则Ti必须等待;否则便获得共享锁,对Q执行读操作。如果Ti要对Q执行写操作,则Ti还需获得Q的互斥锁。若失败则等待;否则,可获得互斥锁并对Q执行写操作。29.当系统中有重复文件时,如何保证它们的一致性?(1)当一个文件被修改后,可查找文件目录,以得到其它几个拷贝的索引结点号,再从这(2)为新修改的文件建立几个拷贝,并用新拷贝去取代原来的文件拷贝。答:(1)检查盘块号一致性的方法表中的表项数目等于盘块数N。③在对盘块的数据结构进行检查时,应该先将计数器表中的所有表项初始化为0,然后用N(2)检查时可能出现的情况②空闲盘块号计数器中盘块K的计数值为2,则空闲盘块号重复出现,应删除一个空闲盘块号K;③空闲盘块号计数器中盘块号K的计数值为0,而数据盘块号计数器中盘块号K的计数值8.3考研真题与典型题详解(略)第9章操作系统接口1.字符显示式联机用户接口(1)命令行方式该方式是以行为单位,输入和显示不同的命令。每行长度一般不超过256个字符,一般情况其中Command是命令名,又称命令动词,其余为该命令所带的执行参数,有些命令可以没(2)批命令方式如MS-DOS系统的.BAT文件。2.图形化联机用户接口(1)图形用户接口GUI(GraphicsUserInterface)的引入(2)使用WIMP技术GUI采用了图形化的操作界面,使用WIMP技菜单(Menu)、鼠标(Pointingdevice)和面向对象技术等集成在一起,引入形象的各种图在Windows系统中,采用的是事件驱动控制方式,用户通过动作来产生事件,以驱动程序3.联机命令的类型(1)系统访问类在多用户系统中,为了保证系统的安全性,都毫无例外地设置注册命令Login。凡要在多用(2)文件操作命令①显示文件命令type,用于将指定文件内容显示在屏幕上。②拷贝文件命令copy,用于实现文件的拷贝。③文件比较命令comp,该命令用于对两个指定文件进行比较,两文件可以在同一个或不同④重新命名命令Rename,该命令用于将以第一参数命名的文件改成用第二参数给定的⑤删除文件命令erase,该命令用于删除一个或一组文件,例如,当参数路径名为*.BAK时,表示删除指定目录下的所有其扩展名为.Bak的文件。(3)目录操作命令①建立子目录命令mkdir,用于建立指定名字的新目录。②显示目录命令dir,显示指定磁盘中的目录项。③删除子目录命令rmdir,用于删除指定的子目录文件,但不能删除普通文件,而且一次只能删除一个空目录(其中仅含“.”和“..”两个文件),不能删除根及当前目录。④显示目录结构命令tree,显示指定盘上的所有目录路径及其层次关系。⑤改变当前目录命令chdir,将当前目录改变为由路径名参数给定的目录。用“..”作参数①输入输出重定向命令在有的OS中定义了两个标准I/O设备。通常,命令的输入取自标准输入设备,即键盘;其后接文件名或设备名,表示将命令的输出改向,送到指定文件或设备上。类似地,若在命令中设置输入重定向“<”符,则不再是从键盘而是从重定向符左边参数所指定的文件或设备上取得输入信息。②管道连接这是指把第一条命令的输出信息作为第二条命令的输入信息;类似地,又可把第二条命令的输出信息作为第三条命令的输入信息。这样,由两个(含两条)以上的命令可形成一条管道。③过滤命令在UNIX及MS-DOS中,都有过滤命令,用于读取指定文件或标准输入,从中找出由参数指定的模式,然后把所有包含该模式的行都打印出来。④批命令为了能连续地使用多条键盘命令,或多次反复地执行指定的若干条命令,而又免去每次重敲这些命令的麻烦,可以提供一个特定文件。在MS-DOS中提供了一种特殊文件,其后缀名用“.BAT”;在UNIX系统中称为命令文件。它们都是利用一些键盘命令构成一个程序,一次建立供多次使用。在MS-DOS中用batch命令去执行由指定或默认驱动器的工作目录上指定文件中所包含的一些命令。二、Shell命令语言1.简单命令简介(1)简单命令的格式简单命令的格式比较自由,包括命令名字符的个数及用于分隔命令名、选项、各参数间的空格数等,都是任意的。一条命令可有多个选项,用于改变命令执行动作的类型。命令的格式(2)简单命令的分类①根据创建者分类a.系统提供的标准命令包括调用各种语言处理程序、实用程序等,其数量随系统版本的不同而有所差异,系统管理员可以增添新的系统标准命令。b.用户自定义的命令系统管理员和用户自行定义的命令的执行方式与系统标准命令的执行方式相同。②根据命令是否包含在Shell内部分类Shell中少数标准命令,如改变工作目录命令cd等,是包含在Shell内部的,作为内部命令常驻内存。b.外部命令Shell中大多数的命令如拷贝命令cp和移动命令rm等,均保存于外存(盘)上,即每个命令是存在于文件系统中某个目录下的单独程序。这样做的好处在于,可以很大程度地节省内存空间。(3)Shell的种类在UNIX中,最初使用的Shell就是BourneShell,简称为BShell,可以通用于多种UNIXCShell是一种比BShell更适于编程的Shell,是标准BSD(BerkeleySystemDistribution)命令解释。其语法与c语言很相似,用%作为提示符。随着UNIX系统标准化的发展,使用示符兼容,而且还提供比BShell更多的提示符KomShell集合了CShell和BShell的优点,并且和BShell完全兼容,它的名字是Ksh。对应地,Linux系统提供了Pdksh,也是对KomShell的扩展,它支持任务控制,可以在命2.简单命令的类型(1)进入与退出系统②退出系统的使用环境。如果用户使用的是多终端中的一个终端,为了退出,用户只须按键即可,系统会重新给出提示符即Login,以表明该终端可供另一新用户使用。用户的进入与退出过程是由系统直接调用Login及Logout程序完成的。(2)文件操作命令②复制文件副本的命令cp,其格式为:③对已有文件改名的命令mv,其格式为:⑤确定文件类型的命令file该命令带有一个参数表,用于给出想了解其(文件)类型的文件名清单。命令执行的结果,(3)目录操作命令用户可以自己的注册名作为根结点,建立一棵子目录树。可用③改变工作目录的命令cdcd命令将使用户来到由该路径名确定的结点上:若用当前目录的子目录名作参数,将把用(4)系统询问命令①访问当前日期和时间命令date例如,使用命令$date②询问系统当前用户的命令who③显示当前目录路径名的命令pwd3.重定向与管道命令(1)重定向命令在用户程序执行时,隐含的标准输入是键盘输入,标准输出即屏幕(输出)显示。但用户程表示把文件filel的内容打印输出到表示对标准输入中的行中字和字符进行计数。若则表示把从文件file3中读出的行中的字和字符进(2)管道命令将使命令cat把文件file中的数据作为wc命令的计数输入。a.单向性b.同步性4.通信命令(1)信箱通信命令mail信箱通信是作为在UNIX的各用户之间进行非交互式通信的退出mail程序但不改变信箱的内容;一次性显示信箱全部内容而不带询问;把指定文件当(2)对话通信命令write一个用户同时在几个终端上注册,故在用此命(3)允许或拒绝接收消息的mesg命令选项n表示拒绝对方的写许可(即拒绝接收消息);选项y指示恢复对方的写许可,仅在此拒绝对方的写许可。编辑完毕,再用带有y选项的mesg命令来恢复对方的写许可,不带自变量的mesg命令只报告当前状态而不改变它。5.后台命令有些命令需要执行很长的时间,UNIX系统提供了一种机制,用户可以在这种命令被送到Shell进程。用户可使用ps、wait及Kill命令去了解和控制后台进程的运行。1.键盘终端处理程序(1)字符接收功能码(简称键码),而不是ASCII码。(2)字符缓冲功能系统为每个终端设置一个缓冲区,暂存用户键入的一批字符。专用缓冲方式如图9-1(a)所示。a.工作原理如图9-1(b)所示。系统只设置一个由多个缓冲区构成的公用缓冲池,其中的每个缓冲区b.优点图9-1两种缓冲方式(3)回送显示回送显示(回显)是指每当用户从键盘输入一个字符后,终端处理程序便将该字符送往屏幕a.硬件实现b.软件实现(4)屏幕编辑它允许将用户刚键入的字符删除。在有的系统中是利用退格键即Backspace(Ctrl+H)键。②删除一行键(5)特殊字符处理容。在有的系统中,是利用Ctrl+S键来停止屏幕上有的系统利用Ctrl+Q键使停止上卷的屏幕恢复上卷。终端处理程序收到该字符后,便恢复2.MS-DOS解释程序(1)命令解释程序的作用(2)命令解释程序的组成这部分包括一些中断服务子程序。例如,正常退出中断INT20,它用于在用户程序执行完它跟随在常驻内存部分之后,在启动时获得控制权。(3)命令解释程序的工作流程执行AUTOEXECBAT文件,之后便把控制权交给暂存部分。④最后把控制权交给该程序去执行相应的命令。如图9-2所示。3.Shell解释程序②具有不同的分隔符(2)二叉树结构的命令行树①命令表型结点例如Command1;Command2:&Command3命令行所构成的命令树如图9-3所示:图9-3命令表型结点及其左、右子树b.执行过程图9-4管道文件型结点及其左、右子树进程执行,直到子进程运行完毕,又恢复Shell运行。(3)Linux命令解释程序的工作流程将其他参数改造为系统调用execve内部处理所要终端进程调用fork,为二叉树结构命令行中的每一条命令建立相应的子进程。如图9-5所示。图9-5Shell基本执行过程及父子进程之间的关系1.系统调用的基本概念(1)系统态和用户态户空间,也能访问系统空间。特权指令只允许OS使用,不允许应用程序使用。(2)系统调用②状态的转换在采用了抢占式(剥夺)调度方式的系统中,在被调用过程执行完后,要对系统中所有要求没有嵌套及有嵌套的两种系统调用情况如图9-6所示。图9-6系统功能的调用(3)中断机制口来实现。如MS-DOS提供了INT21H,应用程序通过该中断获取操作系统的服务。对于OS来说,中断机制本身是受保护的,只有授权给应用程序保护等级的中断号,才是可2.系统调用的类型(1)进程控制类系统调用统调用来了解某进程的属性,利用设置进程属性的系统进程在运行过程中,需要等待某事件(条件)出现后方可继续执行。此时进件)的系统调用,使自己处于等待状态,一旦等待的事件出现,便可将等待进程唤醒。(2)文件操纵类系统调用(3)进程通信类系统调用POSIX定义了标准应用程序接口(API),用于保证编制的应用程序可以在源代码一级上在POSIX标准定义了一组过程,这组过程是构造系统调用所必须的,通过调用这些过程所提注意:POSIX标准所定义的一组过程虽然指定了系统UNIX/Linux系统程序、库函数、系统调用的分层关系如图9-7所示。图9-7UNIX/Linux系统程序、库函数、系统调用的分层关系1.进程控制(1)进程的创建和终止①创建进程(fork)一个进程可以利用fork系统调用来创建一个新进程。新进程作为调用者的子进程,它继承②终止进程(exit)②文件的写exit系统调用。子进程在完成规定的任务(2)改变进程映像和等待①执行一个文件(exec)exec可使调用者进程的进程映像(包括用户程序和数据等)被一个可执行的文件覆盖,此②等待子进程结束(wait)wait用于将调用者进程自身挂起,直至它的某一子进程终止(3)其它进程调用比如,可利用getp-id系统调用来获得调用进程的标识符,利用getp-grp系统调用来获得调用进程的进程组ID,以及利用getp-pid系统调用来获得调用进程的父进程ID等。②获得用户ID比如getuid可用于获得真正的用户ID,geteuid用于获得有效用户ID,getgid用于获得真正2.文件操纵(1)文件的创建和删除系统调用creat的功能是根据用户提供的文件名和许(2)文件的打开和关闭①打开文件(open)open的功能是把有关的文件属性从磁盘拷贝到内存中,以及在用户和指名文件之间建立一条快捷的通路,并给用户返回一个文件描述符fd。文件被打开后,用户对文件的任何操作都只需使用fd,而非路径名。②关闭文件(close)当把一个文件用毕且暂不访问时,可调用close将此文件关闭。在UNIX系统中,只有在无减1操作后其值为0,表示已无进程再访问该文件时,才能真正关闭该文件。(3)文件的读和写①文件的读读文件的系统调用是read,它的功能是试图从并将它们送至由指针buf所指示的缓冲区中。写文件的系统调用是write,它的功能是试图把nbyte个字节数据从指针buf所指示的缓冲区中写到由fd所指向的文件中。仅当用户利用open打开指定文件后,方可调用read或write对文件执行读或写操作。两个系统调用都要求用户提供三个输入参数:a.文件描述符fd;b.buf缓冲区首址。对读要求传送的字节数nbyte。(4)建立与文件的连接和去连接①连接(link)在该文件的索引结点中设置了一个连接计数i.link。每当有一用户要共享某文件时,须利用系统调用link来建立该用户(进程)与此文件之间的连接,并对i.link做加1操作。当i.link减1后结果为0时,表示已无用户需要此文件,此时才能将该文件从文件系统中删3.进程通信和信息保护(1)进程通信用户(进程)在利用消息机制进行通信时,必须先利用msgget系统调用来建立一个消息队列。若成功,便返回消息队列描述符msgid,以后用户便可利用msgid去访问该消息队列。用户(进程)可利用发送消息的系统调用msgsend向用户指定的消息队列发送消息;利用msgrcv系统调用从指定的消息队列中接收指定类型的消息。当用户(进程)要利用共享存储器机制进行通信时,必须先利用shmget系统调用来建立一个共享存储区,若成功,便返回该共享存储区描述符shmid。以后,用户便可利用shmid去再需要该共享存储区时,可利用shmdt系统调用来拆除进程与共享存储区间的连接。(2)信息维护超级用户可利用设置时间的系统调用(stime)来设置系统的日期和时间;一般用户可利用②获得进程和子进程时间(times)利用该系统调用可获得进程及其子进程所使用的CPU时③设置文件访问和修改时间(utime)如果该系统调用的参数times为NULL,则文件主和对该文件具有写权限的用户可将对该文结构的指针,此时,文件主和超级用户能将访问时间和修④获得当前UNIX系统的名称(uname)利用该系统调用可将有关UNIX系统的信息存储在utsname结构中。这些信息包括UNIX系1.系统调用的实现方法(1)系统调用号和参数的设置赋予每条系统调用一个唯一的系统调用号。在系统调用命令(陷入指令)中把相应的系统调命令(陷入指令)中,在另一些系统中,则将系统调用号装入某指定寄存器或内存单元中。a.陷入指令自带方式b.直接将参数送入相应的寄存器中c.参数表方式的参数值和参数的个数N都放入一张参数表中;而在间接参数方式中,则在参数表中仅存图9-8系统调用的参数形式(2)系统调用的处理步骤即首先保护被中断进程的CPU环境,将处理机状态字PSW、程序计数器PC、系统调用号、③在系统调用处理子程序执行完后,应恢复被中断的或设置新进程的CPU现场,然后返回(3)系统调用处理子程序的处理过程进入Creat的处理子程序后,核心将根据用户给定的文查找指定文件的目录项。查找目录的方式可以用顺序查找法,也可用Hash查找法。如果在如果在该已有(存)文件的属性中有不允许写属性,或者创建者不具有对该文件进行修改的2.UNIX系统调用的实现(1)CPU环境保护当用户程序处在用户态,且在执行系统调用命令(即CHMK命令)之前,应在用户空间提供系统调用所需的参数表,并将该参数表的地址送入R0寄存器。在执行CHMK命令后,和代码操作数(code)压入用户核心栈,继而从中断和陷入向量表中取出trap.S的入口地址,然后便转入中断和陷入总控程序trap.S中执行。为了实现系统调用的嵌套使用,在系统中还设置了两个指针,AP,用于指示正在执行的系统调用所需参数表的地址;其二是调用栈帧指针FP,用于指示本次系统调用所保存的数据项。每当出现新的系统调用时,还须将AP和FP压入栈中,图图9-9用户核心栈(3)确定系统调用号系统调用号包含在代码操作数中,故可利用code来确定系统调用号i。其方法是:令i=code&0377若0<i<64,此i便是系统调用号,可根据系统调用号i和系统调用定义表,转向相应的处理子程序。若i=0,则表示系统调用号并未包含在代码操作数中,此时应采用间接参数方式,利用间接参数指针来找到系统调用号。(4)参数传送参数传送是指由trap.C程序将系统调用参数表中的内容从用户区传送到User结构的U.U-arg中,供系统调用处理程序使用。(5)利用系统调用定义表转入相应的处理程序在UNIX系统中,对于不同(编号)的系统调用,都设置了与之相应的处理子程序。为使不同的系统调用能方便地转入其相应的处理子程序,也将各处理子程序的入口地址放入了系统调用定义表即Sysent[]中。在系统中设置了该表之后,便可根据系统调用号i从系统调用定义表中找出相应的表目,再按照表目中的入口地址转入相应的处理子程序,由该程序去完成相应系统调用的特定功能。在该子程序执行完后,仍返回到中断和陷入总控程序中的trap.C程序中,去完成返回到断点前的公共处理部分。(6)系统调用返回前的公共处理在UNIX系统中,进程调度的主要依据是进程的动态优先级。随着进程执行时间的加长,其优先级将逐步降低。每当执行了系统调用命令并由系统调用处理子程序返回到trap.C后,都将重新计算该进程的优先级;另外,在系统调用执行过程中,若发生了错误使进程无法继续运行时,系统会设置再调度标志。处理子程序在计算了进程的优先级后,又去检查该再调度标志是否己又被设置。若已设置,便调用switch调度程序,再去从所有的就绪进程中选择优先级最高的进程,把处理机让给该进程去运行。3.Linux系统调用(1)系统调用组成Linux最多可以有190个系统调用。应用程序和Shell需要通过系统调用机制访问Linux内核(功能)。每个系统调用由两部分组成:①内核函数是实现系统调用功能的(内核)代码,作为操作系统的核心驻留在内存中,是一种共享代码,用C语言书写。它运行在内核态,数据也存放在内核空间,通常它不能再使用系统调用,也不能使用应用程序可用的库函数。②接口函数是提供给应用程序的API,以库函数形式存在Linux的lib.a中,该库中存放了所有系统调用的接口函数的目标代码,用汇编语言书写。其主要功能是:把系统调用号、入口参数地址传送给相应的核心函数,并使用户态下运行的应用程序陷入核心态。(2)工作流程①取系统调用号,检验合法性;③进行地址空间的转换,以及堆栈的切换,进入内核态;④进行中断处理,根据系统调用号定位内核函数地址;⑤根据通用寄存器内容,从用户栈中取入口参数;⑥核心函数执行,把结果返回应用程序。4.Win32的应用程序接口在Windows系统中,定义了一系列的程序,称为Win32API(ApplicationProgramminginterface),用来提供操作系统的服务。通过对Win32API的调用,可以创建各种核心对象,如文件、进程、线程、管道等。每次1.操作系统用户接口中包括哪几种接口?它们分别适用于哪种情况?(1)联机用户接口:终端用户利用该接口可以调用操作系统的功能,获得操作系统提供的(2)脱机用户接口:该接口是专为批处理作业的用户提供的,也称批处理用户接口。操作系统提供了一个作业控制语言JCL(JobControlLanguage),用户使用JCL语言预先写好作2.什么是WIMP技术?它被应用到何种场合?GUI采用了图形化的操作界面,使用WIMP技术。在有了GUI后,在桌面上显示了许多常3.联机命令通常有哪几种类型?每种类型中包括哪些主要命令?(1)系统访问类。包括注册名命令Login、口令命令Password;(2)磁盘操作类。包括磁盘格式化命令Format、复制整个软盘命令Diskcopy、软盘比较命令Diskcomp及备份命令Backup;(3)文件操作类。包括显示文件命令type、拷贝文件命令copy、文件比较命令comp、重新命名命令Rename、删除文件命令erase;(4)目录操作类。包括建立子目录命令mkdir、显示目录命令dir、删除子目录命令rmdir、显示目录结构命令tree、改变当前目录命令chdir;(5)其它命令。包括输入输出重定向命令、管道连接命令、过滤命令、批命令。4.什么是输入输出重定向?举例说明之。定向,用重定向符<和>分别表示输入转向和输出转向。通常,命令的输入取自标准输入设如果使用输入重定向<,则不从键盘而是从重定向符右边的指定文件或设备上取得输入信息。5.何谓管道联接?举例说明之。commandl|command2|….|commandn,表示把command1的输出作为command2的输入,6.为了将已存文件改名,应用什么UNIX命令?7.要想将工作目录移到目录树的某指定结点上,应使用什么命令?8.如果希望把file1的内容附加到原有的文件file2的末尾,应用什么命令?9.试比较mail和write命令的作用有何不同。答:mail命令被作为在UNIX的各用户之间进行非交互式通信的工具。mail采用信箱通信用各自的注册名命名,即它是目录/usr/spool/mail中的一个文件,而文件名又是用接收注册名来命名的。信箱中的信件可以一直保留到被信箱所有者消除为止。因而,用mail进一个用户同时在几个终端上注册,故在用此命writeusername[termina10.联机命令接口由哪几部分组成?答:(1)键盘终端处理程序(2)MS-DOS解释程序(3)Shell解释程序在UNIX或Linux系统中,Shell是作为操作系统的最外层(也称为外壳),是用户及应用11.终端设备处理程序的主要作用是什么?它具有哪些功能?(1)接收用户从终端上键入的字符;(2)字符缓冲,用于暂存所接收的字符;(3)回送显示;(4)屏幕编辑;(5)特殊字符处理。12.命令解释程序的主要功能是什么?13.试说明MS-DOS的命令处理程序COMMAND.COM的工作流程。则暂存部分还须为之建立命令行,再通过执行系统图9-10COMMAND.COM的工作流程答:(1)一条命令行中含有多个命令。如果在一条命令行中仅有一个命令,那么命令解释程序便可以利用简单的命令表找到该命令的命令处理程序。然而在Shell的一条命令行中,释后,应产生多个命令处理程序(进程)。(2)具有不同的分隔符。在一条命令行中的每个命令之间都采取不同的分隔符。在后台执行;如利用"I"分隔符时,要求把前一条命令的输出作为后一条命令的输入。换言15.试举例说明如何建立二又树结构的命令行树。答:(1)命令表型结点如下面的命令行所构成的命令树如图9-11所示:图9-11命令表型结点及其左、右子树(2)管道文件型结点图9-12所示:图9-12管道文件型结点及其左、右子树(3)简单命令型结点部命令也非特殊命令,Shell将认为该命令是一个可执行文件,于是将为它创建一个新进程,并作为Shell的子进程执行,直到子进程运行完毕,又恢复Shell运行。16.试比较一般的过程调用与系统调用。答:系统调用在本质上是应用程序请求OS内核完成某功能时的一种过程调用,但它是一种特殊的过程调用,它与一般的过程调用有下述几方面的明显差别:(1)运行在不同的系统状态。一般的过程调用,其调用程序和被调用程序都运行在相同的状态-系统态或用户态;而系统调用与一般调用的最大区别就在于:调用程序是运行在用户态,而被调用程序是运行在系统态;(2)状态的转换通过软中断进入。由于一般的过程调用并不涉及到系统状态的转换,可直接由调用过程转向被调用过程。但在运行系统调用时,由于调用和被调用过程是工作在不同的系统状态,因而不允许由调用过程直接转向被调用过程。通常都是通过软中断机制,先由用户态转换为系统态,经核心分析后,才能转向相应的系统调用处理子程序;(3)返回问题。在采用了抢占式(剥夺)调度方式的系统中,在被调用过程执行完后,要对系统中所有要求运行的进程做优先权分析。当调用进程仍具有最高优先级时,才返回到调用进程继续执行;否则,将调用进程挂起,以便让优先权最高的进程优先执行。此时,将把调用进程放入就绪队列;(4)嵌套调用。像一般过程一样,系统调用也可以嵌套进行,即在一个被调用过程的执行期间,还可以利用系统调用命令去调用另一个系统调用。当然,每个系统调用对嵌套调用的深度都有一定的限制,例如最大深度为6。但一般的过程调用对嵌套的深度则没有什么限制。17.系统调用有哪几种类型?答:对于一般通用的OS而言,可将其所提供的系统调用分为:进程控制、文件操纵、通信管理、信息维护和设备管理等几大类:(1)进程控制类系统调用主要用于对进程的控制,如创建一个新的进程和终止一个进程的运行,获得和设置进程属性等;(2)文件操纵类系统调用有创建文件、打开文件、关闭文件、读/写文件、建立目录、移动文件的读/写指针、改变文件的属性等;(3)进程通信类系统调用主要用于实现通信机制如消息传递、共享存储区及信息量集机制(4)信息维护类系统调用主要用于获得有关系统和文件的时间、日期信息、操作系统版本、当前用户以及有关空闲内存和磁盘空间大小等多方面的信息;(5)设备管理类系统调用主要用于实现申请设备、释放设备、设备I/O和重定向、获得和设置设备属性、逻辑上连接和释放设备等功能。18.如何设置系统调用所需的参数?答:每一条系统调用都含有若干个参数,在执行系统调用时,将这些参数传递给陷入处理机构和系统内部的子程序(过程),常用的实现方式有以下几种:(1)陷入指令自带方式。陷入指令除了携带一个系统调用号外,还要自带几个参数进入系统内部,由于一条陷入指令的长度是有限的,因此自带的只能是少量的、有限的参数;(2)直接将参数送入相应的寄存器中。MS-DOS便是采用的这种方式,即用MOV指令将各个参数送入相应的寄存器中。系统程序和应用程序显然都可以访问这种寄存器。这种方式的主要问题是由于这种寄存器数量有限,因而限制了所设置参数的数目;(3)参数表方式。将系统调用所需的参数放入一张参数表中,再将指向该参数表的指针放在某个指定的寄存器中。19.试说明系统调用的处理步骤。答:系统调用的处理步骤:(1)在设置了系统调用号和参数后,便可执行一条系统调用命令。不同的系统可采用不同的执行方式。在UNIX系统中,是执行CHMK命令,而在MS-DOS中则是执行INT21软(2)系统调用的处理过程可分成以下三步:首先将处理机状态由用户态转为系统态,之后由硬件和内核程序进行系统调用的一般性处理,即首先保护被中断进程的CPU环境,将处理机状态字PSW、程序计数器PC、系统调用号、用户栈指针以及通用寄存器内容等,压入(3)分析系统调用类型,转入相应的系统调用处理子程序;(4)在系统调用处理子程序执行完后,应恢复被中断的或设置新进程的CPU现场,然后返20.为什么在访问文件之前,要用Open系统调用先打开该文件?户返回一个文件描述符fd。文件被打开后,用户对文件的任何操作都只须使用fd而非路径21.在UNIX系统中是否设置了专门用来删除文件的系统调用?为什么?与此文件之间的连接,并对i.link做加1操作。当用户不再使用此文件时,应利用系统调用unlink去断开此连接,同时对i.link做减1操作。当i.link减1后结果为0,表示已无用户需22.在IPC软件包中包含哪几种通信机制?在每种通信机制中设置了哪些系统调用?(1)消息机制。用户(进程)在利用消息机制进行通信时,必须先利用msgget系统调用来建立一个消息队列。若成功,便返回消息队列描述符msgid,以后用户便可利用msgid去访问该消息队列。用户(进程)可利用发送消息的系统调用msgsend向用户指定的消息队列发送消息;利用msgrcv系统调用从指定的消息队列中接收指定系统调用来建立一个共享存储区,若成功,便返回该共享存储区便可利用shmid去访问该共享存储区。进程在建立了共享存储区之后,还必须再利用shrnat(3)信号量机制。在UNIX系统中所采用的信号量机制,与一般信号量机制相似,允许将23.trap.S是什么程序?它完成哪些主要功能?24.在UNIX系统内,被保护的CPU环境中包含哪些数据项?答:当用户程序处在用户态,且在执行系统调用命令即CHMK命令之前,应在用户空间提供系统调用所需的参数表,并将参数表的地址送入RO寄存器。执行CHMK命令后,处理机将由用户态转为系统态,并由硬件自动地将处理机状态长字(PSL)、程序计数器(PC)和trap.S程序执行后,继续将陷入类型type和用户栈指针usp压入用户核心栈,接着还中断进程的CPU环境中的一系列寄存器如R0~R11的部分或全部压入栈中,这取决于特定寄存器中的屏蔽码,该屏蔽码的每一位都与R0~R11中的一个寄存器相为1时,表示对应寄存器的内容压入栈中。25.trap.C是什么程序?它将完成哪些处理?答:trap.C程序是一个处理各种陷入情况的C语言文件,共有12种陷入的处理要调用trap.C程序(如因系统调用、进程调度中断、跟踪自陷非法指令、访问违章、算术自陷等)。用于26.为方便转入系统调用处理程序,在UNIX系统中配置了什么样的数据结构?相应系统调用所需参数的个数;(2)系统调用经寄存器传送的参数个数;(3)相应系统调用处理子程序的入口地址。在系统中设置了该表之后,便可根据系统调用号1.下列选项中,不可能在用户态发生的事件是()。[2012年统考]A.系统调用B.外部中断C.进程切换D.缺页【答案】C查看答案【解析】判断能否在用户态执行的关键在于事件是否会执行特权指令。首先看A项,系统调用是系统提供给用户程序调用内核函数的,当用户程序执行系统调用时,会使CPU状态从用户态切换至系统态并执行内核函数,执行结束之后将控制权还给用户程序,并且CPU状态从系统态切换至用户态。从这个过程可以看出,虽然系统调用的执B项为外部中断,很多考生会被中断二字影响,认为涉及中断的都应该是系统态的事情,而不能在用户态执行,因此选错。中断在系统中经常发生,如键中断是指由外部事件引起的中断,比如鼠标单击和键盘输入等操作引起的中断);进程缺页输入举例,一个用户进程需要用户输入一串命令,当用户用键盘输入时完成对应功能,然后返回至用户态。系统调用和中断的看D项,缺页与B项类似,用户态执行进程缺页时会产生缺页中断(中断发生在用户态),此D项也可以发生在用户态。根据排除法知道答案是C项,进程切换实际上是对于程序状态的修改,因此要修改程序状2.中断处理和子程序调用都需要压栈以保护现场。中断处理一定会保存而子程序调用不需要保存其内容的是()。[2012年统考]A.程序计数器B.程序状态字寄存器C.通用数据寄存器D.通用地址寄存器【答案】B查看答案断处理程序,处理完之后要返回到发生中断时的指令处继续执行,由于能会切换状态(如果在系统态发生中断则始终为系统理时一定要将PSW压栈保存。需要保护和恢复。因此,子程序调用主要保存局部参数信息等,不需要将PSW压栈。中断处理和子程序调用对其他3个选项的操作都是相同的。3.下列选项中,在用户态执行的是()。[2011年统考]A.命令解释程序B.缺页处理程序C.进程调度程序D.时钟中断处理程序【答案】A查看答案【解析】CPU状态分为管态和目态,管态又称为特权状态、系统态或核心态。通常,操作CPU将指令分为特权指令和非特权指令,对于那些危险的指令,只允许操作系统及其相关是操作系统提供给用户所使用的接口,因此可以用在用户态执行。因此选A项。4.本地用户通过键盘登录系统,首先获得键盘输入信息的程序是()。[2010年统考]A.命令解释程序B.中断处理程序C.系统调用服务程序D.用户登录程序【答案】B查看答案5.下列选项中,操作系统提供给应用程序的接口是()。[2010年统考]A.系统调用B.中断C.库函数【答案】A查看答案【解析】操作系统提供两类接口,一类是命令接口(图形接口是命系统调用(SystemCall)作为呈现给用户的接口,包含了内核提供的一系列具备预定功6.在UNIX系统中,请求调用是采用下列算法中的()算法。【答案】C查看答案【解析】最近最久未使用算法(LRU)。该算法选择在最近一段时间内最久没有使用过的页第10章多处理机操作系统10.1复习笔记1.多处理机系统的引入(1)CPU的时钟频率问题时钟频率来提高计算机运算速度(系统性能)的方法,已经接近了极限。(2)增加系统吞吐量(3)节省投资(4)提高系统可靠性在MPS中,通常都具有系统重构的功能,即当其中任何一个处理机发生故障时,系统可以2.多处理机系统的类型(1)紧密耦合MPS和松散耦合MPS①紧密耦合(TightlyCoupled)MPSa.多处理器共享主存储器系统和I/O设备,每台处理器都可以对整个存储器进行访问,访问时间一般需要10~50ns;b.将多处理器与多个存储器分别相连,或将主存储器划分为若干个能被独立访问的存储器②松散耦合(LooselyCoupled)MPS在松散耦合MPS中,通常是通过通道或通信线路来实现多台计算机之间的互连。每台计算机都有自己的存储器和I/0设备,并配置了OS来管理本地资源和在本地运行的进程。因(2)对称多处理器系统和非对称多处理器系统①对称多处理器系统SMPS(SymmetricMul在系统中所包含的各处理器单元,在功能和结构上都是相同的,当前的绝大多于SMP系统。例如,IBM公司的SR/6000ModelF50,便是利用4片PowerPC处理器构②非对称多处理器系统ASMPS(AsymmetricMultiprocessorSystem)1.UMA多处理机系统的结构(1)基于单总线的SMP结构如图10-1(a)所示,在这种结构的系统中,把多个处理器与一个集中的存储器相连,所有显然这种结构的缺点在于可伸缩性有限。系统中所有CPU对存储器的访问,都需要通过总线进行。可以通过为每个CPU配置一个高速缓存的方法解决此问题。如图10-1(b)所示,这些高速缓存可以可以很大程度地减少该CPU对总线的访问频率,极大地减少总线上的数据流量,以支持更多的CPU。图10-1基于总线的SMP结构(2)使用多层总线的SMP结构 (c)所示。各CPU与本地的私有存储器、I/O设备通过本地总线连接,系统再使用系统(3)使用单级交叉开关的系统结构示,将系统中所有的CPU与存储器结点,通过交叉开关阵列相互连接。每个交叉开关均为其中两个结点(CPU与存储器模块)之间提供一条专用连接通路,从而避免了在多个CPU图10-2使用交叉开关的LIMA多处理机系统交叉开关一般是构成一个N×N的阵列,但在每一行和每一列中,都同时只能有一个交叉点开关处于“开”(即闭合)状态,从而它同时只能接通N对结点。每个存储器模块同时只允许一个CPU结点访问,故每一列只能接通一个交叉点开关,但是③交叉开关的成本为N2,N为端口数,限制了它在大规模系统中的应用,如1000个CPU与1000个存储器模块连接,就需要1百万个交叉点,这在现实中是不可行的。一般只适合于8~16个处理器的中等规模系统。(4)使用多级交换网络的系统结构图10-3(a)是一个最简单的2×2交叉开关,它有两个输入和两个输出。送入任一输入的信关网络,如图10-3(b)所示。图10-3使用多级交换网络的SMP结构示意图如前所述,以上四种SMP体系结构的多处理机系统具有一个共同的特征,就是共享,每一个处理机对系统中所有资源(内存、I/O等)都是共享的。也正是由于这种特征,决定了2.NUMA多处理机系统结构(1)NUMA结构和特点①概述NUMA(Nonuniform-Memory-Access)即非统一内存访问(也称非一致存储访问)。在这种图10-4所示,NUMA拥有多个处理机模块(也称为节点),各节点之间通过一条公用总线(2)分布性图10-4NUMA结构的多处理机系统地址空间,系统中的每一个CPU都可以访问整个系统的内存,但访问时所使用的指令却不c.全局共享存储器或其它节点存储器。显然,每一个CPU访问本地存储器的速度远远高于访问全局共享存储器或远程访问其它节点存储器(远地内存)的速度。(2)CC—NUMA构造方法对于系统中每一个CPU所拥有的若干高速缓存单元,都以一定数量的单元为一组,构成一个高速缓存块,为每个CPU配置一张高速缓存块目录表(下简称目录表),对每一个高速缓存块的位置和状态进行记录和维护。每个CPU的每条访问存储器单元的指令都必须首先远程内存访问由于访问远地内存的延时远远超过本地内存,因此当CPU数量增加时,系统1.多处理机操作系统的特征(1)并行性(3)机间的通信和同步性(4)可重构性2.多处理机操作系统的功能(1)进程管理(2)存储器管理续的地址方式进行描述,即一个处理机无需专门去识别①概述③数据一致性机制当共享主存中的某个数据在多个处理机的局部(本地)存储器中出现时,操作系统应保证这(3)文件管理(4)系统重构3.多处理机操作系统的类型(1)主从式(master-slave)①概述在这种类型的操作系统中,有一台特定的处理机被称为主处理机(MasterProcessor),其它a.易于实现b.资源利用率低c.安全性较差(2)独立监督式(separatesupervisorSystem)有自己的管理程序(操作系统内核),并拥有各自的专用资源,如/J0设备和文件系统。a.自主性强b.可靠性高c.实现复杂理程序副本。此外,虽然每个处理机都有其专用的管理d.存储空间开销大一般地,这类操作系统适用于松散耦合型多处理机系统,由于部)存储器,用来存放管理程序副本,即每台处理机中都驻留了e.处理机负载不平衡(3)浮动监督式(f10atingsupervisorControlMode)中,所有的处理机组成一个处理机池,每台处理机都可对整个系统中的任何一台I/O设备a.高灵活性任一台I/O设备和访问任一存储块,因此大多数任务可在任何一台处理机上运行,使系统b.高可靠性失效,也只需将操作系统浮动(切换)到另一台处理机上运行,从而保证系统仍能继续正常c.负载均衡专门的操作(如I/O中断),分配给那些在特定时段内最不忙的处理机去执行,使系统的d.实现复杂1.集中式与分布式同步方式(1)中心同步实体(2)集中式同步机构(3)集中式与分布式同步算法a.特征b.缺点b.所有结点仅基于本地信息做出判断;(4)中心进程方式该方式是在系统中设置一个中心进程(或称为协调进程),该进程保存了所有用户的存取权限、冲突图(conflictgraph)等信息。每一个要求访问共享资源的进程,都先向中心进程发2.自旋锁(spinlock)(1)自旋锁的引入某CPU在执行原语的过程中由其它CPU争得了总线,就可能会导致该CPU与其它CPU对(2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年岳阳货运从业资格证模拟考试下载什么软件
- 2025私家浴室用品特许经营合同
- 2024年度公共交通设施维修与养护承包合同3篇
- 2024年度人才培训与咨询服务合同5篇
- 2024年教育培训机构在线平台建设合同
- 茶文化产业园租赁联营合同
- 2025标准土地买卖合同范本
- 2024年版:股权转让合同范本(附详细条款)
- 音乐教师招聘协议模板
- 2025印刷品合同样本
- 《玉米合理密植技术》课件
- 科技兴国未来有我主题班会教学设计
- 《不稳定型心绞痛》课件
- 江苏省扬州市邗江中学2025届物理高一第一学期期末学业质量监测试题含解析
- 自媒体宣传采购项目竞争性磋商招投标书范本
- 新保密法知识测试题及答案
- 2023年民航东北空管局人员招聘考试真题
- 2025(新统编版)八年级历史上册 第5单元 大单元教学设计
- 户外施工移动发电机临时用电方案
- 《雁门太守行》说课稿
- 制作拼音卡片-空心涂色A4版本
评论
0/150
提交评论