操作系统高级教程
课程编码:180086083500P1002H
英文名称:Advanced Principles of Operating System
课时:60
学分:3.00
课程属性:学科核心课
主讲教师:杨力祥
教学目的要求
本课程是以开源操作系统Linux的真实源代码为基础,以操作系统的实际运行为主线,结合计算机体系结构与操作系统的基本原理,详细讲解一个真实操作系统从开机到系统怠速的全过程,并通过几个实例程序的运行,详细讲解用户进程从创建到退出的全过程。通过分析源代码深刻剖析进程创建、进程调度、内存管理、文件系统、缓冲区原理,使学生从理论和实际两个方面全面了解、掌握操作系统。
预修课程
操作系统原理、C程序设计语言、汇编语言、编译原理、计算机体系结构
大纲内容
第一章 从开机到执行main函数之前的过程 杨力祥
第1节 bootset.s 1.0学时
第2节 setup.s 1.0学时
第3节 head.s 2.0学时
第二章 设备环境初始化及激活进程0 杨力祥
第1节 初始化内存格局 1.0学时
第2节 初始化mem_map 1.0学时
第3节 初始化IDT 2.0学时
第4节 初始化request 1.0学时
第5节 初始化tty 0.5学时
第6节 初始化time 0.5学时
第7节 初始化进程0 2.0学时
第8节 初始化buffer 1.0学时
第9节 初始化hd 0.5学时
第10节 初始化floppy 0.5学时
第11节 激活进程0 1.0学时
第三章 进程0创建进程1及调度到进程1执行 杨力祥
第1节 进程0调用sys_fork 0.5学时
第2节 find_empty_process 0.5学时
第3节 copy_process 1.0学时
第4节 copy_mem 0.5学时
第5节 copy_page_tables 1.0学时
第6节 进程0返回用户态代码 0.5学时
第7节 进程0调用sys_pause 1.0学时
第8节 调度到进程1执行 1.0学时
第四章 进程1的执行 杨力祥
第1节 进程1调用sys_setup 0.5学时
第2节 bread 0.5学时
第3节 getblk、get_hash_table、find_buffer 2.0学时
第4节 ll_rw_block、make_request、add-request、do_hd_request 2.0学时
第5节 hd_out、do_hd = &read_intr、调度 2.0学时
第6节 硬盘中断、hd_interrupt、read_intr、再次do_hd = &read_intr、read_intr 1.0学时
第7节 返回bh 1.0学时
第五章 文件系统 杨力祥
第1节 sys_mount 1.0学时
第2节 sys_open 1.0学时
第3节 sys_read 1.0学时
第4节 sys_creat 1.0学时
第5节 sys_write 1.0学时
第6节 sys_lseek 1.0学时
第7节 sys_close 1.0学时
第8节 sys_unlink 1.0学时
第六章 内存管理 杨力祥
第1节 线性地址的保护 2.0学时
第2节 分页 2.0学时
第3节 多进程同时运行 2.0学时
第七章 缓冲区和多进程同时访问文件 杨力祥
第1节 buffer的作用 1.0学时
第2节 buffer的总体结构 1.0学时
第3节 b_dev、b_blocknr及requset的作用 1.0学时
第4节 uptodate和dirt的作用 1.0学时
第5节 count、lock、wait、request的作用 1.0学时
第6节 process waiting queue 1.0学时
第7节 uffer和request 1.0学时
第8节 多进程操作文件的综合实例 1.0学时
第八章 用户进程从创建到退出的完整过程 杨力祥
第1节 父进程调用sys_fork创建子进程、find_empty_process、copy_process、copy_mem、copy_page_tables、返回到用户态程序 1.0学时
第2节 子进程用父进程为其编写的代码准备加载自己的程序、sys_execve、do_execve 2.0学时
第3节 子进程通过do_no_page适时加载自己的程序 1.0学时
第4节 子进程退出、sys_exit 2.0学时
第5节 父进程清理进程残余、sys_waitpid 2.0学时
教材信息
1、
Linux内核设计的艺术
杨力祥
2013年5月
参考书
课程教师信息
中国科学院大学计算机科学与技术学院专职教师