简单介绍远程指令内容
树图思维导图提供 计算机理论知识远程指令思维导图 在线思维导图免费制作,点击“编辑”按钮,可对 计算机理论知识远程指令思维导图 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:4824209157a02202aa5f03c96f55731d
远程指令思维导图模板大纲
初始化代码
特点
由编译语言支持的进程同步机制
模块化:是一个基本的软件模块
抽象数据类型:封装了数据以及对数据的操作
信息隐蔽:管程内部的数据和实现细节对外界是透明的
所有进程都只能用过管程访问临界资源,管程每次只允许一个进程进入
x.wait:把进程挂在x对应的阻塞队列上;x.signal:唤醒x的阻塞队列上的一个进程(2018)
若没有等待进程,x.signal不会有任何操作,这与信号量中的signal不同(会修改信号量变量的值)
条件变量
一种抽象数据类型,保存一个链表,用于记录因该条件变量而阻塞的所有进程
可以实现进程在条件变量内的阻塞与唤醒
软件
双标志先检查
while(flag[j]); flag[i]=ture... flag[i]=false
两个进程都进去,违背忙则等待
双标志后检查
flag[i]=ture; while(flag[j])... flag[i]=false
两个进程谁也进不去,可能导致饥饿
peterson算法(2010)
flag[i]=ture; turn=j; while(flag[j]&&turn==j)
不遵循让权等待
单标志法
while(turn!=1)...turn=1
必须循环交替执行,违背空闲让进
硬件
利用Test-and-Set指令(2016)
利用Swap指令
关中断
执行效率会明显变低
基本概念
临界资源
首先是共享资源,其次访问要互斥
包括:打印机、共享变量、共享缓冲区、公用队列(不包括磁盘)
临界区
每个进程访问临界资源的那段代码
可重入代码(纯代码)
允许多个进程同时访问,不能被任何进程修改
两种制约关系
间接相互制约(互斥)
对临界资源只能互斥地访问
直接相互制约(同步)
进程为完成同一项任务而相互合作