举报
fork(), exec(), spawn(), spawn(), posix_spawn()**
fork
一个线程就是一个执行流或者控制流。 它也有一些属性,比如: 优先级, 调度算法,寄存器集合,CPU掩码(用于多核应用),…
一个Process里的Threads都有属于自己的内存地址(虚拟地址), 其他资源都是共享的
每一个thread都有一个最大体积,也不是每一个都需要分配物理内存
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也就会结束死亡。
Process里面,第一个thread就是main thread, 因为它调用了整个process的main()函数. 如果exit()被调用,那么整个process就结束死亡了,所有的相应的资源(内存,channels等)都会被释放或清理
同样的道理,如果在一个thread里, 如果pthread_exit()被调用了,那么thread也就会结束死亡。
核心模块,因为他,系统的各个模块可以协作. 其他程序可以通过kernel call的方式来调用kernel模块,
Kernel call 采用抢占方式(pre-emptable) 被调用, 好处是,响应新的事件速度会很快,但是要花更多的事件去回复原来被打断的kernel call. 内核可以提供不同的服务, 比如: 同步, 时钟, 进程间通信,调度 …
procnto = Process manager + Micarokernel
Process Manager提供服务包括:
Thread有两个状态: blocked 和 runnable Thread有优先级: 0-255, kernel总是选择优先级最高的thrad来执行 Thread有属于自己的调度算法: Round-robin(轮询), FIFO …
Round-robin 该术语来源于含义为“带子”的法语词ruban,久而被讹用并成为惯用语。在17、18世纪时法国农民希望以**的方式**国王时,通常君主的反应是将**书中最前面的两至三人逮捕并**,所以很自然地没有人希望自己的名字被列在前面。为了对付这种专制的报复,人们在**书底部把名字签成一个圈(如同一条环状的带子),这样就找不出打头的人,于是只能对所有参与者进行同样的惩罚。
本版积分规则 发表回复 回帖并转播 回帖后跳转到最后一页
等级类勋章
发帖类勋章
时间类勋章
人才类勋章
1478
12915
55
扫码关注 21ic 官方微信
扫码关注嵌入式微处理器
扫码关注电源系统设计
扫码关注21ic项目外包
扫码浏览21ic手机版
本站介绍 | 申请友情链接 | 欢迎投稿 | 隐私声明 | 广告业务 | 网站地图 | 联系我们 | 诚聘英才
京公网安备 11010802024343号