首页 > 常见问题 > 正文

处理器调度的最小单位

(*-*)浩
发布: 2019-10-26 10:59:08
原创
11166人浏览过

cpu调度的基本单位是是线程。线程是操作系统能够进行运算调度的最小单位。

处理器调度的最小单位

一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。在Unix System V及SunOS中也被称为轻量进程(lightweight processes),但轻量进程更多指内核线程(kernel thread),而把用户线程(user thread)称为线程。  (推荐学习:web前端视频教程

CPU调度程序

每当CPU空闲时,操作就必须从就绪队列中选择一个进程来执行。进程选择由短期调度程序(short-term scheduler)或CPU调度程序执行。调度程序从内核中选择一个能够执行的进程,并为之分配CPU。

就绪队列不必是先进先出(FIFO)队列。就绪队列可实现为FIFO队列,优先队列,树或简单的无序链表。不过从概念上来说,就绪队列内的所有进程都要排队以等待在CPU上运行。队列中的记录通常为进程控制块(PCB)。

抢占调度

CPU调度决策可在如下4种环境下发生:

当一个进程从运行状态切换到等待状态(例如,I/O请求,或调用wait等待一个子进程的终止)。

当一个进程从运行状态切换到就绪状态(例如,当出现中断时)

当一个进程从等待状态切换到就绪状态(例如,I/O完成)

当一个进程终止

对于第1和第4两种情况,没有选择而只有调度。一个新进程(如果就绪队列中已有一个进程存在)必须被选择执行。不过,对于第2和第3两种情况,可以进行选择。

当调度只能发生在第1和第4两种情况下时,称调度方案是非抢占的(nonpreemptive)的或协作的(cooperative);否则,称调度方案是抢占的(preemptive)。采用非抢占调度,一旦CPU分配给一个进程,那么该进程会一直使用CPU知道进程终止或切换到等待状态。

中断能随时发生,而且不能总是被内核所忽视,所以受中断影响的代码段必须加以保护以避免同时访问。为了这些代码段不被多个进程同时访问,在进入时要禁止中断,而在退出时要重新允许中断。

以上就是处理器调度的最小单位的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
相关标签:
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号