简述进程(与程序)的基础知识
一、概述
1、什么是工程(project)
包含编写+编译阶段,组织代码结构,资源,图片等,,,
2、什么是程序(program)
一个可执行的文件(编译完成,运行之前的,片面的)(相当于待办事项todolist之类的)
3、什么是进程(process)
进程是操作系统进行资源分配的最小单位。程序的一次执行过程(开始和结束)
一个程序可以同时启动多个任务/进程。
二、相关概念
1、时间片:
任务执行的一小段时间叫做时间片,任务正在执行时的状态叫运行状态,任务执行一段时间后强制暂停去执行下一个
任务,被暂停的任务就处于就绪状态等待下一个属于它的时间片的到来。
操作系统(如Windows、Linux)的任务调度是采用时间片轮转的抢占式调度方式,也就是说一个任务执行一小段时
间后强制暂停去执行下一个任务,每个任务轮流执行。
这样每个任务都能得到执行,由于CPU的执行效率非常高,时间片非常短,在各个任务之间快速地切换,给人的感觉
就是多个任务在“同时进行”,这也就是我们所说的并发。
2、并发与并行:
并发:多个进程在一个CPU下采用时间片轮转的方式,在一段时间之内,让多个进程都得以推进,称之为并
发。并发是假同时
并行:多个进程在多个CPU下分别,同时进行运行,这称之为并行。并行是真同时
3、内核态和用户态:
操作系统内核作为直接控制硬件设备的底层软件,权限最高,称为内核态,或核心态。
用户程序的权限最低,称为用户态。
4、进程的上下文:
就是一个进程在执行的时候,CPU的所有寄存器中的值、进程的状态以及堆栈上的内容。 切换时需要保存当前进程的所有状
态,即保存当前进程的进程上下文,以便再次执行该进程时,能够恢复切换 时的状态,继续执行。
5、进程状态:
6、常见的发生进程切换的场景:
(1)、有一个更高优先级的进程过来(抢占式OS)
(2)、任务完成(进程结束)
(3)、每个进程都事先分配好时间片,时间到达后,切换
(4)、当前进程正在等待一个外部事件(阻塞)