操作系统实验课

上传人:luoxia****01829 文档编号:47748360 上传时间:2018-07-04 格式:PDF 页数:28 大小:1.74MB
返回 下载 相关 举报
操作系统实验课_第1页
第1页 / 共28页
操作系统实验课_第2页
第2页 / 共28页
操作系统实验课_第3页
第3页 / 共28页
操作系统实验课_第4页
第4页 / 共28页
操作系统实验课_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《操作系统实验课》由会员分享,可在线阅读,更多相关《操作系统实验课(28页珍藏版)》请在金锄头文库上搜索。

1、 实验零:操作系统实验准备 1.实验目的:实验目的: 了解操作系统开发实验环境 熟悉命令行方式的编译、调试工程 掌握基于硬件模拟器的调试技术 熟悉 C 语言编程和指针的概念 了解 X86 汇编语言 2.准备知识:准备知识: 2.1了解了解OS实验实验 写一个操作系统难吗?别被现在上百万行的 Linux 和 Windows 操作系统吓倒。当年 Thompson 乘他老婆带着小孩度假留他一人在家时,写了 UNIX;当年 Linus 还是一个 21 岁大 学生时完成了 Linux 雏形。站在这些巨人的肩膀上,我们能否也尝试一下做“巨人”的滋味 呢? MIT 的 Frans Kaashoek 等在 2

2、006 年参考 PDP-11 上的 UNIX Version 6 写了一个可在 X86 上跑的操作系统 xv6(基于 MIT License),用于学生学习操作系统。我们可以站在他 们的肩膀上,基于 xv6 的设计,尝试着一步一步完成一个从“空空如也”到“五脏俱全”的 “麻雀”操作系统ucore,此“麻雀”包含虚存管理、进程管理、处理器调度、同步互 斥、进程间通信、文件系统等主要内核功能,总的内核代码量(C+asm)不会超过 5K 行。充 分体现了“小而全”的指导思想。 ucore 的运行环境可以是真实的 X86 计算机,不过考虑到调试和开发的方便,我们可采 用 X86 模拟器,比如 QEMU

3、、BOCHS 等,或 X86 虚拟运行环境,比如 VirtualBox、VMware Player 等。ucore 的开发环境主要是 GCC 中的 gcc、gas、ld 和 MAKE 等工具,也可采用集成 了这些工具的 IDE 开发环境 Eclipse-CDT。运行环境和开发环境既可以在 Linux 或 Windows 中使用。 那我们准备如何一步一步实现 ucore 呢?安装一个操作系统的开发过程,我们可以有如 下的开发步骤: 1) 启动操作系统的 bootloader,用于了解操作系统启动前的状态和要做的准备工作, 了解运行操作系统的硬件支持,操作系统如何加载到内存中,理解两类中断-“外

4、设中断”,“陷阱中断”,内核态和用户态的区别; 2) 内存管理子系统,用于理解 x86 分段/分页模式,了解操作系统如何管理物理内存和 虚存、页表管理、一类中断-“故障中断”、缺页故障处理、基于页的内存替换; 3) 进程管理子系统,用于了解进程创建、执行、切换和结束的动态管理过程,了解在 用户态通过系统调用得到内核态的内核服务的过程; 4) 处理器调度子系统,用于理解操作系统的调度过程和调度算法; 5) 同步互斥子系统,用于了解同步互斥的具体实现以及对系统性能的影响,研究死锁 产生的原因,以及如何避免死锁; 6) 进程间通信子系统:用于了解进程间如何进行信息交换和共享; 7) 文件系统,了解文

5、件系统的具体实现,与进程管理等的关系,了解缓存对操作系统 IO 访问的性能改进,了解虚拟文件系统(VFS)、buffer cache 和 disk driver 之 间的关系。 8) 网络协议栈(选做):了解网卡驱动、TCP/IP 协议栈实现和 Web 应用。 其中每个开发步骤都是建立在上一个步骤之上的,就像搭积木,从一个一个小木块,最 终搭出来一个小房子。在搭房子的过程中,完成从理解操作系统原理到实践操作系统设计与 实现的探索过程。这个房子最终的建筑架构和建设进度如下图所示: 外设控制器外设控制器/ /中断控制器中断控制器串口串口CGACGA并口并口I I/ /O O地址空间地址空间MEMM

