信号量小书
文章平均质量分 72
booksyhay
这个作者很懒,什么都没留下…
展开
-
The Little Book of Semaphores 信号量小书 第四章 经典同步问题 4.1 生产者-消费者问题
第四章 经典同步问题在本章中,我们将研究几乎所有操作系统教科书中出现的经典问题。 它们通常以现实问题的形式呈现,因此问题的陈述是清楚的,学生们可以带着他们的直觉来感受。但是,在大多数情况下,这些问题不会在现实世界中发生,或者就算它们发生,现实世界的解决方案也并不像我们正在使用的同步代码那样。我们对这些问题感兴趣的原因是,它们类似于操作系统(和某些应用程序)需要解决的常见问题。 对于每个...翻译 2018-09-17 15:44:51 · 1004 阅读 · 1 评论 -
The Little Book of Semaphores 信号量小书 译后
自已挖的坑,含着泪也得填完啊。终于把正文搞完了。还有前言、参考书目及附录,就不打算翻译了。第一次翻译一本书,耶!原创 2018-10-11 15:13:45 · 568 阅读 · 3 评论 -
The Little Book of Semaphores 信号量小书 第五章 稍欠经典的同步问题 5.4 希尔泽的理发店问题
第五章 稍欠经典的同步问题 5.4 希尔泽(Hilzer)的理发店问题William Stallings [11]提出了一个更为复杂的理发店问题,他将其归功于加州州立大学奇科分校的Ralph Hilzer。我们的理发店有三把椅子,三个理发师和一个等候区,沙发上可以容纳四个顾客,并为其他顾客提供站立空间。 消防规范将店内的客户总数限制为20个。如果理发店已满员,则新的顾客不会进入...翻译 2018-09-28 16:26:28 · 511 阅读 · 0 评论 -
The Little Book of Semaphores 信号量小书 第五章 稍欠经典的同步问题 5.5 圣诞老人问题
第五章 稍欠经典的同步问题 5.5 圣诞老人问题这个问题来自William Stallings的操作系统[11]一书,但他把它归功于佛蒙特州圣迈克尔学院的John Trono。圣诞老人在北极的商店里睡觉,只能被以下条件之一唤醒:(1)所有九只驯鹿在南太平洋度假回来,或(2)一些精灵制作玩具有困难; 为了让圣诞老人得到睡眠,精灵们只能在三个人遇到问题时叫醒他。 当三个精灵在解决问题时...翻译 2018-09-28 16:53:28 · 834 阅读 · 0 评论 -
The Little Book of Semaphores 信号量小书 第五章 稍欠经典的同步问题 5.6 生产水
第五章 稍欠经典的同步问题 5.6 生产水(Building H2O)这个问题至少十年来一直是加州大学伯克利分校操作系统类课程的主要内容。这似乎是基于安德鲁斯并行编程[1]中的一个练习。有两种线程,氧气和氢气。 为了将这些线程组装成水分子,我们必须创建一个屏障(barrier),使每个线程都等到一个完整的分子准备好后再继续。当每个线程通过屏障时,它应该调用bond。 您必须保证...翻译 2018-09-29 14:01:00 · 481 阅读 · 0 评论 -
The Little Book of Semaphores 信号量小书 第五章 稍欠经典的同步问题 5.7 过河问题
第五章 稍欠经典的同步问题 5.7 过河问题这个问题来自于加州大学伯克利分校的安东尼·约瑟夫写的问题集,但我不知道他是不是原作者。 它类似于H2O问题,因为它是一种特殊的屏障,只允许线程以某种组合通过。 在华盛顿州雷德蒙德附近,有一艘划艇,Linux黑客和微软员工(农奴)都用它来过河。渡船能容纳四人,不会离岸。为了保证乘客的安全,不允许把一个黑客加三个农奴或者一个农奴加三个黑客放在...翻译 2018-09-29 14:50:45 · 732 阅读 · 0 评论 -
The Little Book of Semaphores 信号量小书 第五章 稍欠经典的同步问题 5.8 过山车问题
第五章 稍欠经典的同步问题 5.8 过山车问题这个问题来自安德鲁斯的并发编程[1],但他把它归功于J. S. Herman的硕士论文。假设有n个乘客线程和一个汽车线程。乘客们反复等待乘坐汽车,汽车可以容纳C名乘客,其中C<n。汽车只有在满载时才能绕轨道行驶。以下是一些附加细节:•乘客应该调用board和unboard。•汽车应调用load,run和unload。•在...翻译 2018-09-29 15:33:36 · 372 阅读 · 0 评论 -
The Little Book of Semaphores 信号量小书 第六章 不那么经典的问题 6.1 搜索-插入-删除问题
第六章 不那么经典的问题 6.1 搜索-插入-删除问题这个是来自安德鲁斯的并发编程[1]。三种线程共享对单链表的访问:搜索者,插入者和删除者。 搜索者只检查列表; 因此它们可以彼此同时执行。 插入者将新项添加到列表的末尾; 插入必须是互斥的,以防止两个插入者几乎同时插入新项。 但是,一个插入可以与任意数量的搜索并行进行。 最后,删除者从列表中的任何位置删除项目。每次最多只能有一个删...翻译 2018-09-29 16:00:47 · 629 阅读 · 1 评论 -
The Little Book of Semaphores 信号量小书 第六章 不那么经典的问题 6.2 男女通用的浴室问题
第六章 不那么经典的问题 6.2 男女通用的浴室问题当我的一个朋友离开她在科尔比学院教物理学的职位并在施乐公司找到一份工作时,我写了这个问题。【后来我了解到安德鲁斯的并发编程[1]中出现了一个几乎相同的问题】她在一个混凝土隔间的地下室里工作,而最近的女士浴室要上两层楼。 她向Uberboss提议,他们将他那一层楼的男士浴室改成男女通用的浴室,有点像Ally McBeal的。Ub...翻译 2018-09-29 16:38:28 · 1130 阅读 · 0 评论 -
The Little Book of Semaphores 信号量小书 第六章 不那么经典的问题 6.3 狒狒穿越问题
第六章 不那么经典的问题 6.3 狒狒穿越问题这个问题改编自Tanenbaum的操作系统:设计和实现[12]。 南非克鲁格国家公园(Kruger National Park)的某处有一个深峡谷,还有一条横跨峡谷的绳索。 狒狒可以在绳子上手挽手地摆动着穿过峡谷,但如果两个朝相反方向走的狒狒在中间相遇,他们将会战斗并摔死。 此外,绳索仅足以容纳5只狒狒。 如果绳子上同时有更多的狒狒,它就会...翻译 2018-09-29 16:49:52 · 897 阅读 · 0 评论 -
The Little Book of Semaphores 信号量小书 第六章 不那么经典的问题 6.4 莫德斯大厅问题
第六章 不那么经典的问题 6.4 莫德斯大厅问题(The Modus Hall Problem)这个问题是由Nathan Karst写的,他是2005年冬天住在Modus Hall的Olin学生之一。【Modus Hall是模块化建筑的几个昵称之一,又名Mods,第二住宅大厅正在建造时,一些学生就住在里面。】今年冬天下了一场特别大的雪之后,莫德斯大厅的居民在他们的纸板棚户区和校...翻译 2018-09-29 18:03:02 · 332 阅读 · 0 评论 -
The Little Book of Semaphores 信号量小书 第七章 不太遥远的经典问题 7.1 寿司吧问题
第七章 不太遥远的经典问题 7.1 寿司吧问题这个问题的灵感来自Kenneth Reek提出的问题[9]。 想象一下有5个座位的寿司吧。 如果您在空座位时到达,您可以立即就座。 但是如果你在所有5个座位都已满的时候到达,这意味着他们所有人都在一起用餐,你必须等待整个派对离开后,你才能坐下。思考:为进入和离开寿司吧的客户编写代码,以执行这些要求。 7.1.1 寿司吧提示以...翻译 2018-09-30 09:26:09 · 631 阅读 · 0 评论 -
The Little Book of Semaphores 信号量小书 第七章 不太遥远的经典问题 7.2 儿童保育问题
第七章 不太遥远的经典问题 7.2 儿童保育问题Max Hailperin为他的教科书《操作系统和中间件》[5]编写了这个问题。 州法规要求,在儿童保育中心,每三个孩子总要有一个成年人在场。思考:为孩子线程和成人线程编写代码,在临界区强制执行此约束。 7.2.1 儿童保育提示Hailperin建议你可以用一个信号量来解决这个问题。multiplex计算可用令牌的...翻译 2018-10-10 09:56:49 · 294 阅读 · 0 评论 -
The Little Book of Semaphores 信号量小书 第七章 不太遥远的经典问题 7.3 房间派对问题
第七章 不太遥远的经典问题 7.3 房间派对问题(The room party problem)我在科尔比学院(Colby College)的时候写了这个问题。一个学期,一个学生指控学生办公室的人在他不在时搜查了他的房间,引起了一场争论。虽然指控是公开的,但学生院长没能对此案发表评论,所以我们一直不知道到底发生了什么。我写这个问题是为了取笑我的一个朋友,他是学生宿舍的院长。下列同步...翻译 2018-10-10 14:30:01 · 407 阅读 · 0 评论 -
The Little Book of Semaphores 信号量小书 第九章 C中的同步
第九章 C中的同步 在本节中,我们将在C中编写一个多线程的同步程序。附录B提供了一些实用程序代码,用于使C代码更加可口。 本节中的示例依赖于该代码。 9.1 互斥我们首先定义一个包含共享变量的结构体:counter是一个共享变量,它将由并发线程递增,直到它达到end。 我们将使用数组通过在每次递增后跟踪counter的值来检查同步错误。 9.1.1 父线程代码...翻译 2018-10-11 15:09:22 · 460 阅读 · 0 评论 -
The Little Book of Semaphores 信号量小书 第八章 Python中的同步
第八章 Python中的同步 通过使用伪代码,我们避免了现实世界中一些丑陋的同步细节。 在本章中,我们将介绍Python中的实际同步代码; 在下一章我们将看看C.Python提供了一个相当令人愉快的多线程环境,并配有Semaphore对象。 它有一些缺点,但附录A中有一些清理代码可以使事情变得更好。这是一个简单的例子:第一行运行附录A中的清理代码; 我将从其他例子中删除这一...翻译 2018-10-11 14:16:16 · 242 阅读 · 0 评论 -
The Little Book of Semaphores 信号量小书 第四章 经典同步问题 4.2 读者-写者问题
第四章 经典同步问题 4.2 读者 - 写者问题下一个经典问题,称为Reader-Writer问题(读者-作家问题/读者-写者问题),适用于并发线程读取和修改数据结构,数据库或文件系统的任何情况。 在写入或修改数据结构时,通常需要禁止其他线程读取,以防止读者线程中断正在进行的修改并读取不一致或无效的数据。与生产者 - 消费者问题一样,解决方案是不对称的。 读者和写者在进入关键部分之...翻译 2018-09-18 18:46:33 · 795 阅读 · 0 评论 -
The Little Book of Semaphores 信号量小书 中文版
给自己挖个坑,想把这本书翻译一下。书名:《The Little Book of Semaphores》作者:Allen B. Downey原文下载:http://greenteapress.com/semaphores/LittleBookOfSemaphores.pdf版本:V2.2.1例程下载:https://greenteapress.com/wp/semaphor...翻译 2018-09-13 18:09:16 · 5353 阅读 · 8 评论 -
The Little Book of Semaphores 信号量小书 第一章 简介
第一章 简介 1.1 同步通常,“同步”意味着两件事情同时发生。在计算机系统中,同步更为通用;它指的是事件之间的关系 - 甚至是任何数量的事件,以及任何类型的关系(之前,期间,之后)。计算机程序员经常关注同步约束,这是与事件顺序有关的要求。例子包括:顺序执行(序列化):事件A必须在事件B之前发生。 相互排斥:事件A和事件B不得同时发生。在现实生活中,我们经常使用时钟来检查并...原创 2018-09-13 20:25:51 · 2038 阅读 · 0 评论 -
The Little Book of Semaphores 信号量小书 第四章 经典同步问题 4.3 无饿死互斥
第四章 经典同步问题 4.3 无饿死的互斥在上一节中,我们讨论了被称之为绝对饥饿的问题,其中一类线程(读者)允许另一类别(写者)挨饿。 在更基本的层面上,我们必须解决线程饿死的问题,即一个线程可能无限期地等待而其他线程继续进行。对于大多数并发应用程序,饿死是不可接受的,因此我们强制执行有限等待的要求,这意味着线程等待信号量(或其他任何地方,就此而言)的时间必须可证明为是有限的。...翻译 2018-09-19 14:20:37 · 674 阅读 · 0 评论 -
The Little Book of Semaphores 信号量小书 第二章 信号量
第二章 信号量在现实生活中,信号量是用于视觉通信的信号系统,通常具有标志,灯或一些其他机制。 在软件中,信号量是一种数据结构,可用于解决各种同步问题。信号量是由著名的“古怪”的计算机科学家Edsger Dijkstra发明的。 自最初的设计以来,一些细节已经改变,但基本思路是一样的。 2.1 定义信号量就像一个整数,但有以下三个不同之处:创建信号量时,可以将其值初始化为任何...原创 2018-09-14 08:33:05 · 1055 阅读 · 1 评论 -
The Little Book of Semaphores 信号量小书 第三章 基本同步模式
目录 第三章 基本同步模式3.1 信令(发送信号)(Signaling)3.2 Sync.py 3.3 会合(Rendezvous) 3.3.1 关于“会合”的提示 3.3.2 “会合”的解决方案3.3.3 死锁-1#3.4 互斥(Mutex)3.4.1 互斥的提示3.4.2 互斥的解决方案3.5 多路复用(Multip...原创 2018-09-14 17:50:16 · 1553 阅读 · 2 评论 -
The Little Book of Semaphores 信号量小书 第四章 经典同步问题 4.4 哲学家进餐
第四章 经典同步问题 4.4 哲学家进餐哲学家进餐问题是由Dijkstra在1965年提出的,当时恐龙统治了地球[3]。 它有许多个变种,但标准特征是一张桌子,上面有五个盘子,五个叉子(或筷子)和一大碗意大利面。 代表交互线程的五位哲学家来到桌前,并执行以下循环:叉子表示线程必须保持的资源,以便取得进展。使问题变得有趣,不切实际和不卫生的事情是,哲学家需要两把叉子才能吃,所以一...翻译 2018-09-19 14:29:55 · 843 阅读 · 0 评论 -
The Little Book of Semaphores 信号量小书 第四章 经典同步问题 4.5 吸烟者问题
第四章 经典同步问题 4.5 吸烟者问题吸烟者问题问题最初由Suhas Patil [8]提出,他声称用信号量无法解决。 这种说法带有一定的条件,但无论如何,问题是有趣且具有挑战性的。涉及四个线程:代理人和三个吸烟者。 吸烟者永远地循环,首先等待配料,然后制作和吸烟。配料的成分是烟草,纸和火柴。我们假设代理商拥有无限供应的所有三种成分,每个吸烟者都有无限供应的其中一种成分; 也...翻译 2018-09-19 18:24:24 · 1740 阅读 · 0 评论 -
The Little Book of Semaphores 信号量小书 第五章 稍欠经典的同步问题 5.1 野蛮人进餐问题
第五章 稍欠经典的同步问题 5.1 野蛮人进餐问题 这个问题来自安德鲁斯的并发编程[1]。一个野蛮人部落从一个大锅里吃公共晚餐,大锅可以容纳大量的炖传教士。【这个问题是基于对狩猎 - 采集社会中西方传教士历史的卡通化表现。 一些幽默的意图是针对哲学家进餐的问题,但这里的“野蛮人”的表现并不是为了比以前的哲学家的表现更为现实。 如果你对狩猎 - 采集社会感兴趣,我推荐Jared ...翻译 2018-09-19 19:34:32 · 558 阅读 · 0 评论 -
The Little Book of Semaphores 信号量小书 第五章 稍欠经典的同步问题 5.2 理发店问题
第五章 稍欠经典的同步问题 5.2 理发店问题最初的理发店问题是由Dijkstra提出的。 它的变体出现在Silberschatz和Galvin的操作系统概念[10]一书中。理发店包括一间带n把椅子的等候室和带理发椅的理发室。 如果没有顾客服务,理发师就会睡觉。 如果顾客进入理发店并且所有椅子都被占用,则顾客离开商店。 如果理发师很忙,但是椅子可用,则顾客坐在其中一把空椅子上。 如...翻译 2018-09-25 16:12:11 · 626 阅读 · 0 评论 -
The Little Book of Semaphores 信号量小书 第五章 稍欠经典的同步问题 5.3 先进先出理发店
第五章 稍欠经典的同步问题 5.3 先进先出理发店在上一个解决方案中,无法保证顾客按照他们到达的顺序获得服务。 最多有n个顾客可以通过旋转栅门,发出customer信号,并等待barber信号。 当理发师发出barber信号时。任何顾客都可能继续。修改此解决方案,以便按照他们通过旋转栅门的顺序提供服务。提示:您可以将当前线程称为self,因此如果您编写self.sem = Se...翻译 2018-09-25 16:23:59 · 441 阅读 · 0 评论 -
The Little Book of Semaphores 信号量小书 第七章 不太遥远的经典问题 7.5 法纳尔大厅问题
第七章 不太遥远的经典问题 7.5 法纳尔大厅问题(The Faneuil Hall problem)这个问题是由格兰特哈钦斯(Grant Hutchins)写的,他的灵感来自一位在波士顿法纳尔大厅宣誓加入美国的朋友。“有三种线程:移民、观众和一名法官。移民必须排队等候,登记,然后坐下。在某个时候,法官进入大楼。当法官在大楼内时,任何人不得进入,移民不得离开。观众可能会离开。一旦所...翻译 2018-10-11 10:37:04 · 397 阅读 · 0 评论 -
The Little Book of Semaphores 信号量小书 第七章 不太遥远的经典问题 7.6 餐厅问题
第七章 不太遥远的经典问题 7.6 餐厅问题(Dining Hall problem)这个问题是由Jon Pollack在Olin College的同步课程中编写的。学生们在餐厅里用餐(dine),然后离开(leave)。 在调用dine之后,调用leave之前,学生被认为“准备离开”。适用于学生的同步约束是,为了保持社会温和的错觉,学生永远不能独自坐在桌子旁。 如果在完成用餐...翻译 2018-10-11 11:22:08 · 408 阅读 · 0 评论 -
The Little Book of Semaphores 信号量小书 第七章 不太遥远的经典问题 7.4 参议院巴士问题
第七章 不太遥远的经典问题 7.4 参议院巴士问题这个问题最初是基于韦尔斯利学院的参议院巴士问题。 乘客到公共汽车站来等公共汽车。 当公共汽车到达时,所有等候的乘客都会调用boardBus,但是在公共汽车上客时到达的任何人都必须等待下一班公共汽车。 公交车的容量为50人; 如果有超过50人等待,有些人将不得不等待下一班车。当所有等待的乘客上车后,公共汽车可以调用depart。 如果...翻译 2018-10-10 15:17:08 · 602 阅读 · 1 评论