操作系统第一、二章错题
操作系统第一、二章错题
A就不解释了,用过服务器的都明白。UNIX操作系统采用以全局变量为中心的模块结构,所以导致系统结构较为复杂,表现出来就是模块间的循环调用和文件之间的全局变量问题。排除B。UNIX可以分为外壳层和内核层,内核层有硬件接口和设备驱动、OS一些核心功能(文件管理、内存管理、设备管理等)的底层。核心的外层是系统调用,最外层是Shell,提供用户与UNIX的交互。
脑浆了,最早的肯定是原始操作系统,哈哈
首先可以这么做,因为有一种操作系统叫实时操作系统,那你分时操作系统肯定就没有实时性了,这样是一个办法。但是具体解释如下:
分时操作系统有如下特征:
- 同时性。同时性也称为多路性,指允许多个终端用户同时使用一台计算机,即一台计算机与若干台终端相连接,这些终端上的用户可以同时或基本同时使用这些计算机
- 交互性。用户可以通过终端采用人机对话的形式直接与程序进行交互
- 独立性。系统中多个用户可以彼此独立的工作,互不干扰
- 及时性。用户能在很短时间内获取响应
多道程序设计的特点是宏观上并行,微观上串行。
1)多道。计算机内存中同时存放多道相互独立的程序
2)宏观上并行。同时进入系统的多道程序都处于运行过程中,即先后开始各自的运行,但都未运行完毕
3)微观上串行。内存中的多道程序轮流占有CPU,交替执行。
操作系统有分层法、模块化、宏内核、微内核、外核设计方法,其中模块化的缺点之一就是因为各模块的设计者齐头并进,每个决定无法建立在上一个已验证正确决定的基础上,所以无法找到一个可靠的决定顺序。也就排除了B。
UNIX中的进程状态有:运行态、就绪态、停止态(终止态)、睡眠态(阻塞态)、僵死态。
僵死态的含义是,当一个进程已经推出,它的内存和相关的资源已经被内核释放,但进程表中这个进程项还保留着,以便它的父进程得到它的退出状态。当一个进程退出时,父进程会收到一个信号。一般来说这个信号的句柄会执行wait系统调用,这样就会将处于僵死状态的进程删除,但如果父进程没有这么做,就会导致出现僵死进程。
每个进程在任意时刻只能是四种状态中的一种,题目中问的是每个进程在任意时刻的状态,而不是进程总共有多少种状态
UNIX中的进程由PCB、正文段和数据段三部分组成。其中UNIX内核又为了节省PCB所占的主存空间,把PCB再分为两部分,一部分常驻内存,记录进程调度时必须利用的一些信息,无论进程是否在占用处理器运行,系统都会查询这部分内容,这部分内容的数据结构叫做proc结构。另一部分不常驻内存,当进程不占有处理器时,系统不会对这部分内容进行查询和处置。因此这部分内容可以常驻在磁盘的对换区中,随着用户程序和数据而换进换出主存。
正文段的功能则是在多道程序设计中,有时不同的进程可能要挪用相同的程序。供多个进程共享的程序就称为进程的正文段,正文段是可再入的程序,由不可被修改的程序和常数所组成
进程执行程序时用到的数据组成了数据段,若是进程执行的顺序是非共享的,也就成为了数据段的一部分。UNIX将数据段又分为三部分,分别是用户栈区,用户数据区和系统工作区。
作业语言是编写程序时的使用工具,不需要用户提供
P操作对应wait(S),而V操作对应signal(S)。进程变为等待状态说明下处理机,让出资源,对应signal(S)操作,将S+1
PSW是运算器的一部分,存放两类信息:一类是体现当前指令执行结果的各种状态信息,如有无进位,有无溢出,结果正负,是否为零等。而另一类则存放控制信息,如允许中断,跟踪标志,方向标志等。系统在管态和目态间切换也会用到PSW
在批处理系统中,作业运行有三个阶段:收容阶段、运行阶段、完成阶段。对应状态为:后备状态、运行状态、完成状态。图示如下
(1)收容阶段。操作员把用户提交 的作业通过某种输入方式或SPOOLing系统输入到硬盘上,再为该作业建立JCB(作业控制块,其中保存了系统对作业进行管理和调度所需的全部信息),并把它放入作业后备队列中。相应地、此时作业的状态为“后备状态”。
(2)运行阶段。当作业被作业调度选中后,便为它分配必要的资源和建立进程,并将它放入就绪队列。一个作业从第一次进入就绪状态开始,直到它运行结束前,在此期间都处于“运行状态”。
(3) 完成阶段。当作业运行完成、或者发生异常情况而提前结束时,作业便进入完成阶段,相应的作业状态为“完成状态”。此时系统中的“终止作业”程序会回收已分配给该作业的作业控制块和所有资源,并将作业运行结果信息形成输出文件后输出。
A选项的意思不是实现进程同步不设置信号量,而是信号量的数量不够,比如生产者-消费者问题,我们就需要三个信号量。