进程调度的功能与时机

一、进程调度的功能

进程调度功能由操作系统内核的进程调度程序完成,在Linux

内核中,进程调度功能的实现从调用内核函数schedule()开始。进程调度的功能是按照某种策略和算法从就绪态进程中为当前空闲的CPU选择在其上,运行的新进程。

二、进程调度的时机

当一个进程运行结束(包括正常结束和异常结束)、进程阻塞、中断返回、在支持抢占式调度的系统中有比当前运行进程优先级更高到来、当前运行进程的时间片用完时,系统都会通过执行进程调度程序重新进行进程调度。

第二节 进程调度算法

进程调度算法是指从就绪态进程中选择一个或几个为其CPU,使其进入执行态的算法。也就是说进程调度算法要“决定”把CPU 分配给就绪队列中的哪个进程。进程调度由操作系统内核中的进程调度程序完成。

一、选择调度方式和算法的若干准则

不同的调度算法有不同的特点,为了根据特殊应用领域的要求选择合适的调度算法,可以以下准则作为选择依据。

1.周转时间短

周转时间指从作业被提交给系统开始,到作业完成为止的这段时间间隔。

2. 响应时间快:

响应时间是指从用户提交一个请求开始直至系统首次产生响应的时间,它包括3部分时间:从输入设备(如键盘、鼠标)输入的请求信息传送到处理机的时间、处理机对请求信息进行处理的时间,以及将所行行程的响应信息传送到处理机的时间。对于交互式系统,响应时间是衡量系统时间性能的重要指标。进程调度算法和输入/输出设备的速度都会影响系统的响应时间。

3. 截止时间的保证:

截止时间是指某个任务必须开始执行的最迟时间,或必须完成的最迟时间。截止时间是评价实时系统性能的重要指标。在实时系统中,若实时系统计算的正确性不仅必须采取特殊的调度策略和调度算法来满足对截止时间的要求。

4. 系统吞吐量高:

吞吐量是指单位时间内完成的作业数。系统的吞吐量是评价系统性能的重要指标之一,调度算法影响系统的吞吐量。

5. 处理机利用率好:

CPU是计算机系统中影响时间性能的重要的硬件资源,在多任务系统中,进程调度算法对CPU的利用率有很大影响。因此,在选择和设计进程调度算法时应该考虑使CPU的利用率尽可能高。

二、先来先服务调度算法(First-Come,First-Served,FCFS)

(1)调度算法

在进度调度中,FCFS就是从就绪队列的队首选择最先到达就绪队列的进程,为该进程分配CPU.

(2)性能分析

FCFS适合长进程,不利于短进程,短进程等待时间相对运行时间而言太长。FCFS使进程的周转时间过长,系统的平均周期时间也比较长。FCFS有利于CPU繁忙型进程(如科学计算),不利于I/O 繁忙型进程(如多数的事务处理)

2.短进程优先调度算法(Shortest-Process-First,SPF)

(1)调度算法

(2)算法优点

(3)算法的缺陷

1)对长进程不利。如果系统中不断有短进程到来,长进程可能长时间得不到调度。

2)不能保证紧迫进程的及时处理,因为该算法不考虑进程的紧迫程度。

3)进程的长短根据用户的估计而定,故不一定能真正做到短进程优先。

(4)性能分析

3.优先权调度算法(Priority-Scheduling Lgorithm)

(1) 调度算法

(2)优先权调度算法的类型

1)非抢占式(Nonpreemptive)优先权调度算法。

2)抢占式(Preemptive)优先权调度算法

(3)优先权的类型

1)静态优先权

2)动态优先权

(4)优先权调度算法存在的问题和解决方案。

1)问题

2)解决方案

4.时间片轮转调度算法

(1)时间片轮转调度算法

(2)时间片大小的确定

1)系统对响应时间的要求

2)就绪对列中进程的数目

3)系统的处理能力。

(3)时间片轮转调度算法的性能评价

5.多级队列调度

(1)多级队列调度算法(Multilevel Queue-Scheduling Algorithm)

(2) 多级队列调度算法应用举例

6.多级反馈队列调度

采用多级队列调度,一旦进程进入系统,就被固定地分配到一个就绪队列中,进程在被撤销前不会在不同队列之间移动。但是不够灵活,对低优先权进程会存在无穷阻塞(饥饿)问题。而多级反馈队列调度算法(Mul-tilevel Feedback Queue Scheduling)可以弥补这些不足。

1)就绪队列的数量

2)根据进程优先权确定进程该进入哪个就绪队列的算法

3)用以确定进程何时转移到较高优选权队列的算法

4)用以确定进程何时转移到较低优先权队列的算法

5)用以确定进程在需要服务时应该进入哪个队列的算法。

