进程定义
- 是计算机中已经运行的程序
- 是系统进行资源分配和调度的一个独立单位。
进程的特性
- 独立性:进程在内存中可以独立寻址,每个进程都有一个独立的堆栈空间。
- 动态性:进程在执行过程中可以申请资源、使用资源、释放资源。
- 并发性:多个进程可以同时运行在不同的处理器上,它们之间可以协同工作,也可以竞争资源。
进程控制块
进程控制块(Process Control Block, PCB)是操作系统用来管理进程的数据结构,存储了进程的状态、运行历史、资源分配等信息。
重要性:
- 状态记录:PCB中记录了进程的当前状态,如新建态、就绪态、运行态、阻塞态和结束态。
- 资源管理:PCB中包含了进程对系统资源的请求和分配情况,包括CPU时间、内存空间、I/O设备等。
- 通信机制:PCB可能包含进程间通信的相关信息,如信号量、邮箱等。
- 调度信息:PCB中还可能有进程的调度信息,如优先级、调度策略等。
上下文切换
五状态模型
进程在执行过程中会经历不同的状态转换,主要包括:
- 新建态:进程刚被创建,尚未准备好运行。
- 就绪态:进程已准备好运行,等待CPU分配。
- 运行态:进程正在CPU上执行。
- 阻塞态:进程因等待资源而暂停执行。
- 退出态:进程执行完毕,将被移除。
通过上面PCB可知,进程状态转换是通过改变PCB中的相关信息来实现的。
-
新建态(New):
进程刚被创建,尚未进入就绪队列。
-
就绪态(Ready):
进入就绪队列,等待系统分配处理器资源。
-
运行态(Running):
已获取CPU的资源,其程序正在执行。
单处理机系统中,只有一个进程或处于执行态。多处理机系统可多个进程同时执行。
-
阻塞态(Blocked):
因等待资源而等待执行,当执行条件达到时(分配到资源)就转化为就绪态。
-
退出态(Exit):
表示进程已完成执行,释放资源后,退出系统。
在某些操作系统中,进程状态可能还包括:
- 挂起就绪态(Ready Suspended):进程具备运行条件,但目前在外存中,等待对换到内存中执行。
- 挂起等待态(Blocked Suspended):进程因等待事件而在外存中暂停执行。
状态转换过程
-
新建态→就绪态:当操作系统完成进程创建的必要操作,且系统资源允许时,进程将转变为就绪态。
-
就绪态→运行态:当进程获得CPU时间片,且没有其他更高优先级的进程时,进程将开始执行。
-
运行态→等待态:当进程需要等待资源,如外设传输或人工干预时,它将转变为等待态。
-
等待态→就绪态:当进程等待的事件发生,如外设传输完成,进程将转变为就绪态。
- 运行态→退出态:当进程到达自然结束点或发生无法克服的错误时,它将转变为退出态。