赞
踩
一、 线程间的状态切换比进程间的状态切换开销更低的原因?(从资源分配角度来分析)
从下面这幅图可以看出
左边为单线程进程模型,右边为多线程进程模型。从上图可以看出,多线程虽然有自己的线程控制块、用户栈和内核栈,但是他们是共享同一个进程中用户地址空间的,线程切换不需要重新分配资源;相反,进程间由于不共享用户地址空间,进程切换时需要重新分配资源,操作系统使其环境产生实质性的变化。(核心问题是资源分配问题)
二、 在进程概念中体现出来的两个独立且无关的特点是什么?
资源所有权和调度/执行。
资源所有权:一个进程包括一个进程影像的虚拟地址空间,一个进程总是拥有对资源的控制或所有权。
调度/执行:一个进程沿着一个通过一个或多个程序的一条执行路径(轨迹)。
三、 单用户多处理系统中使用线程的4个例子
1、 执行速度
2、 异步调用(程序)
3、 前台和后台工作(如word)
4、 模块化程序结构
在支持线程的OS中,调度和分派是在线程的基础上完成的,但是有些活动影响着进程中的所有线程,因此OS必须在进程一级对它们进行管理。
四、 用户级线程相对于内核级线程的3个优点
对比上面纯用户级线程和纯内核级线程,可知:
优点一;纯用户级线程中,内核以进程为单位进行调度,所有线程共享一个进程的用户地址空间,因此线程切换不需内核特权(右图纯内核级线程中可以看出,当进行线程切换时,需进入到内核态进行切换),节省了两次状态转换(用户态——>内核态,内核态——>用户态)。
优点二:从上图可知,用户级线程处在用户态执行,与具体OS无关。调度可以是应用程序相关的。
优点三:用户态线程可以在任何操作系统中运行(可移植性好),不需要内核的的特别支持。线程库(Thread libray)是一组供所有应用程序共享的应用程序级别的函数。
五、 用户级线程相对于内核级线程的两个缺点。(也就是内核级线程的优点)
比较上两图可以看出:
缺点一:纯用户级线程中,内核以进程为单位进行调度,因此当其中一个用户线程阻塞时,很有可能阻塞整个进程,而在内核级线程中,当一个线程发生阻塞时,内核可以调度到另一个线程进行执行。
缺点二、在纯用户进程中,内核以进程为单位进行调度给处理器,一个多线程的应用程序不能利用多处理技术,讲多个线程分配给不同的处理器进行执行。而右图中内核级线程是可以的,Windows采用的就是这种技术。
六、 Jacketing的定义
针对用户级线程的缺点而产生的技术。目标:把产生阻塞的系统调用转化成一个非阻塞的系统调用。
七、 给出在典型的单体结构操作系统中可以找到,且可能是微内核操作系统外部子系统的服务和功能。
文件系统,设备驱动程序、虚存管理程序、窗口系统和安全服务。他们可以和内核交互,也可以相互交互。
八、 微内核设计相对于整体式结构设计的7个优点。
UNIX分层内核体系结构 微内核体系结构图(客户/服务器模式)
微内核外部的操作系统部件被当做服务器进程来实现,它们可以借助与微内核传递消息来实现相互之间的交互。MACH采用微内核模式。
1、 一致接口,进程无需区分是内核级服务还是用户级服务
2、 可扩展性,允许增加新的服务以及在同一个功能区域中提供多个服务
3、 灵活性,不仅 可以增加功能还可以删减功能,以产生一个更小、更有效的实现
4、 可移植性,
5、 可靠性,小的微内核可以被严格的测试。
6、 分布式系统支持
7、 对面向对象操作系统的支持
九、 微内核操作系统可能存在的性能缺点(从客户服务器的架构来分析)
从微内核体系结构图可以看出。因为微内核中只有最基本功能,微内核外部操作系统部件被当做服务器进程实现,进程间通信需通过微内核构造和发送消息、接受应答并解码所花费的时间比进行一次系统调用的时间要多。
十、 列出即使在最小的微内核操作系统中也可以找到的3个功能。
IPC——进程间通信,低级存储管理、和I/O和中断管理。
十一、 微内核操作系统中,进程或线程间通信的基本形式是什么?
消息。通过微内核构造和发送信息,接受应答并解码。
课后题目:
4.1. 一个多处理系统有8个处理器和20个附加磁带设备。现在有大量的作业提交给该系统,完成每个作业最多需要4个磁带设备。假设每个作业开始运行时只需要3个磁带设备,并且在很长时间内都只需要这3个设备,而只是在最后很短的一段时间内需要第4个设备以完成操作。同时还假设这类作业源源不断。
a. 假设操作系统中的调度器只有当4个磁带设备都可用时才开始一个作业。当作业开始时,4个设备立即被分配给它,并且直到作业完成时才被释放。请问一次最多可以同时执行几个作业?采用这种策略,最多有几个磁带设备可能是空闲的?最少有几个?
b. 给出另外一种策略,要求其可以提高磁带设备的利用率,并且同时可以避免系统死锁。分析最多可以有几个作业同时执行,可能出现的空闲设备的范围是多少。
答:
a. 采用一个保守的策略,一次最多同时执行20/4=5个作业。由于分配各一个任务的磁带设备最多同时只有一个空闲,所以在同一时刻最多有5个磁带设备可能是空闲的。在最好的情况下没有磁带设备空闲。
b. 为了更好的利用磁设备,每个作业在最初只分配三个磁带设备。第四个只有的需要的时候才分配。在这种策略中,最多可以有20/3=6个作业同时执行。最少的空闲设备数量为0,最多有2个。参考:AdvancedComputer Architectrue,K.Hwang,1993.
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。