1、全国自考(操作系统)模拟试卷 15 及答案与解析一、单项选择题1 通道是_,它用于数据的传输。(A)管道的一种(B) IO 处理器(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 若系统中有 6 台同类设备,有多个进程均需要使用 2 台,则至多允许_个进程参与竞争,才不会发生死锁。(A)2(B) 3(C) 4(D)58 UNIX 的缓存控制块 buf 不可能同时处于_两个队列中。(A)自由队列和 NODEV 队列(B)设备队列和 IO 请求队列(C)自由队列和设备队列(D)自由队列和 IO 请求队列9 在 UNIX 中,从操作系统管理的角度看,文件类型主要可分为_。(A)普通文件、目录文件和特殊文件(B)系统文件、目录文件和特殊文件(C)数据文件、普通文件和目录文件(D)临时文件、永久文件
3、和特殊文件10 决定 Makefile 依赖行中依赖关系的是文件的_。(A)修改时间(B)创建时间(C)大小(D)存取权限二、填空题11 采用使 CPU 繁忙的进程和_的进程搭配运行,就能均匀地使用系统资源,提高系统的效率。12 静态重定位在程序装入内存时进行,而动态重定位在_时进行。13 写出 UNIX 内核 proc 结构成员 p_sig 的意义:_。14 在 UNIX 系统中,可以用系统调用_操作实现信号量的 semWait 和semSignal 操作。15 在默认的情况下,大多数信号会导致接收进程_。16 用以支持高速设备,每次只对一个设备进行数据传输的 IO 通道称为通道。17 在
4、UNIX 中,文件系统核心管理数据存放在_ 中。18 在 UNIX 的文件系统中,_类型文件,其文件长度总是大于 0 且其长度很小。19 一个利用 Socket 机构与客户机进行远程交互的服务器进程,在与顾客进程进行正式的数据通信之前,先要经过调用_、_、_、_4 个过程。20 在 UNIX 中,系统管理程序和系统配置等文件是放在 _目录中的。三、简答题21 对多处理机操作系统、分布式操作系统和网络操作系统在处理速度和能力、信息共享、设备共享、经济性等方面进行比较。22 在操作系统中有哪几种调度,各种调度所做的主要工作是什么?23 UNIX 的时钟管理主要做什么工作?24 UNIX 的打开文件
5、机构包括哪几个结构?进程打开文件后,文件的当前读写位置、逻辑块号和物理块号的映射各位于哪一个结构中?四、综合题25 操作系统课程有 m 个学生要上机实验,机房共有 n 台计算机(n m) ,每人要占1 台,有一名助教负责检查学生的上机结果。上机完成后学生要等待助教检查,助教等待学生上机完成后,每次检查 1 位学生的上机。检查完毕后,学生就离开计算机,可由下一位等待的学生上机,助教可检查下一位等待检查的学生。试用sereWait、semSignal 操作控制学生的上机和助教的检查过程,说明各个信号量的意义和初值。假定初始时,计算机全部空闲。26 编一个用 UDP 方式进行 Socket 通信的程
6、序。发送方向指定的主机发送一个数据内容为“One data packet。”的数据包,并接收主机发回的一个数据包后显示数据包内容。假设对方主机的 IP 地址为 192168123 234,端口号为 12345。27 编写一个 Shell 程序 showleve12sh,该程序通过调用 Shell 函数实现递归地以层次号和缩进格式显示命令行参数指定的目录和该目录下的全部文件和子目录。如目录参数缺省,显示当前目录的层次结构。请与用 Shell 过程的实现方法做一对比。五、判断题28 编译程序是操作系统的内核软件。( )(A)正确(B)错误29 实时操作系统的设备利用率最高。( )(A)正确(B)错
7、误30 分配空闲内存页时,采用空闲栈或链表比采用位图快。( )(A)正确(B)错误31 Linux 的内存分配和释放算法采用位图和链表相结合的方法。( )(A)正确(B)错误32 一个作业在运行时对应于一个进程。( )(A)正确(B)错误33 系统调用只能在用户态下发出。( )(A)正确(B)错误34 利用信号量能实现进程间的互斥。( )(A)正确(B)错误35 如发生了进程的死锁,计算机就“死机” 了。( )(A)正确(B)错误36 采用独立磁盘冗余阵列的 RAID5 方案,一个磁盘的损坏,不会造成数据的丢失。( )(A)正确(B)错误37 UNIX 系统文件的管理信息存放在磁盘索引节点中。
8、( )(A)正确(B)错误全国自考(操作系统)模拟试卷 15 答案与解析一、单项选择题1 【正确答案】 B2 【正确答案】 C3 【正确答案】 B4 【正确答案】 D5 【正确答案】 C6 【正确答案】 B7 【正确答案】 D8 【正确答案】 D9 【正确答案】 A10 【正确答案】 A二、填空题11 【正确答案】 IO 繁忙12 【正确答案】 执行13 【正确答案】 进程收到的软中断信号14 【正确答案】 semop15 【正确答案】 终止16 【正确答案】 数据选择17 【正确答案】 文件系统超级块(filsys)18 【正确答案】 符号链接(软链接)19 【正确答案】 socket、bi
9、nd、listen、accept20 【正确答案】 etc三、简答题21 【正确答案】 多处理机系统的计算环境主要由微处理机阵列构成,存放在一个相对集中的空间,其运算速度可以达到上千万亿次,相对以前的巨型机来说,成本又低得多,且可靠性强,但其本身的硬件规模很大,软件成本也不小。各个处理机之间信息共享可以通过存储器阵列进行,方便、快速,设备共享与一般主机差别不大。分布式系统具有一个统一的操作系统,它可以把一个大任务划分成很多可以并行执行的子任务,并按一定的调度策略将它们动态地分配给各个计算机执行,并控制管理各个计算机的资源分配、运行及计算机之间的通信,以协调任务的并行执行。以上的管理工作对用户都
10、是透明的,故应用较方便。分布式系统的硬件可以利用原先独立的计算机系统,包括主机系统和各种外部设备,不需要专门配置和购买。将一个大的计算任务分配到很多计算机上执行,比在一台巨型机上执行经济得多。分布式系统也便于实现文件、信息、存储和设备的共享,但是其操作系统很复杂,开发成本很高。计算机网络是指用数据通信系统把分散在不同地方的计算机群和各种计算机设备连接起来的集合,它主要用于数据通信和资源共享,特别是软件和信息共享。网络操作系统与分布操作系统不同,不是一个集中、统一的操作系统,它基本上是在各种各样自治的计算机原有操作系统基础上加上具有各种网络访问功能的模块,通过各类控制与通信软件,使网络上的计算机
11、能方便、有效地共享网络资源,实现各种通信服务的有关协议。通过网络操作系统也能在计算机之间并行地执行任务,如网格计算,一般不需额外的硬件成本,但操作系统较为复杂,且需开发特定的应用软件,共享存储与外部设备也较复杂。22 【正确答案】 在操作系统中有三种调度,它们分别是作业调度、对换调度和进程调度。作业调度决定处于输入池中的哪个后备作业可以调入主系统,做好运行的准备,成为一个或一组就绪进程。对换调度决定处于交换区中的就绪进程中哪一个可以调入内存,以便直接参与对CPU 的竞争。在内存资源紧张时,为了将进程调入内存,必须将内存中处于阻塞等状态的进程调至交换区,以便为调入进程腾出空间。进程调度又称处理机
12、调度,它决定驻在内存中的哪一个就绪进程可以占用 CPU,使其获得实实在在的执行权利。23 【正确答案】 UNIX 时钟管理的主要任务是调整动态优先数、改变影响映像换入换出的进程驻留时间和统计记账时间等,并为一些外设管理提供服务。时钟管理处理过程按照时间间隔分成两类:10ms 处理一次和 1s 处理一次。(1)每隔 10ms 处理的工作如下。计算当前进程在用户态或核心态下的累计运行时间。如中断时进程处于用户态,则将当前 user 内的 u_utime 加 1,否则把 u_stime 加 1,作为统计记账之用。当前运行进程 proc 结构内的 p_cpu 加 1,用于计算进程调度优先数,其实质是降
13、低现运行进程的调度优先权。延时启动终端打印机。为此,输出驱动程序把各种动作延迟时间记在一个数组中。clock 若发现延迟时间到了,则重新启动对应的输出驱动程序。(2)每秒一次处理的工作如下。日历时钟变量 time 加 1。所有进程的内存或对换区的驻留时间 p_time 加 1,以作为程序对换的依据。所有目前未运行进程的 p_cpu 除以 2,以提高等待 CPU 进程的调度优先权。24 【正确答案】 UNIX 的打开文件的管理机构包括三部分,它们是内存索引节点(inode)、系统打开文件控制块 (file 结构)和进程打开文件表(u_offle)。进程打开文件后,文件的当前读写位置(f_off)
14、位于 file 结构中。逻辑块号和物理块号的映射(i_a)位于内存 inode 结构中。进程打开文件表(u_offle)位于 user 结构中。四、综合题25 【正确答案】 各个信号量的意义和初值定义如下。computer:n,空闲的计算机数。check:1,学生完成实验后与助教检查的同步信号量。finish:0,学生完成实验后与助教检查的同步信号量。学生: 助教:while(1) while(1)semWait(computer) semWait(finish)上机,完成实验 检查semSignal(finish) semSignal(check)semWait(check) 等待检查结束s
15、emSignal(computer)。26 【正确答案】 程序清单 24-9 为用 UDP 方式进行 Socket 通信的程序。程序清单 24-9:dupSendc#includestdioh,#includesystypes h#includesyssocketh #includenetinetinh#includenetdb hint port=12345;void main()int sockfd,n;char sendbuf512,recvbuf512 ; 发送和接收缓冲区struct sockaddr_in addr;sockfd=socket(AF_INET,SOCK_DGRAM
16、,0);if(sockfd=-1)perror(“Opening socket“);memset(&addr,0,sizeof(addr); 清除结构中的内容addrsin_family=AF_INET;addrsin_addr s_addr=inet_addr(“192168123 234“) ;addrsin_port=htons(port);sprintf(sendbuf,“One data packetn“) ;发送的数据发送数据包if(sendto(sockfd,sendbuf,sizeof(sendbuf) ,0,(struct sockaddr*)&addr,sizeof(add
17、r)0)perro(“Tring to sendto“);接收数据包n=recvfrom(sockfd,recvbuf,sizeof(recvbuf),0,NULL,NULL);recvbufn=0;fputs(recvbuf,stdout);close(sockfd);dupSendc 把服务器的 IP 地址和端口号添加到 IPv4 的套接字地址结构中,以指明数据包将发往的目的地。程序使用 sendto()发送了一个数据包,然后使用recvfrom()接收一个数据包,并用 fputs()输出到标准输出上。 recvfrom()函数的最后两个参数使用了空指针 NULL,以通知内核,用户对信息来
18、源不感兴趣。27 【正确答案】 程序清单 24-10 中,showlevel2 sh 在初始化后通过调用递归的Shell 函数 showl()实现本题功能。程序清单 24-10:showlevel2 shshowl() #递归的 Shell 函数 showl 的定义if test-d $iterm;thenlv=$levelwhile test $lv-gt 0;do #打印缩进空格echo-n“ “iv=expr $ lv-1doneech $level:iterm #输出层号和目录名(cd $ iterm #在子进程中执行,退出后当前目录恢复为原目录level=expr $level+1f
19、or j in*;doiterm=s j #Shell 函数中变量在递归函数调用中也是可见的showl #递归调用 Shell 函数done)elseiv=$ levelwhile test $lv-gt 0;do #输出层号和文件名echo -n“ “iv=expr $ lv-1doneecho $ level:$ itermfi #Shell 函数 showl 的定义到此结束if test $ #-eq 0;thenshowlevelshelseif!(test -d $ 1);thenecho Usage:$0 direxit1elselevel:0 #Shell 过程中变量对 Shell 函数是可见的,不必 exportiterm=$1showlfifi。五、判断题28 【正确答案】 B29 【正确答案】 B30 【正确答案】 A31 【正确答案】 A32 【正确答案】 B33 【正确答案】 A34 【正确答案】 A35 【正确答案】 B36 【正确答案】 A37 【正确答案】 A