1.1进程的定义
程序和进程的区别:
程序:是静态的,存放在磁盘上的可执行文件
进程:是动态的,是运行在内存中的程序的执行实例
程序是一些指令的有序集合,而进程是程序执行的过程,进程是程序的一次执行过程,进程的状态是变化的,其包括进程的创建、调度和消亡。
只要程序运行,此时就是进程,程序每运行一次,就会创建一个进程
在linux系统中,进程是管理实务的基本单元。
进程拥有自己独立的处理环境和系统资源(处理器、存储器、I/O设备、数据、程序)
可使用cxec函数由内核讲程序读入内存,使其执行起来成为一个进程。
1.2进程的状态及转换
进程整个生命周期可以简单划分为三种状态:
就绪态
进程已经具备执行的一切条件,正在等待分配CPU的处理时间
执行态
进程正在占用CPU运行
等待态
进程因不具备某些执行条件而暂时无法继续执行的状态。
进程的调度机制
时间片轮转,上下文切换
多进程不是说一个进程执行完再执行另一个进程,而是交替执行的,一个进程执行一段时间然后下一个进程在执行一段时间,以此类推,所有进程执行完后再回到第一个进程继续执行,一次类推
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-V7C1wUcs-1604286961411)(C:\Users\XX\Desktop\smart home\markdown笔记\typora的图片备份\image-20201027144335004.png)]
1.3进程控制块
进程控制块就是用于保存一个进程信息的结构体,又称之为PCB 。
OS是根据PCB来对开发执行的进程进行控制和管理的,系统在创建一个进程的时候会多开辟一段内存空间存放与此进程相关的PCB数据结构。
PCB是操作系统中最重要的记录型数据结构。PCB中记录了用于描述进程进展状况及控制进程运行所需的全部信息。
PCB是进程存在的唯一标志,在Linux中PCB存放在task_struct的结构体中。
调度数据
进程的状态、标志、优先级、调度策略等。
时间数据
创建该进程的时间、在用户态的运行时间、在内核态的运行时间等。
文件系统数据
umask掩码、文件描述符表等。
内存数据、进程上下文、进程标识(进程号)