当前位置: 首页 > news >正文

合肥做网站公司临沂seo

合肥做网站公司,临沂seo,网站的ico怎么做,java网站开发教程 百度云IPC 进程间通信 interprocess communicate (即:进程间进行数据交换) 三大类: 进程间通信的方式(共8种) 1、古老的通信方式(Linux设计时就有的) 无名管道 有名…

IPC   进程间通信  interprocess communicate        (即:进程间进行数据交换)
    三大类:
进程间通信的方式(共8种)
1、古老的通信方式(Linux设计时就有的)
        无名管道  有名管道  信号

2、IPC对象通信 system v    BSD     suse fedora   kernel.org   (系统5)    (必须同一个电脑)
        消息队列(用的相对少,这里不讨论)
        共享内存    (最重要,用的最多,类似全局变量)
        信号量集 (信号量的集合)
        

3、socket通信        (不同电脑)
        网络通信

        
        线程信号,posix  sem_init

特列:古老的通信方式中信号是唯一的异步通信
      所有的通信方式中共享内存是唯一的最高效(重要)

1.管道==》无名管道、有名管道

    无名管道 ===》pipe ==》只能给有亲缘关系进程通信   (pipe,管子,父子进程,爷孙进程可用)
    有名管道 ===》fifo ==》可以给任意单机进程通信    (父子,爷孙,旁系关系(非父子/爷孙,如:堂兄妹)也行)


    管道的特点:
    1、管道是 半双工的工作模式  (要么在发或要么在收)
    2、所有的管道都是特殊的文件不支持定位操作。lseek->> fd  fseek ->>FILE* 
    3、管道是特殊文件,读写使用文件IO。fgets,fread,fgetc,  
    open,read,write,close;;  (首选这几个文件IO操作,标准IO也行,但是标准IO有缓冲区,麻烦)
    
    管道的四个特性:(管道开在3-4G内存空间中,)(最重要)
    1,读端存在,一直向管道中去写,超过64k,写会阻塞。(读端存在,close不调用,默认读端存在;写的快,读的慢,写满了,写阻塞)
    2,写端是存在的,读管道,如果管道为空的话,读会阻塞。    (写端和读端都存在,写的慢,读的块,读阻塞)
    
    3.管道破裂,,读端关闭,写管道。(读端关闭,即没有接受方了,写的话,写端也会关闭,即写端管道破裂;用此方法关闭管道)
    4. read 0 ,写端关闭,如果管道没有内容,read 0 ;    (read 到0,即数据已读取完毕)
使用框架:
        (读阻塞和写阻塞是正常情况,实际时经常遇到)
    创建管道 ==》读写管道 ==》关闭管道

1、无名管道 ===》管道的特例 ===>pipe函数
    特性:
    1.1  亲缘关系进程使用
    1.2  有固定的读写端

    流程:
    创建并打开管道: pipe函数
#include <unistd.h>
int pipe(int pipefd[2]);    (0下标用来读,1下标用来写)
功能:创建并打开一个无名管道
参数:pipefd[0] ==>无名管道的固定读端
      pipefd[1] ==>无名管道的固定写端
返回值:成功 0
        失败 -1;

注意事项:
    1、无名管道的架设应该在fork之前进行。 (如果在fork之后创建管道,父子会存在两个不同的管道,无法传输数据)
    
无名管道的读写:===》文件IO的读写方式。
    读: read()
    写: write()

关闭管道: close();


验证如下问题:
1、父子进程是否都有fd[0] fd[1],  是的
   如果在单一进程中写fd[1]能否直接从fd[0]中读到。

   可以,写fd[1]可以从fd[0]读

2、管道的数据存储方式是什么样的     队列
   数据是否一直保留?
    栈, 先进后出
   队列形式存储 读数据会剪切取走数据不会保留  (管道中的数据被读取后即会删掉,不保留)
   先进先出

3、管道的数据容量是多少,有没有上限值。
    操作系统的建议值: 512* 8 = 4k
    代码测试实际值:   65536byte= 64k  (Unbuntu中管道容量为64K)

4、管道的同步效果如何验证?读写同步验证。
    读端关闭能不能写? 不可以 ===>SIGPIPE 异常终止     (读端关闭,管道破裂)
    写端关闭能不能读? 可以,取决于pipe有没有内容,===>read返回值为0 不阻塞

    结论:读写端必须同时存在,才能进行
          管道的读写。(一般写端先关闭,再关闭读端)


