首页 > 其他分享 >操作系统CPU调度

操作系统CPU调度

时间:2024-11-10 23:18:48浏览次数:3  
标签:状态 操作系统 程序 调度 进程 CPU

在像MS DOS这样的单编程系统中,当进程等待任何I/O操作完成时,CPU仍然是空闲的。 这是一个开销,因为它浪费时间并导致饥饿问题。 但是,在多程序系统中,CPU在进程的等待时间内不会保持空闲状态,而是开始执行其他进程。 操作系统必须定义CPU将被给予哪个进程。

在多程序系统中,操作系统调度CPU上的进程以获得最大的利用率,此过程称为CPU调度。 操作系统使用各种调度算法来调度过程。

这是短期调度程序的一项任务,用于调度CPU以查找作业池中存在的进程数量。 每当运行进程请求某个I/O操作时,短期调度程序就会保存进程的当前上下文(也称为PCB)并将其状态从运行状态更改为等待状态。 在此期间,进程处于等待状态; 短期调度程序从就绪队列中选择另一个进程并将CPU分配给此进程。 这个过程被称为上下文切换。

进程控制块中保存了什么?

操作系统在进程的生命周期中维护一个进程控制块。 进程终止或终止时,进程控制块将被删除。 有以下信息保存在过程控制块中,并随过程状态而变化。

为什么需要调度?

在多道程序中,如果长期调度程序选择更多的I/O绑定进程,那么大多数时候CPU仍然是空闲的。 操作系统的任务是优化资源的利用。

如果大多数正在运行的进程将其状态从运行状态更改为等待状态,那么系统中可能始终存在死锁。 因此,为了减少这种开销,操作系统需要调度作业以获得CPU的最佳利用率并避免死锁的可能性。

标签:状态,操作系统,程序,调度,进程,CPU
From: https://blog.csdn.net/unbelievevc/article/details/143475647

相关文章

  • 操作系统调度算法
    操作系统使用各种算法来有效地调度处理器上的进程。调度算法的目的最大CPU利用率公平分配CPU最大吞吐量最短周转时间最短的等待时间最短响应时间有以下算法可用于计划作业。1.先来先服务这是最简单的算法。最短到达时间的过程将首先获得CPU。到达时间越少,进程得到CPU的......
  • 操作系统FCFS护航效果
    如果第一个作业的爆发时间是最高的,FCFS可能会受到队列影响。就像在现实生活中一样,如果队列在路上经过,那么其他人可能会被堵塞,直到完全通过。这也可以在操作系统中进行模拟。如果CPU在就绪队列的前端获得较高突发时间的进程,则较低突发时间的进程可能被阻塞,这意味着如果执行中......
  • 【操作系统】4.进程调度算法
    进程调度算法决定了进程在何时、以何种顺序被分配到CPU上执行。不同的调度算法适合不同类型的操作系统和应用需求,以下是一些常用的进程调度算法:1.先来先服务调度(FCFS:First-Come,First-Served)算法原理:按进程到达的先后顺序分配CPU,先到达的进程先被处理。优点:简单易实现,......
  • 【操作系统】3.并发和并行
       并行是指多个任务在同一时刻在多个处理器或者多核处理器上同时执行。并发是指多个任务在同一时间间隔内交替执行,但在任意时刻只有一个任务在执行。   并行需要硬件上的支持,而并发需要软件上的支持。并行是物理上的同时发生,而并发是逻辑上的同时发生。1.定义并......
  • P2123 皇后游戏 / [USACO12JAN] Mountain Climbing S / P1248 加工生产调度 题解
    P2123皇后游戏/[USACO12JAN]MountainClimbingS/P1248加工生产调度先来看P2123。我们把这个特别重要的公式打出来:\[c_{i}=\begin{cases}a_{1}+b_{1}&,i=1\\\displaystyle\max\left\{c_{i-1},\sum_{j=1}^{i}a_{j}\right\}+b_{i}&,2\leqi\leqn\end{......
  • [luogu1248] 加工生产调度 题解
    考虑\(i\)排在\(j\)前的条件是\(a_i+\max(a_j,b_i)+b_j\lea_j+\max(a_i,b_j)+b_i\),然后发现这一坨东西是皇后游戏中的倒数第三个式子,直接转化为\(\min(a_j,b_i)\ge\min(a_i,b_j)\),然后就按皇后游戏中的排序方法就可以了……#include<bits/stdc++.h>#defineintlonglong......
  • [luogu1248] 加工生产调度 题解
    考虑\(i\)排在\(j\)前的条件是\(a_i+\max(a_j,b_i)+b_j\lea_j+\max(a_i,b_j)+b_i\),然后发现这一坨东西是皇后游戏中的倒数第三个式子,直接转化为\(\min(a_j,b_i)\ge\min(a_i,b_j)\),然后就按皇后游戏中的排序方法就可以了……#include<bits/stdc++.h>#defineintlonglong......
  • [luogu1248] 加工生产调度 题解
    考虑\(i\)排在\(j\)前的条件是\(a_i+\max(a_j,b_i)+b_j\lea_j+\max(a_i,b_j)+b_i\),然后发现这一坨东西是皇后游戏中的倒数第三个式子,直接转化为\(\min(a_j,b_i)\ge\min(a_i,b_j)\),然后就按皇后游戏中的排序方法就可以了……#include<bits/stdc++.h>#defineintlonglong......
  • 操作系统学习笔记-5.2设备独立性软件
    文章目录假脱机技术1.假脱机技术的基本概念2.工作原理4.典型应用场景设备的分配和回收设备分配方式安全分配模式和不安全分配模式1.安全分配模式2.不安全分配模式3.安全与不安全模式的区别分配策略1.3分配方法数据结构设备控制表(DCT)设备控制表的组成控制器......
  • %windir% 是一个环境变量,它指向当前操作系统中 Windows 安装目录的路径。它常用于批处
    %windir%是一个环境变量,它指向当前操作系统中Windows安装目录的路径。它常用于批处理文件、命令行或者脚本中,帮助系统或用户快速定位Windows系统文件夹的路径。类似的环境变量还有很多,它们通常用于在操作系统中快速访问重要的文件夹和目录,避免硬编码路径,从而提高脚本的可移植......