1.什么是进程?
进程指的是操作系统分配资源的基本单位。我们常见的 XX.exe 是可执行程序,存在硬盘上(是静态的),当我们双击它,使它加载到内存中,系统就生成一个“进程”。
2.进程的几种属性
要理解进程调度,首先要明确一下几个有关进程的属性:
PCB:进程控制块;
pid:进程的身份标识;
进程状态:运行、阻碍、就绪等状态;
进程优先级:影响进程运行的先后;
上下文:表示上次进程被调出CPU的时候,程序的执行状态,下次进程再入CPU的时候,就可以恢复之前的状态,然后继续往下运行;
记账信息:统计每个进程都分别被执行了多久,分别都执行了哪些指令,分别都排队等了多久,以便为进程调度提供指导依据(适当关照运行太少的进程);
虚拟空间地址:给每个进程划分空间(虚拟的),使进程直接有间隔,不容易越界;
内存指针:指出某块内存的用途(内存资源);
文件描述符表:每一个文件描述符会与一个打开文件相对应(内存资源);
3.进程调度
进程的创建是一个复杂的过程。首先要创建出一个PCB,再把对应的资源(内存、文件等)传给PCB,最后将PCB插入链表。
CPU的一个核心同一时刻只能处理一个进程,此时其他的进程只能在就绪队列中等待,等到处理器空闲之后才能运行下一个进程。这里就涉及到了进程调度问题。
进程调度分为并发执行和并行执行。
并发执行:CPU每次只执行一个进程(涉及到优先级),进程间的转换很快,宏观上看是多个进程一起运行。
并行执行:每个核心只执行一个进程,但是多个核心同时执行,即多个进程同时执行