
Linux Kernel Development整理
jeicy_07
这个作者很懒,什么都没留下…
展开
-
Linux Kernel Development - Memory Management
内存管理页(Pages)Zones获取页获取zeroed pages释放页kmalloc()gfp_mask Flagskfree()vmalloc()页(Pages)内核将物理页作为内存管理的基本单位,MMU(Memory Management Unit)在页粒度上维护页表。虚拟内存中,页是最重要的最小单元。系统中每一个物理页都由struct page 表示:flags:存储页的状态,如是否dirty、是否锁在内存中;每一位都代表不同的状态,是不同的值;_count:存储页的使用数,即有多少引原创 2020-06-08 20:36:34 · 199 阅读 · 0 评论 -
Linux Kernel Development - Process Scheduling
进程调度多线程Linux进程调度调度策略I/O-Bound VS Processor-Bound进程优先级时间切片实施中的调度策略Linux调度算法调度器类Unix系统的进程调度公平调度Linux调度实现Time AccountingThe Scheduler Entity Structure虚拟运行时间Process Selection选择下一个进程向树添加进程从树中删除进程The Scheduler Entry PointSleeping and Waking UpWait Queueswaking u原创 2020-05-11 15:03:03 · 319 阅读 · 0 评论 -
Linux Kernel Development - Process Management
Process Management进程进程 VS 线程进程两种虚拟化进程进程 VS 线程进程:正在运行的项目,包括代码和相关资源线程:进程里活动的对象。每一个线程仅有一个计数器、进程栈和进程寄存器一般来说,一个进程有一个或多个线程。在Linux中,没有特别区分线程和进程,线程不过是一种特殊的进程。进程两种虚拟化虚拟进程:假设该进程独占系统虚拟存储:...原创 2020-05-06 15:53:38 · 568 阅读 · 0 评论 -
Linux Kernel Development - Intro
Intro to the Linux KernelUnix特别之处Intro to Linux操作系统 VS 系统内核基本构成用户态 VS 内核态System Calls中断上下文Linux内核 VS Unix系统Unix特别之处简单,只有几百个system call,设计基础对数据和设备的操作就像文件系统,只需要一系列核心system call用C实现,开源,可移植到不同硬件架构建立...原创 2020-05-05 15:23:03 · 370 阅读 · 0 评论