简单了解进程调度

本文介绍了进程调度的必要性,探讨了非抢占式和抢占式调度的区别,以及并行与并发的区分。重点讲解了进程控制块(PCB)在记录进程状态、优先级和上下文切换中的关键作用。
摘要由CSDN通过智能技术生成

cup资源是有限的,而进程却可能远多于cup,所以系统需要合理的调配进程来使用cpu,从而防止资源的缺少,而导致有些进程无cpu可用。

进程调度算法

每个进程都想使用cpu,但不可能每个人都分配一个,但也不能让进程一直得不到cup,此时就需要系统对进程和cpu进行管理,让每个进程都能合理的占用cpu,这便是进程调度算法。

不同的调度算法

什么时候会发生 进程调度呢?通常有以下情况:

  1. 当进程从运行状态转到等待状态;
  2. 当进程从运行状态转到就绪状态;
  3. 当进程从等待状态转到就绪状态;
  4. 当进程从运行状态转到终止状态;

其中发生在 1 和 4 两种情况下的调度称为非抢占式调度,2 和 3 两种情况下发生的调度称为抢占式调度

非抢占式的意思就是,当进程正在运行时,它就会一直运行,直到该进程完成或发生某个事件而被阻塞时,才会把 CPU 让给其他进程。

而抢占式调度,顾名思义就是进程正在运行的时,可以被打断,使其把 CPU 让给其他进程。那抢占的原则一般有三种,分别是时间片原则、优先权原则、短作业优先原则。

目前比较流行的操作系统都是抢占式调度。

并发与并行

现在的cpu都是多核心每个核心都可以运行进程,而且每个核心之间互不打扰。

当cpu中多个核心在同一时刻,每一个核心执行一个进程,这就是并行执行。(真正的同时执行)

cpu中的一个核心,在不同时刻,执行不同的进程,执行的进程在极短的时间内不断切换,在人的肉眼中就感觉若干进程像在“同时进行”,这就是并发(多个核心都在做这样的操作)。(虚假的同时执行)

并行就是微观上同时执行。

并发就是宏观上同时执行,微观上是串行。

PCB

一个进程能够不连续得在cpu上被执行,那它是靠什么来记录上次执行到什么位置呢?又是因为什么原因可以再次被调用呢?

而记录这些关键信息的东西就是PCB——进程控制块。

PCB 是进程存在的唯一标识,这意味着一个进程的存在,必然会有一个 PCB,如果进程消失了,那么 PCB 也会随之消失。

PCB包含了什么信息?

  • 进程标识符(PID):标识各个进程,每个进程都有一个并且唯一的标识符;
  • 用户标识符:进程归属的用户,用户标识符主要为共享和保护服务
  • 进程当前状态:如 new、ready、running、waiting 或 blocked 等;
  • 进程优先级:进程抢占 CPU 时的优先级;
  • 内存指针:有关内存地址空间或虚拟地址空间的信息,所打开文件的列表和所使用的 I/O 设备信息。
  • 上下文:用于储存cpu切换前,进程在这个时间段内产生的内容(寄存器->内存),下次再执行到这个进程,只需要将内存中的上下文本读取即可回复。

在其中,进程当前状态、进程优先级、上下文这三个与进程的调度息息相关,状态决定此时是否可以被cpu执行,优先级决定了是否被优先执行,上下文关乎了进程多次被cpu执行如何与上次的位置连接起来。

总结

文章从为何需要进程调度入手,到有什么进程调度,再到并发与并行,为何能够并发,最后到并发的关键——pcb。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值