进程概念:
1.程序在执行中
2.一个具有一定独立功能的程序在一个数据集合上的一次动态执行过程,是系统进行资源分配和调度的独立单位。
进程与程序的差别:
·进程----动态, 程序----静态
·进程----有生命周期,短暂的, 程序----相对长久的
·进程----具有并发性, 程序----没有
·进程是竞争计算机系统资源的基本单位,其并发性受到系统本身的制约
·不同进程可以包含同一程序,只要程序所对应的数据集不同
一个进程包括:
·Text section 文本段(代码段)-------程序代码
·program counter 程序计数器----------其值与处理器寄存器的内容共同表示当前活动
·Stack 栈------------------包括临时数据,如函数参数、返回地址和局部变量
·Heap 堆-------------------在进程运行期间动态分配的内存
·data section 数据段-------包括全局变量
下面是进程在内存中的状态:
进程的特征:
进程控制块(PCB),也称任务控制块:
作用:PCB用来保存程序运行期间的重要信息
·进程存在的唯一标识
·记录了OS所需的用于描述进程及控制进程所需的全部信息
·进程状态(process state):状态可包括新的(new)、就绪(ready)、运行(running)、等待(waiting)、终止(teminated)。
·程序计数器(program counter):表示进程要执行的下个指令的地址。
·CPU寄存器(CPU registers):根据计算机体系结构不同,寄存器的数量和类型也不同。
·CPU调度信息(CPU scheduling information):包括进程优先级、调度队列的指针和其他调度参数。
·内存管理信息(Memory-management information):根据操作系统所使用的内存系统,这类信息包括基址和界限寄存器的值、页表或段表。
·记账信息(Accounting information):包括CPU时间、实际使用时间、时间界限、记账数据、作业或进程数量等。
·I/O状态信息(I/O status information):这类信息包括分配给进程的I/O设备列表、打开的文件列表等。
CPU在进程间切换时用到了PCB:
当CPU切换到另一个进程时,系统需要保存老进程的状态,并且加载新进程的状态。
*进程状态图:
进程状态切换:
·就绪-->运行
-调度程序选择一个新的进程运行
·运行-->就绪
-运行进程用完了时间片
-运行进程被中断,因为一高优先级进程处于就绪状态
·运行-->等待
-OS尚未完成服务
-对一资源的访问尚不能进行
-初始化I/O且必须等待结果
-等待某一进程提供输入(IPC)
·等待-->就绪
-当所等待的事件发生时