1、多道程序设计技术是操作系统中最早引入的软件技术,引入它的目的是
- 充分利用内存,有利于数据共享
- 提高系统的实时响应速度
- 提高文件系统性能,减少内外存之间的信息传输量
- 充分利用CPU,提高CPU利用率(多个程序可同时进入内存并运行)
2、下列关于进程控制块PCB的叙述中,哪一个是错误的?
- 操作系统利用PCB描述进程的基本特征
- PCB可用于描述进程的运动变化过程
- PCB通常保存在磁盘上
- 一个PCB唯一对应一个进程
PCB,进程描述符,操作系统用于管理控制进程的一个专门数据结构,所以是常驻在内存中。
3、在某一条件下,进程会在状态之间相互转换。下列哪一种进程状态转换不会发生?
- 就绪态→等待态
- 等待态→就绪态
- 运行态→等待态
- 就绪态→运行态
运行 -> 等待 -> 就绪(与运行可相互转换);五状态模式多了创建和终止,等待变成了阻塞;不存在就绪了再回到等待或者阻塞之类;七状态模式多了就绪挂起和阻塞挂起。
4、假设某单处理器计算机系统中有10个进程,则系统中处于等待状态的进程最多有几个?
5、下列关于进程控制操作的叙述中,哪一个是不正确的?
- 阻塞原语使一个进程变为等待状态
- 撤销进程就是释放该进程占有的内存资源
- 一个进程可以使用创建原语建立一个新的进程
- 唤醒原语使从等待队列中撤出进程
6、下列哪一项工作不是创建进程时所作的?
- 初始化新进程的进程控制块
- 给新进程分配一个唯一标识
- 给新进程分配虚拟地址空间
- 将处理器控制权交给新进程
还有设置相应的队列执政:把新进程加到就绪队列链表中。
7、进程控制原语有多种,下列哪一项不是进程控制原语?
- 改变进程优先级
- 挂起进程
- 进程上下文切换
- 进程唤醒
原语(原子操作)有:进程创建原语、进程撤销原语、阻塞原语、唤醒原语、挂起原语、激活原语、改变进程优先级;
原语要求不可分割、不可中断的连续执行。
8、在UNIX操作系统中运行如下C语言程序:
int main()
{
pid_t pid;
int a=5;
pid = fork();
if (pid==0)
printf ("This is the son process, a=%d
", --a);
else
printf ("This is the dad process, a=%d
", ++a);
}
假设编译链接过程正确且程序正确执行,那么运行结果是
- This is the son process, a=4; This is the dad process, a=6
- This is the son process, a=4
- This is the dad process, a=4; This is the son process, a=6
- This is the dad process, a=6
Fork()
分配给子进程唯一标识pid;从父进程除继承共享资源;将子进程的状态设为就绪,插入到就绪队列;
对子进程返回标识符0;向父进程返回子进程的pid;
9、进程映像由几部分组成,下列哪一项不属于进程映像?
进程映像 = 程序代码+相关的数据结构+内核栈+PCB
10、某操作系统在进程中引入了多个执行序列——线程,那么下列叙述中,哪些描述了进程与线程的联系和区别?
- 进程是资源分配的基本单位
- 线程是资源分配的基本单位
- 线程不能独立于进程而存在
- 进程是处理器调度的基本单位
- 线程是处理器调度的基本单位
进程分配到资源,多个线程可共享此资源。
11、下列各种事件中,一定产生进程状态改变的事件是
- 新进程创建成功
- 运行的进程时间片用完
- 运行的进程正常退出
- 运行的进程因种种原因而阻塞
- 阻塞的进程被唤醒
12、进程运行时,其硬件状态保存在相应寄存器中;当它被切换下CPU时,其硬件状态保存在内核栈中。
13、当某个正在执行的进程需要进行I/O操作时,可以通过调用挂起原语将自己从运行状态变为等待状态。
14、用户级线程执行时,同一进程不同线程的切换不需要内核支持。
15、在支持线程的操作系统中,同一个进程中的各个线程共享该进程的用户栈。