进程调度的基本过程

本文解析了进程概念,介绍了进程控制块(PCB)及其属性,如PID、内存指针、文件描述符表等,详细讲解了进程调度的过程,包括状态、优先级和上下文切换。重点探讨了操作系统如何通过PCB组织和管理进程,以及CPU和内存资源的分配策略。
摘要由CSDN通过智能技术生成

1.什么是进程\任务

打开我们电脑的任务管理器.

进程

我们电脑中的.exe文件,如果我们不去双击运行它的话,他只会静静的躺在你的硬盘空间里,也就是说在我们双击它之前,它不会对我们的系统产生任何影响。但双击执行exe文件后,操作系统就会把这个exe给加载到内存中,让CPU执行exe内部的一些指令。开始进行一些具体的工作,把这些运行起来的可执行文件,称为“进程

进程是操作系统对一个正在运行的程序的一种抽象,换言之,可以把进程看做程序的一次运行过程;同时,在操作系统内部,进程又是操作系统进行资源分配的基本单位

操作系统是如何管理进程的呢?

1.先描述一个进程

(明确一个进程上面的一些相关属性)

首先我要给大家介绍一下 "PCB"(进程控制块)~注意并不是那个参见的PCB板(这个是硬件中的),在操作系统里面主要是通过c/c++来实现相关属性,此处描述其实就是用的c语言中的“结构体” (也就和Java中的类差不多). 操作系统中描述进程的这个结构体,称为 'PCB'

2.再组织若干进程

(使用一些数据结构,把很多描述进程的信息给放到一起,方便进行增删查改)

就是使用双向链表来把每个进程的PCB给串起来~

注意这里指的是在Linux这个系统为例.

所谓的“创建进程”,就是先创建出PCB,然后把PCB加到双向链表中。
所谓的“销毁进程”,就是找到链表上的PCB,并且从链表上删除。
所谓的“查看任务管理器”,就是遍历链表~~

2.进程控制块抽象(PCB  Process Control Block)

PCB中的属性

pid (进程id)

就是进程的身份标识(就像每个人的身份证号一样)

一个主机, 同一时刻, 这些进程的 pid 是唯一的, 可以通过 pid 来区分一个进程

可以在任务管理器上查看 pid

内存指针

指明了这个进程要执行的代码/指令在内存的哪里,以及这个进程执行中依赖的数据都在哪里~~当运行一个 exe ,此时操作系统就会把这个 exe 加载到内存中,变成进程。

文件描述符表

每个进程都可以打开一些文件~~ (文件其实是储存在硬盘上的数据)

文件描述符表厘米就记录了当前进程都打开了那些文件, (打开了之后, 就可以后续针对这些文件进行读写操作了)

进程--是操作系统分配资源的基本单位!!!

进程调度的基本过程

进程的调度,其实就是,操作系统在考虑CPU资源如何给各个进程分配~

上面的属性是一些基础的属性,下面的一组属性,主要是为了能够实现进程的调度~

进程状态

  1. 就绪状态  随时可以去CPU上执行
  2. 阻塞状态  暂时不能去CPU上执行

进程优先级

系统调度的时候, 会根据优先级, 来给进程安排时间~~

创建进程的时候, 可以通过一些系统调用来干扰优先级的~~(相对的)

先给谁分配时间,后给谁分配时间, 以及给谁分的多,给谁分的少

进程上下文

进程在CPU上执行了一会之后, 要切换给其他的进程, 就需要保存当前运行的中间结果(存档), 下次再轮到他执行的时候, 就恢复之前的中间结果(读档), 继续往下执行~~

对于进程来说, 上下文就是CPU中的寄存器的值.

(寄存器的值就包含了运行的中间结果, 需要把这些结果保存到PCB的上下文信息中(内存))

进程记账信息

每个进程再CPU上执行了多久, 统计信息~~

执行进程的时候, 虽然有优先级, 但是还是不希望让有的进程没有COU资源去执行. 

这样可以更加均衡, 避免有的进程完全捞不着CPU执行~~

CPU分配 -- 进程调度

操作系统对CPU资源的分配,采用的是时间模式 --- 不同的进程在不同的时间段去使用 CPU 资源, 

所谓的调度就是进行时间管理

进程的调度,其实就是草错系统在考虑CPU资源如何给各个进程分配

由于操作系统上,同时进行多个进程

如果某个进程,出现BUG,进程崩溃了,是否影响其他进程呢?

依靠“进程的独立性”来保证,依靠与“虚拟地址空间'

进程之间现在通过虚拟地址空间,已经各自隔离开了

但实际工作中进程之间的的时候还是需要相互交互的。
 

内存分配 —— 内存管理

操作系统对内存资源的分配,采用的是空间模式 —— 不同进程使用内存中的不同区域,互相之间不会干扰
 

  • 32
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 29
    评论
评论 29
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

即将秃头的菜鸟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值