系统调度
系统调度
hanguangce
这个作者很懒,什么都没留下…
展开
-
进程调度时机
进程调度现在用的是完全公平算法策略;调度是个过程,需要时间和合适的时机。一般上下文 分为中断上下文和进程上下文。所谓上下文就是说当前代码运行所处的环境,假如说 当前cpu正在处理某个进程A的 计算任务,此时就算是再进程上下文。突然有个硬件信号,中断来了,cpu开始跑中断的任务了。这个时候就算是 中断上下文了(终端环境)。中断处理完会返回进程上下文。上面说到一个进程A再进程上下文状态,如果能保存好进程A的上下文信息,那么就可以从后面中断跑完后继续执行进程A暂停的任务(无论之前进程是再用户态还是内核态,因为原创 2021-04-27 15:06:55 · 435 阅读 · 0 评论 -
自旋锁和 信号量 互斥量 理解
自旋锁就是锁住资源 等待 资源没有被其他 线程拿到资源的锁,如果现在资源没有被锁住 ,那就锁住 资源执行流程。信号量,也是资源 被锁住 ,但是如果拿不到解锁条件,就放在等待队列。等到拿到资源时候 会被唤醒( 循环后面过程, 执行一次调度,主动切换到其他任务,等其他任务释放互斥锁时会唤醒当前任务,继续执行下面的函数)不同点: 信号量在创建时需要设置一个初始值,表示同时可以有几个任务可以访问该信号量保护的共享资源,初始值为1就变成互斥锁。 信号量加锁和解锁 可以在不同线程...原创 2021-04-26 18:01:31 · 187 阅读 · 0 评论 -
工作队列 和等待队列
队列就是一个链表,用来便于统一管理需要相同资源的进程唤醒队列进程就是修改其状态 为可运行,用于调度过程调度原创 2021-04-26 16:04:34 · 686 阅读 · 0 评论 -
进程调度关系--待续
进程 刚开始被调度 优先级会变低吗?如果一运行优先级被降低 ,如果这个时候有中断发生,岂不会 极有可能被其他进程抢占了原创 2021-04-20 21:29:04 · 170 阅读 · 0 评论 -
open 函数 与 系统调用关系
fs/open.c文件里面有如下SYSCALL_DEFINE3(open, const char __user *, filename, int, flags, umode_t, mode){ if (force_o_largefile()) flags |= O_LARGEFILE; return do_sys_open(AT_FDCWD, filename, flags, mode);}在include/linux/syscalls.h 里面有这个宏...原创 2021-04-13 14:30:21 · 404 阅读 · 0 评论 -
led驱动 为什么要创建线程
通常led驱动里面大部分是 根据硬件编排设计好 控制驱动程序,会预留出接口给用户控制 : /sys/class/leds/xx/birgness进程要把led的基本流程跑完,如果说不跑完直接 等着,用户给接口参数的时候在继续跑,那第一个 用户操作指令 ,还要负责把之前进程没有跑完的跑完。如果另外开一个线程就不一样了,之前的进程继续跑。用户控制接口的时候 ,只需要跑接口里面的代码需要的代码就行。...原创 2021-04-13 09:37:04 · 172 阅读 · 0 评论