网站大量收购闲置独家精品文档,联系QQ:2885784924

第2章进程管理(12学时).ppt

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

进程管理 CPU能够按照一定的顺序进行正确计算是在一个指挥者的控制之下完成。这个指挥者就是操作系统。 操作系统对CPU进行管理和实施魔法的手段就是进程和线程。 对进程和线程这些魔法道具进行阐述对理解操作系统十分重要,对其进行管理也就成为操作系统的一个重要职责。 进程管理 本章最重要的内容是并发。 因为并发技术,我们发明了进程和线程。 进程属于在处理器这一层上提供并发的抽象,线程属于在进程这个层次上再提供一层并发的抽象。 计算机体系结构里,流水线提供的也是一种并发,不过是指令级并发。 流水线、线程、进程从低到高在三个层次上提供我们迫切需要的并发实现。 操作系统CPU管理功能范围 哲学家就餐 五个哲学家就餐 睡觉的理发师 算法描述 信号量:customers=0;barbers=0;mutex=1 整型变量:waiting=0; 2.5 管 程 机 制 1.P、V操作表示的信号量机制存在以下缺点: (1)????? 对信号量的P、V操作可以由用户在各个进程之中分散使用,用户使用不当容易造成死锁。 (2)????? 使用信号量机制的程序代码可读性差,涉及多个程序中互相关联的内容。 (3)????? 信号量机制的使用不利于代码的修改和维护,各模块的独立性差,任一组变量或一段代码的修改都可能影响全局。 (4)????? 信号量机制的正确性很难保证,操作系统或并发程序通常会产生很多信号量,它们的关系错综复杂,很难保证这样一个复杂的系统没有逻辑错误。 引入管程的优点 1.只能通过管程中的过程来使用或修改其局部数据变量; 2.进程通过对管程提供的过程来进入管程; 3.每一时刻只能有一个进程进入管程中执行(互斥使用)。 实际上,管程是面向对象程序设计中的一种特殊对象,它将所使用的信号量以及对信号量的操作原语封装在一个对象内部,这种针对信号量的对象称为管程。 引入管程的优点 4.具有封装性,增强了模块的独立性。可以针对不同的系统资源建立不同的模块,并根据不同的管理方式定义模块的类型和结构,使同步操作相对集中。 5.提高代码的可读性,便于维护和修改,正确性易于保证。由于采用集中式同步机制,一个操作系统或并发进程由若干这样的模块所组成,每个模块通常较短,模块之间关系清晰,有利于正确性的保证。 管程建立后可被多个同步的进程共享,因此,需要保证共享同一管程的各个进程互斥进入。为此,操作系统对于每个管程都要设置相应的等待队列,进程只能通过调用管程中所定义的外部过程间接访问管程中的共享变量。当某个进程请求的管程被其它进程使用时,该进程就被挂到相应的等待队列上,等待释放该管程的进程将它唤醒。 条件变量 在利用管程实现进程同步时,必须设置两个同步操作原语wait和signal。当某进程通过管程请求获得临界资源而未满足时,管程使用wait原语使该进程等待,并将它排在等待队列上。仅当另一进程访问完成并释放该资源后,管程才调用signal原语,唤醒等待队列中的阻塞进程。 根据实际要求,阻塞的原因有多种,为了区分它们,引入了条件变量condition,在管程中对条件变量都予以说明。 具体实例 利用Java语言中提供的多线程技术实现管程技术。(实际的例子) 在Java语言中,管程被定义为类。共享数据定义为类的成员变量,管程中的方法定义为类的成员方法。 在该例中,缓冲区只能放一个item,所以要求生产者和消费者进程须一一匹配,即生产一个消费一个,不能多生产。 运行结果 2.6 进 程 通 信 P.V操作实现的是进程之间的低级通讯,所以P.V为低级通讯原语。它只能传递简单的信号,不能传递交换大量信息 如果要在进程间传递大量信息则要用Send / Receive原语(高级通讯原语)。大批数据信息的通信主要用于进程间数据块的交换和共享。 操作系统必须为进程间通信提供接口,常见的接口有:用于实现低级通信的软中断信号、信号量集,实现高级通信的管道、消息队列、共享内存等。 Linux进程间通信 软中断通信 管道通信 消息缓冲通信 共享存储区通信 信号量 在实验阶段进行详细的专题讲解 进程的引入 进程的两个基本属性: 1、资源的拥有者: 给每个进程分配一虚拟地址空间,保存 进程映像 控制一些资源(文件,I/O设备) 有状态、优先级、调度 进程的两个基本属性: 2、调度单位: 进程是一个执行轨迹 以上两个属性构成进程并发执行的基础 系统必须完成的操作: 创建进程 撤消进程 进程切换 线程的引入 线程:有时称轻量级进程 进程中的一个实体 是一个CPU调度单位 资源的拥有者还是进程或称任务 将原来进程的两个属性分开处理 引入线程的好处: 两个线程的切换花费时间少 线程的实现机制

文档评论(0)

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

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

1亿VIP精品文档

相关文档