linux c中有什么机制能让多条语句构成一个原操作呢

linux c中有什么机制能让多条语句组成一个原操作呢?
如题,在多进程环境下,为了保证某一任务完整的执行后才允许其他进程执行,有什么机制可以让几条语句要么不执行要么全执行呢?能给个例子更好。
c 原操作 多条语句

------解决方案--------------------
参考http://www.cnblogs.com/FrankTan/archive/2010/12/11/1903377.html
------解决方案--------------------
引用:
如题,在多进程环境下,为了保证某一任务完整的执行后才允许其他进程执行,有什么机制可以让几条语句要么不执行要么全执行呢?能给个例子更好。


内核用机制,可以独占cpu
------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

如题,在多进程环境下,为了保证某一任务完整的执行后才允许其他进程执行,有什么机制可以让几条语句要么不执行要么全执行呢?能给个例子更好。


内核用机制,可以独占cpu

能否再提示一下,有点不懂,假如电脑是多核的这个方法还能行吗?


这段任务按道理是相对的一小段程序,锁住当前核心就行了啊,别的让他跑,当然你是多线程的程序还要另当多一些考虑。
------解决方案--------------------
应该是实现进程互斥锁吧,比如用信号量这种方式.
都忘得差不多了....
------解决方案--------------------
引用:
Quote: 引用:

"原子操作"  和 "要么不执行要么全执行呢" 可不是一个意思.
原子操作只能是说执行的过程中不会被打扰, 中断.
 "要么不执行要么全执行呢" 更像是一个数据库的事务操作. 要么成功, 要么失败. 如果后面的语句失败了, 要求前面的语句不起作用, 或者说回滚回去.

嗯嗯,是的,应该是原子操作,这个怎么解决呢?

如果你是不让多个相同的进程进入同一块代码区域, 用信号量即可. 
如果你是想要执行这段代码的时候不准操作系统进行任务切换到其它进程, 这个估计在用户层就完成不了了.
------解决方案--------------------
1。写成中断处理程序,然后屏蔽所有中断,当然这也不是绝对的,毕竟系统中断你是屏蔽不了的。

但是也能达到一定的效果,可是lz写工作时间比较长,这部分工作一般都是放在中断下部分!

2。读写信号量那。


------解决方案--------------------
如果就两个进程AB;当然也可以采用信号机制,当A写完了,给B发个信号:嘿,我写完了,你来取吧!
B:好的,就来!
A:别黄,我没写好
B:逗我玩呢
A:恩,我就看看信号机制好不好使
linux c中有什么机制能让多条语句构成一个原操作呢
------解决方案--------------------
引用: