[工学]操作系统复习

[工学]操作系统复习

ID:36291013

大小:301.00 KB

页数:126页

时间:2019-05-08

[工学]操作系统复习_第1页
[工学]操作系统复习_第2页
[工学]操作系统复习_第3页
[工学]操作系统复习_第4页
[工学]操作系统复习_第5页
资源描述:

《[工学]操作系统复习》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、2.5线程多线程操作系统中引入进程的目的是,为了描述和实现多个程序的并发执行,以改善资源利用率及提高系统的吞吐量。为什么还需要引入线程呢?这是为了减少程序并发执行时系统所付出的额外开销,使操作系统具有更好的并发性。进程的两个基本属性:(1)进程是一个拥有资源的独立单位;(2)进程同时又是一个可以独立调度的基本单位。系统为进程进行的操作创建进程、撤消进程、进程切换进程作为资源的拥有者和系统的调度对象,需要花费系统较大的额外开销。故,系统中同时存在的进程数目不宜过多,进程切换的频率也不宜过高,而这也就限制了并发度的进一步提高。由进程到线程目标:既能提高进程并发度,又能降低系统的额外开

2、销。实现:将进程的资源申请和调度属性分开。即进程作为资源的申请和拥有者,但不作为调度的基本单位。这样,就产生了线程的概念。线程是进程中的一个实体,是独立调度和分派的基本单位。线程自身基本上不拥有系统资源,只拥有少许运行中必不可少的私有资源。线程可与同属一个进程的其它线程共享进程的全部资源。线程的状态进程中的所有线程共享该进程的状态。线程具有三种基本状态:就绪、执行和阻塞。一般不具有挂起状态,因为线程共享进程的资源,包括存储空间,如果挂起一个进程,其所属的全部进程必将被挂起。而单独挂起某进程中的一个线程,必然会影响同一进程中的其它线程的执行,这是没有任何意义的。对线程的操作一个进程

3、可以创建和撤消一个或多个线程,同一进程中的多个线程可以并发执行。对线程的操作包括:派生(Spawn),当系统创建一个进程时,同时也为该进程派生一个线程,同一进程中的线程可以再派生其它线程。阻塞(Block),当线程需要等待某事件时,它将被阻塞,释放处理机执行其它线程。对线程的操作3.解除阻塞(Unblock),当线程的阻塞事件发生,其状态转换为就绪,并插入到就绪队列,等待调度执行。4.结束(Finish),当线程执行完毕,释放其私有资源。注意,线程阻塞不一定会引起整个进程的阻塞,否则,引入线程带来的并发性就不会提高。进程与线程传统操作系统中,一个进程可以创建一个线程,如MSDOS

4、就是一个单用户、单进程、单线程的操作系统,UNIX是一个多用户、多进程、单线程的操作系统。现代操作系统和软件设计大多支持多线程运行。例如,Java虚拟机是一个单进程、多线程的运行环境,Windows系列操作系统和Linux操作系统都采用了多进程、多线程技术。进程与线程-调度传统操作系统中,进程既是拥有资源的基本单位,又是独立调度的基本单位。引入线程的操作系统中,线程是独立调度的基本单位,进程是资源拥有的基本单位,从而可以显著地提高系统的并发程度。同一进程中的线程间切换不会引起进程切换,但当一个进程中的线程切换到另一进程中的线程时,将会引起进程切换。进程与线程-并发进程之间可以并发

5、执行同属于一个进程的多个线程之间,亦可并发执行因而使操作系统具有更好的并发性,从而能更有效地使用系统资源和提高系统吞吐量。进程与线程-并发例如在一个未引入线程的单处理机操作系统中,若仅设置一个文件服务进程,当它由于某种原因而被阻塞时,便没有其它的文件服务进程来提供服务。引入线程以后,可以在一个文件服务进程中设置多个服务线程,当第一个线程阻塞时,文件服务进程中的第二个线程可以继续运行;当第二个线程阻塞时,第三个线程可以继续执行,从而显著地提高了文件服务的质量和系统吞吐量。进程与线程-拥有资源进程是拥有资源的独立单位,它有权申请系统的各类资源。线程除了拥有很少的私有资源以外,不能申请

6、系统资源,可以共享其所属进程的资源。即,进程的代码段、数据段以及系统资源,如已打开的文件、I/O设备等,都可被其内的所有线程共享。进程与线程-系统开销操作系统管理进程的开销显著地大于管理线程所需的开销。进程切换的开销也远大于线程切换的开销。由于同一进程中的多个线程具有相同的地址空间,使它们之间的同步和通信也比较容易。有些类型的线程切换、同步和通信都无需操作系统内核的干预。线程的类型用户级线程和内核级线程用户级线程的创建、撤消及切换等操作全部由支持线程的应用程序完成,内核并不知道线程的存在。一些数据库管理系统,如Informix即支持用户级线程。应用程序可以利用线程库来设计多线程程

7、序,该线程库包含各种用于管理用户级线程的例程,如用于创建和撤消线程的例程、用于线程间传递消息和数据的例程、线程调度例程,以及保护和恢复线程上下文的例程等,如图2.22(a)所示。2.9互斥与同步解决方法之四:管程管程是一种在程序设计级控制进程互斥与同步的机制,具有信号量的功能,且更容易使用和控制。目前已有很多程序设计语言支持管程机制,如并发Pascal、Pascal_Plus、Modula-2、Modula-3、Java等,并且还作为程序库提供服务。利用管程可以锁定任何对象,尤其

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

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

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