操作系统实验指导书_第1页
操作系统实验指导书_第2页
操作系统实验指导书_第3页
操作系统实验指导书_第4页
操作系统实验指导书_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、操作系统实验指导书1操作系统是一门理论性和时间性都很强的课程。要学好操作系统的设计原理,除了听课、看书、 做习题外,最好的方法就是在实践中进行,包括使用操作系统、阅读和分析已有操作系统的源代码、自己设计小型系统/ 模块或模拟算法等。本教材安排的实验内容按深度可分为五个层次,即:使用级、观察级、系统管理级、源码阅读级和实现级。( 1)使用级:是指如何使用操作系统,包括对命令(以及菜单和shell )、系统调用和系统文件的使用。2)观察级:是指通过使用级的接口,从外部观察操作系统的内部工作过程和结构。3)系统管理级:是指系统或设备的安装、配置和性能调整。4)源码阅读级:是指对现有操作系统部分内核源

2、代码的阅读。5)实现级:是指编程模拟实现操作系统某些功能模块。实验的操作平台是Red Hat Linux 9.0和 Windows 2000 Professional,其中前者是主要的实验平台, 因为源码阅读级等实验都是在Linux平台上进行的, 当然,在 Linux 上进行的实验基本上也都可在UNIX 平台上直接进行。读者可根据自己的需要以及实验条件等选择相应的实验内容。使用级实验实验 1 安装 Linux 操作系统一实验目的在供实验的微机上安装Linux 操作系统, 后续实验都将在此环境上进行。通过实验, 要求:了解硬件资源要求。学会安装 Linux 系统。学会启动 Linux 系统。了解

3、 Linux 多引导器的配置。二实验内容把 Linux 安装到本地硬盘。主要安装步骤提示:如果 BIOS 支持光盘启动,则插入 Linux 安装光盘,重新启动计算机。如果从 DOS环境启动,则在DOS提示符下执行批处理命令,如autoboot 。对硬盘分区,留出交换空间和文件系统的空间。按提示分阶段装入系统。配置系统。实验 2 安装 Windows 2000 操作系统一实验目的2通过对 Windows 2000 professional的安装操作,了解操作系统应用环境建立的初步过程。掌握 Windows 操作系统的基本系统设置。了解 Windows 多操作系统安装配置的方法。二实验内容1. 把

4、 Windows 2000 安装到本地硬盘。注意 :若要与Linux 并存于同一硬盘上,则宜先安装Windows。主要安装步骤与安装 Linux 相似,在此从略。注意 ,按屏幕提示选择合适的文件系统时,建议选择NTFS。输入的管理员密码要记住。实验 3 Linux系统用户接口和编程界面实验一实验目的1熟悉使用Linux 字符界面、窗口系统的常用命令。2熟悉运用Linux 常用的编程工具。3熟悉运用Linux 的在线求助系统。4掌握在Linux 操作系统环境上编辑、编译、调试、运行一个C 语言程序的全过程。二实验内容1熟悉开机后登录Linux 系统和退出系统的过程;2熟悉 Linux 字符界面虚

5、拟终端窗口和shell,以及图形界面X-Window( 如gnome或 KDE):练习并掌握常用的 Linux 操作命令,如 ls 、cat 、ps、df 、find 、grep 、cd、more、cp、rm、kill 、at 、vi 、cc 、man、help 、 control+d/c 、等;熟悉常用 shell 的提示符;熟悉字符窗口与图形界面之间的切换。3学习使用Linux 的在线求助系统,如man和 help 命令等。4掌握一种Linux 的编辑器,特别是字符界面的vi 工具的使用。5用 vi 编辑一个打印“ Hello,I am a C program ”字串的 C语言程序,然后编

6、译并运行它,记下整个过程。熟悉 gcc 、 gdb 等编译器、调试器的使用。2系统行为观察级实验实验 4 观察 Linux 进程的异步并发执行一实验目的了解进程与程序的区别,加深对进程概念的理解;掌握进程并发执行的原理, 理解进程并发执行的特点, 区分进程并发执行与串行执行;3. 了解 fork( )系统调用的返回值,掌握用fork()创建进程的方法;熟悉 wait 、 exit 等系统调用。二实验内容31编写一C 语言程序,实现在程序运行时通过系统调用fork( )创建两个子进程,使父、子三进程并发执行,父亲进程执行时屏幕显示“I am father”,儿子进程执行时屏幕显示“ I am s

