核心级线程及线程调_第1页
核心级线程及线程调_第2页
核心级线程及线程调_第3页
核心级线程及线程调_第4页
核心级线程及线程调_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第十九讲核心级线程,线程调度目的与要求:掌握核心级线程实现原理,及典型的线程调度方法.重点与难点:线程核心实现方法和混合实现方法.组调度方法,多级调度原则.作业:4,6线程实现二.核心级线程

由操作系统内核提供线程创建,结束,同步等系统调用。当进程被创建时,内核同时为进程创建第一个核心级线程,运行用户主程序;以后可调用创建线程系统调用,创建新的线程。

内核调度以线程为单位。核心级线程既运行用户程序,在自陷/中断进管时又运行核心程序。LL进程1进程2线程调度CPULLLCPU…创建核心级线程系统调用处理过程:接收新线程执行函数地址,初始变量值,用户栈地址,私有区地址;在核心空间中分配TCB,核心栈;初始化上述表格及运行现场;将线程状态改为就绪;运行核心线程调度程序;恢复被调度线程的现场运行。操作 用户级线程核心级线程进程创建(ms) 52 350 1700使用信号量同步(ms) 66 390 200特点:可支持同一进程内线程在多CPU上的并行;线程状态由内核调度程序完全掌握;核心级线程比用户级线程开销大;核心级线程表格占用系统空间。*在SPARC工作站上不同线程、进程操作开销比较

三.混合实现用户用多线程库函数编程,多线库合理安排用户级线程使用内核级线程。用户按用户程序的并发度安排使用用户级线程,多线库程序参考计算机CPU个数安排使用核心级线程。多线库调度L多线库调度L进程1进程2线程调度CPULLL……CPU…四. 纯内核线程

纯粹运行内核程序的线程,不提供创建此类线程的系统调用界面,由系统初始化时创建,用来处理核心的一些异步事务。如定时进行页面交换,定时刷新文件缓冲区,异步I/O请求的处理等。线程调度线程调度原则:让CPU充分被利用;同进程的线程尽量一起运行(提高系统吞吐率)一.负载共享原则:让任意进程中的任意线程可在任意处理机上运行。实现:系统有一全局就绪队列,每个处理机在运行调度程序时都可从全局队列中选择合适线程来运行。优点:系统负载均匀分布到处理机上。实现容易。缺点:不能实现相关线程同时运行;线程切换可能频繁。二、负载绑定如果将线程指定到处理机上运行而又允许处理机在执行到因I/O或同步等操作时而进行调度切换到其它线程,这种情况就是处理机与线程的绑定。三.组调度原则:让同一进程中的线程在多CPU上同时运行。实现:·独占式组调度:将多个CPU同时分配给同一组线程,直到所有线程运行结束。·引导型组调度:当CPU调度了进程中的一个线程时,通过机间中断通知其它CPU调度同一进程中的其它线程。·浮动型组调度:当某个CPU调度了进程中的一个线程时,同时也帮助把该进程的某些线程调度到其它CPU上,通过机间中断通知其它CPU去做线程切换。特点:同一作业的多线程并发性好;减少了因同一作业线程间同步较多而相互等待时间,减少了线程切换次数。四.独占处理机调度(独占式组调度):原则:让同一进程中的线程在多CPU上同时独占运行。实现:把进程所需要的CPU一次性分给进程。特点:CPU利用率不高;线程运行过程中没有线程切换;避免了线程间同步时间因调度问题延长。五.多级动态调度基础:有用户级和核心级线程支持。原则:动态创建线程,内核调度程序调度核心级线程占用CPU,多线库调度程序调度用户级线程占用核心级线程。核心调度策略:支持组调度,保证负载共享。多线库调度策略:支持优先调度运行关键任务的线程,支持负载共享。特点:动态创建线程可以减少多线程库和内核的内存

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论