目录
1.进程调度,我们就首先要知道什么是进程。
在操作系统没有引入进程之前,由于CPU一次只能执行一个程序,所以多个程序只能顺序执行,而CPU的速度很快,磁盘、网路等IO的速度很慢,造成CPU会有大量空闲的时间,此时CPU的利用率很低,为了解决CPU的利用率低的问题,操作系统引入了进程以及中断处理,实现了在同一时间段内,多个程序的并发执行,这个程序执行一点,那个程序执行一点,这样并发交替的执行大大提高了CPU的利用率。
1.1 进程的定义
进程(Process):是操作系统进行资源分配的最小单位。一个进程是一个程序的一次执行过程。每启动一个进程,操作系统就会为它分配一块独立的内存空间,用于存储PCB、数据段、程序段等资源。每个进程占有一块独立的内存空间。
理论:是正在运行的程序过程的抽象;
现实: 是一种数据结构,目的在于清晰地刻画动态系统的内在规律,有效管理和调度进入计算机系统主存储器运行的程序。
狭义定义:进程就是一段程序的执行过程。
广义定义:进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。
1.2 进程的结构
- 控制块(PCB)
进程控制块是进程存在的惟一标识,系统通过PCB的存在而感知进程的存在。
1.pid:每个进程需要有一个唯一的身份标识
2.内存指针:exe可执行文件中加载的指令和数据,代码运行过程中的中间结果。
3.文件描述符表:硬盘上存储的数据,往往是以文件为单位进行整理的,进程每次打开一个文件,就会产生一个文件描述符,一组文件描述符放到顺序表中就构成文件描述符表
PCB中还包含着一些进程调度的属性:
1.状态
就绪状态:进程已获得除处理器外的所需资源,等待分配处理器资源;只要分配了处理器进程就可执行。就绪进程可以按多个优先级来划分队列。例如,当一个进程由于时间片用完而进入就绪状态时,排入低优先级队列;当进程由I/O操作完成而进入就绪状态时,排入高优先级队列。
运行状态:进程占用处理器资源;处于此状态的进程的数目小于等于处理器的数目。在没有其他进程可以 执行时(如所有进程都在阻塞状态),通常会自动执行系统的空闲进程。
阻塞状态:由于进程等待某种条件(如I/O操作或进程同步),在条件满足之前无法继续执行。该事件发生 前即使把处理机分配给该进程,也无法运行。
2.优先级
先给谁分配系统资源,后给谁分配系统资源。
3.记账信息
统计了进程在CPU上执行的时间。
4.上下文
保存程序调度切换时正在处理的数据,以及通过程序计数器保存进程切换时程序即将执行的下一步指令。
- 数据段
- 程序段
1.3 进程的状态
操作系统创建进程时,进程处于创建态,CPU调度进程时,进程处于运行态,此时其它已创建的和时间片到的进程就处于就绪态,当然还有些进程在进行磁盘、网络等IO时就处于阻塞态,操作系统销毁进程时,进程就处于终止态。另外,进程还具有静止就绪态和静止阻塞态,处于这两种状态,说明这个进程被操作系统挂起了,操作系统挂起进程,是为了观察和分析进程。
1.4 进程的特点
- 并发性:在同一时间段内,多个进程可以并发执行。
- 异步性:在多个进程并发执行过程中,进程之间互不干扰。
- 动态性:一个进程是一个程序的一次执行过程。
- 独立性:每个进程拥有一块独立的内存空间。
1.5 进程和程序的区别
- 程序是指令和数据的有序集合,是一个静态的概念。而进程是程序在处理机上的一次执行过程,它是一个 动态的概念。
- 程序可以作为一种软件资料长期存在,而进程是有一定生命期的。程序是永久的,进程是暂时的。
- 进程是由进程控制块、程序段、数据段三部分组成;
- 进程具有创建其他进程的功能,而程序没有。
- 同一程序同时运行于若干个数据集合上,它将属于若干个不同的进程,也就是说同一程序可以对应多个进 程。
- 在传统的操作系统中,程序并不能独立运行,作为资源分配和独立运行的基本单元都是进程。
2.进程调度
为什么要进程调度
进程调度的概念比较简单,我们假设在一个单核处理器的系统中,同一时刻只有一个进程可以拥有处理器资源,那么其他的进程只能在就绪队列中等待,等到处理器空闲之后才有计划获得处理器资源来运行。在这种场景下,操作系统就需要从众多的就绪进程中选择一个最合适的进程来运行,这个就是调度器需要做的事情。
2.1 进程到达
一个新的进程到达系统并被添加到就绪队列中
2.2 进程选择
调度器从就绪队列中选择一个进程在CPU上运行. 选择算法可以基于这种标准,如优先级,最短作业优先,循环等.
2.3 上下文切换
当CPU从一个进程切换到另一个进程时,它需要保存第一个进程的当前状态,并加载保存第二个进程的状态. 这被称为上下文切换.
2.4 进程执行
选定的进程在CPU上执行一定的时间,称为时间量. 在此期间,进程可以执行其操作并使用系统资源.
2.5 进程终止
但一个进程完成执行后,他将从系统中删除
2.6 进程抢占
如果高优先级的进程进入就绪队列,而低优先级的进程正在执行,高优先级的进程可以抢占低优先级的进程,从而控制CPU.
2.7 重复
对系统中的每个进程重复上述步骤,知道所有进程完成.