1. 试从调度性、并发性、拥有资源和系统开销方面,对进程和线程进行比较
答:进程和线程之间在调度性、并发性、拥有资源和系统开销方面的比较如下:
(1) 调度性。在传统的操作系统中,拥有资源的基本单位和独立调度、分派的基本单位都是进程。而在引入线程的操作系统中,则把线程作为调度和分派的基本单位,而把进程作为资源拥有的基本单位
(2) 并发性。在引入线程的操作系统中,不仅进程间可以并发执行,而且在一个进程的多线程间也可以并发执行,因而它比传统的操作系统具有更好的并发性
(3) 拥有资源。在这两种操作系统中,拥有资源的基本单位都是进程。线程出了一点在运行中必不可少的资源(如线程控制块、程序计数器、一组寄存器值和堆栈)外,本身基本不拥有系统资源,但它可以访问其隶属进程的资源。
(4) 开销。由于创建和撤销进程是,系统都要为之分配和回收资源,如内存空间和I/O设备等;进程切换时所要保存和摄制的现场信息也要明显地多于线程,因此,操作系统在创建、撤销和切换进程是所付出的开销将明显地大于线程。另外,由于隶属于同一进程的多个线程
共享同一地址空间和该进程的所有以打开的文件,从而使它们之间的同步和痛心地实现也比进程更方便
2. 什么是内核支持级线程和用户级线程,并对他们进行比较。
答:内核支持线程是在内核的支持下实现的,即每个线程的线程控制块设置在内核中,所有对线程的操作(如创建、撤销和切换等)都是通过系统功能调用有内核中的相应处理程序完成。而用户级线程仅存在于用户空间中,即每个线程的控制块设置在用户空间中,所有对线程的操作也在用户空间中完成,而无需内核的帮助。
可以从以下几个方面比较内核级线程和用户级线程
(1) 内核支持:用户级线程可在一个不支持线程的操作系统中实现,而内核级线程则不然,它需要得到操作系统内核的支持
(2) 处理器的分配:在多处理器环境下,对纯粹的用户级线程来说,内核一次只为一个进程分配一个处理器,即进程无法享用多处理机带来的好处;而在设置有内核级县城时,内核可调度一个应用中的多个线程同时在多个处理器上并行的运行,从而提高程序的执行
速度和效率
(3) 调度和线程之行时间:对设置有内核级线程的系统,其调度方式和算法与进程的调度十分相似,只不过调度的单位是线程;而对只设置了用户级线程的系统,调度的单位则仍为进程。因此,在条件相同的情况下,内核支持的线程通常比用户级线程得到更多CPU之行时间
(4) 切换速度:用户级线程切换速度快,通常发生在一个应用程序的诸线程之间,由于不需陷入内核,而且切换的规则相当简单,因此切换速度比内核级线程至少快一个数量级
(5) 系统调用:在典型的操作系统中,许多系统调用都会因此阻塞。当一个用户级线程执行这些系统调用时,被阻塞的将是整个进程;而当一个内核级线程执行这些系统调用时,内核之阻塞这个线程,但仍可调度其所属进程的其他线程进行执行
3. 某个操作系统的设计目录是同时支持实时任务和交互式任务,它的实现采用混合式多线程策略,处理器调度策略采用多队列策略,在系统资源匮乏时可以采用中级调度来平衡系统负载。
(1)问该系统中存在着那些与处理器调度有关的实体?
答:进程:系统进行资源分配和保护的单位,与中级调度有关的实体。
内核级线程:进程的一条执行路径,操作系统进行处理器调度的实体
用户级线程:进程的一条执行路径,操作系统不知道他的存在,执行的时候映射到内核级线程上,用户调度的实体
(2)请设计一个合理的多队列进程调度策略,它既能满足实时任务调度的需要,又能从外设访问角度来满足交互式任务调度的需要。
答:划分成实时优先级层次和交互式优先级层,其中实时优先级层次较高,实时优先级层次包括多个优先级,可以组织成多个就绪线程队列,也可以组织成一个优先队列;可以采用抢占式优先数调度策略,如果分配时间片,则时间片应该较长。交互式优先级层可划分为3个就绪线程队列,按照优先级从高到第一次访问字符设备的就绪线程队列、访问块设备的就绪线程队列、时间片到的就绪线程队列,优先级较高的就绪队列具有较短的时间片(时间片一般为100ms数量级)
一个线程可以包含多个进程
4. 简答线程有没有挂起状态?为什么?
答:没有,进程是资源分配和保护的单位,线程是处理器调度的单位,而挂起时由于减轻操作系统的资源负载引起的,线程不拥有资源,所以挂起对于线程没有任何意义,挂起只适用于进程。
5. 什么是进程控制块?试从进程管理、进程通信、中断处理、文件管理、存储管理、设备管理的角度设计进程控制块应包含的项目。
答:进程控制块使操作系统用于记录和刻画进程状态及有关信息的数据结构,也是操作系统掌握进程的唯一资料结构,使操作系统控制和管理进程的主要依据。
从进程管理来看:进程表示信息包括进程标识符,父进程的标识符、用户进程名、用户组明等及进程的状态、队列指针等控制信息。
从中断处理看:需要现场信息包括:通用寄存器的内容,控制寄存器的内容、用户堆栈指针、系统堆栈指针等。
从进程通信看:需要消息队列指针、信号量等互斥合同步机制等
从文件管理看:需要文件名、文件指针等
从存储管理看:需要主存资源、在内存的访问权限和处理器方面的特权等;
从设备管理看:需要已分得的资源,如I/O设备、打开文件表等
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论