您的位置:首页 > 运维架构 > Linux

Linux期末复习知识点小结(六)——线程与进程通信之管道通信概念

2015-02-02 17:26 501 查看
管道是一种先进先出(FIFO)的特殊文件,常量PIPE_BUF指定一个管道缓冲区可容纳的最大字节数。管道分为两类:

□无名管道                              □有名管道

 

无名管道

无名管道主要用于具有同一祖先的进程间通信

   系统调用:  status=pipe (fds)

fds是一个二元整型数组,用于存放标识管道的两个文件描述符。

fds是一个二元整型数组,用于存放标识管道的两个文件描述符。当调用pipe后,返回两个文件描述符fds[0]和fds[1]。父进程创建子进程时,子进程会继承父进程中的这两个文件描述符。当需要完成通信的进程结束时,无名管道也自行结束.

现在的UNIX系统版本中pipe系统调用可以返回两个全双工的文件描述符

 

有名管道 (FIFO管道)

有名管道(named pipe)生成时在文件系统中生成一个目录项,允许其他进程对该管道进行访问。

1)命令方式:   mknod PIPE p   2) 系统调用方式: 
intmknod( path, mode, dev)

系统调用dup

dup(fd)

    复制文件描述符fd至最小未使用的文件描述符. dup可以用来实现输入输出重定向

 

进程通信技术除了管道通信外还有共享存储区通信技术、IPC

 


线程 ——轻量进程(Light-WeightProcess, LWP).

线程(Threads):比进程更小的独立运行的基本单位,用它来提高系统内程序并发执行的程度,以提高资源利用率和系统吞吐量

进程的两个基本属性:

1.进程是一个可拥有资源的独立单位。

2.进程同时又是一个可独立调度和指派的基本单位。

 这两个属性构成了进程并发执行的基础

 

然而,为使程序能并发执行,系统还必须进行以下一系列操作:

1.创建进程

系统在创建一个进程时,必须为它分配其所必须的、除处理机以外的所有资源,如内存空间、I/O设备、以及建立相应的PCB.

2.撤销进程

在撤销进程时,必须先对其所占的资源执行回收操作,然后再撤销PCB.

3.进程切换

对进程进行切换时,由于要保留当前进程的cpu环境和设置新选中进程的cpu环境,因此须花费不少的处理机时间。

 

在同一进程中,线程的切换不会引起进程的切换,但从一个进程的线程切换到另一个进程中的线程时,将会引起进程的切换。   

 

PS:这几篇文章是自己的复习总结,部分内容是自己按照自己的理解做出的关系图,如果有误,请各位批评指正,而且这些文章并不难,只是一些知识点的总结,没有涉及深层次的知识,所以适合初学者观看。Linux系统系统复杂,其中有些知识点再此并为列出,请有意向继续学习的读者自行参考其他前辈的博客学习。期末复习系列知识点小结至此结束。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  unix linux 操作系统