当前位置:文档之家› 桂林理工大学——操作系统实习指导书

桂林理工大学——操作系统实习指导书

网络工程专业《操作系统实习》指导书桂林理工大学信息科学与工程学院2013年11月《操作系统》实习指导书一、实习目的操作系统对计算机系统资源实施管理,是所有其它软件与计算机硬件的唯一接口,所有用户在使用计算机时都要得到操作系统提供的服务。

通过本次实习,使学生掌握操作系统的基本概念、设计原理及实施技术,理解操作系统的组成和主要功能的实现。

二、实习性质培养网络工程专业学生的系统程序设计能力,是操作系统课程的一个非常重要的环节。

《操作系统实习》是《操作系统》理论课的必要补充,是复习和检验前期所学课程的重要手段,也是为毕业设计做必要的准备。

通过操作系统实习,可以培养学生程序设计的方法和技巧,提高学生编制清晰、合理、可读性好的系统程序的能力,加深对操作系统课程的理解。

使学生更好地掌握操作系统的基本概念、基本原理、及基本功能,具有分析实际操作系统、设计、构造和开发现代操作系统的基本能力。

根据实际情况,本次实习中的开发环境为:基于Linux或windows操作系统,可使用VC、VB、java或C等编程语言解决一个实际应用问题。

三、实习内容(选题范围及要求):1、操作系统基本操作。

要求:熟练掌握LINUX下常用命令、使用编辑器vi 编辑文件、添加新用户、修改文件属性。

2、源代码分析要求:通过LINUX有关源代码的分析,进一步了解操作系统的设计思想。

3、操作系统功能模拟程序的开发。

要求:利用所学的编程知识,在理解操作系统设计的相关原理基础上,设计一个模拟其功能的小程序,可以让其他人清楚地看到演示的过程和结果。

四、进度安排实习时间:二周。

地点:信息学院计算机机房。

具体安排:1.实习动员、开发系统介绍、开发技术介绍。

(一天)2.Linux操作系统的使用。

(时间安排为半天)3.Linux操作系统源代码分析.(一天半)4.根据所选系统要求,提出系统设计方案和测试程序设计方案。

(一天)5.完成系统设计(时间安排为四天)6.教师考评程序。

(时间安排为一天半)7.提交设计报告(时间安排为半天)五、报告书写要求:1、分析设计要求,给出解决方案(要说明设计实现所用的原理,采用的数据结构)2、画出程序的基本结构框图和流程图3、对程序的每一部分要有详细的设计分析说明,4、程序执行的每个步骤要有具体的提示内容或输出5、源代码格式规范,注释不少于三分之一6、设计合适的测试用例,对得到的运行结果要有分析,7、设计中遇到的问题,设计的心得体会8、提交完整程序代码、课程设计报告及相关文档9、参考资料六、成绩评定标准根据学生设计的方案、最终程序结果的演示、实习报告、实习出勤情况等来评定成绩,考核成绩分为优、良、中、及格和不及格五个等级。

评分原则如下:1 问题描述10% 没有有,但不完整基本正确描述正确描述准确2 解决方案10% 没有有,但不完整基本可行方案良好很有说服力3 解决方案的流程图、主要算法的描述与具体实现的说明20% 没有有,但不完整基本正确,但不够清晰正确,清晰正确,清晰,且让人感觉良好4 具体的解决实例40% 没有有,但不完整基本完整完整让人感觉有价值,并可以实际演示。

5 程序界面15% 很差一般的命令行界面很好的命令行界面一般的图形界面很好的图形界面非常友好的图形界面6 其他5% 包括是否按时完成,报告格式,字迹、语言等等第一部分操作系统上机指导Linux操作系统环境:一、登录到系统二、常用命令练习:用root账号(超级用户)注册,口令为*****(注意大小写)。

注册成功出现#号(超级用户系统提示符,普通用户的系统提示符为$)。

1.注销(退出)系统:logout 或exit2.练习使用命令ls(注意Linux命令区分大小写。

)使用ls 查看当前目录内容;使用ls 查看指定目录内容,如/目录,/etc目录使用ls –all 查看当前目录内容;使用dir 查看当前目录内容3.使用cd改变当前目录: cd ..回到上层目录;cd / 回到根目录4.pwd 显示当前路径5.建立目录: mkdir 目录名;mkdir /home/s2001/newdir6.删除目录:rmdir;7.复制文件cp:如cp 文件名1 文件名28.移动文件或目录: mv 驼9.删除文件rm10. 显示文件内容:more 文件(分页显示);11. 显示文件:cat 文件名建立文件:cat >文件名,ctrl+d结束输入三、使用编辑器vi 编辑文件1.进入linux的文本模式之后,在命令行键入vi filename.c 然后回车。

下面作一些简单的解释:首先vi命令是打开vi编辑器。

后面的filename.c是用户即将编辑的c文件名字,注意扩展名字是.c;当然,vi编辑器功能很强,可以用它来编辑其它格式的文件,比如汇编文件,其扩展名字是.s;也可以直接用vi打开一个新的未命名的文件,当保存的时候再给它命名,只是这样做不很方便。

2.最基本的命令I :当进入刚打开的文件时,不能写入信息,这时按一下键盘上的I键(insert),插入的意思,就可以进入编辑模式了。

如下图所示:3.a与i是相同的用法4.当文件编辑完后,需要保存退出,这时需要经过以下几个步骤:1)按一下键盘上的Esc 键;2)键入冒号(:),紧跟在冒号后面是wq(意思是保存并退出)。

