1、全国自考(操作系统)模拟试卷 12 及答案与解析一、单项选择题1 UNIX 操作系统是著名的_。(A)分时系统(B)实时系统(C)多道批处理系统(D)分布式系统2 目标代码是在_的阶段中得到的。(A)编辑(B)编译(C)地址重定位(D)执行3 采用交换技术不能_。(A)节省主存空间(B)使进程并发运行(C)实现程序和数据共享(D)实现虚拟存储技术4 竞争计算机系统资源的基本单位是_。(A)作业(B)进程(C)线程(D)程序5 在中断处理程序中,某进程获得了从磁盘上读入的数据,此时该进程的状态将_。(A)从就绪变为运行(B)从运行变为就绪(C)从阻塞变为运行(D)从阻塞变为就绪6 在不同进程之间
2、传递数据,但要用其他机制进行同步与互斥的进程间通信机构是_。(A)管道通信(B)共享存储区(C)消息通信(D)信号量7 UNIX 的信号(signal)可通知进程_。(A)有数据要接收(B)有消息到达(C)发生了异常事件(D)需要同步与互斥8 虚拟设备技术是用共享设备模拟_,从而达到共享、快速的效果。(A)慢速设备(B)系统设备(C)用户设备(D)独占设备9 文件系统采用多级目录结构可以_。(A)节省存储空间(B)缩短文件传送时间(C)解决命名冲突(D)减少系统开销10 在正则表达式中,用于改变后一个特殊字符的含义的符号是_。(A)(B) ?(C) $(D)“二、填空题11 嵌入式系统与普通的
3、计算机系统相比,主要要求具有_性和_性。12 固定分区存储管理把存储空间划分成若干个分区是在_时进行的。13 创建进程最基本的方法是_。14 有 m 个进程共享两个同类临界资源,如使用信号量解决进程间的互斥问题,那么信号量的取值范围为_。15 在银行家算法中,当每一个进程还要申请的资源数大于系统剩余的资源数时,系统就进入了_状态。16 Spooling 系统是以_ 为缓冲区来解决低速的 IO 设备与高速的 CPU 之间的速度匹配问题。17 Linux 能支持许多不同的文件系统原因是它实现了与许多其他的操作系统可以很好兼容的_。18 time 命令的功能是_。19 写出用 fileao、file
4、bo、fileco、filedo 4 个目标文件建立一个静态库的命令_。20 网络文件系统(NFS)中的客户机是通过_ 的方法访问服务器方的资源。三、简答题21 说明段页式存储管理的虚地址结构及由虚地址到实地址的地址变换过程。22 在信号量用于进程间同步时,什么情况下,信号量的初始值要设置为大于等于1,什么情况下,信号量的初始值要设置为 0?在信号量用于进程间互斥时,信号量的初始值能设置为 0 吗?23 UNIX 的打开文件机构包括哪几个结构?进程打开文件后,文件的当前读写位置、逻辑块号和物理块号的映射各位于哪一个结构中?24 UNIX 的某一用户创建了一个占 3 个盘块的文件,创建前 fil
5、sys 的内容如图 246 所示。填出文件生成后 filsys 有关内容,标出有关数值。四、综合题25 现有一个计算进程 Pc 和一个打印进程 Pp,系统提供 n 个缓冲区,初态时所有缓冲区为空。计算进程每次向一个缓冲区写入数据,打印进程从一个缓冲区取出数据,给出程序框图、信号量初值和意义。26 编一个 C 程序,父进程首先设置信号 SIGUSR1 的处理方法和创建无名管道,再创建一个子进程,然后从键盘上读入一个命令串(如 ls-l),并通过无名管道向子进程发送该命令串。之后再向子进程发送软中断信号 SIGUSR1,父进程等待子进程终止。子进程读到命令后,睡眠等待 10 秒,在收到软中断信号
6、SIGUSR1 后,在软中断处理程序中利用例行库中的程序执行,执行该命令串后返回。子进程然后打印 Completed 后终止自己。父进程在子进程完成任务和返回结果状态后结束运行。27 编一 Shell 程序,其命令格式为tree_rmfile dir filename 即在指定的目录 dir 及其所有的子目录树中,查找名字为filename 的文件,若该文件存在,将文件的头 10 行在终端上显示后,询问用户是否删除它,若用户输入“yes”,则删该文件,否则不执行删除操作。注意:dir、filename 的具体值由用户作为 tree_rmfile 的命令行参数输入。五、判断题28 笔记本电脑中安
7、装的操作系统不会是多用户操作系统。( )(A)正确(B)错误29 进程是可以独立执行的程序。( )(A)正确(B)错误30 固定分区式管理可用于多道程序设计系统。( )(A)正确(B)错误31 UNIX 在存储管理中采用的方法是最佳适应算法。( )(A)正确(B)错误32 在 UNIX 操作系统中,系统进程执行系统程序,提供系统功能,用户进程则仅执行用户程序。( )(A)正确(B)错误33 UNIX 的核心函数 wakeup 唤醒睡眠原因为 chan 的睡眠队列中第一个进程。( )(A)正确(B)错误34 超级用户不能用文件的 creat 系统调用实现锁操作。 ( )(A)正确(B)错误35
8、所有进程都被阻塞时,系统就发生了死锁。( )(A)正确(B)错误36 信号不属于程序性中断。( )(A)正确(B)错误37 在 UNIX 系统中,用 open 系统调用打开一个文件后,可以用 fread 或:fwrite读写文件。( )(A)正确(B)错误全国自考(操作系统)模拟试卷 12 答案与解析一、单项选择题1 【正确答案】 A2 【正确答案】 B3 【正确答案】 C4 【正确答案】 B5 【正确答案】 D6 【正确答案】 B7 【正确答案】 C8 【正确答案】 D9 【正确答案】 C10 【正确答案】 A二、填空题11 【正确答案】 可靠、实时12 【正确答案】 系统初始化13 【正确
9、答案】 子进程复制父进程的映像14 【正确答案】 2m-215 【正确答案】 不安全(可能发生死锁)16 【正确答案】 磁盘17 【正确答案】 VFS(虚拟文件系统 )18 【正确答案】 显示程序运行所花费的总时间、核心态花费的时间和用户态花费的时间19 【正确答案】 ar r libfilea filea-do20 【正确答案】 远程过程调用(RPC)三、简答题21 【正确答案】 段页式存储管理系统的逻辑地址可分成三个部分:段号 s、页号p、页内偏移 d。为了进行地址变换,系统为每一个作业建立一张段表,再为每一段建立一张页表。同样,也有一个段表控制寄存器,存放当前作业段表的长度和起始地址。地
10、址变换过程如下。(1)在段表控制寄存器中获得当前运行作业的段表起始地址。(2)将段表起始地址与虚拟地址字中的段号(要扩大段表项长度因子)相加,得到访问段在段表中的表项地址。(3)从段表的表目项中获得该段的页表起始地址,并将其与虚拟地址字中的页号p(要扩大页表表项长度因子)相加,得到当前访问页的页表项地址。(4)从页表表项中得到页架号,并与虚拟地址字中的页内偏移拼成主存物理地址,装入地址寄存器(MA)。(5)根据地址寄存器中地址值访问内存。22 【正确答案】 在信号量用于进程间同步时,如果允许一个进程先执行与同步有关的任务,信号量的初始值要设置为等于 1,如允许多个进程先执行与同步有关的任务,信
11、号量的初始值可设置为大于 1。如果不允许一个或多个进程先执行与同步有关的任务,信号量的初始值要设置为 0。在信号量用于进程间互斥时,信号量的初始值一般不能设置为 0。如设置为 0,进程就不能进入临界区执行,除非假定在初始时,就有一个进程在临界区内执行了,在实际问题中是不会假设并处理这种情况的。23 【正确答案】 打开文件的管理机构包括三部分,它们是内存索引节点(inode)、系统打开文件控制块(file 结构)和进程打开文件表(u_ofile)。进程打开文件后,文件的当前读写位置(f_off)位于 file 结构中。逻辑块号和物理块号的映射(i_a)位于内存 inode 结构中。进程打开文件表
12、(u_ofile)位于 user 结构中。24 【正确答案】 生成前 filsys 的内容如图 247(a)所示。生成了一个占 3 个盘块的文件时,文件系统先分配了 filsys 直接管理的最后的一个空闲盘块 623,并把623 盘块中间接管理的 50 个空闲盘块信息复制到 filsys 中,将间接管理变成直接管理。接着文件系统又为新文件从当前栈顶顺次分配了 900 和 805 两个空闲盘块。filsys 有关空闲存储块管理的内容如图 247(b)所示。四、综合题25 【正确答案】 (1)要设置的信号灯意义及其初值: data=0 无有数据的缓冲区。 buffer=n 有 n 个空闲缓冲区。
13、mutex=1 对缓冲区存取操作的互斥信号量。 (2)计算进程 Pc 和打印进程 Pp 的流程。 计算进程 Pc: 打印进程 Pp: while(1) while(1) 计算出结果; semWait(data); semWait(buffer); semWait(mutex); semWait(mutex); 从缓冲区取出结果; 将数据结果放入缓冲区; sem(mutex); semSignal(mutex) ; semSignal(buffer); semSignal(data); 打印计算结果; 。26 【正确答案】 程序清单 24-3:sigc#includesignalh#includ
14、estringh#includestdlib h#includestdiohchar cmd100;main()int pid,status,chan2;void func();signal(SIGUSR1,func); 设置信号处理方式pipe(chan); 创建无名管道if(pid=fork()close(chan0);printf(“Canmand=“);gets(cmd);write(chan1,cmd,strlen(cmd)+1) ;close(chan1);sleep(5);kill(pid,SIGUSR1) ;wait(&status); 等待子进程终止printf(“statu
15、s=dn“,status);elseclose(chan1);bzero(cmd,sizeof(cmd);read(chan0,cmd ,sizeof(cmd);Sleep(10);printf(“Completedn“);exit(0);void func()system(cmd);。27 【正确答案】 程序清单 24-4:tree_rmfile sh#!binshif test $#-lt 2; thenexitfiif test-d “$1“;thencd “S1“else exitfifor i in*;do #对当前目录中的所有项if test-d $i;then #如是目录tree
16、_rmfilesh$i$2 #递归执行fiif test_f$i;then #如是普通文件if test$i=$2;thenhead $i #显示该文件的头 10 行echo Do you want to delete ityesno?read reply #从键盘读入if test“$reply“=yes;thenrm $ iecho $ i has deletedfififidone。五、判断题28 【正确答案】 B29 【正确答案】 B30 【正确答案】 A31 【正确答案】 B32 【正确答案】 B33 【正确答案】 B34 【正确答案】 A35 【正确答案】 B36 【正确答案】 A37 【正确答案】 B
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1