社区
Linux/Unix社区
帖子详情
有关临界区 锁问题
gaoxianfeng
2003-12-25 10:45:31
记得在windows下有系统锁函数 就是在lock unlock之间独占cpu,不知道在linux下是否也有类似的函数? 或者有其他方法可以实现此要求。 谢谢各位大虾。
...全文
43
16
打赏
收藏
有关临界区 锁问题
记得在windows下有系统锁函数 就是在lock unlock之间独占cpu,不知道在linux下是否也有类似的函数? 或者有其他方法可以实现此要求。 谢谢各位大虾。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
loveisbug
2004-01-06
打赏
举报
回复
临界区可以用信号量进行互斥的控制。
如果是多CPU可以用TSL指令。
blh
2004-01-06
打赏
举报
回复
你可以嵌入汇编,直接Lock CPU具体指令自己查查吧
gaoxianfeng
2004-01-06
打赏
举报
回复
:)
明天结贴了
希望能再有点头绪
谢谢大家了
fierygnu
2003-12-30
打赏
举报
回复
呵呵,就不该用linux。DOS比较合适。
aprccherry
2003-12-30
打赏
举报
回复
独占cpu是不是太狠了点?
gaoxianfeng
2003-12-30
打赏
举报
回复
UP
gaoxianfeng
2003-12-26
打赏
举报
回复
UP
GZ
有分啊。
谢谢
gaoxianfeng
2003-12-26
打赏
举报
回复
谢谢 kangjian1
我这着急啊。
自己有过了回复次数 顶不上来啊。
信号量当然可以了
这不是心血来潮嘛。
探讨一下
kangjian1
2003-12-26
打赏
举报
回复
简单点,用信号量(semaphore)不行吗?(单cpu下)
gaoxianfeng
2003-12-26
打赏
举报
回复
oo
rexp
2003-12-25
打赏
举报
回复
好像有atomic_t的东西,不过不知道怎么用的。
还有一些内核中的,spinlock等等,都没有用过,你有兴趣研究一下,然后教我。
daidai_____DD
2003-12-25
打赏
举报
回复
不是独占CPU,是用来保护共享数据的
daidai_____DD
2003-12-25
打赏
举报
回复
pthread_mutex_t
man pthread_mutex_init
man pthread_mutex_luck
man pthread_mutex_unlock
fierygnu
2003-12-25
打赏
举报
回复
独占CPU?好象不行。
gaoxianfeng
2003-12-25
打赏
举报
回复
呵呵 都尝试过
不好使
mutex的是相对的读写互锁
spinlock 一般对多cpu用,大多数非自编译系统都不支持
单cpu用关所有中断就可实现spin_lock
atomic_t 是什么? 没用过 :(
fierygnu
2003-12-25
打赏
举报
回复
sig_atomic_t不是干这个的。
临界
区
和
锁
临界
区
临界资源:只允许一个进程独占访问的资源。(变量、内存。。。) 临界
区
:进程访问临界资源的程序段 特点 排他性:并发进程不能同时进入临界
区
设计临界
区
访问机制的四个原则: 忙则等待:临界
区
忙时,其他进程必须在临界
区
外等待 空闲让进:无进程访问时,任何有权进程都可进入临界
区
有限等待:进程进入临界
区
的请求应在有限时间内满足 让权等待:等待临界
区
访问的进程放弃CPU,让给其他进程
锁
...
多线程——临界
区
-
锁
今天,我们接着上次说的,来继续回顾一下多线程的基础—临界
区
和
锁
····· 今天我们主要是通过临界
区
的说明,来引出
锁
的一些
问题
。我们要知道死
锁
的危险始终存在,但是我们应该尽量减少这种危害存在的范围,多线程是一把双刃剑,有了效率的提高当然就有死
锁
的危险。所以我们要尽量多了解这些方面的知识,让自己少在这些地方踩坑。
临界
区
和互斥
锁
的
区
别
1、临界
区
只能用于对象在同一进程里线程间的互斥访问;互斥体可以用于对象进程间或线程间的互斥访问。 2、临界
区
是非内核对象,只在用户态进行
锁
操作,速度快;互斥体是内核对象,在核心态进行
锁
操作,速度慢。 3、临界
区
和互斥体在Windows平台都下可用;Linux下只有互斥体可用 互斥体对象用于进程间通信: multi_process_mutex.c #include #in
【操作系统基础】临界
区
问题
和 和原子操作的理解 和 互斥
锁
的实现和理解
临界
区
问题
每个并发的进程都有一个代码段,被叫做临界
区
,这个代码段也是临界
区
可能会改变并发进程的公告资源数据,更新数据,写入文件等操作; 在并发的进程中,当有一个进程正在执行临界
区
的代码时候,其他并发的进程是不可以被允许去执行临界
区
的代码的,换句话说:两个进程是不可以不可能同时执行临界
区
的内容; 总的来说:临界
区
问题
就是设计一种协议:这种协议它可以保证进程之间相互协作; 进程进入临界
区
协议 当我们一个进程需要进入临界
区
时候,需要获取进入临界
区
的许可,当我们离开临界
区
时候,需要归还临界
区
的许可;
互斥对象
锁
和临界
区
锁
性能比较
在Win32平台上进行多线程编程,常会用到
锁
。下边用C++实现了互斥对象(Mutex)
锁
和临界
区
(CRITICAL_SECTION)
锁
,以加深理解和今后方便使用。代码已在VS2005环境下编译测试通过。 Lock.h #ifndef _Lock_H #define _Lock_H #include //
锁
接口类 class ILock { public: virtual ~ILock
Linux/Unix社区
23,125
社区成员
74,509
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章