#Chapter 5 -- Operating System
来源:互联网 发布:ibm医疗大数据 编辑:程序博客网 时间:2024/05/17 19:14
Operating System -- Chapter 5
CPU Scheduling
Basic Concepts
多道程序设计的目的是在任何时候都有某些进程在运行。
CPU-I/O Burst Cycle
进程执行由CPU执行和I/O等待周期组成,进程在这两个状态之间切换。进程执行从CPU 区间 (CPU burst)开始,在这之后是I/O区间 (I/O burst)
CPU Scheduler
Preemptive Scheduling
CPU调度决策可在如下四种环境下发生:
- 当一个进程运行状态切换到等待状态(running -> wait)(例如,I/O请求、调用wait等待子进程的终止)
- 当一个进程从运行状态切换到就绪状态(running -> ready)(例如,当出现中断)
- 当一个进程从等待状态切换到就绪状态(wait -> ready)(例如,I/O完成)
- 当一个进程终止(running -> terminal)
对于1和4,没有选择而只有调度。一个新进程(如果就绪队列中已有一个进程存在)必须被执行。对于2和3,可以进行选择。
当调度只能发生在1和4时,称为非抢占的或者说协作的 ;否则为抢占的
Dispatcher
分派程序是一个模块,用来将CPU的控制交给短期调度程序选择的进程。功能包括:
- 切换上下文
- 切换到用户模式
- 跳转到用户程序的合适位置,以重新启动程序
分派程序停止一个进程而启动另一个所花的时间称为分派延迟
Scheduling Criteria
- CPU utilization:CPU使用率
- Throughput:吞吐量,一个时间单元内完成进程的数量
- Turnaround time:周转时间,从进程提交到进程完成的时间,为所有时间段之和,包括等待进入内存、在就绪队列中等待、在CPU上执行和I/O执行
- Waiting time:等待时间,在就绪队列中等待所花费的时间和
- Response time:响应时间,从提交请求到产生响应的时间
Scheduling Algorithms
First-come-first-serve(FCFS) scheduling
先到先得
Shortest-Job-First (SJF) Scheduling
将每个进程与其下一个CPU区间段相关联。最短下一个CPU区间
SJF算法的真正困难是如何知道下一个CPU区间的长度。对于批处理系统的长期(作业)调度,可以将用户提交作业时所指定的进程时间极限作为长度。
以下我没看懂,所以暂时贴出来,引用标注一下P140
虽然SJF算法最佳,但是它不能在短期CPU调度层次上加以实现。因为没有办法知道下一个CPU区间的长度。一种方法是近似SJF调度
SJF算法可能是抢占的或者非抢占的。当一个新进程达到就绪队列时,如果新进程有更短的下一个CPU时间,则抢占当前进程,称为抢占SJF或者最短剩余时间优先调度
Priority Scheduling
每个进程都有一个优先级相关联。SJF是优先调度算法的一个特例,只是以时间作为优先级的判断标准。
优先调度算法的一个主要问题是无穷阻塞或饥饿 ,低优先级的进程无穷等待CPU
解决方法之一是老化 。逐步增加在系统中等待很长时间的进程的优先级
Round-robin scheduling
轮转法调度算法是专门为分时系统设计的。它类似于FCFS算法,但是增加了抢占以切换进程。定义一个较小的时间单元,时间片 ,通常为10-100ms。将就绪队列作为循环队列。CPU调度程序循环就绪队列,为每个进程分配不超过一个时间片的CPU。
RR算法的性能很大程度上依赖于时间片的大小。如果时间片非常大,RR算法就和FCFS算法一样。如果过小的话,RR算法称为处理器共享
Multilevel Queue
多级队列调度算法将就绪队列分成多个独立队列。根据进程的属性,如内存大小、进程优先级、进程类型等,一个进程被永久地分到一个队列。每个队列有自己的调度算法。如前台进程采用RR算法调度,后台采用FCFS算法调度。另外,队列之间必须有调度,通常采用固定优先级抢占制度 ,例如,前台队列可以比后台队列具有绝对的优先级。
Multilevel Feedback Queue
多级反馈队列调度允许进程在队列之间移动。如果进程使用过多的CPU时间,那么它将会被移动到更低的优先级队列中去,在较低优先级队列中等待时间过长的程序将会被移到更高的优先级队列。
Multiple-Processor Scheduling
···
- #Chapter 5 -- Operating System
- Chapter 4 -- Operating System
- Chapter 3 : Process -- Operating System
- CC150 16 chapter operating system
- 《modern operating system》 chapter 5 Input and output 笔记
- 《modern operating system》 chapter 6 DEADLOCKS 笔记
- Chapter 2-3 Operating-System Structure
- Chapter 9 The Development of Computer Operating System
- 《modern operating system》 chapter 3 MEMORY MANAGEMENT 笔记
- Operating System
- Operating System
- operating system -->operating system view
- Operating System 文章链接
- Disk Operating System
- OS (Operating System Hierachy)
- ROC Robot Operating System
- error loading operating system
- Tuning the Operating System
- OpenGL基础
- Android的事件分发(二)
- CUDA从入门到精通
- Jquery autocomplete 下拉项显示图片
- 基于IBM Bluemix开发微信公共账号应用
- #Chapter 5 -- Operating System
- C++算法之——常用算法总结
- 发外链难还是建站难www.lanilani.cn
- 58 css 改变input type=file样式 placeholder属性
- 6.23 Block封装post异步网路请求& AFNetworking第三方封装
- nginx tomcat集群配置实现无痛重启服务教程python语言版本
- ZOJ_3795 Grouping(强连通分量 拓扑)
- 3038(HDU)
- Ubuntu下修改DNS方法(重启后也保留)