6、EM地址空间地址空间CPUCPU设备驱动层设备驱动层initinit子系统子系统库函数子系统库函数子系统 cprintfcprintf/ /strstr* .* .软件层软件层硬件层硬件层硬盘硬盘网卡网卡键盘键盘时钟时钟串口串口CGACGA并口并口硬盘硬盘网卡网卡键盘键盘时钟时钟中断控制器中断控制器中断管理子系统中断管理子系统bootloaderbootloader内存管理子系统内存管理子系统物理内存分配管理物理内存分配管理虚拟内存分配管理虚拟内存分配管理段式内存管理段式内存管理页式内存管理页式内存管理页替换算法页替换算法swapswap管理管理页故障管理页故障管理连续地址空间分配算法连续地址

7、空间分配算法不连续地址空间分配算法不连续地址空间分配算法写时复制写时复制按需分页按需分页进程管理子系统进程管理子系统进程调度算法进程调度算法进程生命周期管理进程生命周期管理进程调度框架进程调度框架进程间共享库支持进程间共享库支持文件管理子系统文件管理子系统Buffer CacheBuffer CacheUNIXUNIX文件系统文件系统FATFAT文件系统文件系统同步互斥同步互斥/ /死锁死锁同步互斥应用实例同步互斥应用实例LockLock实现实现semaphoresemaphore实现实现解决死锁问题的实例解决死锁问题的实例进程间通信进程间通信PIPEPIPE消息队列消息队列MonitorMo

8、nitor监控子系统监控子系统远程远程debugdebug调试子系统调试子系统系统调用接口系统调用接口内核态内核态用户态用户态用户态函数库用户态函数库各种用户态应用和测试用例各种用户态应用和测试用例网络网络TCPTCP/ /IPIP协议栈协议栈实验进度颜色图实验进度颜色图2.2熟悉实验环境熟悉实验环境 我们参考了 MIT 的 xv6、Harvard 的 OS161 和 Linux 等设计了 ucore OS 实验,所有 OS 实验 需在 Linux 下运行。对于经验不足的同学,推荐参考通过虚拟机使用 Linux 实验环境一节用 虚拟机方式进行试验。 2.2.1开发开发 OS 实验的简单步骤实验

9、的简单步骤 在我们提供的 lab1lab6 实验软件包中,大致经过如下过程就可以完成使用。 1. 解压软件包 例如执行:tar jxf lab1.tar.bz2 2. 进入各个 OS 实验工程目录 例如: cd lab1/proj1 3. 根据实验要求阅读源码并修改代码(用各种文本编辑器) 4. 并编译源码 例如执行:make 5. 如编译不过则返回步骤 3 6. 如编译通过则测试是否基本正确,例如执行:make grade 7. 如果实现基本正确(即看到步骤 6 的输出存在不是 OK 的情况)则返回步骤 3 8. 如果实现基本正确(即看到步骤 6 的输出都是 OK)则生成实验提交软件包,例如

10、执 行:make handin 9. 把生成的使用提交软件包和实验报告上传/email 给助教和老师。 另外,可以通过”make qemu”让 OS 实验工程在 qemu 上运行;可以通过”make debug”或 “make debug-nox “命令实现通过 gdb 远程调试 OS 实验工程。 2.2.2通过虚拟机使用通过虚拟机使用 Linux 实验环境(实验环境(推荐:推荐:最容易的实验最容易的实验环境安装环境安装方法)方法) 这是最简单的一种通过虚拟机方式使用 Linux 并完成 OS 各个实验的方法,不需要安装 Linux 操作系统和各种实验所需开发软件。首先安装 VirtualBo

