第三章进程
1、进程的概念:执行中的程序
2、进程与程序的区别
程序不是进程,程序只是被动实体,而进程是活动实体,当一个可执行文件被装入内存时,一个程序才能被称为进程。
* 进程是一个动态概念,程序是一个静态概念;
* 进程有生命周期,有诞生有消亡,短暂的;而程序是相对长久的。
* 进程具有并发性,而程序没有;
* 进程是竞争计算机系统资源的基本单位,其并发性受到系统本身的制约;
* 不同的进程可以包含同一程序,只要程序所对应的数据集不同
3、进程状态及其转换|||||||
新的:进程正在被创建
运行:指令正在被执行
等待:进程等待某个事件的发生
就绪:进程等待分配处理器
终止:进程完成执行
4、进程控制块
每个进程在操作系统中用程序控制块来表示(PCB):包括进程状态、程序计数器、CPU寄存器、CPU调度信息、内存管理信息、记账信息、I/O状态信息
PCB用来保存程序运行期间的重要信息、进程存在的唯一标识、记录了OS所需的用于描述进程及控制进程所需的全部信息、进程与PCB是一一对应的
5、进程调度:选择一个可用的进程到CPU上执行
6、作业队列:保存系统中所有的进程,进程进入系统会被加入作业队列
7、就绪队列:驻留在内存中的、等待运行的程序保存在就绪队列中
8、设备队列:等待I/O设备的进程,每个设备都有自己的设备队列
9、调度程序:进程选择有相应的调度程序执行
10、长期调度(作业调度):选择一个进程进入内存的就绪队列,控制多道程序设计的程度(内存中进程的数量),执行的并不频繁
11、短期调度(CPU调度):从就绪队列中选择一个进程,并为之分配CPU
12、两者区别:执行的频率
13、中期调度:中级调度主要完成虚拟内存管理相关得换入换出操作
14、上下文切换(调度过程):当CPU
切换到另一个进程的时候,系统需要保存老进程的状态,并且加载新进程的状态,上下文切换的时间是系统的额外开销,切换时系统不做任何有用的工作,时间与硬件支持密切相关
15、进程操作:进程创建,进程终止
进程创建:父进程创建子进程,子进程继续创建,从而形成一棵进程树
进程终止:父进程能够中止子进程的执行
16、父进程能够中止子进程的执行的原因:
* 子进程使用了超过它所分配到的一些资源
* 子进程的任务不再需要
* 如果父进程结束了,一些操作系统不允许子进程继续执行
17、对换技术、交换技术:将内存中暂时不能运行的进程,或暂时不用的数据和程序,换出到外存,以腾出足够的内存空间,把已经具备运行条件的进程,或进程需要的数据和程序,换入内存
18、进程分类:I/O为主的进程、CPU为主的进程
19、进程终止实现
第一步:根据被终止进程的标识符,从PCB集合中查找对应进程控制块并读出该进程的状态;
第二步:若被终止进程正处于执行状态,则终止该进程的执行,并设置调度标志为真,用于指示该进程被终止后应重新进行调度,选择一新进程,把处理机分配给它。
第三步:若进程还有子孙进程,应将其所有子孙进程终止,以防它们成为不可控制的。
第四步:将进程所占有的全部资源释放(还给父进程或系统),释放进程控制块(若该进成为执行态,要进行进程调度)。
第五步:将被终止进程(它的PCB)从所在队列(或链表)中移出,等待其他程序来收集相关信息。
20、进程协作的目的:信息共享、提高运算速度、模块化、方便
21、进程间通信基本模式:(1)共享内存(2)消息传递
22、消息传递通过系统调用来实现,速度慢,对于交换较少数量的数据很有用,因为不需要避免冲突。
23、共享内存消息传递速度快,只有在建立共享内存区时需要系统调用