西安邮电大学操作系统第二章解剖.ppt

  1. 1、本文档共151页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
  3) 信箱的类型   邮箱可由操作系统创建,也可由用户进程创建,创建者是邮箱的拥有者。据此,可把邮箱分为以下三类:   (1) 私用邮箱。   (2) 公用邮箱。   (3) 共享邮箱。 2.6.3 直接消息传递系统实例   消息缓冲队列通信机制首先由美国的Hansan提出,并在RC 4000系统上实现,后来被广泛应用于本地进程之间的通信中。在这种通信机制中,发送进程利用Send原语将消息直接发送给接收进程;接收进程则利用Receive原语接收消息。   1. 消息缓冲队列通信机制中的数据结构   (1) 消息缓冲区。   (2) PCB中有关通信的数据项。   2. 发送原语   发送进程在利用发送原语发送消息之前,应先在自己的内存空间设置一发送区a,如图2-17所示,把待发送的消息正文、发送进程标识符、消息长度等信息填入其中,然后调用发送原语,把消息发送给目标(接收)进程。发送原语首先根据发送区a中所设置的消息长度a.size来申请一缓冲区i,接着,把发送区a中的信息复制到缓冲区i中。为了能将i挂在接收进程的消息队列mq上,应先获得接收进程的内部标识符j,然后将i挂在j.mq上。由于该队列属于临界资源,故在执行insert操作的前后都要执行wait和signal操作。 图2-17 消息缓冲通信   3. 接收原语   接收进程调用接收原语receive(b),从自己的消息缓冲队列mq中摘下第一个消息缓冲区i,并将其中的数据复制到以b为首址的指定消息接收区内。 ?   2.7 线程(Threads)的基本概念 2.7.1 线程的引入   如果说,在OS中引入进程的目的是为了使多个程序能并发执行,以提高资源利用率和系统吞吐量,那么,在操作系统中再引入线程,则是为了减少程序在并发执行时所付出的时空开销,使OS具有更好的并发性。   1. 进程的两个基本属性   首先让我们来回顾进程的两个基本属性:   ① 进程是一个可拥有资源的独立单位,一个进程要能独立运行,它必须拥有一定的资源,包括用于存放程序正文、数据的磁盘和内存地址空间,以及它在运行时所需要的I/O设备、已打开的文件、信号量等;   ② 进程同时又是一个可独立调度和分派的基本单位,一个进程要能独立运行,它还必须是一个可独立调度和分派的基本单位。每个进程在系统中有唯一的PCB,系统可根据其PCB感知进程的存在,也可以根据其PCB中的信息,对进程进行调度,还可将断点信息保存在其PCB中。反之,再利用进程PCB中的信息来恢复进程运行的现场。正是由于进程有这两个基本属性,才使进程成为一个能独立运行的基本单位,从而也就构成了进程并发执行的基础。   2. 程序并发执行所需付出的时空开销   为使程序能并发执行,系统必须进行以下的一系列操作:   (1) 创建进程,系统在创建一个进程时,必须为它分配其所必需的、除处理机以外的所有资源,如内存空间、I/O设备,以及建立相应的PCB;   (2) 撤消进程,系统在撤消进程时,又必须先对其所占有的资源执行回收操作,然后再撤消PCB;   (3) 进程切换,对进程进行上下文切换时,需要保留当前进程的CPU环境,设置新选中进程的CPU环境,因而须花费不少的处理机时间。   3. 线程——作为调度和分派的基本单位   如何能使多个程序更好地并发执行,同时又尽量减少系统的开销,已成为近年来设计操作系统时所追求的重要目标。有不少研究操作系统的学者们想到,要设法将进程的上述两个属性分开,由OS分开处理,亦即并不把作为调度和分派的基本单位也同时作为拥有资源的单位,以做到“轻装上阵”;而对于拥有资源的基本单位,又不对之施以频繁的切换。正是在这种思想的指导下,形成了线程的概念。 线程(有时称轻量级进程) : 是被系统独立调度和分配的基本单位 只拥有极少量运行中必不可少的资源: 程序计数器、一组寄存器和栈(执行栈)。 同属一个进程的各线程之间可以并发执行, 共享所 在进程的代码段、数据段和系统资源 可以创建、撤消本进程中的另一个线程 同样有就绪、阻塞和执行状态 一个进程可以有一个线程一个进程可以有多个线程 线程定义: 有时称轻量级进程、进程中的一个实体、是一个CPU调度单位。 资源的拥有者还是进程或称任务 将原来进程的两个属性分开处理 2.7.2 线程与进程的比较   1. 调度的基本单位   2. 并发性   3. 拥有资源   4. 独立性   5. 系统开销   6. 支持多处理机系统 引入线程的好处: 占用较少的系统资源, 线程的创建、撤销和切换花费的时空间开销都小。 同一进程内的线程共享内存和文件, 它们之间相互通信无须调用内核, 效率高。 提高应用程序的性能, 如: web页面的多幅图像被同

文档评论(0)

1112111 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档