嵌入式第八次总结

嵌入式多任务:进程,线程
硬件条件:单个CPU单个核
单任务:一个任务执行完毕之后下个任务才能执行;
多任务:任务可以被中断,中断之后可以执行其他任务;(并发/并行)
单核CPU:并发
多核CPU:并发,并行
关于进程实现多任务
1.特点:给每个进程分配独立的地址空间, 4G的大小!(1G内核, 3G用户空间:栈、堆、数据段、代码段) ;互不干扰;
2.进程创建方式: fork>exec函数族>system>vfork;
3.进程的退出: exit ()库函数:清理缓冲_exit()系统调用API:不清理缓冲
4.进程等待: wait () ; 解决:僵尸进程<僵尸进程、孤儿进程、守护进程、控制台进程、后台进程>
5.学习目标:学会创建多任务程序:进程;
关于进程间通信:
进程间通信的方式:管道,信号,消息队列,共享内存,信号量,套接字
1.管道可以分为:无名管道,有名管道
(1)无名管道:管道是半双工的,数据只能向一个方向流动;需要双方通信时,需要建立起两个管道;只能用于父子进程或者兄弟进程之间(具有亲缘关系的进程)
(2)有名管道:不同于管道之处在于它提供一个路径名与之关联,以FIFO的文件形式存在于文件系统中。这样,即使与FIFO的创建进程不存在亲缘关系的进程,只要可以访问该路径,就能够彼此通过FIFO相互通信(能够访问该路径的进程以及FIFO的创建进程之间)
2、消息队列:
消息队列的本质就是由内核创建的用于存放消息的链表,由于是存放消息的,所以我们就把这个链表称为消息队列。
特点:传送有格式的消息流;多进程网状交叉通信时,消息队列是上上之选;能实现大规模数据的通信。
**3、共享内存:**减少进入内核空间的次数;直接使用地址来读写缓存时,效率会更高, 适用于大数据量的通信。
**4、信号量:**当多个进程/线程进行共享操作时,用于资源保护,以防止出现相互干扰的情况;信号量其实是OS创建的一个共享变量,进程在进行操作之前,会先检查这个变量的值,这变量的值就是一个标记,通过这个标记就可以知道可不可以操作,以实现互斥。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值