本文主要是介绍CPU Scheduling,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
进程的执行由CPU执行和I/O等待的周期组成。
Process execution consists of a circle of CPU execution and I/O wait.
抢占式调度也会产生一些问题,比如对共享数据的访问。
Consider the case of two processed sharing data. One may be in the midst of updating the data, when it is preempted and the second process is run. The second process may try to read the data, which are currently in an inconsistent state. New mechanisms thus are needed to coordinate access to shared data.
衡量CPU调度的标准:
CPU利用率、吞吐量、周转时间、等待时间、响应时间。
我们都希望CPU利用率和吞吐量最大,同时周转时间、等待时间、响应时间最小。
调度算法:
1. First-Come, First-Served Scheduling(先到先服务)FCFS
它是最简单的调度算法,但时间较长,而且易使短的进程等待非常长的进程。
2. Shortest-Job-First Scheduling(最短作业优先)SJF
它被认为是最佳的,因为其提供了最短平均等待时间。
3. Priority Scheduling(优先权调度)
4. Round-Robin Scheduling (轮转法)
5. Multilevel Queue Scheduling(多级队列调度)
6. Multilevel Feedback Queue Scheduling(多级反馈队列调度)
这篇关于CPU Scheduling的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!