
Linux内核设计与实现
文章平均质量分 81
T&P
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
19---可移植性与编程规范
什么是可移植性? 代码从一种体系结构移植到另外一种体系结构上的方便性 字和字长是什么? 字---能够由机器一次完成处理的数据 字长----机器的位数,如Intel i7是64位芯片,是指奔腾的字长是64位,也就是8字节 字长有什么作用? 规定了机器的字长,那么机器所对应的处理器通用寄存器、指针和long类型数据结构都应该与字长位数一样。既使物理地址空间比字长小,虚拟地址空间需要和字长一样...原创 2018-11-29 11:24:21 · 1371 阅读 · 0 评论 -
9---- 内核同步
为什么要防止共享资源并发访问? 如果多个执行线程同时访问和操作数据就有可能发生各线程之间相互覆盖共享数据的情况,造成被访问数据处于不一致状态,还会造成系统不稳定,难以追踪和调试这类错误。 什么是临界区? 访问和操作共享资源的代码区域,可将这个区域看作是不可分割的指令 什么是竞争条件? 两个线程有可能处于同一个临界区中同时执行 锁提供了什么样的机制? 锁机制相当于一把门锁,临界区相当于...原创 2019-01-15 16:49:22 · 204 阅读 · 0 评论 -
7/8---中断
中断机制是怎样的? 硬件在需要的时候,主动发送一个电信号,通知内核。 如何区分不同设备的中断? 不同设备的中断不同,每个中断都具有唯一的数字标识(特定的中断总是与特定的设备相关联),从而操作系统能够区分中断并知道是哪个硬件设备产生的中断。 中断和异常有什么异同? 相同点,内核对它们的处理方式 不同点,中断由硬件产生,异常由软件产生 什么是中断处理程序(中断服务程序)? 产生中断的设备...原创 2018-12-25 11:24:41 · 163 阅读 · 1 评论 -
13---虚拟文件系统
虚拟文件系统(VFS)有什么作用? 通过虚拟文件系统,程序可以利用系统调用对不同的文件系统以及不同介质上的文件进行读写操作 为用户空间提供了文件和文件相关的接口 系统中的文件依赖VFS共存,依赖VFS协同工作。 什么是超级块? 一种包含文件系统控制信息的数据结构 什么是文件系统单元? 包含单独的文件信息和系统信息的单元 VFS有哪些主要的对象类型? 超级块对象-----一个具体的已...原创 2018-11-21 15:15:43 · 175 阅读 · 0 评论 -
3/4/5---进程管理、进程调度、系统调用
进程的定义是什么? 进程是处于执行期的程序以及相关资源的总称,是正在执行的程序代码的实时结果,也称任务。对操作系统来说是程序运行状态的表现形式。 进程相关资源有哪些? 挂起的信号、内核内部数据、处理器状态和打开的文件都是进程的资源。 什么线程? 线程是在进程中活动的对象,内核调度的是线程。是一种耗费资源更少,运行更迅速的执行单元。 线程的组成部分有哪些? 一个独立的程序计数器、进程...原创 2018-11-06 10:56:32 · 1198 阅读 · 0 评论 -
6---内核数据结构
关于链表,以下说法正确的是 ( ) A 需经常修改线性表L中的结点值适合采用链式结构 B 需不断对线性表L进行删除插入适合采用链式结构 C 带头结点的单链表,在表的第一个元素之前插入一个新元素与链表长度无关 D 删除单链表中的最后一个元素,与链表长度无关 分析:A:如果修改时插入删除的话,链式当然可行,但如果只是修改数值没什么必然关系。B:链式结构插入删除只需要修改指针 指向。C:在头...原创 2018-11-06 20:01:19 · 329 阅读 · 0 评论 -
11---定时器和时间管理
内核中哪些函数需要定期执行? 对调度程序中的队列进行平衡调整的函数 对屏幕进行刷新的函数 内核如何计算和管理时间,HZ、节拍和节拍率是什么? 内核借助系统定时器计算流失的时间,系统定时器以一定的频率(预定义,也称节拍率或HZ)触发时钟中断,内核通过两次时钟中断的间隔计算(也称为节拍)和管理时间。 什么是系统运行时间? 自系统启动开始所经历的时间。 系统定时器使用高频率有哪些优点? 更...原创 2018-11-19 14:50:03 · 247 阅读 · 0 评论 -
12---内存管理
内存管理的基本单位是什么? 页 什么是内存管理单元(MMU) 管理内存并把虚拟地址转化为物理地址的硬件 内核怎样表示每个物理页? 用struct page结构体来短暂描述当前时刻在相关物理页内存本身,而不是存放在其中的数据。由于页交换等原因,页中包含的数据就不再与struct page结构体关联。 内核怎样管理系统中的物理页? 内核利用struct page结构体来获知页是否被分配,...原创 2018-11-20 14:13:14 · 131 阅读 · 0 评论 -
14---块IO层
什么是块? 固定大小的数据块 什么是块设备? 系统能够随机访问块的硬件设备 怎样区分字符设备和块设备? 设备能够以不按顺序的方式访问的是块设备否则是字符设备。 什么是扇区? 扇区是块设备最基本的操作和寻址单元,扇区的大小是设备的物理属性,一般是2的倍数,最常见扇区大小为512字节。 磁盘块在内存中如何表示? 当一个块被调入内存时,被存储到缓冲区。每个缓冲区和一个块对应。 什么是...原创 2018-11-22 10:24:07 · 225 阅读 · 0 评论 -
15---进程地址空间
什么是进程地址空间? 系统中每个用户空间进程所看到的内存 进程地址空间有什么特点? 内核允许进程使用虚拟内存 系统中所有进程之间以虚拟方式共享内存 对一个进程而言,它好像可以访问系统中所有的物理内存,它拥有的地址空间可以远大于系统物理内存 每个进程拥有32位或64位的一个独立的连续(平坦)地址空间 任何有效的地址只能位于唯一的区域,这些区域不能相互重合 什么是内存区域? 32位系统...原创 2018-11-23 11:15:32 · 297 阅读 · 0 评论 -
16---页高速缓存和页回写
页高速缓存有什么作用? 主要实现Linux的磁盘缓存,用来减少磁盘的IO操作,具体讲就是把磁盘中数据缓存到物理内存,把对磁盘的访问转换为对物理内存的访问。 磁盘高速缓存为什么这么重要? 访问磁盘的速度(ms)远远低于访问内存的速度(nm) 数据一旦被访问,就有可能在短期内再次被访问到 什么是临时局部原理? 在短期内访问同一片数据区的原理称为临时局部原理 页高速缓存有什么特点? 由内存...原创 2018-11-27 16:08:25 · 253 阅读 · 0 评论 -
17---设备与模块
关于设备模型和设备管理,主要有那些部分? 设备类型----为统一普通设备的操作所采取的分类 模块----用于按需加载和按需卸载目标代码的机制 内核对象----内核数据结构中支持面向对象的操作,还支持维护父子之间的继承关系 sysfs----系统中设备树的一个文件系统 有哪些设备类型? 块设备(blkdev)----可寻址的,以块为单位进行寻址,块的大小和具体的设备有关,通过称为“块设备结...原创 2018-11-28 11:39:09 · 246 阅读 · 0 评论 -
18---调试
内核代码调试前,需要哪些准备工作? 一个确定的bug,该bug可以重现 该bug最早出现的内核版本 相关内核代码知识 bug存在的外在表现有哪些? 明白无误的错误代码,如没有把正确的值放在合适的位置 同步时发生错误,如共享变量锁定不当 错误地管理硬件,如给错误的控制寄存器发送错误的指令 降低所有程序的运行性能 毁坏数据 使系统处于死锁状态 在哪些地方可以使用printk()打印函...原创 2018-11-28 16:32:31 · 147 阅读 · 0 评论 -
10----内核同步的方法
原子操作有什么作用? 原子操作可以保证指令以原子的方式执行——执行过程不被打断 有哪些原子整型操作函数? 原子性和顺序性各有什么作用? 原子性确保指令执行期间不被打断,要么全部执行完,要么根本不执行 顺序性确保即使两条或多条指令出现在独立的执行线程中,甚至独立的处理器上,它们本该的执行顺序要保持。 有哪些原子位操作函数? 自旋锁有哪些特点? 最多只能被一个可执行线程持有 在...原创 2019-01-16 15:13:08 · 268 阅读 · 0 评论