Linux
文章平均质量分 69
小杨树林
新的开始-记录工作中的所学所思所想
展开
-
浅谈Linux中的fork()函数
函数原型pid_t fork( void);(pid_t 是一个宏定义,其实质是int 被定义在#include<sys/types.h>中)返回值: 若成功调用一次则返回两个值,子进程返回0,父进程返回子进程ID;否则,出错返回-1函数说明一个现有进程可以调用fork函数创建一个新进程。由fork创建的新进程被称为子进程(child process)。而这个现有进程是所谓的父进程。当...原创 2018-06-01 16:38:27 · 467 阅读 · 0 评论 -
wait(),waitpid()函数
首先我们来了解一下所谓的僵尸进程,僵尸进程就是两个进程,其子进程终止后,0-3G的用户内存被回收,而3-4G的部分内存被回收,但是3-4G内存中的PCB等待父进程回收,若PCB未被父进程回收,我们称这个进程为僵尸进程,注,之所以保留PCB,是因为其中保存着子进程的终止状态父进程回收子进程的资源所用到的函数就是我们今天所要说的wait()和waitpid()函数那么我们先来了解一下wait函数wai...原创 2018-06-02 21:15:56 · 1142 阅读 · 1 评论 -
进程间通信之匿名管道
进程间通信的5中方式:有名管道,匿名管道,systemv,posix消息队列,信号量,文件共享映射,注意,5种进程间通信均操作的内核空间首先我们来浅谈下匿名管道pipe匿名管道是通过环形队列实现的,可实现节省空间和避免溢出等问题。匿名管道有两个特点,一个是方向性,另一个是具有流向匿名管道只能解决父子进程之间的通信,一般使用pipe时在fork之前进行匿名管道一共四个文件描述符,两个读,两个写,分别...原创 2018-06-18 17:49:13 · 225 阅读 · 0 评论 -
进程间通信之有名管道
通过命令mkfifo +管道名 (创建有名管道文件)有名管道的使用1.同时具备读与写的两端都需要打开管道文件才使用有名管道,如只有一方,则打开时阻塞2.所有有名管道内保存的数据都与管道文件无关,管道文件只提供操作管道的方式有名管道的几种情况:读管道:1.默认情况下操作都是阻塞的(以下几条的前提)2.写端打开管道,管道无数据,读端读阻塞3.造成阻塞的两种原因: 1.管道内有数据...原创 2018-06-18 18:42:16 · 249 阅读 · 0 评论 -
浅谈Linux 信号(Signal)
1.在linux用命令 kill -l 查看系统信号2.前32个信号是unix经典信号,后32为实时信号(自定义信号)3.前台进程永远只有一个,后台进程可以有n个4 用用命令ctl+c 可以结束唯一一个后台进程5.产生信号的几种方式 1)终端组合按键产生信号 (ctl+c (15 SIGTERM) ctl+\(3 SIGQUIT) ctl+z(20 SIGTSTP)) 2...原创 2018-06-19 16:36:24 · 1272 阅读 · 0 评论 -
进程通信——消息对列
Linux下进程间通信方式:1. 管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系2. 有名管道 (named pipe) : 有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。3. 信号量( semophore ) : 信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它常...转载 2018-11-09 19:34:20 · 208 阅读 · 0 评论 -
I/O复用模型之select模型
我们先来理解一下五种IO模型的区别1.阻塞I/O模型老李去火车站买票,排队三天买到一张退票。耗费:在车站吃喝拉撒睡 3天,其他事一件没干。2.非阻塞I/O模型老李去火车站买票,隔12小时去火车站问有没有退票,三天后买到一张票。耗费:往返车站6次,路上6小时,其他时间做了好多事。3.I/O复用模型1.select/poll老李去火车站买票,委托黄牛,然后每隔6小时电话...原创 2019-02-25 15:36:51 · 243 阅读 · 0 评论 -
I/O复用之epoll模型
epoll是Linux内核为处理大批量文件描述符而作了改进的poll,是Linux下多路复用IO接口select/poll的增强版本,它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率。另一点原因就是获取事件的时候,它无须遍历整个被侦听的描述符集,只要遍历那些被内核IO事件异步唤醒而加入Ready队列的描述符集合就行了。epoll除了提供select/poll那种IO事件...原创 2019-02-25 19:35:43 · 235 阅读 · 0 评论 -
I/O模型之poll模型
1.poll与select,epoll比较poll主要是解决select的最大文件描述符限制提出的,与select一样都是轮询文件描述符,所以效率方便也无法与epoll相比,另外poll不具备移植性,只有在linux系统上有实现,在windows系统没有poll模型的实现2.poll模型效率poll本质上和select没有区别,它将用户传入的数组拷贝到内核空间,然后查询每个fd对应的设备...原创 2019-02-25 20:10:36 · 450 阅读 · 0 评论