cpu的调度
2024-10-21 09:44:41
什么是cpu的调度
- 所谓 CPU 调度,就是确定把哪个处于淮备就绪状态的进程移入运行状态。也就是说,CPU调度算法将决定把 CPU 给予哪个进程,以便它能够运行。
两种调度方式
- CPU 调度可以是在一个进程从运行状态切换到等待状态或程序终止时发生的。这种类型的 CPU 调度叫作非抢先调度 (nonpreemptive scheduling),
schedulig),因为对新的 CPU 进程的需要是当前执行进程的活动的结果。 - CPU 调度还可以是在一个进程从运行状态转移到准备就绪状态或一个进程从等待状态转移到准备就绪状态时发生的。它们属于抢先调度 (preemptive scheduling),因为当前运行的进程被操作系统抢占了。
非抢先调度 (nonpreemptive scheduling ):当当前执行的进程自愿放弃了 CPU 时发生的 CPU调度。
抢先调度 ( preemptive scheduing):当操作系统决定照顾另一个进程而抢占当前执行进程的CPU 资源时发生的 CPU 调度。
周期
通常用特殊的标准(如进程的周转周期)水评佑调度算法。所谓周转周期(turnaround time),是从进程进入准备就绪状态到它退出运行狀态的时间间隔。进程的平均周转周期越短越好。
书中介绍的三种调度方法
先到先服务
按照进程就绪的先后顺序来使用CPU,处理器被分配给最先进入就绪队列的进程,进程一单分到CPU的使用权,就一直执行到进程结束或阻塞时才结束。
平均周转周期:(120+180+300+360+410)/5=214
最短作业优先
先给每个进程都设置一个优先级,根据比较优先级来确定下一个执行的进程;
平均周转周期:(50+110+230+410)/5=160
轮询法
分配给调度上CPU的进程,确定了允许该进程运行的时间长度。每个进程会被分配一个时间片,在这个时间片的时间段内,允许进程运行;如果在时间片结束时该进程还在运行,就会剥夺该进程得而CPU并分配给另一个进程;如果该进程在时间片结束前终止或者阻塞,则CPU会立即完成任务并进行切换。这种算法有利于交互式计算,响应的速度快,但是由于进程的切换,时间片轮转法要花费较多的内存开销,而且对于彼此进程间相差较大的有利,而对于进程大小相似或相同的则不利。
平均周转周期:((200+110)+(50+200)+(100+160+70+50)+(150)+(200+110+70+30))/5=300
最新文章
- 这回真的是挤时间了-PHP基础(三)
- ASP.NET的新成员ASP.NET WebHooks
- UVA题目分类
- poj 1008
- Windows 7安装Oracle 10g的方法
- WEB-INF目录下文件复制的几种方式
- UNIX网络编程——客户/服务器程序设计示范(八)
- 行为驱动:Cucumber + Selenium + Java(一) - 环境搭建
- About certificate
- codeforces651----A. Joysticks
- java基础---->;String和MessageFormat的format方法
- 在linux中文件的权限讲解
- Hash碰撞 &; 拒绝服务漏洞
- IntelliJ IDEA 2017版 编译器使用学习笔记(十) (图文详尽版);IDE快捷键使用;IDE关联一切
- Java中String、StringBuffer和StringBuilder的区别
- linux上安装maven
- vuls漏洞扫描工具
- 华为5573+联通4G上网SIM+ROS hap ac-RB962UiGS-5HacT2HnT 上网
- 向ArcGIS的ToolBarControl中添加任意的windows组建的方法[转]
- python中GUI使用小结
热门文章
- PyTables文件格式、PyTables 文件支持的数据类型
- Android Studio: how to remove/update the “Created by” comment added to all new classes?
- https原理(七)其他
- php 合并,拆分,追加,查找,删除数组教程
- Rsync已过时?替代文件同步软件了解一下
- oracle内存管理
- JS篇(003)-请用 js 去除字符串空格?
- linux下nginx的(启动、重启、关闭)
- C++ OnlineJudge
- RDD编程