实验三:进程同步实验 一、实验任务: (1)掌握操作系统的进程同步原理; (2)熟悉linu x 的进程同步原语; (3)设计程序,实现经典进程同步问题
二、实验原理: (1)P、V 操作 PV 操作由P 操作原语和V 操作原语组成(原语是不可中断的过程),对信号量进行操作,具体定义如下: P(S):①将信号量S 的值减1,即S=S-1; ②如果S³0,则 该 进程继 续 执 行;否 则 该 进程置 为 等 待 状 态 ,排 入 等 待 队 列
V(S):①将信号量S 的值加 1,即S=S+1; ②如果S>0,则 该 进程继 续 执 行;否 则 释 放 队 列 中第 一个 等 待 信号量的进程
(2)信号量 信号量(semaphore)的数 据 结 构 为 一个 值和一个 指 针 ,指 针 指 向 等 待 该 信号量的下一个 进程
信号量的值与 相 应 资 源 的使 用 情 况 有 关
当 它 的值大 于 0 时 ,表 示 当 前 可用 资 源 的数 量;当 它 的值小 于 0 时 ,其 绝 对值表 示 等 待 使 用 该 资 源 的进程个 数
注 意 ,信号量的值仅能 由PV 操作来 改 变
一般 来 说 ,信号量S³0 时 ,S 表 示 可用 资 源 的数 量
执 行一次 P 操作意 味 着请求分配一个 单位资 源 ,因此S 的值减1;当 S