- 操作系统教程
- 操作系统 - 首页
- 操作系统 - 需求
- 操作系统 - 概述
- 操作系统 - 历史
- 操作系统 - 组成部分
- 操作系统 - 结构
- 操作系统 - 架构
- 操作系统 - TAT & WAT
- 操作系统 - 类型
- 操作系统 - 服务
- 操作系统 - 属性
- 操作系统 - 进程
- 操作系统 - 进程调度
- 操作系统 - 调度算法
- 操作系统 - 多线程
- 操作系统 - 内存管理
- 操作系统 - 虚拟内存
- 操作系统 - I/O 硬件
- 操作系统 - I/O 软件
- 操作系统 - 文件系统
- 操作系统 - 安全性
- 操作系统 - Linux
- 操作系统 - 考试题及答案
- 操作系统 - 考试题及答案
- 操作系统实用资源
- 操作系统 - 快速指南
- 操作系统 - 资源
- 操作系统 - 讨论
操作系统信号量问答 #1
问题:解释信号量并写一个简短的说明。
答案:Dijkstra提出了一种重要的技术,用于管理复杂互斥问题的并发进程。他引入了一种新的同步工具,称为信号量。
信号量分为两种类型:
二元信号量
计数信号量
二元信号量只能取值 0 & 1。计数信号量可以取非负整数。
在信号量上定义了两个标准操作,wait 和 signal。进入临界区由 wait 操作控制,退出临界区由 signal 操作控制。wait 和 signal 操作也称为 P 和 V 操作。信号量 (S) 的操作如下:
wait 命令 P(S) 将信号量值减 1。如果结果值变为负数,则 P 命令被延迟,直到条件满足。
V(S) 即 signal 操作将信号量值加 1。
在 P(S) 和 V(S) 内强制执行信号量的互斥。如果多个进程同时尝试 P(S),则只允许一个进程继续,其他进程将等待。这些操作定义如下:
P(S) or wait(S): If S > 0 then Set S to S-1 Else Block the calling process (i.e. Wait on S) V(S) or signal(S): If any processes are waiting on S Start one of these processes Else Set S to S+1
信号量操作实现为操作系统服务,因此 wait 和 signal 本质上是原子的,即一旦开始,这些操作的执行就不能中断。
因此,信号量是一种简单而强大的机制,可以确保并发进程之间的互斥。
广告