核心级线程,线程调度

核心级线程,线程调度

ID:44786693

大小:141.50 KB

页数:15页

时间:2019-10-28

核心级线程,线程调度_第1页
核心级线程,线程调度_第2页
核心级线程,线程调度_第3页
核心级线程,线程调度_第4页
核心级线程,线程调度_第5页
资源描述:

《核心级线程,线程调度》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

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

2、接收新线程执行函数地址,初始变量值,用户栈地址,私有区地址;在核心空间中分配TCB,核心栈;初始化上述表格及运行现场;将线程状态改为就绪;运行核心线程调度程序;恢复被调度线程的现场运行。操作用户级线程核心级线程进程创建(ms)523501700使用信号量同步(ms)66390200特点:可支持同一进程内线程在多CPU上的并行;线程状态由内核调度程序完全掌握;核心级线程比用户级线程开销大;核心级线程表格占用系统空间。*在SPARC工作站上不同线程、进程操作开销比较三.混合实现用户用多线程库函数编程,多线库合理安排用户

3、级线程使用内核级线程。用户按用户程序的并发度安排使用用户级线程,多线库程序参考计算机CPU个数安排使用核心级线程。多线库调度L多线库调度L进程1进程2线程调度CPULLL……CPU…四.纯内核线程纯粹运行内核程序的线程,不提供创建此类线程的系统调用界面,由系统初始化时创建,用来处理核心的一些异步事务。如定时进行页面交换,定时刷新文件缓冲区等。8.1.4线程调度线程调度原则:让CPU充分被利用;同进程的线程尽量一起运行(提高系统吞吐率)一.负载共享原则:让任意进程中的任意线程可在任意处理机上运行。实现:系统有一全局就

4、绪队列,每个处理机在运行调度程序时都可从全局队列中选择合适线程来运行。优点:系统负载均匀分布到处理机上。实现容易。缺点:不能实现相关线程同时运行;线程切换可能频繁。二、负载绑定如果将线程指定到处理机上运行而又允许处理机在执行到因I/O或同步等操作时而进行调度切换到其它线程,这种情况就是处理机与线程的绑定。三.组调度原则:让同一进程中的线程在多CPU上同时运行。实现:·引导型组调度:当CPU调度了进程中的一个线程时,通过机间中断通知其它CPU调度同一进程中的其它线程。·浮动型组调度:当某个CPU调度了进程中的一个线程

5、时,同时也帮助把该进程的某些线程调度到其它CPU上,通过机间中断通知其它CPU去做线程切换。特点:同一作业的多线程并发性好;减少了因同一作业线程间同步较多而相互等待时间,减少了线程切换次数。四.独占处理机调度(独占式组调度):原则:让同一进程中的线程在多CPU上同时独占运行。实现:把进程所需要的CPU一次性分给进程。特点:CPU利用率不高;线程运行过程中没有线程切换;避免了线程间同步时间因调度问题延长。五.多级动态调度基础:有用户级和核心级线程支持。原则:动态创建线程,内核调度程序调度核心级线程占用CPU,多线库调

6、度程序调度用户级线程占用核心级线程。核心调度策略:支持组调度,保证负载共享。多线库调度策略:支持优先调度运行关键任务的线程,支持负载共享。特点:动态创建线程可以减少多线程库和内核的内存资源使用量。多线库调度和内核调度没有有机连接。如用户级线程在某一内核线程上阻塞于内核中时,多线程库调度程序并不能感知。当内核级线程上有关键用户级线程运行时,内核调度程序也不能感知。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。