Linux
文章平均质量分 77
成天天
这个作者很懒,什么都没留下…
展开
-
进程间通信IPC
管道、FIFO(有名管道)、消息队列、信号量、信号、共享内存、套接字1)管道/无名管道Int pipe(int fd[2]);返回值:成功返回0,失败返回-1,由fd[]返回两个文件描述符:fd[0]为读端、fd[1]为写端,fd[1]的输出是fd[0]的输入管道是一种半双工通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用,若需要双向的可以在两个进程间建立两个方向相反的管道管道只能在...原创 2018-03-04 16:53:05 · 117 阅读 · 0 评论 -
线程/进程间同步
1、竞争条件两个或多个进程/线程读写某些共享数据时,结果取决于其CPU调度的运行次序,这种现象称为竞争条件2、互斥以某种手段确保当一个进程/线程在使用一个共享变量或文件时,其他进程/线程不能做同样的操作3、临界区把对共享内存进行访问的程序片段称为临界区,如果能使得两个进程/线程不同时处于临界区,就能够避免竞争条件4、几种互斥方案屏蔽中断、原子操作、锁、自旋锁、多元信号量(又名信号量)、二元信号量、...原创 2018-03-11 20:40:03 · 147 阅读 · 0 评论 -
Linux数据流重定向
在我们日常Linux命令操作中,命令执行的输入一般是键盘输入,输出一般是输出到屏幕,但有时候,我们可能会去读取文件里但数据作为输入,或者将输出保存到文件里(比如日志文件),这个时候就需要用到数据流重定向。所谓数据流重定向,就是:1)将某个命令执行后应该要出现在屏幕上的数据传输到其它地方,例如文件或者诸如打印机之类的设备;2)将原本由键盘输入的数据改由文件内容来代替标准输入(stdin):文件描述符...原创 2018-05-05 16:05:11 · 212 阅读 · 0 评论 -
用户级线程与核心级线程
1、用户级线程把整个线程实现部分放在用户空间中,内核对线程一无所知,内核看到的就是一个单线程进程。只有一个用户栈优点:1)整个用户级线程的切换发生在用户空间,这样的线程切换至少比陷入内核要快一个数量级(不需要陷入内核、不需要上下文切换、不需要对内存高速缓存进行刷新,这就使得线程调度非常快捷)2)用户级线程有比较好的可扩展性,线程能够利用的表空间和堆栈空间比内核级线程多,这是因为在内核空间中内核线程...原创 2018-05-07 21:27:14 · 10411 阅读 · 0 评论