如果不想保存退出,则在第二步键入冒号之后,键入!q。

如下图所示:5. 退出vi 编辑器的编辑模式之后,要对刚才编写的程序进行编译。

编译的命令是:gcc filename.c [-o outputfilename],其中gcc 是c 的编译器。

参数:filename.c 是刚才编辑的c 文件(当然也可以是以前编写好的c 文件);后面中括号里面的参数是可选的,它是一个输出文件。

如果不选,默认的输出文件是a.out ,选了之后输出文件就是outputfilename.out .6. 最后一步是运行程序,方法如下:./outputfilename.out四、添加新用户、修改文件属性1. 添加新用户(在root 下,按默认值回答)adduser 用户名;如adduser s2001 ; 以新用户登录到系统2.修改用户口令 passwd3.控制文件属性使用ls –l 查看文件属性Unix如:-rw-rw-rw-5 19:43 dir14.改变用户的所有权:chown 用户名 文件名5.改变文件权限:chmod g+w 文件名;chmod o-r 文件名或使用数字方式修改:如chmod 644文件名;chmod 755文件名三种权限: owner group others. u (user 用户),g ( group 组),o (other 其他); w 写访问权限,r 读访问权限, x 执行权限6.查看相关命令的帮助:man 命令名7.显示当前系统中已注册的用户信息:who 8.显示当前注册的用户信息:whoami第二部分操作系统源代码分析(Linux进程管理程序分析)一.目的1.了解Linux源代码的分布;2.了解阅读Linux源代码的一般方法;3.熟悉Linux管理进程用的主要数据结构;4.通过阅读Linux进程调度有关函数的源代码,理解Linux的进程调度算法及其实现所用的主要数据结构。

5.通过查阅参考书或者上网找资料,熟悉/usr/src/linux(注意:这里最后一级目录名可能是个含具体内核版本号和“linux”字符串的名字)下各子目录的内容,即所含Linux源代码的情况。

二.内容(三个选一个)1.阅读Linux的fork.c源文件,分析进程的创建过程。

2.在概览Linux启动和初始化部分源代码基础上,分析Linux进程调度有关函数的源代码,主要是schedule()函数和goodness()函数,并且要对它们引用的头文件等一并分析。

3. 阅读Linux系统的msg.c、sem.c和shm.c等源码文件,熟悉Linux三种进程通信机制。

第三部分操作系统原理演示系统的开发(任选一个)要求:编程模拟实现操作系统某些功能模块。

设计一:进程调度设计目的:进程管理是操作系统中的重要功能,用来创建进程、撤消进程、实现进程状态转换,它提供了在可运行的进程之间复用CPU的方法。

在进程管理中,进程调度是核心,因为在采用多道程序设计的系统中,往往有若干个进程同时处于就绪状态,当就绪进程个数大于处理器数目时,就必须依照某种策略决定哪些进程优先占用处理器。

本实验模拟在单处理器情况下的进程调度,目的是加深对进程调度工作的理解,掌握不同调度算法的优缺点。

设计题目:设计一个按先来先服务,算法时间片轮转法,优先数调度算法实现处理器调度的程序。

设计一个有N个进程处于就绪队列时,单处理机情况下的调度程序采取“优先数调度”算法。

进程的就绪队列中是按优先数的大小从大到小排列,调度算法总是选取队列中优先数高的队列投入运行,采取动态地改变优先数的办法,进程每运行一次优先数相应的减2,从而避免一个作业长期占据处理机,当调度时机出现时,调度算法适时再调度,首先判断此进程是否运行完,未运行完再判断此进程的优先权是否大于等于队列的首进程的优先数,若成立,就继续执行。

这样重复,直到就绪队列为空。

设计二:进程同步设计目的:理解临界区和进程互斥的概念,掌握用信号量和PV操作实现进程互斥的方法。

设计题目:在windows或者linux环境下编写应用程序,该程序运行时能创建N个线程,其中既有读者线程又有写者线程,它们按照事先设计好的测试数据进行读写操作。

用信号量和PV操作实现读者/写者问题。

设计三:死锁设计目的:死锁是进程并发执行过程中可能出现的现象,哲学家就餐问题是描述死锁的经典例子。

为了防止死锁,可以采用资源预分配法或者资源按序分配法。

资源预分配法是指进程在运行前一次性地向系统申请它所需要的全部资源,如果系统当前不能够满足进程的全部资源请求,则不分配资源, 此进程暂不投入运行,如果系统当前能够满足进程的全部资源请求, 则一次性地将所申请的资源全部分配给申请进程。

资源按序分配法是指事先将所有资源类全排序, 即赋予每一个资源类一个唯一的整数,规定进程必需按照资源编号由小到大的次序申请资源。

设计题目:模拟有五个哲学家的哲学家进餐问题。

设计四:页面置换设计目的:加深对请求页式存储管理实现原理的理解,掌握页面置换算法。

设计要求:1.用户可以为程序指定内存块数2.用户可以自由设置程序的页面访问顺序3.用户可在OPT、FIFO和LRU算法选择一个,并能观看到页面置换过程。

设计五:磁盘调度管理设计目的:加深对请求磁盘调度管理实现原理的理解,掌握磁盘调度算法。

设计要求:1.用户可以为程序指定初始需要访问序列;2.实现最短寻道和电梯调度两种调度算法;3.根据用户的选择输出实际的访问序列;设计六:文件系统模拟设计设计目的:通过一个简单多用户文件系统的设计,加深理解文件系统的内部功能及内部实现。

相关主题