《操作系统》课件02 进程管理.ppt

  1. 1、本文档共113页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
二、间接(可以实现非实时通信) 优点:在读/写时间上的随机性 写进程―― 信箱(中间实体)――读进程 原语 (1)信息的创建与撤消: 信箱名 属性(公用、私用、共享)(共享者名字) (2)消息的发送和接收 Send (mailbox, message) Receive (mailbox, message) 信箱类型 (1)私用:拥有者有读/写权,其它只有写权; (2)公用:系统创建,双向,存在期=系统存在期。 (3)共享信箱:一般进程创建,并指明其共享者, 是双向。 发送—接收进程之间的关系: (1)一对一关系; (2)多对一关系:客户-服务器方式; (3)一对多关系:广播方式; (4)多对多关系:公用信箱。 消息传递系统中的几个问题 一、通信链路: 显式建立:(进程完成) 隐式建立:(系统完成) 链路类型: (1)由连接方法分:点—点链路,多点链路。 (2)由通信方式分:单向、双向。 (3)由容量分:无容量(无缓冲区)、有(有缓冲区)。 二、消息格式: 消息头:含控制信息,如:收/发进程名,消息长度、类型、编号 消息内容: 定长消息:系统开销小,用户不便(特别是传长消息用户) 变长消息:开销大,用户方便。 三、进程同步方式 1.发送和接收进程阻塞(汇合) 用于紧密同步,无缓冲区时。 2.发送进程不阻塞,接收进程阻塞(多个) 相当于接收进程(可能是多个)一直等待发送进程,如:打印进程等待打印任务。 3.发送/接收进程均不阻塞 一般在发、收进程间有多个缓冲区时。 2.6.3 消息缓冲队列通信机制 一、数据结构 1.消息缓冲区 type message buffer =record sender ; //发送者进程标识符 size ; //消息的长度,大小 text ; //消息正文 next ; //指向下一个消息缓冲区的指针 2.PCB中应增数据项: type pcb=record mq; //消息队列指针即,消息队列的起始地址 mutex; // 消息队列互斥信息量 sm; //消息队列资源信息量(表示资源消息数) mq mutex sm sender:A size:5 text:Hello send(B,a) sender :A size :5 text:hello next:0 发送区A sender:A size:5 text:Hello receive(b) 接收区B a b 进程A PCB(B) 进程B 二、发送原语 procedure send(receiver, a) begin getbuf(a.size, i);//申请一个a.size大小的空白缓冲区 i.sender:=a.sender; //将内容写进这个空白缓冲区中 i.size:=a.size; i.text:=a.text; i.next:=0; //指针信息 getid(PCB set, receiver.j); //访问PCB,得到B进程的队列地址 wait(j.mutex); //访问消息队列,要互斥进行 insert(j.mq, i); //把缓冲区的内容插入到mq队列的末尾 signal(j.mutex); signal(j.sm); //每发送一个,sm+1 end 三、接收原语 procedure receive(b) begin j:=internal name; wait(j.sm);//取了一个,sm-1 wait(j.mutex); //有消息拿,互斥进行 remove(j.mq, i); //把消息队列中的第一个消息移出 signal(j.mutex); b.sender:=i.sender; //把缓冲区的信息写到接收区中 b.size:=i.size; b.text:=i.text; end 2.7 线程 2.7.1线程的基本概念 1.线程的引入 减少并发执行时的时空开销,进程的创建、撤消、切换较费时空,因它既是调度单位,又是资源拥有者。 线程是系统独立调度和分派的基本单位,其基本上不拥有系统资源,只有少量资源(IP,寄存器,栈),但共享其所属进程所拥有的全部资源。 2.线程的属性 轻型实体 独立调度和分派的基本单位 可并发实体 共享进程资源 3.线程的状态 状态参数 寄存器状态、堆栈、运行状态、优先级、线程专有存储器、 信号屏蔽 线程的运行状态 4.线程的创建和终止 5.多线程中的进程 拥有系统资源的基本单位,不再是一个可执行的实体。 2.7.2 线程的同步和通信 1.互斥锁 阻塞方式 lock(mutex)

文档评论(0)

朋友你好 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档