一、 什么是进程
1、背景
直接根据给定的硬件平台写应用程序程序效率低下,原因在于:
(1)处理器本身只能对多道程序设计提供有限的支持,需要用软件去管理处理器和其他资源,以保证他们可以同时被多个程序共享。
(2)如果多个程序在同一个时间是活跃的,那么需要保护每个程序的数据、I/O使用和其他资源不被其他程序占用。资源包括内存、网络接口和文件系统。
2、进程和进程控制块
(1)进程的两个基本元素是程序代码和代码相关联的数据集。
(2)进程控制块中的信息:
标识符(PID号):区别其他进程的唯一标识符。
状态:如果程序正在执行,程序处于执行态。
优先级:相较于其他程序的优先级。
程序计数器:程序中即将被执行的下一条指令的地址。
内存指针:程序代码和进程相关数据的指针。
上下文数据:进程执行时处理器的寄存器中的数据。
进程控制块包含了充分的信息,这样就可以中断一个进程的执行,并且在后来恢复执行进程时就好像未被中断过。这是操作系统能够支持多进程和提供多处理的关键工具。当进程被中断时,操作系统会把程序计数器和处理器寄存器(上下文数据)保存到进程控制块中相应的位置,进程状态也被改变为其他值。
二、 进程的状态
1、(1)五状态模型
运行态:该进程正在执行。
就绪态:进程做好了准备,只要有机会就开始执行。
阻塞态:进程在某些事件发生之前不能执行,如I/O操作完成
新建态:进程控制块已经创建,但还没有加载到内存当中的新进程。
退出态:从可执行进程组中释放出的进程。
(2)事件转换:
空---新建:将标识符关联到进程,分配和创建管理进程所需要的所有表。但自身还未进入内存。
新建---就绪:操作系统准备好再接纳一个进