首页 > 系统相关 >进程调度算法

进程调度算法

时间:2023-08-29 15:00:46浏览次数:44  
标签:队列 作业 调度 最短 算法 进程

1、批处理系统中的调度 (1)先来先服务:   ⾮抢占式的调度算法,按照请求的顺序进⾏调度。   有利于长作业,但不利于短作业,因为短作业必须⼀直等待前⾯的长作业执⾏完毕才能执⾏,⽽长作业又需要执⾏   很长时间,造成了短作业等待时间过长。 (2)最短作业优先:   ⾮抢占式的调度算法,按估计运⾏时间最短的顺序进⾏调度。   长作业有可能会饿死,处于⼀直等待短作业执⾏完毕的状态。因为如果⼀直有短作业到来,那么长作业永远得不到   调度。 (3)最短剩余时间优先:   最短作业优先的抢占式版本,按剩余运⾏时间的顺序进⾏调度。   当⼀个新的作业到达时,其整个运⾏时间与当前进程的剩余时间作⽐较。如果新的进程需要的时间更少,则挂起当   前进程,运⾏新的进程。否则新的进程等待。 2、交互式系统中的调度 (1)时间⽚轮转调度   将所有就绪进程按 FCFS 的原则排成⼀个队列,每次调度时,把 CPU 时间分配给队⾸进程,该进程可以执⾏⼀个时   间⽚。当时间⽚⽤完时,由计时器发出时钟中断,调度程序便停⽌该进程的执⾏,并将它送往就绪队列的末尾,同   时继续把 CPU 时间分配给队⾸的进程。 (2)优先级调度   为每个进程分配⼀个优先级,按优先级进⾏调度。为了防⽌低优先级的进程永远等不到调度,可以随着时间的推移   增加等待进程的优先级。 (3)多级队列   ⼀个进程需要执⾏ 100 个时间⽚,如果采⽤时间⽚轮转调度算法,那么需要交换 100 次。   多级队列是为这种需要连续执⾏多个时间⽚的进程考虑,它设置了多个队列,每个队列时间⽚⼤⼩都不同,例如   1,2,4,8,..。进程在第⼀个队列没执⾏完,就会被移到下⼀个队列。这种⽅式下,之前的进程只需要交换 7 次。   每个队列优先权也不同,最上⾯的优先权最⾼。因此只有上⼀个队列没有进程在排队,才能调度当前队列上的进   程。(在优先度同级的基础上采用时间片轮转调度)   可以将这种调度算法看成是时间⽚轮转调度算法和优先级调度算法的结合。 (4)最短进程优先   如果我们将每⼀条命令的执⾏看作是⼀个独⽴的“作业”,则我们可以通过⾸先运⾏最短的作业来使响应事件最短

标签:队列,作业,调度,最短,算法,进程
From: https://www.cnblogs.com/workformyselfandworld/p/17664783.html

相关文章

  • 文心一言 VS 讯飞星火 VS chatgpt (83)-- 算法导论8.1 4题
    四、用go语言,假设现有一个包含n个元素的待排序序列。该序列由n/k个子序列组成,每个子序列包含k个元素。一个给定子序列中的每个元素都小于其后继子序列中的所有元素,且大于其前驱子序列中的每个元素。因此,对于这个长度为n的序列的排序转化为对n/k个序列中的k个元素的排序。试证......
  • 深入理解操作系统中进程与线程的区别及切换机制(下)
    前言上一篇文章中我们了解了进程的执行方式,包括早期单核处理器上的顺序执行以及引入多任务概念实现的伪并行。我们还探讨了进程的状态模型。进程可以处于就绪、运行、阻塞和结束等不同的状态。在本篇文章中,我将探讨研究进程的状态模型、控制结构和切换机制。希望通过这篇文章的......
  • Python+协同过滤算法实现一个简单的图书推荐系统
    背景介绍当我们做一些推荐系统网站时,通常需要合适的推荐算法,下面给大家介绍推荐系统中经典的推荐算法——协同过滤算法。在本文中通过Python语言,以一个图书推荐系统为案例,最终实现一个基于用户对图书的评分而对指定的用户个性化推荐的网站系统。(ps:本文中介绍的是算法的简单示例,......
  • 素性测试--Miller-Rabin算法
    引子今天(23/8/16),老师问了一个有趣的问题:出道题给大家,111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111131111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111是不是素数......
  • Lnton羚通视频分析算法平台【PyTorch】教程:torch.nn.maxpool2d
    torch.nn.MaxPool2d是PyTorch中的一个二维最大池化层。它用于在神经网络中执行最大池化操作,以减少特征图的空间尺寸并提取出主要特征。torch.nn.MaxPool2d的常用语法如下:torch.nn.MaxPool2d(kernel_size,stride=None,padding=0,dilation=1,return_indices=False,ceil_mode......
  • [代码随想录]Day30-贪心算法part04
    题目:860.柠檬水找零思路:收到钱三种情况:5刀:直接收起来就可以了,不需要找钱10刀:收到10刀,需要找5刀,如果没有5刀,就返回false,否则5刀-120刀:收到20刀(但是没用,找钱也不能找20所以不需要记录数量),优先考虑找105,因为10只能在这里用,其次再考虑找555代码:funclemonadeChange(bil......
  • 【数据结构与算法】TypeScript 实现图结构
    classGrapg<T>{//用于存储所有的顶点verteces:T[]=[];//用于存储所有的边采用邻接表的形式adjList:Map<T,T[]>=newMap();//添加顶点addVertex(v:T){this.verteces.push(v);//初始化顶点的邻接表this.adjList.set(v,[]);}......
  • C++算法
    运行前进行卡夫曼滤波(减小机器检测波动的影响)延迟上机算法速率法原理1、判断最新数据点和前面几个点的差值是否大于设定值2、判断两点间的斜率k是否大于设定值3、判断拟合曲线的符合度是否在规定范围内技术实现///\brief直线拟合-一元回归,拟......
  • [apue] 进程环境那些事儿
    main函数与进程终止众所周知,main函数为unixlike系统上可执行文件的"入口",然而这个入口并不是指链接器设置的程序起始地址,后者通常是一个启动例程,它从内核取得命令行参数和环境变量值后,为调用main函数做好安排。main函数原型为:intmain(intargc,char*argv[]);这是I......
  • 探索图结构:从基础到算法应用
    文章目录理解图的基本概念学习图的遍历算法学习最短路径算法案例分析:使用Dijkstra算法找出最短路径结论......