多任务编程
意义 : 充分利用计算机的资源提高程序的运行效率
定义 : 通过应用程序利用计算机的多个核心达到同时执行多个任务的目的,一次提高计算机运行效率。
实施方案 : 多进程 多线程
并行 : 多个计算机核心在同时处理多个任务,这时多个任务间是并行关系。
并发 : 同时处理多个任务,内核在多个任务间不断的切换,达到好像都在处理运行的效果。但实际一个时间点内核只能处理其中一个任务。
进程(process)
定义 :程序在计算机中的一次运行过程
程序 :是一个可执行的文件。是静态的占有磁盘空间,不占有计算机的运行资源。
进程 :进程是一个动态过程的描述,占有计算机的资源,有一定的生命周期。
* 同一个程序的不同运行过程是不同的进程。占用资源和生命周期都不一样
进程的创建流程
1 用户空间通过运行程序或者调用接口发起创建进程
2 操作系统接收用户请求,开始创建进程
3 操作系统分配计算机资源,确实进程状态,开辟进程空间等工作
4 操作系统将创建好的进程提供给应用程序使用
进程特征
1 进程之间运行互不影响,各自独立运行
2 进程是操作系统资源分配的最小单位
3 每个进程空间独立,各自占有一定的虚拟内存
cpu时间片
如果一个进程占有计算机核心,我们称为该进程占有计算机CPU时间片。
* 多个任务之间是争夺cpu的关系
* 谁占有cpu最终是操作系统决定
PCB(进程控制块)
在内存中开辟的一块空间,用来记录进程的信息
* 进程控制块是操作系统查找识别进程的标志
查看进程信息 : ps -aux
PID(process ID) : 在操作系统中每个进程都有一个唯一的ID号用来区别于其他进程。ID号由操作系统自动分配,是一个大于0 的整数
父子进程 : 在系统中除了初始化进程,每一个进程都有一个父进程,可能有0个或者多个子进程,由此形成父子进程关系。
ps -aux 查看进程的信息
ps -ajx 可查看父进程的PID,字段【PPID】
pstree 查看进程树结构
进程的状态
三态
* 就绪态:进程具备执行条件,等待系统分配资源
* 运行态:进程占有CPU处于运行状态
* 等待态:进程暂时不具备执行条件,阻塞等待满足条件后再执行
五态(三态基础上增加新建态,终止态)
* 新建态: 创建一个新的进程,获取资源的过程
* 终止态: 进程执行结束,资源释放回收的过程