摘要:
1.信号量 信号量本质上是一个计数器(不设置全局变量是因为进程间是相互独立的,而这不一定能看到,看到也不能保证++引用计数为原子操作),用于多进程对共享数据对象的读取,它和管道有所不同,它不以传送数据为主要目的,它主要是用来保护共享资源(信号量也属于临界资源),使得资源在一个时刻只有一个进程独享。 阅读全文
摘要:
1.共享内存 共享内存:共享内存是一种最为高效的进程间通信方式。因为数据可以直接读写内存,不需要任何数据的拷贝。内核专门留出一块内存区,这段内存区可以由需要访问的进程将其中映射到自己的私有地址空间。但同时由于多个进程共享一段内存,因此也需要依靠同步机制,如互斥锁和信号量。(没有同步机制是共享内存的一 阅读全文
摘要:
1.消息队列 消息队列:提供一种从一个进程向另一个进程发送一个数据块的方法。与FIFO相比,消息队列的优势在于,它独立于发送和接收进程而存在。 1.链表式结构组织,存放于内核。 2.通过队列标识来引用。 3.通过一个数据类型来索引指定的数据。 每个队列都有一个msqid_ds结构与其关联“ stru 阅读全文
摘要:
命名管道的主要用途:不相关的进程之间交换数据。 命令行上创建命名管道: $ mkfifo filename 程序中创建命名管道: #include <sys/types.h> #include <sys/stat.h> int mkfifo(const char *filename, mode_t 阅读全文
摘要:
各个通信机制以及优缺点:https://www.cnblogs.com/wuyepeng/p/9747515.html 1.进程间通信的概念 每个进程各自有不同的用户地址空间,任何一个进程的全局变量在另一个进程中都看不到,所以进程之间要交换数据必须通过内核,在内核中开辟一块缓冲区,进程A把数据从用户 阅读全文
摘要:
1. 僵尸进程 1.1 僵尸进程的概念 如果一个进程已经终止,但是它的父进程尚未调用 wait() 或 waitpid() 对它进行清理,这时的进程状态称为僵死状态,处于僵死状态的进程称为僵尸进程(zombie process)。任何进程在刚终止时都是僵尸进程,正常情况下,僵尸进程都立刻被父进程清理 阅读全文
摘要:
1. exec函数簇 exec函数族的作用是根据指定的文件名找到可执行文件,并用它来取代调用进程的内容,换句话说,就是在调用进程内部执行一个可执行文件。这里的可执行文件既可以是二进制文件,也可以是任何Linux下可执行的脚本文件。 #include <unistd.h> extern char ** 阅读全文
摘要:
在uboot命令行模式下,通过tftp烧录内核或者文件系统什么的。需要板卡和电脑先ping通。 提示warning:gatewayip needed but not set.需要需要网关,但是没设置。 然后就一直ping不通。 解决方法: 1.检查网线是否连接好,可查看上面的网口灯是否亮起。如果是直 阅读全文
摘要:
在uboot命令行模式中,有时候设置了变量,然后想删除,怎么删除。 #pri gatewayip 192.168.60.1 现在我不想要这个gatewayip setenv gatewayip 这样就可以了。相当于设置为空。 阅读全文
摘要:
1.进程的创建 1.1 fork #include <unistd.h> pid_t fork(void); 返回值: 父进程返回的是新建的子进程的进程ID,子进程返回的是0 在fork的返回值中,最好是判断3个值,一个等于0、大于0以及小于0(fork失败的场景)。 当调用完fork函数后,子进程 阅读全文