Coursera 学习记录:操作系统原理(进程线程模型)

2019-07-14 09:12发布

1、多道程序设计技术是操作系统中最早引入的软件技术,引入它的目的是
  • 充分利用内存,有利于数据共享
  • 提高系统的实时响应速度
  • 提高文件系统性能,减少内外存之间的信息传输量
  • 充分利用CPU,提高CPU利用率(多个程序可同时进入内存并运行)
2、下列关于进程控制块PCB的叙述中,哪一个是错误的?
  • 操作系统利用PCB描述进程的基本特征
  • PCB可用于描述进程的运动变化过程
  • PCB通常保存在磁盘上
  • 一个PCB唯一对应一个进程
PCB,进程描述符,操作系统用于管理控制进程的一个专门数据结构,所以是常驻在内存中。
3、在某一条件下,进程会在状态之间相互转换。下列哪一种进程状态转换不会发生?
  • 就绪态→等待态
  • 等待态→就绪态
  • 运行态→等待态
  • 就绪态→运行态
运行 -> 等待 -> 就绪(与运行可相互转换);五状态模式多了创建和终止,等待变成了阻塞;不存在就绪了再回到等待或者阻塞之类;七状态模式多了就绪挂起和阻塞挂起。
4、假设某单处理器计算机系统中有10个进程,则系统中处于等待状态的进程最多有几个?
  • 10
  • 1
  • 9
  • 0
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、在支持线程的操作系统中,同一个进程中的各个线程共享该进程的用户栈。
  • 正确
  • 错误