完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
第一步我们来看下什么是进程,进程的概念是什么?进程就是程序的一次运行过程,一个静态的可执行文件转化成动态执行的过程。 就简单的说吧就是我们gcc编译生成的a.out的一次执行过程。 进程ID用来唯一标记一个进程,当一个进程产生的时候它就有一个唯一的进程ID,这个ID是唯一的并且不会重新利用的,也就是说当这个进程消亡之后,虽然这个进程ID是被空出来了,但是这个进程ID不会再使用了,这个进程ID就是一个整型的数字。 那么我们得到程序ID的方式可以使用getpid以及getppid来得到。 程序在宏观上面我们知道是并行的执行,这个对于我们人的感觉而言,但是从微观上而言它是串行的,这个对于学习过单片机的同学而言就会比较好理解,单片机就是这样的东西,一个main函数一条一条执行下来,如果要实现并行的效果就是通过操作系统来实现,但也只是宏观上面的并行,实际还是串行执行程序,只不过通过不同的方式实现了。比如说时间分片,将时间进行切片,在很短的时间内执行一个进程,下一个时间内切换到另外一个执行,从而在宏观感觉上面,由于我们的切换时间非常短,就觉得两个东西是并行执行的了。要真正做到并行执行的话只有FPGA能够真正做到。 现代操作系统中最小的调度单元是线程而不是进程。 我们在c语言程序中利用fork函数来创建子进程。 那么它是如何实现的呢?在操作系统中,如果它需要一个新的进程,那么操作系统会需要一个现有的进程,然后将其复制一份,生成一个新的进程,复制生成的进程称之为子进程。复制完成之后将新的内容填写到这个进程当中去,也就完成了一个创建新进程的目的。 fork函数调用返回两次,返回值等于0的就是子进程,而返回值大于0的就是父进程。 典型的fork函数用法就是判断返回值,然后在不同的返回值当中做不同的事情,就实现了我们说父子进程中做不同的事情。 |
|
相关推荐
8 个讨论
|
|
|
|
|
|
|
|
|
|
|
|
我看别人工作中还是线程用的多。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
TuyaOpen开源 + DshanPi-A1(RK3576)开发板的Tuya IoT平台接入与AI大模型整合方案(笔记)
1322 浏览 0 评论
「含关键代码」基于AM3352/AM3354/AM3359的Linux开发案例分享
5240 浏览 0 评论
87851 浏览 0 评论
【高手问答】如何做到精通linux技术?资深工程师带你突破难点
5304 浏览 2 评论
3996 浏览 2 评论
2326浏览 1评论
SiRider S1芯擎工业开发板测评+1.防止黑客入侵通信监控系统(PSA)
1657浏览 0评论
TuyaOpen开源 + DshanPi-A1(RK3576)开发板的Tuya IoT平台接入与AI大模型整合方案(笔记)
1325浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-1 21:56 , Processed in 0.630890 second(s), Total 52, Slave 45 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
3498