linux进程

一、简单聊一下

linux的用户态进程都是基于init进程fork出来的,
Linux分为用户栈和内核栈,内核栈是内核态运行的栈空间,具体的栈初始化是基于处理器来实现的,例如arm的msp和psp,分别给用户和线程独立用于调度切换使用。

linux本质上也是如此,内核初始化的时候,会创建一个init线程,用户态所以的进程fork都是基于init来进行的。

二、进程调度方式

linux进程调度分几种,前两种用于实时系统:
SCHED_FIFO,顾名思义,如果一个进程设置为此模式,然后优先级当前最高,一直占用CPU

SCHED_RR,这种方式比FIFO多了一步,将运行完的进程放到链表尾部,当大家优先级相同时,会公平的排队运行。

SCHED_NORMAL 普通分时(非实时)

三、时间片(普通进程)

在这里插入图片描述
可见静态优先级越小(优先级越高),获得时间片越长在这里插入图片描述

四、睡眠时间与动态优先级

在这里插入图片描述
动态优先级决定着睡眠时间,bonus是惩罚系数,0~10的取值范围,当大于5时,表示奖赏,bonus的值依赖于过去进程的情况,与进程的平均睡眠时间相关。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值