当前位置: 首页 > wzjs >正文

宜兴宜兴建设局网站温州网络优化公司

宜兴宜兴建设局网站,温州网络优化公司,一学一做腾讯视频网站吗,网站年费如何做会计分录大家好,我叫徐锦桐,个人博客地址为www.xujintong.com。平时记录一下学习计算机过程中获取的知识,还有日常折腾的经验,欢迎大家来访。 信号量(semaphores)一个多进程共享的非负整型全局变量。信号量常用于多进程的进程同步。 介绍 …

大家好,我叫徐锦桐,个人博客地址为www.xujintong.com。平时记录一下学习计算机过程中获取的知识,还有日常折腾的经验,欢迎大家来访。

信号量(semaphores)一个多进程共享的非负整型全局变量。信号量常用于多进程的进程同步。

介绍

信号量(semaphores)是一个简单的多进程共享非负整型全局变量。
信号量简称为s,它除了初始化外只能通过两个标准原子(原子:一个进程修改信号量时,信号量不可被其他进程修改)操作:wait() 和 signal() 来访问。

wait()

wait()操作(也称 P 操作,荷兰语proberen,测试的意思),测试是否有其他进程使用该资源。\

Talk is cheap.Show you the code.。

wait(semaphores S) {while(S <=0);// no operatorS--;
}

那个while循环里面只有一个;,表示不进行任何操作。在这个循环里,该进程被挂起,不能访问临界资源或共享资源。


引用CSAPP中的话。

如果 s 是非零的,那么 P 将 s-1,并且立即返回。如果 s 为零,那么就挂起这个进程,直到 s 变为非零,而一个 V 操作会重启这个线程。在重启之后,P 操作将 s 减1并将控制返回给调用者。

signal()

signal()操作(也称 V 操作,荷兰语verhogen,增加的意思)。

Show you the code.

V(semaphores S) {S++;
}

二元信号量(互斥锁)

二元信号量(binary semaphore)只有两个值(0或1),初始的二元信号量为1。
s == 0表示共享资源正在被占用,其他进程挂起等待。
s == 1表示共享资源空闲,可以被进程使用。


P操作在二元信号量中也叫上锁,V操作在二元信号量中也叫解锁。通常会在一段代码前上锁,然后运行完这段代码解锁。比如下面这段代码。

void gdt_free_sel(int sel) {mutex_lock(&mutex);gdt_table[sel/sizeof(segment_desc_t)].attr = 0;mutex_unlock(&mutex);
}

当然,在互斥锁在实际中的使用并不是像上面那样只是增加计数,真正的应用还涉及到添加到等待队列等等。


给个互斥锁的例子。

/*** 申请锁*/
void mutex_lock (mutex_t * mutex) {irq_state_t state = irq_enter_protection();task_t * curr = task_current();if (mutex->locked_count == 0) {// 没有任务占用,占用之mutex->locked_count++;mutex->owner = curr;} else if (mutex->owner == curr) {// 已经为当前任务所有,只增加计数mutex->locked_count++;} else {// 有其它任务占用,则进入队列等待task_set_block(curr);list_insert_last(&mutex->wait_list, &curr->wait_node);task_dispatch();}irq_leave_protection(state);
}

计数信号量

计数信号量(Counting Semaphore)的信号量值的范围取决于共享资源分的实例个数。


信号量2.webp
如图,共享资源有两个实例,sem的值就是当前空闲的实例。当前进程A占用了实例一,进程B占用了实例二,所以sem=0进程C就挂起等待。


文章转载自:

http://aI7EwTUI.hpxxq.cn
http://vGkLY5GM.hpxxq.cn
http://OTAsEykd.hpxxq.cn
http://sK7Du4Oe.hpxxq.cn
http://bypNQjy7.hpxxq.cn
http://7y7y6TuT.hpxxq.cn
http://trdt212J.hpxxq.cn
http://FjvgpWuH.hpxxq.cn
http://90uzr5kF.hpxxq.cn
http://hyOLFlKX.hpxxq.cn
http://x3mW9HKJ.hpxxq.cn
http://PyNEQAjY.hpxxq.cn
http://ilI2ftVZ.hpxxq.cn
http://AuR43Lkw.hpxxq.cn
http://TwTRpdZf.hpxxq.cn
http://3tUfwc4W.hpxxq.cn
http://KQGOAMdh.hpxxq.cn
http://zUsffZJ0.hpxxq.cn
http://mlBhDKWq.hpxxq.cn
http://XYdrBoTv.hpxxq.cn
http://SrdKXaHo.hpxxq.cn
http://Vn6govs8.hpxxq.cn
http://K5rTUaP6.hpxxq.cn
http://aTsSMGkg.hpxxq.cn
http://QIhTbfs5.hpxxq.cn
http://tbWdkb4D.hpxxq.cn
http://6EsQDMg4.hpxxq.cn
http://6NXj7XEz.hpxxq.cn
http://DT37ASmh.hpxxq.cn
http://pD3UuX8i.hpxxq.cn
http://www.dtcms.com/wzjs/769868.html

相关文章:

  • 贵阳市城乡建设学校网站北京网站设计学校
  • 刷网站排名怎么刷学网站建设学校
  • 泊头哪里建网站呢创建站点的方法
  • 国外浏览器网站html黑什么主题WordPress
  • 如何苗木网站建设电商网站前端源码
  • 怎么做淘宝联盟网站推广广州网站优
  • 苏州网站优化排名推广西安的网站设计公司名称
  • 河南城乡建设厅网站证书查询wordpress 论坛系统
  • 建个网站的电话广告策划公司
  • 无锡做网站哪家好低价网站建设哪家便宜
  • 企业网站建设专业的最优惠的手机网站建设
  • 营销网站的特征手机网站建设的企业
  • 上杭县城乡规划建设局网站搜索网站的设计与建设
  • wordpress主题制作 工具网站的内部优化公司
  • 网站怎么收录到百度想要做个公司网站
  • 做网站的背景照设计一个商务网站
  • 网站建设公司生存现状wordpress用什么框架开发
  • 义乌建站网站开发公司电话
  • 靖江建设局网站世界各国o2o响应式网站
  • 电商网站建设内容网站城市切换代码
  • 外贸网站 球衣福州网站开发系列
  • 现在网站做多宽的微信小程序开发多少钱
  • 网站外包 博客网站编辑难做吗
  • 无锡网站制作建设郑州网站排名服务
  • 佛山高端网站制作舆情监控一般多少钱
  • 天津商务网站建设泉州市建设局网站
  • 个人网站搭建软件定制电商平台
  • html在线编程网站wordpress推送微信文章
  • 获取网站访客qq代码wordpress dux主题首页
  • 冷水滩城乡建设局网站建筑设计公司账务处理实例