【版权声明:尊重原创,转载请保留出处:blog.csdn.net/shallnet 或 .../gentleliu,文章仅供学习交流,请勿用于商业用途】
当一个系统中存在多个进程同时操作同一个文件时,为了保证数据的正确, 一般会将文件上锁来避免共享文件产生的竞争状态。在linux系统下文件上锁可以使用fcntl函数来实现。
函数fcntl原型如下:
...
分类:
系统相关 时间:
2015-01-07 00:44:01
阅读次数:
324
继续昨天未完成的工作,昨天主要介绍了一体机开发的主要功能(一体广告机实现思路,非常实用(一)),今天主要介绍实现逻辑(代码层面)。也许有些人会认为实现起来很简答,也许不会的人可能比登天还难,O(∩_∩)O哈哈~,我就来简单介绍下。也许我说的方法不是最好的,希望你能提供更好的方法,大家一起学习交流了....
分类:
其他好文 时间:
2015-01-06 21:27:36
阅读次数:
207
【版权声明:尊重原创,转载请保留出处:blog.csdn.net/shallnet 或 .../gentleliu,文章仅供学习交流,请勿用于商业用途】
system V信号量操作类似于posix信号量,但system V信号量的操作要复杂得多,posix信号量使用步骤为sem_init(sem_open)-->sem_wait(sem_post) --> sem_close详见上一...
分类:
系统相关 时间:
2015-01-05 20:34:59
阅读次数:
260
【版权声明:尊重原创,转载请保留出处:blog.csdn.net/shallnet 或 .../gentleliu,文章仅供学习交流,请勿用于商业用途】
在前面讲共享内存的IPC时曾说共享内存本身不具备同步机制,如果要实现同步需要使用信号量等手段来实现之,现在我们就来说说使用posix的信号量来实现posix多进程共享内存的同步。其实信号量也可以使用在同一进程的不同线程之间。
...
分类:
系统相关 时间:
2014-12-23 21:13:31
阅读次数:
199
【版权声明:尊重原创,转载请保留出处:blog.csdn.net/shallnet 或 .../gentleliu,文章仅供学习交流,请勿用于商业用途】
在第一节说到了生产者消费者问题,这一节我们来实现这样一个稍作修改的模型: 初始时缓冲区为空,生产者向缓冲区写入数据,消费者在缓冲区为空的情况下睡眠,当生产者写满缓冲区一半之后后通知消费者可以开始消费,生产者开始睡眠,直到消费者消...
分类:
编程语言 时间:
2014-12-23 17:32:51
阅读次数:
225
【版权声明:尊重原创,转载请保留出处:blog.csdn.net/shallnet 或 .../gentleliu,文章仅供学习交流,请勿用于商业用途】
上一节说到线程的互斥锁,互斥锁适合防止访问某个共享变量,这一节我们来看看两个线程如何实现同步。互斥锁也可以实现线程同步,当该值满足某种条件时当前线程继续执行,否则继续轮询,不过这样相当浪费cpu时间。我们需要的是让某个线程进入睡...
分类:
编程语言 时间:
2014-12-20 14:18:19
阅读次数:
258
【版权声明:尊重原创,转载请保留出处:blog.csdn.net/shallnet 或 .../gentleliu,文章仅供学习交流,请勿用于商业用途】
当操作系统进入多道批处理系统时代以后,一个系统中就存在多个任务,每个任务都按照一定的算法进行调度来使用内存、cpu等共享资源。当其中一个任务等待其他资源时,该任务可以暂时睡眠,操作系统调度另外任务继续执行额,这样可以使系统资源得...
分类:
系统相关 时间:
2014-12-17 21:02:39
阅读次数:
231
【版权声明:尊重原创,转载请保留出处:blog.csdn.net/shallnet 或 .../gentleliu,文章仅供学习交流,请勿用于商业用途】
有了进程的概念,为何还要使用线程呢?
首先,回忆一下上一个系列我们讲到的IPC,各个进程之间具有独立的内存空间,要进行数据的传递只能通过通信的方式进行,这种方式不仅费时,而且很不方便。而同一个进程下的线程是共享全局内存的,所以...
分类:
编程语言 时间:
2014-12-17 21:00:37
阅读次数:
195
【版权声明:尊重原创,转载请保留出处:blog.csdn.net/shallnet 或 .../gentleliu,文章仅供学习交流,请勿用于商业用途】
这个系列基本上到现在为止已经差不多把linux上的各种常用的IPC介绍完了,linux上面的IPC大多都是从UNIX上面继承而来。
最初Unix IPC包括:管道、FIFO、信号。System ...
分类:
系统相关 时间:
2014-12-09 19:47:35
阅读次数:
382
【版权声明:尊重原创,转载请保留出处:blog.csdn.net/shallnet 或 .../gentleliu,文章仅供学习交流,请勿用于商业用途】
system V消息队列和posix消息队列类似,linux系统这两种消息队列都支持。先来看一下system V消息队列相关操作及其函数。
msgget()函数创建一个消息队列或打开一个消息队列。
...
分类:
系统相关 时间:
2014-12-08 19:40:20
阅读次数:
317