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 ...
随机推荐
- niu人
金步国简历 金步国简历 基本资料 姓名 金步国 性别 男 年龄 30 籍贯 江苏 淮安 院校 同济大学 专业 土木工程 学历 本科肄业 工作经验 5年 期望地点 长江以南 期望薪水 18000/月 个 ...
- java学习笔记08--泛型
java学习笔记08--泛型 泛型可以解决数据类型的安全性问题,它主要的原理,是在类声明的时候通过一个标识标识类中某个属性的类型或者是某个方法的返回值及参数类型.这样在类声明或实例化的时候只要指定好需 ...
- [置顶] 页面缓存,cache,设置缓存过期时间,OutputCache
页面缓存 方法一: protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { //缓存有数据 if (Cach ...
- java swing设置frame的高度或图标
Toolkit kit = Toolkit.getDefaultToolkit(); Dimension dimension = kit.getScreenSize() ...
- UVA 10245 The Closest Pair Problem 最近点问题 分治算法
题意,给出n个点的坐标,找出两点间最近的距离,如果小于10000就输出INFINITY. 纯暴力是会超时的,所以得另辟蹊径,用分治算法. 递归思路将点按坐标排序后,分成两块处理,最近的距离不是在两块中 ...
- Linux实现字符设备驱动的基础步骤
Linux应用层想要操作kernel层的API,比方想操作相关GPIO或寄存器,能够通过写一个字符设备驱动来实现. 1.先在rootfs中的 /dev/ 下生成一个字符设备.注意主设备号 和 从设备号 ...
- OCA读书笔记(14) - 备份和恢复基本概念
备份恢复概念 如何判断数据库的一致性 在mount状态下,oracle如何判断数据库的一致性 scn:system change number,它是数据库时钟 如何查询当前系统的scn: select ...
- Linux下Apache PHP Mysql默认安装路径
Apache 假设採用RPM包安装.安装路径应在 /etc/httpd文件夹下 Apache配置文件: /etc/httpd/conf/httpd.conf Apache模块路径: /usr/sbin ...
- Loser应该知道的6个残酷人生事实(血泪翻译)
Loser应该知道的6个残酷人生事实(血泪翻译) - Acfun - 天下漫友是一家 Loser应该知道的6个残酷人生事实(血泪翻译)
- 在Mybatis中使用注解@多个參数查询
@Select("SELECT * FROM wc_homework WHERE organization_id=#{classId} ORDER BY createtime DESC LI ...