第二章 进程管理2-n.ppt

  1. 1、本文档共70页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第二章 进程管理2-n

2) 消息通信的实现方法 消息缓冲通信(直接通信方式) 工作原理: 进程A 进程B PCB(B) send(B,a) receive(b) sender:A size:5 text:Hello 发送区a mq sender:A size:5 text:Hello next:0 sender:A size:5 text:Hello 接收区b 第一消息缓冲区 a b mutex sm 相关数据结构 消息结构: 消息缓冲队列: PCB中用于消息通信的相关数据项 消息头 消息 正文 发送进程标识符、消息长度、类型、 消息队列链接指针…… 欲发送的信息数据存区 mq mutex sm PCB 消息队列队首指针 mq 消息队列互斥信号量 mutex 消息队列资源信号量sm (即队列消息个数计数) 消息缓冲区链成的队列,每个进程都有 一个,其队首指针存放在对应进程的PCB中 消息发送原语和接收原语 发送原语 send(接收进程名,发送区首地址) 接收原语 receive(接收区地址) 注:缓冲队列的插入、删除操作必须采取互斥措施 ? 发送原语算法流程 ? 接收原语算法流程 申请分配一个空白缓冲区 将数据从发送区拷贝到缓冲正文区 获取接收进程PCB 将缓冲区插入接收进程的消息队列(队尾) 资源信号量计数加1 根据进程PCB找到消息缓冲队列 判队列空否(计数是否为0) 队列不空则从队列中摘取第一个缓冲区 将缓冲区数据拷贝到接收区 释放(归还)缓冲区 信箱通信(间接通信方式) 工作原理 信箱头:信箱描述部分 信箱体:数据(消息)存放部分 信箱类型:私用信箱 共享信箱 公用信箱 2.6 线程 进程特征回顾 进程:可独立运行并拥有资源的基本单位,进程是可由O.S调度和分派的基本单位,同时也是可拥有系统资源的独立单位。 线程 定义:由进程创建,是进程中可以独立执行的子任务,是O.S调度和运行的基本单位 引入目的:是减少程序在并发执行时所付出的时空开销,使OS具有更好的并发性。 3) 线程的状态与控制 类同于进程;并可实施进程间的同步与通信 4)线程和进程比较 调度方面: 并发性方面: 拥有资源方面: 系统开销方面: 5)线程的实现方式及其实现(了解) 线程是调度分派和独立运行的基本单位, 这时进程不再是一个可执行的实体; 进程之间可以并发执行,一个进程的多个线程之间也可并发执行; 进程作为拥有资源的基本单位,线程 除少量必不可少的资源外基本不拥有资源,但它可以访问其隶属的进程资源; 进程间切换涉及进程环境的改变开销大; 线程之间切换只要保存和设置少量内容 开销小。 本章小结 1)基本概念 程序并发执行的概念(与顺序执行的区别) 进程的概念(进程的引入、定义、特征或特性) 线程的概念(线程的引入,与进程之区别) 2)进程状态与进程控制块(PCB) 状态:就绪、执行、阻塞(状态间的转换原因) PCB:数据结构,包含进程基本情况信息、控制信息等 3)进程的同步与通信 互斥与同步的概念、定义、实施方法 高级通信的概念、通信类型(方式) 相关术语:临界资源、临界区、信号量 4)有关算法 进程控制原语:创建、终止、阻塞、唤醒 P.V操作原语:可实现进程的互斥与同步 进程通信原语:发送、接收…… 本章要点 掌握程序顺序执行与并发执行的特点 掌握进程的定义和特征,线程的定义,掌握程序与进程,进程与线程之间的区别 深入领会进程状态及引起状态变化的典型原因 掌握进程同步与互斥 能够灵活运用信号量描述同步问题 Pv就是两个函数,并发执行的程序通过调用这两个函数就可以确定什么时候可以走,什么时候应该停,从而控制他们之间并发执行的顺序来达到同步和互斥的目的。分析pv函数操作:当程序调用了p函数而此时s《0则该程序会暂停执行进入等待即阻塞状态,只有s》0时才重新开始运行;而调用V函数的程序不会终止;pv相当于申请和释放资源。 * * 人与人之间要进行交流,交流的方式很多,尤其是现在网络和通讯很发达,但古代就很难,基本靠信使,两方交兵不斩来使 进程运行过程中如果有关系的话也是要交流信息的,但是进程各自的内存空间是相互独立的,唯一例外的是共享内存区,除此以外就是系统空间属于公共场所 Windows中的进程通信其实很多都是移植于linux,windows下的剪贴板和文件映射都属于共享存储器,这是最高效的通信方式 管道只允许单向传输或者用于父子进程之间

文档评论(0)

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

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

1亿VIP精品文档

相关文档