进程调度的基本过程
一、进程的概念
进程是一个在运行的程序。程序是一个可执行程序,下载一个程序会得到一个exe和一堆其他的文件。当双击exe时,操作系统会读取加载exe中的各种指令,操作系统会为这个进程分配内存,并让CPU执行这些指令。
二、进程管理
进程本质上也是一种“软件资源”,也是操作系统进行管理的。
进程管理又分两个:
(1)先描述
把一个进程的心里表述出来,通过定义一个类,这个类中包含这个进城的主要信息(操作系统中主要通过C语言实现,用结构体表示),叫做PCB(进程控制块)。
(2)在组织
因为有很多进程,就要用数据结构将他们组织起来,Linux中使用链表组织的。
所以说我们能在任务管理器上看见所有进程,本质上就是遍历了PCB链表,将关键信息放到界面上进行展示。双击exe程序时,就是创建了一个新节点,插入到链表上。退出进程,就是将进程从这个链表中删掉。
三、进程信息
PCB是一个很大的结构体,里面成员很多,不同操作系统上是不同的。但也有些共同特点。
(1)PID进程标识

在一个机器上是唯一的,类似于数据库中的自增主键一样。
(2)内存指针
操作系统中会为每个进程分配一块内存,进程是操作系统分配内存的基本单位,指针白村这些内存的地址。
(3)文件描述表
主要是进程对硬盘的操作,包括打开文件,读/写文件,关闭文件,可以把文件描述表理解成一个顺序表,一个进程想要操作一个文件就是在这个顺序表中插入一个元素,这个元素也能理解成一个结构体,结构体描述了文件的信息
以前任务操作系统,只能同时处理一个进程。现在岁让有很多CPU核心/逻辑处理器,但是还是做不到一个进程一个CPU核心,所以CPU会并行或并发的执行任务。
并行:两个CPU同时执行两个不同的任务
并发:同一时刻一个CPU核心执行一个任务,但是不会一直执行,执行一会他会切换下一个任务,而且速度很快,肉眼看起来就像是同一时刻在执行好多任务。
这些操作对程序员来说都是透明的,换句话说就是程序员感知不到
(4)状态
分为两个:就绪和阻塞,就绪是随时可以放到CPU上执行,阻塞是暂时不能放到CPU上执行
(5)优先级
就是多个进程放在CPU上执行时并不是依照先后顺序
(6)上下文
一个CPU执行多个任务时,从一个任务切换到下一个任务时,要保留上一个任务执行的信息,方便切换到原来任务时能够快速的从上次的结果上继续执行
(7)记账信息
统计记录每个进程在操作系统上执行了多久,确保每个任务都能够执行到。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐



所有评论(0)