下载此文档

实现临界段的硬件方法概要PPT学习教案.pptx


文档分类:IT计算机 | 页数:约25页 举报非法文档有奖
1/25
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/25 下载此文档
文档列表 文档介绍
会计学
1
实现临界段的硬件方法概要
实现临界段的硬件方法
利用处理机提供的特殊指令实现临界区加锁
常见硬件指令有:
一、“Test_and_Set”指令
二、“Swap”指令
三、“Dec_and_Test”指令
第1页/共25页
一、“Test_and_Set”指令
其功能描述为:
Function Test_and_Set(Var target:boolean)
:boolean;
begin
Test_and_Set = target;
target = true;
end;
第2页/共25页
设lock为全局布尔变量,利用Test_and_Set指令,即可实现对临界区的加锁与解锁:
Repeat
while Test_and_Set (lock) do skip
critical section
lock = false;
non-critical section
Until false;
第3页/共25页
“Test_and_Set” 读后置1指令实例:
T&S Ri,Aj 解释为将(Aj)地址所指内存单元内容读到Ri寄存器中,同时将1置入Aj所指的内存单元中.
设Lock为临界段锁变量,则安排如下指令,即可实现加锁与解锁:*
第4页/共25页
临界段
非临界段
A1 <= &Lock;(将Lock单元地址送A1寄存器,Lock初值为0)
Loop: T&S R1, A1;
JRN R1, Loop; (If (R1=1)then goto Loop)
A1 <= &Lock;
(A1) <= 0; (置Lock内存单元为0)
第5页/共25页
二、“Swap”指令
其功能描述为:
Procedure Swap(Var a,b:boolean);
Var temp:boolean;
begin
temp = a;
a = b;
b = temp;
end;
第6页/共25页
设lock为全局布尔变量(初值为假),每个进程设一个局部布尔变量Key。利用Swap指令,可实现对临界区的加锁与解锁。
Repeat
key = true;
repeat
Swap (lock, key);
until key = false;
critical section
lock = false;
non-critical section
Until false;
第7页/共25页
设s为全局整形变量(初值为1) ,利用下面的指令序列,可实现对临界区的加锁与解锁吗?
Repeat
while s <= 0 do skip;
s--;
critical section
s++;
non-critical section
Until false;
第8页/共25页
三、“Dec_and_Test”指令
其功能描述为:

Function Dec_and_Test(Var s:int):boolean;
begin
s = s - 1;
Dec_and_Read = (s >= 0);
end;
第9页/共25页

实现临界段的硬件方法概要PPT学习教案 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数25
  • 收藏数0 收藏
  • 顶次数0
  • 上传人wz_198613
  • 文件大小133 KB
  • 时间2021-06-14