- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第二章 进程管理 第二章 进程管理 计算机,顾名思义是用来计算的,而进行计算的关键部件是CPU; CPU能够按照一定的顺序进行正确计算是在操作系统的控制指挥下完成的; 而操作系统对CPU进行管理和施行魔法的手段就是进程和线程; 对其进行管理也就理所当然地成为操作系统的一个关键职责。 问题:并发与并行的区别是什么? 3.进程的上下文 进程是在操作系统的支持下运行的,进程运行时操作系统需要为其设置相应的运行环境,如系统栈、地址映射寄存器、打开文件表、PSW与PC、通用寄存器等。在UNIX System ⅴ中,将进程的物理实体与支持进程运行的物理环境合称为进程上下文。 进程切换过程就是进程上下文切换的过程。由于进程上下文涉及的内容较多,进程切换一般需要一定的时间才能完成,这是系统为实现并发而付出的额外代价,属于系统开销的一部分。 进程的阻塞与唤醒 阻塞:当一个进程所期待的某一事件尚未出现时,该进程调用阻塞原语将自己阻塞。 进程阻塞是进程的自身的一种主动行为。 唤醒:处于阻塞状态的进程是绝不可能叫醒它自己的,它必须由它的合作进程用唤醒原语唤醒它。 2.3 进程同步 进程同步的主要任务是使并发执行的诸进程之间能有效的共享资源和相互合作,从而使程序的执行具有可再现性。 2.3.1 进程同步的基本概念 2.3.2 信号量机制 2.3.3 信号量的应用 实例:生产者-消费者问题 一种同步问题的抽象描述 计算机系统中的每个进程都可以消费(使用)或生产(释放)某类资源。这些资源可以是硬件资源,也可以是软件资源。 当某一进程使用某一资源时,可以看作是消费,称该进程为消费者。而当某一进程释放某一资源时,它就相当于生产者。 实例:生产者-消费者问题 一种同步问题的抽象描述 生产者-消费者之间设置一个具有n个缓冲区的缓冲池,生产者进程将它所生产的产品放入一个缓冲区;消费者进程可从一个缓冲区中取走产品去消费。 不允许消费者进程到一个空缓冲区去取产品; 不允许生产者进程向一个已装满产品且尚未取走的缓冲区投放产品。 实例:生产者-消费者问题 问题分析 利用一个数组表示具有n个缓冲区的循环缓冲池; 用输入指针in指示下一个可投放产品的缓冲区,每当生产者进程生产并投放一个产品,输入指针加1(in:=(in+1) mod n); 用指针out指示下一个可从中获取产品的缓冲区,每当消费者进程取出一个产品,输出指针加1 (out:=(out+1) mod n) ; 实例:生产者-消费者问题 实例:生产者-消费者问题 问题分析 (in+1) mod n = out 缓冲池满; in=out 缓冲池空; counter表示缓冲池内产品的数量。 在生产者进程中使用一局部变量nextp,用于暂时存放每次刚生产出来的产品; 使用一个局部变量nextc用于存放每次要消费的产品。 实例:生产者-消费者问题 producer:repeat … produce an item in nextp; … while counter=n do no-op; buffer[in]:=nextp; in:=(in+1) mod n; counter:=counter+1; until false; 实例:生产者-消费者问题 register1 := counter register1 := register1 +1 counter := register1 2.3.1 进程同步的基本概念 临界区(critical section):在每个程序中,访问临界资源的那段程序。若在一组并发进程的各自临界区中都使用了相同的共享变量,则称这组临界区为相关临界区。 若能保证诸进程互斥地进入自己的临界区,便可实现诸进程对临界资源的互斥访问. repeat entry section critical section exit section remainder section Until false 2.3.1 进程同步的基本概念 注意:临界区是对某一临界资源而言的,对于不同临界资源的临界区,它们之间不存在互斥。 如程序段A、B有关于变量X的临界区,而C、D有关于变量Y的临界区,那么,A、B之间需要互斥执行,C、D之间也要互斥执行,而A与C、B与D之间不用互斥执行。 。 “金鱼问题” zuo和you两人合住一套公寓,共同养了一条金鱼,该金鱼每天进食一顿。两人想把金鱼养活,一天只能喂一次,如果一天内两人都喂了鱼,鱼就胀死。如果一天内两人都没有喂鱼,鱼就饿死。 Solution #0 没有同步 zuo :
您可能关注的文档
最近下载
- 引领时尚潮流的可持续时尚品牌.pptx VIP
- 一年级道德与法治教案(全套).pdf VIP
- 版鲁科版英语四年级上册教案.doc VIP
- 一种脱除1,3-丙二醇中微量醛基杂质的脱除方法.pdf VIP
- 国投证券-宁德时代-300750-全球锂电行业龙头全球化布局推动发展.pdf VIP
- 2023-2024学年上海市向明中学高二上学期10月月考数学试卷含详解.docx VIP
- 《婴幼儿动作发展与训练》教案 第8课 2~3岁幼儿精细动作的发展与训练.docx VIP
- MT-500系列说明书(济南华电)-20101216.pdf
- 养成亲社会行为++课件-2025-2026学年统编版道德与法治八年级上册.pptx VIP
- 开学第一课-初中开学第一课班会.ppt VIP
文档评论(0)