本文共 2973 字,大约阅读时间需要 9 分钟。
操作系统原理
引论及进程管理
一、单选题(共20题,60.0分)
操作系统的主要功能有(C)。 A. 进程管理、存储器管理、设备管理、处理机管理
B. 虚拟存储管理、处理机管理、进程管理、文件管理 C. 处理机管理、存储器管理、设备管理、文件管理 D. 进程管理、中断管理、设备管理、文件管理操作系统是对(C)进行管理的软件。
A. 硬件 B. 软件 C. 计算机资源 D. 应用程序当(B)时,进程从执行状态转变为就绪状态。
A. 进程被调度程序选中 B. 时间片到 C. 等待某一事件 D. 等待的事件发生用P、V操作管理临界区时,信号量的初值一般应定义为(C)。
A. -1 B. 0 C. 1 D. 任意值若P、V操作的信号量S初值为2,当前值为-1,则表示有(B)等待进程。
A. 0 B. 1 C. 2 D. 3对于两个并发进程,设互斥信号量为mutex,若mutex=0,则(B)。
A. 表示没有进程进入临界区 B. 表示有一个进程进入临界区 C. 表示有一个进程进入临界区,另一个进程等待进入 D. 表示有两个进程进入临界区下列关于线程的叙述中,正确的是(A)。
A. 线程包含CPU现场,可以独立执行程序 B. 每个线程有自己独立的地址空间 C. 进程只能包含一个线程 D. 线程之间的通信必须使用系统调用函数进程之间交换数据不能通过(C)途径进行。
A. 共享文件 B. 消息传递 C. 访问进程地址空间 D. 访问共享存储区进程与程序的根本区别是(A)。
A. 静态和动态特点 B. 是不是被调入内存 C. 是不是具有就绪、运行和等待三种状态 D. 是不是占有处理器操作系统是根据(B)来对并发执行的进程进行控制和管理的。
A. 进程的基本状态 B. 进程控制块 C. 多道程序设计 D. 进程的优先权在任何时刻,一个进程的状态变化(C)引起另一个进程的状态变化。
A. 必定 B. 一定不 C. 不一定 D. 不可能在单处理器系统中,若同时存在10个进程,则处于就绪队列中的进程最多有(C)个。
A. 1 B. 8 C. 9 D. 10一个进程释放了一台打印机,它可能会改变(C)的状态。
A. 自身进程 B. 输入/输出进程 C. 另一个等待打印机的进程 D. 所有等待打印机的进程PCB 是进程存在的唯一标志,下列(D)不属于PCB。
A. 进程ID B. CPU状态 C. 堆栈指针 D. 全局变量下列对临界区的论述中,正确的是(D)。
A. 临界区是指进程中用于实现进程互斥的那段代码 B. 临界区是指进程中用于实现进程同步的那段代码 C. 临界区是指进程中用于实现进程通信的那段代码 D. 临界区是指进程中用于访问临界资源的那段代码设与某资源关联的信号量初值为3,当前值为1。若M表示该资源的可用个数,N表示等待该资源的进程数,则M、N分别是(B)。
A. 0,1 B. 1,0 C. 1,2 D. 2,0两个旅行社甲和乙为旅客到某航空公司订飞机票,形成互斥资源的是(C)。
A. 旅行社 B. 航空公司 C. 飞机票 D. 旅行社与航空公司用P、V操作实现进程同步,信号量的初值为(D)。
A. -1 B. 0 C. 1 D. 由用户确定有三个进程共享同一程序段,而每次只允许两个进程进入该程序段,若用P、V操作同步机制,则信号量S的取值范围是(A)。
A. 2,1,0,-1 B. 3,2,1,0 C. 2,1,0,-1,-2 D. 1,0,-1,-2有一个计数信号量S:
二、简答题(共2题,10.0分)
1、进程被选中,变为运行状态
2、进程阻塞,进行IO操作,等待磁盘读文件 3、进程阻塞,进行IO操作,等待打印机输出 4、打印结束,阻塞的进程转为就绪状态,排入就绪队列尾部 5、读文件结束,阻塞的进程转为就绪状态,排入就绪队列尾部 6、时间片到,运行状态的进程转为就绪状态,排入就绪队列尾部三、计算题(共3题,30.0分)
5只筷子互斥使用,筷子编号0-4,对应设置五个初值为1的互斥信号量,此外,餐厅仅提供4个位子,需设置初值为4的同步信号量seat管理4个位置,即:
semaphore Chopstick[5]={1,1,1,1,1}; semaphore seat=4; 第i(0≤i≤4)个哲学家就餐过程代码描述如下: Philosopher(i){ while(TRUE){ P(seat); //哲学家申请座位 P(Chopstick[i]); //哲学家申请相邻筷子 Eat(); //哲学家就餐 V(Chopstick[i]); //哲学家归还筷子 V(Chopstick[i+1]); //哲学家归还相邻筷子 V(seat); //就餐完毕,离席 } }有桥如下图所示。车流方向如箭头所示。回答如下问题:假设桥上每次只能有一辆车行驶,试用信号灯的P,V操作实现交通管理。
设置初始值为1的信号量bridge: semaphore bridge = 1; //互斥的使用桥 每辆车通过桥的过程如下: Car(i){ while(TRUE){ P(bridge); //申请上桥 //通过桥 V(bridge); //下桥 } }某博物馆最多可容纳800人同时参观,有一个出入口,该出入口一次仅允许一人通过。参观者的活动描述如下:
cobegin 参观者进程i:{ … 进门;… 参观;… 出门;…} coend请添加必要的信号量和P,V操作(或wait(), signal()],以实现上述过程中的互斥与同步。要求写出完整的过程,说明信号量的含义并赋初值。
semaphore mutex=1; //互斥的来使用出入口
semaphore empty=500; //博物馆中的空位数 void visitor(){ while(true) { P(empty); //当博物馆还有空位的时才能进入博物馆 P(mutex); //可以使用进出口 进门; V(mutex); //通过出去口,就释放占用权 参观; P(mutex); //再次使用出入口 出门; V(mutex); //通过出去口,就释放占用权 V(empty); //出门后释放一个空位 } }转载地址:http://gofnz.baihongyu.com/