7、on ”,女儿进程执行时屏幕显示“I am daughter”。2多次连续反复运行这个程序,观察屏幕显示结果的顺序,直至出现不一样的情况为止。记下这种情况,试简单分析其原因。3修改程序,利用nice ( )改变各进程的优先级,观察不同情况下进程调度效果的区别。4修改程序,在父、子进程中分别使用 wait 、 exit 等系统调用“实现”其同步推进,多次反复运行改进后的程序,观察并记录运行结果。实验 5 Linux进程间的通信一、实验目的学习如何利用管道机制、 消息缓冲队列、 共享存储区机制进行进程间的通信, 并加深对上述通信机制的理解。二、实验内容1 了解系统调用 pipe() 、msgget

8、() 、msgsnd() 、 msgrcv() 、msgctl() 、 shmget() 、 shmat() 、 shmdt() 、shmctl() 的功能和实现过程。2编写一C 语言程序,使其用管道来实现父子进程间通信。子进程向父进程发送字符串“ is sending a message to parent! ”;父进程则从管道中读出子进程发来的消息,并将其显示到屏幕上,然后终止。3运行该程序,观察、记录并简单分析其运行结果。实验 6 观察内存分配结果一实验目的学习如何利用Linux 的 malloc函数动态申请一段内存空间。二实验内容1了解 malloc函数的功能和Linux 虚拟内存管理

9、的原理。2编写一C 语言程序,用malloc函数申请一段存储空间,并在终端上显示起始地址。3运行该程序,观察、记录其运行结果,并分析说明结果的地址是否为物理地址。实验 7 观察内存使用情况一、实验目的用 Windows 2000 自带的工具观察内存空间的使用情况。二、实验内容用 Windows 2000 的性能监视器或者任务管理器观察内存工作情况。观察并写出屏幕显示的内容。系统管理级实验4实验 8 在 Linux 中使用优盘一实验目的1了解 mount 和 umount 命令的功能;2了解 Linux 设备文件的命名;3用上述所了解的内容解决在Linux 中使用优盘的问题。二实验内容1用 mo

10、unt 命令把优盘的设备文件安装到/mnt 目录(可能需要root用户口令,请勿乱用)。2进入 /mnt 目录,使用优盘(比如,往里拷贝一个文件)。3退出 /mnt 目录,用umount 命令把优盘从系统中卸载掉。4按 ctrl+d组合键,退出超级用户模式。5总结在Linux 中使用优盘的过程。实验 9 使用 Windows 2000 的注册表屏蔽桌面上的“回收站“一实验目的1了解 Windows 2000 注册表的作用,熟悉注册表编辑器;2熟悉 Windows 2000 注册表中5 个主要根键的内容与作用;3了解备份注册表的重要性,掌握备份注册表的基本方法;4学会通过修改注册表,屏蔽桌面“回

11、收站”图标的方法。二实验内容1备份注册表(或者打开后导出注册表)。2运行 regedit命令打开注册表。3 选择注册表中 “HKEY_LOCAL_MACHINE”子窗口(即找到此根键),定位到“ HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionExplorerDesktop NameSpace”分支,在该分支下有多个子键对应桌面上的某些系统图标。4删除键值为 Recycle Bin 的子键, 如子键 645FF040-5081-1-1B-9F08-00AA002F954E 。5重新启动计算机。6根据备份的注册表内容,恢复注册表中被

12、删除的子键,重新启动计算机。7观察两次重启后的情况,总结备份、修改和恢复注册表的一般过程。4源代码阅读级实验这部分实验难度较大,但很有意义,也很有意思,建议学生分组协作完成。5实验 10 分析 Linux 进程调度程序一实验目的1了解 Linux 源代码的分布;2了解阅读Linux 源代码的一般方法;3熟悉 Linux 管理进程用的主要数据结构;4通过阅读Linux 进程调度有关函数的源代码,理解Linux 的进程调度算法及其实现所用的主要数据结构。二实验内容1通过查阅参考书或者上网找资料,熟悉/usr/src/linux(注意:这里最后一级目录名可能是个含具体内核版本号和 “linux ”字

13、符串的名字) 下各子目录的内容, 即所含 Linux 源代码的情况。2在概览Linux 启动和初始化部分源代码基础上,分析Linux 进程调度有关函数的源代码,主要是 schedule()函数和 goodness() 函数,并且要对它们引用的头文件等一并分析。3归纳总结出Linux的进程调度算法及其实现所用的主要数据结构。实验 11 跟踪系统查找文件过程一实验目的1了解 Linux 源代码的分布;2了解阅读Linux 源代码的一般方法;3熟悉 Linux 管理文件用的主要数据结构;4通过分析Linux 文件系统部分源代码,跟踪系统查找文件的过程。二实验内容1 通过查阅参考书或者上网找资料,熟悉

