-
进程管理
为什么处理机要区分核心态和用户态两种操作方式?什么情况下进行两种方式的转换?
为了防止操作系统本身及其关键数据被破坏。
如果CPU执行用户程序时(用户态),出现了中断,系统将自行转到中断处理程序,CPU就由用户态转到核心态,中断处理结束后,返回继续执行用户程序,此时,CPU又由核心态转到用户态中。
系统调用和原语有何相同和不同?它们是特权指令吗?
相同点:原语和系统调用都是通过使用访管指令来实现
不同点:原语由操作系统内核实现,系统调用由系统进程或系统服务程序实现;
原语在执行过程中不可被中断,系统调用执行时允许被中断。
它们不是特权指令。
简述并行和并发的异同。
并发(concurrency):把任务在不同的时间点交给处理器进行处理。在同一时间点,任务并不会同时运行。
并行(parallelism):把每一个任务分配给每一个处理器独立完成。在同一时间点,任务一定是同时运行。
简述程序、作业和进程的异同。
程序是指令的集合;作业是一组相关的任务;进程是正在运行的程序的实例。
一个程序可以是一个作业的一部分,一个作业可以包含多个进程。
简述进程、线程和管程的异同。
进程是一个具有独立功能的程序在某个数据集上的一次运行过程;
线程是进程中的一个实体,是系统独立调度和CPU分配的最小单位;
管程是定义了一个数据结构和在该数据结构上的能为并发进程所执行的一组操作。
进程有哪些特征?
动态性:因创建而产生,因调度而执行,因得不到资源而暂停,因撤销或完成而消亡;
并发性:多个进程同时存在于内存中;
独立性:进程实体是一个能独立运行的基本单位;
异步性:系统中的进程按照各自独立的、不可预知的速度向前推进;
结构性:进程实体具有一定的结构,由程序段、数据段和进程控制块组成。
进程有哪些基本状态?试画出进程的状态转换图。
进程的基本状态:创建态、就绪态、运行态、阻塞态、终止态。
简述进程控制块的作用及其初始化工作过程。
进程控制块记录了操作系统所需要的、用于描述进程情况及控制进程运行所需要的全部信息。
系统创建一个新进程时,为它建立一个PCB;当进程结束时,系统又回收其PCB,该进程也随之消亡。
操作系统中引入线程概念的主要目的是什么?
为了解决进程粒度大、切换开销高、并发程度不高、开销较大的问题。
并发执行过程结果的可再现性的Bernstein条件是什么?
Bernstein条件的一般形式为:
定义R(pi)={a1,a2,a3,...an};W(pi)={b1,b2,b3,...bn};
在以上两个集合元素间满足以下3条关系:
- R(p1) ∩ W(p2) = ∅
- (2) R(p2) ∩ W(p1) = ∅
- (3) W(p1) ∩ W(p2) = ∅
实现线程有几种方法?各有什么优缺点?
继承Thread类
优点:代码简单。缺点:该类无法集成别的类。
实现Runnable接口
优点:继承其他类。同一实现该接口的实例可以共享资源。
实现Callable接口
优点:可以获得异步任务的返回值
线程池方式
优点:实现自动化装配,易于管理,循环利用资源。
简述用户级线程和核心级线程的优缺点。
用户级线程:
优点:线程切换开销小;管理控制方便;健壮、实用性强。
缺点:系统效率较低;CPU资源浪费。
核心级线程:
优点:线程并行性好;操作系统性能和效率高;高效利用CPU资源。
缺点:系统内核的开销和负担较重。
回答下列问题:
- 若系统中没有运行进程,是否就一定没有就绪进程?为什么?
- 若系统中既没有运行进程,也没有就绪进程,那么系统中是否没有进程?请解释。
- 在采用优先级进程调度时,运行进程是否一定是系统中优先级最高的进程?
- 是。因为若系统中没有运行进程,那么系统很快会选择一个就绪进程运行。只有就绪队列中无进程时,CPU 才可以处于空闲状态。
- 不一定。因为系统中的所有进程可能都处于阻塞状态。
- 不一定。因为高优先级的进程可能处在等待队列中,进程调度就从就绪队列中选一个进程占用CPU,这个进程的优先级可能较低。