11、x 虚拟机软件(有 windows 版 本和其他 OS 版本,可到 http:/www.virtualbox.org/wiki/Downloads 下载),然后在 OS FTP 服务器上下载一个老师已经安装好各种所需编辑/开发/调试/运行软件的 Linux 实验环境的文 件(即一个虚拟磁盘镜像文件, lab4student2011.7z)。用 7zip 软件(有 windows 版本和其他 OS 版 本 , 可 到http:/www.7-zip.org/download.html 下 载 ) 解 压lab4student2011.7z后 为 ubuntu10.10.vdi,大小大约为 3GB,

12、在 VirtualBox 中加载这个虚拟磁盘文件,就可以启动并 运行 Linux 实验环境了。 启动到提示输入用户名时,请输入 student 当提示输入口令时,只需简单敲一个空格键和回车键即可。然后就进入到开发环境中了。实 验内容位于 labs 目录下。 10. 2.2.3安装使用安装使用 Linux 实验环境实验环境(适合希望自己安装(适合希望自己安装 Linux 系统的同学)系统的同学) 这里我们主要以 Ubuntu Linux 10.10(32 bit)作为整个实验的系统软件环境。首先我们需要 安装 Ubuntu Linux 10.10。 2.2.3.1WUBI方式安装(方式安装(最最

13、容易的容易的Linux安装方法)安装方法) WUBI 是一个专门针对 Windows 用户的 UBUNTU Linux 安装工具,你需要做的只是点击几 下鼠标而已。不需要改变分区设置,不需要启动文件,不需要 Live CD。WUBI 让你如同 Windows 操作系统里的其他软件一样安装卸载 Ubuntu,如果你从来没有安装过 UBUNTU Linux , Wubi很 适 合 你 第 一 次 安 装UBUNTU Linux 。 具 体 方 法 如 下 : (1)去 OS course ftp 或官方网站 http:/ i386.iso 下载了一个 ubuntu-10.10-desktop-i3

14、86 的 ISO 文件。 (2)通过 winrar 等工具将下载来的 ISO 文件中的 wubi.exe 解压出来,放在任意一个分区 的根目录下。这里推荐预留了一个至少大小为G 的 NTFS 分区,单击 wubi.exe 安装文件,这时会弹出以下对话框: (3)设置好分区将要安装的分区,语言,分配的系统大小,用户名和密码(务必记住)之 后,点击“安装”,这时如果你的机器已经联网了,会自动从镜像网站上下载 ISO 文件。这里 采用绕过 wubi 下载镜像 ISO 的方法安装 ubuntu 10.10,会节省大量时间。避免下载 ISO 文 件的这一步非常关键。在进行这一步之前请将网线断开,然后将提

15、前下载来的 ubuntu- 10.10-desktop-i386.iso 文件拷贝至 wubi 所创建的 ubuntu 目录下的 install 文件夹中,重新运 行 wubi.exe。这次再也不会提示下载 ISO 文件了。几秒钟后,wubi 就会提示你重新启动系 统。注意,此时 ubuntu 并没有安装在硬盘上,必须重新启动才开始进行 ubuntu 10.10 的安 装。如下图所示: (4)点击”完成”按钮,选择重启计算机。计算机重启后,在启动选项中选择 ubuntu,出 现”press ESC to ” 时,不用理会,这时我们熟悉的 ubuntu 滚动条出现在屏幕上。此 时,才正式开始安装

16、 ubuntu 10.10 至硬盘分区某一目录下。接下来我们什么也不用做,只需 等待。当提示正式安装完成后,重新启动计算机系统,可以发现在启动选项中有“ubuntu“和 “windows”。你可以根据你的情况进行选择。 2.2.3.2使用使用Linux 在实验过程中,我们需要了解基于命令行方式的编译、调试、运行操作系统的实验方法。为 此,需要了解基本的 Linux 命令行使用。 下面的内容来源于: http:/ 87%E5%8D%97。 如果您有一个命令将占用很多时间,您想把它放入后台运行,也很简单。只要在命令运行时 按下 ctrl-z,它就会停止。然后键入 bg 使其转入后台。fg 命令可使其转回前台。 sleep 60 bg

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 物流与供应链

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号