![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
进程管理
文章平均质量分 95
包含进程新建、调度内容等
橘子真好吃耶
这个作者很懒,什么都没留下…
展开
-
CPU负载
在内核启动阶段,每个cpu的cpu_load数组会被初始化为0,在运行过程中,一般每个时钟节拍都会在scheduler_tick中通过__update_cpu_load更新cpu_load数组。对于单核CPU来说,当数值低于1时,表示负载良好,对于CPU的利用率为0-100%,如果负载高于1,则表示CPU利用率100%,但会有可运行的进程在排队。但如果CPU处理能力处于过饱和状态(如图3),那么有一部分的可运行进程不能及时获取CPU资源,此时CPU利用率为100%,但CPU负载则超过100%。原创 2024-05-02 21:30:00 · 2866 阅读 · 2 评论 -
进程控制块学习
其次学习了进程相关的代码,对书写代码方面有很大提升,在传参部分我遇到了问题,用了find__task_by_pid()这个函数后编译的时候发现报错,于是在源码里面搜索这个函数也没找到,然后问了chatgpt,大概的解释就是版本问题或者操作系统,然后chatgpt又推荐了相关函数,我在源码里面找到之后学习了相关函数并应用到代码之中,最终能实现从给定的pid号找到对应的PCB,这次实验收获很大!因此可以通过以前学习的链表的相关知识,遍历系统中的进程链表,进而访问每一个进程的PCB,从而打印进程的相关信息。原创 2023-10-07 13:33:54 · 116 阅读 · 1 评论 -
进程及进程主动调度
进程 = 程序 + 执行,进程可以说是某种类型的活动,它包含程序、输入、输出及状态等线程是操作系统调度(资源及时间片)的最小单元。一个进程可以拥有多个线程。进程和线程的区别在于进程拥有独立的资源空间,即进程地址空间,而同一进程的线程则共享进程地址空间。在Linux内核中,对于进程及线程都使用相同的数据结构。进程是资源分配的最小单位,而线程是CPU调度的的最小单位。进程的虚拟地址空间分为用户虚拟地址空间和内核虚拟地址空间,所有进程共享内核虚拟地址空间,没有用户虚拟地址空间的进程称为内核线程。原创 2024-04-26 13:16:32 · 593 阅读 · 1 评论