多级队列调度算法可视化界面_进程调度功能由操作系统内核的进程调度程序完成...相关推荐

  1. 多级队列调度算法可视化界面_多级反馈队列调度算法

    我是一名计算机专业的学生,很荣幸在这里结识各位编程高手.今天第一次写东西,希望大家多多支持,多多留言哦.以下是一个多级反馈队列调度算法,请各位帮忙看看对不对.如果谁能帮写一个更好的那就更感谢了.THA ...

  2. 多级队列调度算法可视化界面_操作系统:多级反馈队列调度算法模拟(Java实现)...

    package com.algorithm.multiStageFeedback; import java.util.*; /** * @Class MSFQS * @Description 多级反馈 ...

  3. 多级队列调度算法可视化界面_模拟多级反馈队列调度算法原理(源程序c++)

    #include "stdio.h" #include #include #define getpch(type) (type*)malloc(sizeof(type)) #def ...

  4. 多级队列调度算法可视化界面_多级反馈队列调度算法、各种调度算法小结等

    下面我们首先介绍,多级反馈队列调度算法 然后对前面介绍的各种调度算法进行比较 之后呢,我们简单讨论一下 在设计多处理器调度算法时所要考虑的几个问题 多级反馈队列调度算法 是 UNIX 的一个分支,BS ...

  5. 多级队列调度算法可视化界面_冷月手撕408之操作系统(8)-处理机调度

    操作系统的处理器资源主要是介绍了,由于多道程序设计带来的并发性,内存中运行多个进程并发运行.而处理器资源是远远小于进程的数量的,所以如何调度处理器给合适的进程成为了OS的焦点. 主要的重点冷月做出了标 ...

  6. 多级队列调度算法可视化界面_C++实现操作系统调度算法(FSFS,SJF,RR,多级反馈队列算法)...

    #include #include #include #include using namespace std; unsigned int q_id=0; //用于队列进程号的全局变量 unsigne ...

  7. 如何编写数据库可视化界面_编写用于数据可视化的替代文本

    如何编写数据库可视化界面 什么是替代文字 (What is Alt Text) Alt text (sometimes called Alt tags or alternative text) are ...

  8. c++ 可视化界面_这些算法可视化网站助你轻松学算法

    作者:守望,Linux应用开发者,目前在公众号[编程珠玑] 分享Linux/C/C++/数据结构与算法/工具等原创技术文章和学习资源. 前言 无疑,数据结构与算法学习最大的难点之一就是如何在脑中形象化 ...

  9. 静态优先权调度算法C语言实现6,静态优先权优先算法的进程调度程序文件.doc

    . . . .. . 学习好帮手 静态优先权优先算法的进程调度程序 学 院 专 业 学 生 姓 名 学 号 指导教师姓名 21014年 3 月 19 日 目 录 TOC \o "1-3&qu ...

最新文章

  1. 对ViewPager的理解
  2. dell服务器怎么查看网卡型号,dell R730集成网卡什么型号
  3. hdu4515 小模拟
  4. select count(*) from返回的类型_数据分析面试题类型汇总
  5. powerDesigner 把name项添加到注释(comment),完美方案!
  6. 处理 ODBC, OLE DB, 和 SQL Server .NET Provider 中的异常
  7. 一次大意引发的“大”故障
  8. 你会处理圆周率吗?----- Python操作文件应用举例
  9. 【leetcode-101】 对称二叉树
  10. Python各系统的安装
  11. iOS中 语音识别功能/语音转文字教程详解
  12. 摩斯电码php源码,PHP实现基于文本的莫斯电码生成器
  13. 【项目实践】网络对战五子棋
  14. 爱情树代码python_送男朋友礼物送什么比较有意义?
  15. CF 950C.Zebras 模拟,set
  16. LeetCode151|翻转字符串中的单词III
  17. python特征提取方法_大师兄的Python机器学习笔记:特征提取
  18. 数据结构:单链表(水浒传英雄操作为例)+单链表面试题
  19. <STM32F103ZET6>通过串口更新flash字库(包括LVGL字库烧写)
  20. 【QMK键盘】简单的QMK固件键盘环境搭建

热门文章

  1. 亿级流量请求,多级缓存解救
  2. Apache Jmeter 压测入门
  3. 读书笔记—《发现你的行为模式(钻石版)》-DiSC测试
  4. 6.HBase时髦谨慎财会会计
  5. 高性能业务架构解决方案(LVS+Keepalived)
  6. 数据结构基础 后序遍历和中序遍历还原二叉树
  7. 建个数据中心就想发展IDC?没那么简单!
  8. FTP服务器日志解析
  9. UVA 10129 Play on Words
  10. 做了一个画f(x,y)=0函数图像的算法,果断codeplex之