计算机操作系统第二章讲课.ppt

2.8.2 线程的实现   1. 内核支持线程的实现   在仅设置了内核支持线程的OS中,一种可能的线程控制方法是,系统在创建一个新进程时,便为它分配一个任务数据区PTDA(Per Task Data Area),其中包括若干个线程控制块TCB空间,如图2-19所示。 图2-19 任务数据区空间   2. 用户级线程的实现   1) 运行时系统(Runtime System)   所谓“运行时系统”,实质上是用于管理和控制线程的函数(过程)的集合,其中包括用于创建和撤消线程的函数、线程同步和通信的函数,以及实现线程调度的函数等。正因为有这些函数,才能使用户级线程与内核无关。运行时系统中的所有函数都驻留在用户空间,并作为用户级线程与内核之间的接口。   2) 内核控制线程   这种线程又称为轻型进程LWP(Light Weight Process)。每一个进程都可拥有多个LWP,同用户级线程一样,每个LWP都有自己的数据结构(如TCB),其中包括线程标识符、优先级、状态,另外还有栈和局部存储区等。LWP也可以共享进程所拥有的资源。LWP可通过系统调用来获得内核提供的服务,这样,当一个用户级线程运行时,只须将它连接到一个LWP上,此时它便具有了内核支持线程的所有属性。这种线程实现方式就是组合方式。 图2-20 利用轻型进程作为中间系统 2.8.3 线程的创建和终止   1. 线程的创建   应用程序在启动时,通常仅有一个线程在执行,人们把线程称为“初始化线程”,它的主要功能是用于创建新线程。在创建新线程时,需要利用一个线程创建函数(或系统调用),并提供相应的参数,如指向线程主程序的入口指针、堆栈的大小,以及用于调度的优先级等。在线程的创建函数执行完后,将返回一个线程标识符供以后使用。   2. 线程的终止   当一个线程完成了自己的任务(工作)后,或是线程在运行中出现异常情况而须被强行终止时,由终止线程通过调用相应的函数(或系统调用)对它执行终止操作。但有些线程(主要是系统线程),它们一旦被建立起来之后,便一直运行下去而不被终止。在大多数的OS中,线程被中止后并不立即释放它所占有的资源,只有当进程中的其它线程执行了分离函数后,被终止的线程才与资源分离,此时的资源才能被其它线程利用。       习 题 ??   1. 什么是前趋图? 为什么要引入前趋图?   2. 试画出下面四条语句的前趋图:     S1: a = x+y;     S2: b = z+1;     S3: c = a-b;     S4: w = c+1;   3. 为什么程序并发执行会产生间断性特征?   4. 程序并发执行时为什么会失去封闭性和可再现性?   5. 在操作系统中为什么要引入进程的概念? 它会产生什么样的影响?   6. 试从动态性、并发性和独立性上比较进程和程序。   7. 试说明PCB的作用具体表现在哪几个方面,为什么说PCB是进程存在的唯一标志?   8. ?PCB提供了进程管理和进程调度所需要的哪些信息?   9. 进程控制块的组织方式有哪几种?   10. 何谓操作系统内核? 内核的主要功能是什么?   11. 试说明进程在三个基本状态之间转换的典型原因。   12. 为什么要引入挂起状态? 该状态有哪些性质?   13. 在进行进程切换时,所要保存的处理机状态信息有哪些?   14. 试说明引起进程创建的主要事件。   15. 试说明引起进程被撤消的主要事件。   16. 在创建一个进程时所要完成的主要工作是什么?   17. 在撤消一个进程时所要完成的主要工作是什么?   18. 试说明引起进程阻塞或被唤醒的主要事件是什么?   19. 为什么要在OS中引入线程?   20. 试说明线程具有哪些属性?   21. 试从调度性、并发性、拥有资源及系统开销方面对进程和线程进行比较。   22. 线程控制块TCB中包含了哪些内容?   23. 何谓用户级线程和内核支持线程?   24. 试说明用户级线程的实现方法。   25. 试说明内核支持线程的实现方法。   26. 多线程模型有哪几种类型? 多对一模型有何优缺点?   (5) 该服务器存根接到消息后,由阻塞状态转入执行状态,拆开消息从中取出过程调用的参数,然后以一般方式调用服务器上关联的过程;   (6) 在服务器端的远程过程运行完毕后,将结果返回给与之关联的服务器存根;   (7) 该服务器存根获得控制权运行,将结果打包为消息,并将控制权转移给远程服务器进程;   (8) 远程服务器进程将消息发送回客户端;   (9) 本地客户进程接收到消息后,根据其中的过程名将消息存入关联的客户存根,再将控制权转移给客户存根;   (10) 客户

文档评论(0)

1亿VIP精品文档

相关文档