class="markdown_views prism-github-gist">
多道程序设计技术是操作系统中最早引入的软件技术,引入它的目的是
* 充分利用内存,有利于数据共享
* 提高系统的实时响应速度
* 提高文件系统性能,减少内外存之间的信息传输量
*
充分利用CPU,提高CPU利用率
下列关于进程控制块PCB的叙述中,哪一个是错误的?
* 操作系统利用PCB描述进程的基本特征
* PCB可用于描述进程的运动变化过程
*
PCB通常保存在磁盘上
* 一个PCB唯一对应一个进程
解析:PCB通常被装载在RAM中。
在某一条件下,进程会在状态之间相互转换。下列哪一种进程状态转换不会发生?
*
就绪态→等待态
* 等待态→就绪态
* 运行态→等待态
* 就绪态→运行态
假设某单处理器计算机系统中有10个进程,则系统中处于等待状态的进程最多有几个?
*
10
* 1
* 9
* 0
下列关于进程控制操作的叙述中,哪一个是不正确的?
* 阻塞原语使一个进程变为等待状态
*
撤销进程就是释放该进程占有的内存资源
* 一个进程可以使用创建原语建立一个新的进程
* 唤醒原语使从等待队列中撤出进程
解析:
释放进程占有的资源只是撤销进程过程的一部分。当进程完成任务或在执行的过程中发生异常时,系统将调用进程终止原语来终止该进程。根据被终止进程的标识符从PCB集合中查找到该进程的PCB,从中读出该进程的状态,终止该进程的执行;若该进程还有子孙进程,应该将其所有子孙进程终止,防止它们成为不可控进程;然后回收进程所拥有的资源,最后将被终止进程从所在队列中移出,等待其它程序来收集信息。
下列哪一项工作不是创建进程时所作的?
* 初始化新进程的进程控制块
* 给新进程分配一个唯一标识
* 给新进程分配虚拟地址空间
*
将处理器控制权交给新进程
进程控制原语有多种,下列哪一项不是进程控制原语?
* 改变进程优先级
* 挂起进程
*
进程上下文切换
* 进程唤醒
解析:进程控制原语包括:进程的建立、进程的撤销、进程的等待和进程的唤醒。
在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
解析:
https://blog.csdn.net/barfoo/article/details/1626938
进程映像由几部分组成,下列哪一项不属于进程映像?
* 程序代码
* 用户栈
*
就绪队列
* 进程控制块
某操作系统在进程中引入了多个执行序列——线程,那么下列叙述中,哪些描述了进程与线程的联系和区别?
*
进程是资源分配的基本单位
* 线程是资源分配的基本单位
*
线程不能独立于进程而存在
* 进程是处理器调度的基本单位
*
线程是处理器调度的基本单位
解析:此题应注意,
线程才是cpu调度的基本单位。
下列各种事件中,一定产生进程状态改变的事件是
* 新进程创建成功
*
运行的进程时间片用完
*
运行的进程正常退出
*
运行的进程因种种原因而阻塞
*
阻塞的进程被唤醒
解析:新进程刚刚创建后将处于新建态,此时并没有被提交执行,操作系统有时将根据系统性能或主存容量的限制推迟新建态进程的提交,之后才可以进入就绪态。
进程运行时,其硬件状态保存在相应寄存器中;当它被切换下CPU时,其硬件状态保存在内核栈中。
* 正确
*
错误
解析:当进程被切换下CPU时,其硬件状态保存在PCB中。
当某个正在执行的进程需要进行I/O操作时,可以通过调用挂起原语将自己从运行状态变为等待状态。
*
错误
* 正确
用户级线程执行时,同一进程不同线程的切换不需要内核支持。
*
正确
* 错误
在支持线程的操作系统中,同一个进程中的各个线程共享该进程的用户栈。
* 正确
*
错误
解析: 一个进程中的所有线程共享该进程的地址空间,但它们有各自独立的栈,而堆才为本进程中所有线程共享。