OS调度算法常用摘要
一、常见的批处理作业调度
1.先来先服务调度算法(FCFS):就是依照各个作业进入系统的自然次序来调度作业。这样的调度算法的长处是实现简单,公平。
其缺点是没有考虑到系统中各种资源的综合使用情况,往往使短作业的用户不惬意,由于短作业等待处理的时间可能比实际执行时间长得多。
2.短作业优先调度算法(SPF): 就是优先调度并处理短作业。所谓短是指作业的执行时间短。
而在作业未投入执行时。并不能知道它实际的执行时间的长短。因此须要用户在提交作业时同一时候提交作业执行时间的预计值。
3.最高响应比优先算法(HRN):FCFS可能造成短作业用户不满,SPF可能使得长作业用户不满。于是提出HRN,选择响应比最高的作业执行。响应比=1+作业等待时间/作业处理时间。
4. 基于优先数调度算法(HPF):每个作业规定一个表示该作业优先级别的整数,当须要将新的作业由输入井调入内存处理时,优先选择优先数最高的作业。
5.均衡调度算法,即多级队列调度算法
基本概念:
作业周转时间(Ti)=完毕时间(Tei)-提交时间(Tsi)
作业平均周转时间(T)=周转时间/作业个数
作业带权周转时间(Wi)=周转时间/执行时间
响应比=(等待时间+执行时间)/执行时间
二、进程调度算法
1.先进先出算法(FIFO):依照进程进入就绪队列的先后次序来选择。
即每当进入进程调度,总是把就绪队列的队首进程投入执行。
2. 时间片轮转算法(RR):分时系统的一种调度算法。
轮转的基本思想是。将CPU的处理时间划分成一个个的时间片,就绪队列中的进程轮流执行一个时间片。
当时间片结束时,就强迫进程让出CPU,该进程进入就绪队列,等待下一次调度。同一时候。进程调度又去选择就绪队列中的一个进程。分配给它一个时间片,以投入执行。
3. 最高优先级算法(HPF):进程调度每次将处理机分配给具有最高优先级的就绪进程。最高优先级算法可与不同的CPU方式结合形成可抢占式最高优先级算法和不可抢占式最高优先级算法。
4. 多级队列反馈法:几种调度算法的结合形式多级队列方式。
三、空暇分区分配算法
1. 首先适应算法:当接到内存申请时。查找分区说明表,找到第一个满足申请长度的空暇区,将其切割并分配。此算法简单,能够高速做出分配决定。
2. 最佳适应算法:当接到内存申请时,查找分区说明表,找到第一个能满足申请长度的最小空暇区,将其进行切割并分配。此算法最节约空间,由于它尽量不切割到大的空暇区。其缺点是可能会形成非常多非常小的空暇分区,称为“碎片”。
3. 最坏适应算法:当接到内存申请时,查找分区说明表。找到能满足申请要求的最大的空暇区。该算法的长处是避免形成碎片,而缺点是切割了大的空暇区后,在遇到较大的程序申请内存时,无法满足的可能性较大。
四、虚拟页式存储管理中的页面置换算法
1.理想页面置换算法(OPT):这是一种理想的算法。在实际中不可能实现。该算法的思想是:发生缺页时,选择以后永不使用或在最长时间内不再被訪问的内存页面予以淘汰。
2.先进先出页面置换算法(FIFO):选择最先进入内存的页面予以淘汰。
3. 近期最久未使用算法(LRU):选择在近期一段时间内最久没有使用过的页,把它淘汰。
4.最少使用算法(LFU):选择到当前时间为止被訪问次数最少的页转换。
五、磁盘调度
1.先来先服务(FCFS):是按请求訪问者的先后次序启动磁盘驱动器。而不考虑它们要訪问的物理位置
2.最短寻道时间优先(SSTF):让离当前磁道近期的请求訪问者启动磁盘驱动器,即是让查找时间最短的那个作业先运行,而不考虑请求訪问者到来的先后次序。这样就克服了先来先服务调度算法中磁臂移动过大的问题
3.扫描算法(SCAN)或电梯调度算法:总是从磁臂当前位置開始。沿磁臂的移动方向去选择离当前磁臂近期的那个柱面的訪问者。
假设沿磁臂的方向无请求訪问时,就改变磁臂的移动方向。在这样的调度方法下磁臂的移动类似于电梯的调度。所以它也称为电梯调度算法。
4.循环扫描算法(CSCAN):循环扫描调度算法是在扫描算法的基础上改进的。磁臂改为单项移动,由外向里。当前位置開始沿磁臂的移动方向去选择离当前磁臂近期的哪个柱面的訪问者。假设沿磁臂的方当用于访问没有请求,然后再返回到最外,的气缸工作存取请求的最小数目。
版权声明:本文博主原创文章。博客,未经同意不得转载。
OS调度算法常用摘要的更多相关文章
- iOS - Mac OS X 常用快捷键
Mac OS X 常用快捷键 1)快捷键图标: Escape 为 esc 键 无 Eject 键时用电源键代替 Space Bar 为空格键 2)基本快捷键: command + x 剪切文字 com ...
- OS中常用的调度算法总结 (转)
http://blog.chinaunix.net/uid-25132162-id-361291.html 一.常见的批处理作业调度算法 1.先来先服务调度算法(FCFS):就是按照各个作业进入系统的 ...
- Mac OS 终端常用命令【搜藏】
基础概念 OS X 采用的Unix文件系统,所有文件都挂在跟目录“ /” 下面,所以不在要有Windows 下的盘符概念.比如什么“C:”你在桌面上看到的硬盘都挂在 /Volumes 下.比如接上个叫 ...
- Mac OS 终端常用命令基础
基础概念 OS X 采用的Unix文件系统,所有文件都挂在跟目录" /" 下面,所以不在要有Windows 下的盘符概念.比如什么"C:"你在桌面上看到的硬盘都 ...
- python os模块 常用命令
python编程时,经常和文件.目录打交道,这是就离不了os模块.os模块包含普遍的操作系统功能,与具体的平台无关.以下列举常用的命令 1. os.name()——判断现在正在实用的平台,Window ...
- Python OS模块常用功能 中文图文详解
一.Python OS模块介绍 OS模块简单的来说它是一个Python的系统编程的操作模块,可以处理文件和目录这些我们日常手动需要做的操作. 可以查看OS模块的帮助文档: >>> i ...
- 【python】os模块常用命令
python编程时,经常和文件.目录打交道,这是就离不了os模块.os模块包含普遍的操作系统功能,与具体的平台无关.以下列举常用的命令 1. os.name()——判断现在正在实用的平台,Window ...
- python os模块常用命令
python编程时,经常和文件.目录打交道,这是就离不了os模块.os模块包含普遍的操作系统功能,与具体的平台无关.以下列举常用的命令 1. os.name()——判断现在正在实用的平台,Window ...
- [转]python os模块 常用命令
python编程时,经常和文件.目录打交道,这是就离不了os模块.os模块包含普遍的操作系统功能,与具体的平台无关.以下列举常用的命令 1. os.name()——判断现在正在实用的平台,Window ...
随机推荐
- vc笔记六
通知消息(Notification message)是指这样一种消息,一个窗口内的子控件发生了一些 事情,需要通 知父窗口.通知消息只适用于标准的窗口控件如按钮.列表框.组合框.编辑框,以及 Wind ...
- AMFPHP1.4与PHP5.3及以上版本号不兼容问题的解决
近期在升级PHP5.4版本号,AMFPHP出现了兼容性问题.解决过程记录例如以下. 1.ereg类相关函数改动为preg相关函数. 2.通过错误日志输出的提示.将全部以静态方式调用的类函数加入stat ...
- C语言复合字面量的使用
C99添加的特性,复合字面量(composite literal).一旦熟悉并使用,便会体会到简洁强大的表达. 所谓字面量就是固定数值的表示.数值和字符串类型都有字面量的表达.如: // 100, 1 ...
- Python多线程2:sched
sched模块提供了一个类的事件安排. scheduler类定义 class sched.scheduler(timefunc=time.monotonic, delayfunc=time.sleep ...
- hdu1428之dfs+spfa
漫步校园 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...
- c++程序猿经典面试题
1.请问i的值会输出什么? #include"iostream.h" int i=1; void main() { int i=i; cout<<i<<en ...
- Wix打包系列(三)自定义Action(Custom Action)
原文:Wix打包系列(三)自定义Action(Custom Action) 3.1 关于Action 我们已经知道如何生成具有标准安装界面的安装程序了,Windows Installer按照我们的界面 ...
- 10招让你成为杰出的Java程序员(转)
如果你是一个热衷于技术的 Java 程序员, 那么下面的 10 个要点可以让你在众多 Java 开发人员中脱颖而出. 1. 拥有扎实的基础和深刻理解 OO 原则 对于 Java 程序员,深刻理解 Ob ...
- Android的内存优化
腾讯公司在五月三十一日开展[腾讯Bugly移动开发人员沙龙]大会.大会上面叶方正老师解说了 关于Android的内存优化的问题,只是我感觉叶老师许多其它的站在了測试的角度上去解释了这一方面,叶老师给我 ...
- Django写的投票系统2(转)
在上一篇中 django实例:创建你的第一个应用投票系统(一) 已经介绍基本的功能,并已经启动服务了.这一节介绍数据库相关的东东. 首页打开mysite/settings.py配置文件, 设置数据库打 ...