- 1、本文档共15页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
【2017年整理】8.2核心级线程及线程调度
第十九讲 核心级线程,线程调度
目的与要求:掌握核心级线程实现原理,及典型的线程调度方法.
重点与难点:线程核心实现方法和混合实现方法.组调度方法,多级调度原则.
作业:3,6
;8.1.3线程实现
二. 内核级线程
由操作系统内核提供线程创建,结束,同步等系统调用。当进程被创建时,内核同时为进程创建第一个核心级线程,运行用户初始程序;以后可调用创建线程系统调用,创建新的线程。
内核调度以线程为单位。核心级线程既运行用户程序,在自陷/中断进管时又运行核心程序。;L;创建核心级线程系统调用处理过程:
接收新线程执行函数地址,初始变量值,用户栈地址,私有区地址;
在核心空间中分配TCB,核心栈;初始化上述表格及运行现场;
将线程状态改为就绪;
运行核心线程调度程序;
恢复被调度线程的现场运行。
;操 作 用户级线程 核心级线程 进 程
创建(ms) 52 350 1700
使用信号量同步(ms) 66 390 200;三. 混合实现
用户用多线程库函数编程,多线库合理安排用户级线程使用内核级线程。;四. 纯内核线程
纯粹运行内核程序的线程,不提供创建此类线程的系统调用界面,由系统初始化时创建,用来处理核心的一些异步事务。如定时进行页面交换,定时刷新文件缓冲区等。
;8.1.4线程调度
线程调度原则:
让CPU充分被利用;
同进程的线程尽量一起运行(提高系统吞吐率)
一.负载共享
原则:让任意进程中的任意线程可在任意处理机上运行。
实现:系统有一全局就绪队列,每个处理机在运行调度程序时都可从全局队列中选择合适线程来运行。;优点:
系统负载均匀分布到处理机上。
实现容易。
缺点:
不能实现相关线程同时运行;线程切换可能频繁。;二、负载绑定
如果将线程指定到处理机上运行而又允许处理机在执行到因I/O或同步等操作时而进行调度切换到其它线程,这种情况就是处理机与线程的绑定。 ;三 . 组调度
原则:让同一进程中的线程在多CPU上同时运行。
实现:
·引导型组调度:当CPU调度了进程中的一个线程时,通过机间中断通知其它CPU调度同一进程中的其它线程。
·浮动型组调度:当某个CPU调度了进程中的一个线程时,同时也帮助把该进程的某些线程调度到其它CPU上,通过机间中断通知其它CPU去做线程切换。
;特点:同一作业的多线程并发性好;减少了因同一作业线程间同步较多而相互等待时间,减少了线程切换次数。;四. 独占处理机调度(独占式组调度):
原则:让同一进程中的线程在多CPU上同时独占运行。
实现:把进程所需要的CPU一次性分给进程。
特点:
CPU利用率不高;
线程运行过程中没有线程切换;
避免了线程间同步时间因调度问题延长。;五. 多级动态调度
基础:有用户级和核心级线程支持。
原则:动态创建线程,内核调度程序调度核心级线程占用CPU,多线库调度程序调度用户级线程占用核心级线程。
核心调度策略:支持组调度,保证负载共享。
多线库调度策略:支持优先调度运行关键任务的线程,支持负载共享。;特点:
动态创建线程可以减少多线程库和内核的内存资源使用量。
多线库调度和内核调度没有有机连接。如用户级线程在某一内核线程上阻塞于内核中时,多线程库调度程序并不能感知。
当内核级线程上有关键用户级线程运行时,内核调度程序也不能感知。
文档评论(0)