嵌入式Linux多任务:进程、线程
学习目标;学会创建多任务程序:进程
硬件条件:单个CPU单个核
单任务:一个任务执行完毕后下个任务才能执行
多任务:任务的执行可以被中断,中断之后可以执行其他任务(并发/并行)
单核CPU:并发
多核的CPU:并发,并行
进程实现多任务
特点:给每个进程分配独立的地址空间,4G的大小(1G内核,3G用户空间:栈、堆、数据段、代码段);互不干扰
进程创建方式:fork>exec函数族>system>vfork
进程的退出:exit()库函数/清理缓冲 _exit()系统调用API/不清理缓冲
进程等待:wait();解决:僵尸进程
<僵尸进程、孤儿进程、守护进程、控制台进程、后台进程>(了解即可)
广义上进程间的通信
进程——文件——进程
进程——数据库——进程
例如下面代码所示(通过文件进行通信)
无名管道:只允许父子进程间通信
如下程序:
任意两个进程间通信
write.c
read.c