嵌入式Linux多任务:进程、线程
硬件条件:单个CPU单个核
单任务:一个任务执行完毕之后下个任务才能执行
多任务:任务的执行可以被中断,中断之后可以执行其他任务;(并发/并行)
单核CPU:并发
多核CPU:并发、并行
进程实现多任务;
特点:给每个进程分配独立的地址空间,4G的大小(1G内核,3G用户空间:栈、堆、数据段、代码段);互不干扰
进程创建方式:fork >exec函数族 >system>vfork ;
进程的退出:exit()函数/清理缓冲 _exit()系统调用API/不清理缓冲;
进程等待:wait();解决:僵尸进程
<僵尸进程、孤儿进程、守护进程、控制台进程、后台进程>
学习目标:学会创建多任务程序:进程
进程间通信-IPC
广义上的进程间通信:
(1)A进程----文件----B进程
(2)A进程----数据库----B进程
狭义上的进程间通信:(1)管道
(2)信号
(3)消息序列
(4)共享内存
(5)信号量
(6)套接字
管道
1、无名管道:(只能用于父子之间进程通信)
(内核会开辟一个“管道”(管道文件),通信的进程通过共享这个管道,从而实现通信。)
Int pipe(int pipefd[2]); pipefd[0]----读 pipefd[1]------写
特点:管道只允许具有血缘关系的进程通信,如父子进程间的通信