当前位置:文档之家› (完整版)linux内核技术

(完整版)linux内核技术

一、教学目的
SMP、多核系统、高性能浮点处理器和新型总线等创新技术,带动操作系统不断发展。

本课程使硕士生了解linux的基本原理和结构特征,提高应用现代操作系统的水平、能开发特定的内核功能、设备驱动程序和复杂应用软件的能力。

二、教学内容与要求
1掌握处理器在进程地址空间上的三种运行位置,了解内核编程不能使用C库函数和FPU,以及可能产生内存故障、核心栈溢出和四种内核竞争情形的原因。

(2学时)2熟悉进程描述符的组织,进程上下文和进程状态转换,和fork,exec,wait,exit,clone,linux线程和内核线程的实现原理和应用。

了解COW和避免出现孤儿进程技术。

(4小时)
3介绍支持SMP的O(1)调度,用户和内核抢占和进程上下文切换,了解优先级复算,睡眠和唤醒机制,SMP的负载均衡。

(4小时)
4掌握在x86体系结构上系统调用的具体实现原理,接口参数传递,用户地址空间和核心地址空间之间的数据传输,和增加新的系统功能的方法。

(2小时)5熟悉在x86体系结构上Linux中断和异常的处理原理,中断注册、共享、控制,和中断上下文的意义,中断和设备驱动程序的关系,以及设备驱动程序结构和用户接口。

(4小时)
6中断处理程序被分解为top half和bottom half的原因,介绍linux的softirq,tasklet,ksoftirqd和work queue,分析进程与top half,bottom half的竞争情形和同步。

(4小时)7掌握内核同步原理和方法:原子操作,自旋锁,(读—写)信号量,完成变量,bkl,seqlock和延迟内核抢占。

了解指令“路障”。

(4小时)
8介绍系统时钟和硬件定时器,单处理器和多处理器上的linux计时体系结构,定时的时间插补原理,单处理器和多处理器上的时钟中断处理,动态定时器的数据结构和算法原理,定时器竞争情形,延迟函数。

Time,gettimeofday,adjtimex,setitimer,alarm 的实现原理和应用。

(4小时)
9熟悉进程地址空间的区和页,分配和释放物理页,物理地址与逻辑地址、虚地址之间的映射,slub分配原理和方法,高端物理内存的映射。

(4小时)
10介绍VFS原理,超级块,inode结构和方法,dentry结构和方法,file结构和方法,以及进程打开文件表,linux中的文件系统。

(2小时)
11讲解块设备缓冲,bio结构,I/O请求队列,和有最终期限的块I/O调度算法。

(2小时)
12熟悉进程地址空间的分区,mm_struct结构,vm_area_struct结构和操作,,进程的页表文件映射接口mmap原理和方法。

(2小时)
13熟悉页cache和radix_tree,缓冲区cache,和pdflush内核线程原理。

(2小时)
三、教学方式
教学方式:课堂讲授
考试方式:堂上考试、考查都采用笔试。

四、考核方式与成绩评定
开卷考试。

期末成绩占100%。

五、教材及主要参考书目
1. Linux Kernel Development. Robert Love. Sams Publishing.
2. Understanding the Linux Kernel. Daniel P. Bover,Marco Cesati. O’Reilly.
3. Linux Device Drivers. Jonathan Corbet,Alessandro Rubini,Greg Kroah Hartman.
O’Reilly.
4. The Design of the UNIX Operating System(影印). Maurice J. Bach,人民邮电出
版社。

5. The Design and Implementation of the Operating System(第二版)(影印). Audreur
s. Tanenbaum 等,清华大学出版社。

(大纲撰写人:李毅)。

相关主题