一、初步认识
1.概念
任对操作系统来说:一个任务就是一个进程
课本概念:程序的一个执行实例,正在执行的程序
内核观点:担当分配系统资源(CPU时间,内存)的实体,具有动态特性
进程来说:系统资源分配的最小单位
二、时间片
操作系统(如Windows、Linux)的任务调度是采用时间片轮转的抢占式调度方式,也就是说一个任务执行一小段时间后强制暂停去执行下一个任务,每个任务轮流执行。(进程的上下文保证时间片轮转的机制)
任务执行的一小段时间叫做时间片,任务正在执行时的状态叫运行状态,任务执行一段时间后强制暂停去执行下一个任务,被暂停的任务就处于就绪状态。
由于CPU的执行效率非常高,时间片非常短,在各个任务之间快速地切换,给人的感觉就是多个任务在“同时进行”,这也就是我们所说的并发。
总结理解:
1. 一个CPU执行所表现出来的。
2. 时间段范围内的操作,不同进程间来回切换。
3. 基于不同进程间进行调度切换的过程
三、并发与并行
- 并发:多个进程在一个CPU下采用时间片轮转的方式,在一段时间内,让多个进程都得以推进,称之为并发。(假同时,基于时间段)
- 并行:多个进程在CPU下,让多个进程分别进行运行,这称之为并行。(真同时,CPU在某个时间点进行对应的任务)
四、内核态和用户态
一般的操作系统对执行权限进行分级:用户态和内核态
- 操作系统内核作为直接控制硬件设备的底层软件,权限最高,称为内核态、或核心态。
- 用户程序的权限最低,成为用户态
五、进程中的上下文
很多地方都可以涉及到上下文。针对于不同的环境。
看作环境,进程在时间片轮转切换时,由于每个进程运行环境不同,就涉及到转换前后的上下文环境的切换。
- 就是一个进程在执行的时候,CPU的所有寄存器中的值、进程的状态以及堆栈上的内容。
- 切换时需要保存当前进程的所有状态(信息的完整性),即保存当前进程的进程上下文,以便再次执行该进程时,能够恢复切换时的状态,继续执行。
六、进程状态就绪:
- 就绪:进程处于可运行的状态,只是CPU时间片还没有轮转到该进程,则该进程处于就绪状态。(程序时可运行的,但是时间片还没有轮转到其运行的时间)
- 运行:进程处于可运行的状态,且CPU时间片轮转到该进程,该进程正在执行代码,则该进程处于运行状态。
- 阻塞:进程不具备运行条件,正在等待某个事件的完成(用户态转换为内核态,什么都干不了;处于系统级申请,权限不足时)