下载此文档

进程间同步互斥-课件(PPT·精·选).ppt


文档分类:中学教育 | 页数:约19页 举报非法文档有奖
1/19
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/19 下载此文档
文档列表 文档介绍
LINUX 进程间同步互斥同步与互斥?互斥:并发执行的进程共享某些类临界资源,对临界资源的访问应当采取互斥的机制。?同步:并发执行的进程间通常存在相互制约的关系, 进程必须遵循一定的规则来执行,同步机制可以协调相互制约的关系。 PV 原语? PV 原语通过操作信号量来处理进程间的同步与互斥的问题。其核心就是一段不可分割不可中断的程序。?P原语: P是荷兰语 Proberen (测试)的首字母。为阻塞原语,负责把当前进程由运行状态转换为阻塞状态,直到另外一个进程唤醒它。?V原语: V是荷兰语 Verhogen (增加)的首字母。为唤醒原语,负责把一个被阻塞的进程唤醒,它有一个参数表,存放着等待被唤醒的进程信息。 PV 原语的操作?P原语:申请一个空闲资源(把信号量减 1),若成功,则退出;若失败,则该进程被阻塞; ?V原语:释放一个被占用的资源(把信号量加 1), 如果发现有被阻塞的进程,则选择一个唤醒之。 LINUX 中的信号量?信号量的概念 1965 年由著名的荷兰计算机科学家 Dijkstra 提出,其基本思路是用一种新的变量类型( semaphore )来记录当前可用资源的数量。? linux 中的信号量是一个整数?大于或等于 0 时代表可供并发进程使用的资源实体数; ?小于 0 时代表正在等待使用临界区的进程数; ?用于互斥的信号量初始值应大于 0,即空闲资源总数; ?由操作系统来维护的,用户进程只能通过初始化和两个标准原语( P、V原语)来访问; 信号量元素组成: 1、表示信号量元素的值; 2、最后操作信号量元素的进程 ID ; 3、等待信号量元素值+1 的进程数; 4、等待信号量元素值为 0 的进程数; LINUX 中的信号量的主要函数(1)创建信号量 int semget (key_t key,int nSemes,int flag) (2)控制信号量 semctl (int semid,int semnum,int cmd, /* union senum arg * /) (3)对信号量+1 或-1 或测试是否为 0 int semop (int semid,struct sembuf * sops, unsigned short nsops ) (1)创建信号量 int semget( key_t key,// 标识信号量的关键字 int nSemes,// 信号量集中元素个数 int flag//IPC_CREAT ; IPC_EXCL 只有在信号量集不存在时创建)作用:创建一个新的信号量或取得一个已有信号量的键?成功:返回信号量句柄?失败:返回-1 (2)控制信号量 semctl( int semid,// 信号量集的句柄 int semnum,// 信号量集的元素数 int cmd ,//命令/* union senum arg * /.../ )允许我们直接控制信号量?成功:返回相应的值?失败:返回-1 命令 CMD 参数详细说明: ? IPC_RMID 删除一个信号量? IPC_EXCL 只有在信号量集不存在时创建? IPC_SET 设置信号量的许可权? SETVAL 设置指定信号量的元素的值为 ? GETVAL 获得一个指定信号量的值? GETPID 获得最后操纵此元素的最后进程 ID ? T 获得等待元素变为 1 的进程数? T 获得等待元素变为 0 的进程数

进程间同步互斥-课件(PPT·精·选) 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数19
  • 收藏数0 收藏
  • 顶次数0
  • 上传人aidoc2
  • 文件大小0 KB
  • 时间2016-05-07