进程调度的过程

进程是操作系统中资源分配的基本单位,由PCB(进程控制块)进行描述和组织。PCB包含进程身份、内存指针和文件描述符表等信息。当进程数量超过CPU核心数时,操作系统通过调度算法公平分配执行机会。调度考虑因素包括优先级、状态、记账信息和上下文。此外,虚拟地址空间解决了进程内存访问的安全问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

进程(process)/任务(task):

一个程序运行起来,完成一系列任务的模样。

一个可执行文件是“静态”的,当我们双击运行的时候,操作系统就会把这个可执行文件的关键信息加载到内存中,并且开始运行里面的代码,就形成了一个进程。同时,在操作系统内部,进程又是操作系统进行资源分配的基本单位。

在一个操作系统上,同时跑着这么多的进程,就需要进行管理:管理分为两步,先描述,使用一个类或者结构体,把这个东西有啥特征,都表示出来;再组织,使用一个数据结构,把很多个这样的对象或者结构体给整理到一起。

管理的方式就是使用PCB进程控制块:

PCB(进程控制块)就是一个结构体,这个结构体里包含了一些表示进程的核心信息。

操作系统内核中,就把若干PCB串成了一个双向链表。

PCB中包含的信息:

1.进程的身份识别pid

2.内存指针——操作系统要把一些必要的数据加载到内存中,有些是要运行的指令(代码),有些是运行时依赖的数据(全局变量),内存指针就描述了该进程的内存中哪些部分是指令,哪些部分是数据。

3.文件描述符表——表示了当前进程都打开了哪些文件,在代码中打开一个文件fopen,就会在进程的文件描述符表(顺序表)里给这个文件分配一个表项,每个元素就代表一个打开的文件,对应的数组下标就是文件描述符。

总结:以上三点描述了进程持有哪些系统资源,也认为进程是操作系统中“资源分配”的基本单位。

进程的调度:

为什么会存在进程的调度问题?

当前的计算机,CPU是有限的,但是进程数量是比较多的,经常会出现“进程多,核心数少”的情况,操作系统是要做到尽可能的公平,让每一个进程都有运行的机会,所以就需要进行调度。

调度的方法:

 

用来实现进程的几个的关键的属性:

1.进程的优先级

2.进程的状态

3.进程的记账信息

4.进程的上下文

进程的虚拟地址空间:

为什么会存在进程的虚拟地址空间?

 对于每一个进程使用内存时,可能会存在指针解引用出错,导致指针指向非法的内存地址

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值