
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
Linux内核中,进程(Process)是最基本的执行实体,它代表了正在执行的程序的实例。进程调度在操作系统中处于核心地位,是操作系统实现多任务处理的关键机制。它就如同乐队的指挥,确保各个进程在有限的 CPU 资源下有序地执行。在现代计算机系统中,往往有多个进程同时竞争 CPU 资源。如果没有有效的进程调度,系统可能会陷入混乱,导致某些进程长时间占用 CPU,而其他进程无法得到执行机会。

内核代表特定的进程执行相当长的时间,而其他进程则无法运行。除了周期性调度外,在内核中的很多地方,如果要将 CPU 分配给另一个进程,都会直接调用主动调度器,比如在系统调用结束后,内核会检查当前进程是否设置了重新调度标志 TIF_NEED_RESCHED,前面介绍的周期性调度器可能就会设置该标志,举个例子:可能一个进程调用了一个花销较大的系统调用,在未开启内核抢占的情况下,其他进程无法抢占该系统调用

在说完以上这些调度程序的内在原理,结合实际我们来看看我们线上的使用场景。IO调度器算法的选择,既取决于硬件特征,也取决于应用场景。数据归档业务 — 大量顺序请求,CFQ调度够用(程序不多的情况下Deadline无明显优势,可能会有劣势)云计算业务 — 大量进程同时读写单个控制器,适合Deadline调度跑在SSD上的业务 — 寻址不再是瓶颈,可以考虑NOOP调度,节省CPU对IO排序的消耗。

Kexec 是实现 kdump 机制的关键,它包括 2 个组成部分:一是内核空间的系统调用 kexec_load,负责在生产内核(production kernel 或 first kernel)启动时将捕获内核(capture kernel 或 sencond kernel)加载到指定地址。二是用户空间的工具 kexec-tools,他将捕获内核的地址传递给生产内核,从而在系统崩溃的时候能够找到

首先一张熟悉的图来说明GNU/linux的基本体系结构:体系的上部分是用户(或应用程序)空间,这是用户应用程序执行的地方。用户空间之外是内核空间,Linux 内核正是位于这里。Linux 内核可以进一步划分成 3 层:最上面是系统调用接口,用户程序通过软件中断后,调用系统内核提供的功能,这个在用户空间和内核提供的服务之间的接口称为系统调用,它实现了一些基本的功能,例如 read 和 write;

模块是一种向linux内核添加"设备驱动程序"、"文件系统"、"其他组件"的有效方法,而无须重新编译内核或重启系统,这消除了许多限制,同时带来了很多的优点1. 通过使用模块,内核程序员能够预先编译大量驱动程序,而不会致使内核映像的尺寸发生膨胀。在自动检测硬件或用户提示后,安装例程会选择适当的模块并将其添加到内核中2. 内核开发者可以将试验性的代码打包到模块中,模块可疑卸载,修改代码或重新打包后再重

oops_enter() ---> oops_exit() 为Oops 的处理流程,获取console 的log 级别,并通过 __die() 通过对Oops 感兴趣的模块进行callback,打印模块状态不为 MODULE_STATE_UNFORMED 的模块信息,打印PC、LR、SP、x0 等寄存器信息,打印调用栈信息,等等。当出现 oops,并且如果有源码,可以通过 arm 的 arch6

进程调度策略在操作系统中起着至关重要的作用,不同的调度策略各有其优缺点,需要根据实际情况进行选择和优化。先来先服务调度算法(FCFS)简单公平,但可能导致短作业等待时间过长,对 I/O 密集型进程不利。短作业优先调度算法(SJF)能最大程度减少平均等待时间,但实现困难且可能导致长作业饥饿。优先级调度算法灵活但可能出现饥饿现象。时间片轮转调度算法(RR)公平性高、响应时间快,但时间片长度选择不当会影

①rbtree的根节点由数据结构rb_root描述,创建一个红黑树,要分配一个新的rb_root结构,并且需要初始化为特殊值RB_ROOT.树里其他节点由结构rb_node描述。rbtree的实现并没有提供搜索和插入例程,这些例程由rbtree的用户自己定义,可以使用rbtree提供的辅助函数,但要自己实现比较操作②搜索实例,实现了在页高速缓存中搜索一个文件区(由一个i节点和一个偏移量共同描述),

Linux是一套免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年第一次释出,它主要受到Minix和Unix思想的启发,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。系统调用是操作系统提供的一组接口,允许应用程序与操作系统内核进行交互。通过系统调用,应








