主讲:陈香兰 助教:贾永泉、毛熠璐 xlanchen@ustc.edu.cn 3606864-83(西区电三421) Autumn 2007 Linux操作系统分析 主讲:陈香兰 助教:贾永泉、毛熠璐 xlanchen@ustc.edu.cn 3606864-83(西区电三421) Autumn 2007
访问文件 xlanchen@2007.10.25
Embedded Operating Systems 提纲 读写文件 内存映射 直接I/O传输 xlanchen@2007.6.25 Embedded Operating Systems
Embedded Operating Systems 对换:释放内存的方法 目的: 为了扩展进程有效使用的地址空间 为了扩展动态RAM的数量 方法: 利用磁盘上的一些空间来扩展RAM 以降低访问速度为代价来扩大可寻址内存的数量 原理: 局部性原理的另一种解释 对程序员透明 xlanchen@2007.6.25 Embedded Operating Systems
Embedded Operating Systems 第一个Unix系统中的对换技术 在第一个Unix系统中,内核对空闲内存的数量进行监控。 当空闲内存的数量小于某个固定的阈值时,就执行换出操作 换出操作包括将整个进程的整个地址空间拷贝到磁盘上 当调度算法选择一个已被换出的进程时,执行换入操作 换入操作将整个进程从磁盘中装入内存 xlanchen@2007.6.25 Embedded Operating Systems
Embedded Operating Systems 缺点: 由于换入换出时,上下文切换的代价过高,不得不增加调度的复杂性:在不完全排除换出进程的情况下,优先考虑RAM中的进程 xlanchen@2007.6.25 Embedded Operating Systems
Embedded Operating Systems Linux中的对换技术 得益于CPU中的硬件分页单元,Linux目前不采用进程地址空间级别的对换,而采用页级别的对换技术 利用页表项中的标志位 Present Accessed等 存放磁盘上的页的位置 缺页异常 xlanchen@2007.6.25 Embedded Operating Systems
Embedded Operating Systems 有四个主要考虑的问题 哪种页要换出 降低复杂性、考虑必要性 如何在对换区中分布各个页 提高访问效率 如何选择被对换出的页 LRU算法,x86中的近似LRU算法 何时执行页换出操作 阈值、kswapd xlanchen@2007.6.25 Embedded Operating Systems
Project回顾
Embedded Operating Systems Project 1:基于I386的LinuxLinux2.4.18启动过程分析 xlanchen@2007.6.25 Embedded Operating Systems
Embedded Operating Systems Project 2:进程的切换 对Linux中进程的切换过程进行分析,提交分析报告 xlanchen@2007.6.25 Embedded Operating Systems
Project 3:基于I386的Linux2.4.18的进程创建的分析和实践 调用fork创建一个子进程 然后让子进程和父进程分别输出fork的返回值 目的:从用户态体验进程的创建 对Linux中进程的创建进行分析,提交分析报告 xlanchen@2007.6.25 Embedded Operating Systems
Project 4 :中断、异常和系统调用分析和实践 分析中断、异常和系统调用的代码,提交分析报告 采用某种方法截获一个中断,例如键盘中断 采用某种方法制造缺页异常 自己编写一个系统调用 xlanchen@2007.6.25 Embedded Operating Systems
Embedded Operating Systems Project 5 在用户态编写一个程序,该程序设定一个定时器,在时间到期的时候做出某种可观察的响应 方法不限 分析你的程序的实际执行借助了内核的哪些机制 xlanchen@2007.6.25 Embedded Operating Systems
Embedded Operating Systems Project 6 分析Linux的VFS相关的数据结构、文件系统的挂载操作,了解VFS中的各种操作(例如read)是如何与一个具体的文件系统相关的。 xlanchen@2007.6.25 Embedded Operating Systems
Embedded Operating Systems Project 7: 实现一虚拟字符驱动 char_dev.c makefile testchardev.c 设备名定为:char_dev 用命令insmod char_dev.o加载 用命令lsmod察看是否成功加载 使用dmesg察看主设备号 使用mknod char_dev c 253 1在/dev目录下创建设备文件 运行Testchardev.c测试 xlanchen@2007.6.25 Embedded Operating Systems
Embedded Operating Systems 研究举例 嵌入式方向 通用方向 分布式、并行 xlanchen@2007.6.25 Embedded Operating Systems
Embedded Operating Systems 高性能I/O技术 http://www.ece.eng.wayne.edu/~sjiang/ 嵌入式内存压缩技术 http://ziyang.eecs.northwestern.edu/~dickrp/ Flash文件系统 VxWorks TrueFFS等 Embedded operating system 微内核、基于构件等 低功耗 Grid operating system Cluster 调度、进程迁移、进程同步与通信 xlanchen@2007.6.25 Embedded Operating Systems
Embedded Operating Systems 操作系统形式化方面的研究 操作系统安全 可信操作系统 xlanchen@2007.6.25 Embedded Operating Systems
Embedded Operating Systems 本实验室 基于服务体/执行流模型的操作系统 面向服务的分布式操作系统 操作系统的可靠性研究 操作系统的安全性研究 xlanchen@2007.6.25 Embedded Operating Systems