核心级线程,线程调度

上传人:ji****n 文档编号:54334385 上传时间:2018-09-11 格式:PPT 页数:15 大小:141.50KB
返回 下载 相关 举报
核心级线程,线程调度_第1页
第1页 / 共15页
核心级线程,线程调度_第2页
第2页 / 共15页
核心级线程,线程调度_第3页
第3页 / 共15页
核心级线程,线程调度_第4页
第4页 / 共15页
核心级线程,线程调度_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《核心级线程,线程调度》由会员分享,可在线阅读,更多相关《核心级线程,线程调度(15页珍藏版)》请在金锄头文库上搜索。

1、第十九讲 核心级线程,线程调度目的与要求:掌握核心级线程实现原理,及典型的线程调度方法.重点与难点:线程核心实现方法和混合实现方法.组调度方法,多级调度原则.作业:3,6,8.1.3线程实现二. 内核级线程由操作系统内核提供线程创建,结束,同步等系统调用。当进程被创建时,内核同时为进程创建第一个核心级线程,运行用户初始程序;以后可调用创建线程系统调用,创建新的线程。内核调度以线程为单位。核心级线程既运行用户程序,在自陷/中断进管时又运行核心程序。,L,L,进程1,进程2,线程调度,CPU,L,L,L,CPU,创建核心级线程系统调用处理过程: 接收新线程执行函数地址,初始变量值,用户栈地址,私有

2、区地址; 在核心空间中分配TCB,核心栈;初始化上述表格及运行现场; 将线程状态改为就绪; 运行核心线程调度程序; 恢复被调度线程的现场运行。,特点: 可支持同一进程内线程在多CPU上的并行; 线程状态由内核调度程序完全掌握; 核心级线程比用户级线程开销大; 核心级线程表格占用系统空间。*,在SPARC工作站上不同线程、进程操作开销比较,三. 混合实现 用户用多线程库函数编程,多线库合理安排用户级线程使用内核级线程。,用户按用户程序的并发度安排使用用户级线程,多线库程序参考计算机CPU个数安排使用核心级线程。,多线库调度,L,多线库调度,L,进程1,进程2,线程调度,CPU,L,L,L,CPU

3、,四. 纯内核线程纯粹运行内核程序的线程,不提供创建此类线程的系统调用界面,由系统初始化时创建,用来处理核心的一些异步事务。如定时进行页面交换,定时刷新文件缓冲区等。,8.1.4线程调度 线程调度原则: 让CPU充分被利用; 同进程的线程尽量一起运行(提高系统吞吐率)一.负载共享 原则:让任意进程中的任意线程可在任意处理机上运行。实现:系统有一全局就绪队列,每个处理机在运行调度程序时都可从全局队列中选择合适线程来运行。,优点: 系统负载均匀分布到处理机上。 实现容易。缺点: 不能实现相关线程同时运行;线程切换可能频繁。,二、负载绑定 如果将线程指定到处理机上运行而又允许处理机在执行到因I/O或

4、同步等操作时而进行调度切换到其它线程,这种情况就是处理机与线程的绑定。,三 . 组调度 原则:让同一进程中的线程在多CPU上同时运行。 实现:引导型组调度:当CPU调度了进程中的一个线程时,通过机间中断通知其它CPU调度同一进程中的其它线程。 浮动型组调度:当某个CPU调度了进程中的一个线程时,同时也帮助把该进程的某些线程调度到其它CPU上,通过机间中断通知其它CPU去做线程切换。,特点:同一作业的多线程并发性好;减少了因同一作业线程间同步较多而相互等待时间,减少了线程切换次数。,四. 独占处理机调度(独占式组调度): 原则:让同一进程中的线程在多CPU上同时独占运行。实现:把进程所需要的CP

5、U一次性分给进程。特点: CPU利用率不高; 线程运行过程中没有线程切换; 避免了线程间同步时间因调度问题延长。,五. 多级动态调度 基础:有用户级和核心级线程支持。原则:动态创建线程,内核调度程序调度核心级线程占用CPU,多线库调度程序调度用户级线程占用核心级线程。核心调度策略:支持组调度,保证负载共享。多线库调度策略:支持优先调度运行关键任务的线程,支持负载共享。,特点: 动态创建线程可以减少多线程库和内核的内存资源使用量。 多线库调度和内核调度没有有机连接。如用户级线程在某一内核线程上阻塞于内核中时,多线程库调度程序并不能感知。 当内核级线程上有关键用户级线程运行时,内核调度程序也不能感知。,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 初中教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号