5、固定的读写端是否就不能互换?
    能否写fd[0] 能否读fd[1]?   不可以,是固定读写端。

    
2.有名管道

有名管道===》fifo ==》有文件名称的管道。  (first in,first out)    (大部分时候,用于非父子进程,父子进程也能用)
                      文件系统中可见

框架:
    创建有名管道 ==》打开有名管道 ==》读写管道
    ==》关闭管道  ==》卸载有名管道    (卸载:即删除管道的文件名)

1、创建:mkfifo
#include <sys/types.h>
#include <sys/stat.h>
 remove();

int mkfifo(const char *pathname, mode_t mode);
功能:在指定的pathname路径+名称下创建一个权限为
      mode的有名管道文件。
参数:pathname要创建的有名管道路径+名称
      mode  8进制文件权限。
返回值:成功 0
        失败  -1;

2、打开有名管道 open
    注意:该函数使用的时候要注意打开方式,
    因为管道是半双工模式,所有打开方式直接决定
    当前进程的读写方式。
    一般只有如下方式:        (fifo管道名,管道名是特殊文件,文件大小永远是0)
    int fd-read = open("./fifo",O_RDONLY); ==>fd 是固定读端            (操作管道时,open会阻塞)
    int fd-write = open("./fifo",O_WRONLY); ==>fd 是固定写端
    不能是 O_RDWR 方式打开文件。
    不能有 O_CREAT 选项,因为创建管道有指定的mkfifo函数


3、管道的读写: 文件IO

    读: read(fd-read,buff,sizeof(buff));
    写: write(fd-write,buff,sizeof(buff));

4、关闭管道:
        close(fd);

5、卸载管道:remove();
        int unlink(const char *pathname);
        功能:将指定的pathname管道文件卸载,同时
              从文件系统中删除。
        参数: ptahtname 要卸载的有名管道 
        返回值:成功 0
                失败  -1;

  有名管道 ===》(与无名区别:1.open会阻塞;2.有名和无名,无名找不到,没有名字,只能用于父子间;)

    1、是否需要同步,以及同步的位置。
        读端关闭 是否可以写,不能写什么原因。
        写端关闭 是否可以读。

        结论:有名管道执行过程过必须有读写端同时存在。
              如果有一端没有打开,则默认在open函数部分阻塞。

    2、有名管道是否能在fork之后的亲缘关系进程中使用。
        结论: 可以在有亲缘关系的进程间使用。
        注意: 启动的次序可能会导致其中一个稍有阻塞。

    3、能否手工操作有名管道实现数据的传送。
        读: cat  fifoname
        写: echo "asdfasdf" > fifoname
        
        
        
        
    

http://www.tj-hxxt.cn/news/41542.html

相关文章:

  • 常州网站推广优化今日西安头条最新消息
  • 网站seo课程搜索引擎营销的步骤
  • 网页设计特效网站熊猫关键词工具
  • 网站建设设计策划宁波优化网站哪家好
  • 怎么在网站上投放广告网络营销带来的效果
  • 普通网站服务器seo网上课程
  • 怎么做58同城网站今日国内重大新闻
  • 淘宝店网页制作教程重庆seo排名方法
  • 日照网站搜索引擎优化厦门seo外包服务
  • 制作图片网站百度推广登陆入口官网
  • 外贸建站wordpress免费建站系统哪个好用吗
  • 电子商务网站 备案seo com
  • 连接国外网站做端口映射优化大师网页版
  • 凡客诚品批发网百度seo关键词排名推荐
  • 上海个人网站建设百度手机助手app免费下载
  • 百度如何收录网站网络广告推广方法
  • 建设网站需要具备什么条件免费网络推广公司
  • 网站设计规划 优帮云软文广告经典案例800字
  • 网站总浏览量百度seo服务公司
  • 多个招聘网站格式不一致如何做招聘记录吸引人的软文标题
  • 电商直播培训东莞网站seo推广
  • dede手机网站网站推广怎样做
  • 做网站最重要的是什么注册推广赚钱一个10元
  • 天津网站建设哪里好seo点击排名源码
  • 计算机应用网站建设与维护是做什么黄冈地区免费网站推广平台
  • 郑州汉狮做网站费用百度大数据官网
  • 网站引导动画怎么做的营销策略的重要性
  • 建站一条龙设计制作移动端排名优化软件
  • 建网站logo怎么做常州网络推广seo
  • 域名如何注册?电商关键词排名优化怎么做?