linux 进程通信和同步

               Linux,和现代的UNIX实现一样,提供了许多机制来实现IPC,包括:

               (1)signals, (信号)暗示这个时间发生。

               (2)pipes 管道, (熟悉shell用户的人知道 | 操作) 和FIFO, 它用于在不同进程之间传送数据。

               (3)sockets 。 网络通信。

               (4)file locking, 文件锁。 为了防止另外的进程读或者更新文件内容,我们需要锁住此文件的区域。

               (5)message queues, 消息队列。 用于在不同进程之间交换信息。

               (6)semaphores, 信号量。 用于同步进程活动。

               (7)shared memory. 分享库。 更多的进程分享一片内存。当一个进程改变了分享库的内容的时候,另外一些也随之改变。

                 一. 信号量

                       信号量是由内核,另外的进程(相应的权限),进程本身发送到进程。比如,内核可以在下列情况下发送信号到此进程:

                        (1)用户输入终结字符(通常是Control-C).

                         (2)一个进程的孩子之一结束。
                        (3) 时间过期

                        (4) 进程企图进入非法的内存地址。

                        接收到信号量的进程可能做如下操作:

                         (1)忽略此消息。

                         (2)被此信号量杀死

                         (3) 挂起,知道特定的信号来恢复状态。

                二.线程

                      由于线程共享了进程的环境,包括属性和虚拟内存。每一个线程都执行同一个程序并分享同一个数据区域和堆栈。但是每一个线程都有自己的栈,用来保存本地变量和函数调用信息。

                      线程通信是通过分享的全局变量,API提供了条件变量和mutexes, 保证了通信和同步。

               三. 会话,控制终端和控制线程

                     会话是进程组的集合(相当于任务)。 在一个会话中的所有进程都有同一个会话认证。session leader 是创建这个会话的进程,它的的ID变成了会话ID。

                     会话主要用于任务控制shells. 就是相当于我打开一个控制终端,那就这就是一个会话。

               四. Pseudoterminal 为终端

                     伪终端是一对连接的虚拟设备,被认为是主和奴的关系。设备配对提供了一个可以双向传数据的通道。 伪终端的表现像一个中断,它使用了另外的一个程序连接到真正的终端。如X Window System , telnet 和ssh

               五. 两种时间对进程来说是有用的

                    (1)实时时间

                    (2)进程时间

               六. /proc 文件系统

                    如同其它UNIX实现,Linux提供了/proc文件系统,它组成了许多挂在到/proc目录下的目录和文件。这个文件系统是虚拟俄文件系统,提供对内核数据结构的接口。它提供了一种简单的机制来查看和改变不同的系统属性。另外,所有的目录都以PID的形式存在,允许用户查看每个运行在系统的进程信息。/proc文件的内容是可读的,也可以由shell脚本识别, 程序可以简单的打开,读,写等操作。 大部分情况下,进程有权利修正文件的内容。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值