14、 /usr/src/linux(注意:这里最后一级目录名可能是个含具体内核版本号和 “ linux ”字符串的名字) 下各子目录的内容, 即所含 Linux 源代码的情况。2在概览Linux 启动和初始化部分源代码基础上,分析Linux 虚拟文件系统及EXT3文件系统的部分内核源代码,即其超级块、组描述符、数据块位图、索引节点表、目录项结构及其相关操作的源代码实现,并利用各种可能工具,跟踪、 展示 Linux 文件系统管理模块搜索 EXT3文件系统的 /usr/include/stdio.h文件的过程。3归纳总结出Linux 根据哪些主要数据结构先检索出文件/usr/include/stdio

15、.h的索引节点,进而读出其内容的全部过程。5实现级实验本级的实验既可在Linux ,也可在 Windows 2000 操作系统平台下进行。实验 11 进程调度模拟程序设计一实验目的加深对进程概念和进程调度过程/ 算法的理解。二、实验内容1给出进程调度的算法描述(如基于动态优先级和时间片轮转调度算法的描述)。62用 C语言设计一个对n 个并发进程进行调度的程序,每个进程由一个进程控制块( PCB)结构表示,该进程控制块应包括下述信息:进程标识ID 、进程优先数PRIORITY(并规定优先数与优先权成正比)、时间片数CHIP、进程已经占用CPU的时间 CPUTIME,进程还需要运行的时间ALLTI

16、ME(当进程运行完毕时,其值为0)、进程的状态STATE(为简化起见。设每个进程处于运行E( excecuting)、就绪R(ready )和完成F(finish)三种状态之一,并假设起始状态都是就绪状态R。),以及进程队列指针NEXT(用来将PCB排成队列)等,可按照调度算法的不同而增删。3调度程序应当包含2 种不同的调度算法,运行时可以任选一种,以利于各种方法的分析和比较。4程序应能显示或打印各种进程状态和参数变化情况,便于观察。即要显示每个时间片内各进程的情况,并且指出运行进程及就绪和阻塞队列中的内容。实验 12 页面置换模拟程序设计一、实验目的加深对请求页式存储管理实现原理的理解,掌握

17、页面置换算法。二、实验内容1 假设分给一作业的内存块数为4,每个页面中可存放10 条指令。2 用 C 语言设计一个程序,模拟一作业的执行过程。设该作业共有320 条指令, 即它的地址空间为32 页,目前它的所有页面都还未调入内存。在模拟过程中,如果所访问的指令已经在内存,则显示其物理地址,并转下一条指令。如果所访问的指令尚未装入内存,则发生缺页, 此时需记录缺页的次数,并将相应页调入内存。如果 4 个内存块中均已装入该作业的虚页面,则需进行页面置换。最后显示其物理地址,并转下一条指令。在所有320条指令执行完毕后,请计算并显示作业运行过程中发生的缺页率。3 置换算法:请分别考虑OPT、 FIFO 和 LRU算法。作业中指令的访问次序要求按下述原则生成:50%的指令是顺序执行的。25%的指令是均匀分布在前地址(即低地址)部分。25%的指令是均匀分布在后地址(即高地址)部分。具体的实施办法是: 在 0 , 319 之间随机选取一条起始执行指令,其序号为m;顺序执行下一条指令,即序号为m+1的指令;通过随机数,跳转到前地址部分0 , m-1 中的某条指令处,其序号为m1;顺序执行下一条指令,即序号为m1+1的指令;通过随机数,跳转到后地址部分m1+2,319 中的某条指令处,其序号为m2;顺序执行下一条指令,即序号为

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论