信号量不光是进程、线程的一种通信方式,也是一种同步机制;
说通信方式:是因为各进程通过读取设置信号量来告知其它进程资源使用状况。
说同步是由于:利用信号量,可以协调控制多个进程并发的次序,保证临界资源的安全使用,保证各进程安全顺利推进。
设计者? 60年代,大名鼎鼎的Dijkstra
来源? 铁路信号系统,单轨铁道一次只能通行一列车,任何一列火车行驶到前方必须看到表面可行驶的信号灯才可进入,一旦进入信号灯马上要变色表示禁止进入,防止其它火车进入轨道。驶出后将信号灯改为允许进入。类似于旗语,信号量本质一样的。只是采用数的大小来表示状态,所有进程都要根据信号量值判断状态,决定自身行为。
Dijkstra简单认识
名言:洞察力对一个科学家是何等的重要;
洞察力(insight)是指深入事物或问题的能力,是人通过表面现象精确判断出背后本质能力。洞察力就是透过现象看本质;
主要功绩:
1 提出“goto有害论”;
2 提出信号量和PV原语;
3 解决了“哲学家聚餐”问题;
4 Dijkstra最短路径算法和[银行家算法]的创造者;
5 第一个Algol 60编译器的设计者和实现者;
6 THE操作系统的设计者和开发者;
7 “死锁”(Deadly embrace)这一术语是Dijkstra发明的
8 今天已经普遍采用的系统的多层结构、抽象、上层不需了解下层的详细细节等科学原则就是当时Dijkstra提出的等等
与D. E. Knuth并称为我们这个时代最伟大的计算机科学家的人,就是计算机科学界的巨人。