1352
1万
4万
版主
137076328239640312.png (176.1 KB )
下载附件
2022-9-19 16:08 上传
使用特权
533632824210cb0a.png (122.79 KB )
2022-9-19 16:11 上传
fork(), exec(), spawn(), spawn(), posix_spawn()**
672586328242bb806a.png (163.92 KB ) 下载附件 2022-9-19 16:11 上传
672586328242bb806a.png (163.92 KB )
fork
一个线程就是一个执行流或者控制流。 它也有一些属性,比如: 优先级, 调度算法,寄存器集合,CPU掩码(用于多核应用),…
27135632824d5b88ec.png (145.83 KB ) 下载附件 2022-9-19 16:14 上传
27135632824d5b88ec.png (145.83 KB )
2022-9-19 16:14 上传
一个Process里的Threads都有属于自己的内存地址(虚拟地址), 其他资源都是共享的
57487632824ed7806b.png (174.62 KB ) 下载附件 2022-9-19 16:14 上传
57487632824ed7806b.png (174.62 KB )
每一个thread都有一个最大体积,也不是每一个都需要分配物理内存
6880363282522dd404.png (216.89 KB ) 下载附件 2022-9-19 16:15 上传
6880363282522dd404.png (216.89 KB )
2022-9-19 16:15 上传
pthread_create() 创建线程, 返回tid, pthread_attr_init() 设置线程的default值
如果想设置thread优先级和调度算法:
param.sched_priority = 15; %优先级值为15 pthread_attr_setschedparam (&attr, ¶m); %给该thread设定优先级 pthread_attr_setschedpolicy (&attr, SCHED_RR); %设定调度算法为Round-Robin
Process里面,第一个thread就是main thread, 因为它调用了整个process的main()函数. 如果exit()被调用,那么整个process就结束死亡了,所有的相应的资源(内存,channels等)都会被释放或清理
同样的道理,如果在一个thread里, 如果pthread_exit()被调用了,那么thread也就会结束死亡。
2648063282610ba62c.png (115.17 KB )
2022-9-19 16:19 上传
779296328262e03e28.png (124.62 KB )
核心模块,因为他,系统的各个模块可以协作. 其他程序可以通过kernel call的方式来调用kernel模块,
538966328268e917e2.png (167.7 KB ) 下载附件 2022-9-19 16:21 上传
538966328268e917e2.png (167.7 KB )
2022-9-19 16:21 上传
Kernel call 采用抢占方式(pre-emptable) 被调用, 好处是,响应新的事件速度会很快,但是要花更多的事件去回复原来被打断的kernel call. 内核可以提供不同的服务, 比如: 同步, 时钟, 进程间通信,调度 …
99653632826a60a54d.png (269.88 KB ) 下载附件 2022-9-19 16:21 上传
99653632826a60a54d.png (269.88 KB )
63813632826da9cf48.png (38.07 KB )
2022-9-19 16:22 上传
procnto = Process manager + Micarokernel
3654263282727ba93a.png (191.23 KB ) 下载附件 2022-9-19 16:24 上传
3654263282727ba93a.png (191.23 KB )
2022-9-19 16:24 上传
Process Manager提供服务包括:
931886328273f97a73.png (210.41 KB )
Thread有两个状态: blocked 和 runnable Thread有优先级: 0-255, kernel总是选择优先级最高的thrad来执行 Thread有属于自己的调度算法: Round-robin(轮询), FIFO …
Round-robin 该术语来源于含义为“带子”的法语词ruban,久而被讹用并成为惯用语。在17、18世纪时法国农民希望以**的方式**国王时,通常君主的反应是将**书中最前面的两至三人逮捕并**,所以很自然地没有人希望自己的名字被列在前面。为了对付这种专制的报复,人们在**书底部把名字签成一个圈(如同一条环状的带子),这样就找不出打头的人,于是只能对所有参与者进行同样的惩罚。
发表回复 本版积分规则 回帖后跳转到最后一页
等级类勋章
发帖类勋章
时间类勋章
人才类勋章
12436
53
扫码关注 21ic 官方微信
扫码关注嵌入式微处理器
扫码关注21ic项目外包
扫码关注21ic视频号
扫码关注21ic抖音号
本站介绍 | 申请友情链接 | 欢迎投稿 | 隐私声明 | 广告业务 | 网站地图 | 联系我们 | 诚聘英才 | 论坛帮助
京公网安备 11010802024343号