操作系统课程设计指导书全稿

上传人:qt****68 文档编号:47217024 上传时间:2018-06-30 格式:PDF 页数:100 大小:954.42KB
返回 下载 相关 举报
操作系统课程设计指导书全稿_第1页
第1页 / 共100页
操作系统课程设计指导书全稿_第2页
第2页 / 共100页
操作系统课程设计指导书全稿_第3页
第3页 / 共100页
操作系统课程设计指导书全稿_第4页
第4页 / 共100页
操作系统课程设计指导书全稿_第5页
第5页 / 共100页
点击查看更多>>
资源描述

《操作系统课程设计指导书全稿》由会员分享,可在线阅读,更多相关《操作系统课程设计指导书全稿(100页珍藏版)》请在金锄头文库上搜索。

1、计算机操作系统原理 课程设计指导书孙 英 华计算机科学技术学院2016.92目录第一部分第一部分课程设计教学目标和考核要求课程设计教学目标和考核要求3 3第二部分第二部分LinuxLinux 程序设计环境和预备知识程序设计环境和预备知识5 5预备实验预备实验LinuxLinux 程序设计常用命令和程序设计调试工具程序设计常用命令和程序设计调试工具6 6第三部分第三部分基基于于 LinuxLinux APAPI I 的通信控制的通信控制1515设计题目设计题目 1 1LinuxLinux 进程线程控制进程线程控制(3 3 个选题个选题)2525设计题目设计题目 2 2进程间通信(进程间通信(3

2、3 个选题)个选题) 2626第四部分第四部分LinuLinux x 经典系统管理算法的模拟实现经典系统管理算法的模拟实现2828设计题设计题目目 3 3动态分区存储管理模拟系统动态分区存储管理模拟系统2828设计题设计题目目 4 4设备管理模拟系统设备管理模拟系统2929设计题设计题目目 5 5模拟实现请求分页虚存页面替换算法模拟实现请求分页虚存页面替换算法3131第五部分第五部分LinuLinux x 内核模块实验内核模块实验3333设计题目设计题目 6 6文件操作模块文件操作模块 3333设计题目设计题目 7 7设计并实现新的同步原语设计并实现新的同步原语 3838附录一附录一Ubunt

3、Ubuntu u 简介简介 4444附录二附录二LinuLinux x 常用命令总结常用命令总结5353附录三附录三LinuLinux x 编程常用函数编程常用函数8585附录四附录四相关数据结构及程序设计指导与参考相关数据结构及程序设计指导与参考 86863第一部分课程设计目的、内容和考核要求 课程教学目的课程教学目的 计算机操作系统课程是计算机科学与技术专业的一门重要专业基础课, “计算机操作系统课程设计” 的目的是在学生学习了 计算机操作系统 课程之后理论联系实践,一方面延续计算机操作系统课程实验的要求,进一步加深与巩固学生对计算机操作系统中概念、基本原理、算法的理解和掌握,培养学生对计

4、算机常用操作系统的操作能力;另一方面通过本环节加强培养学生分析、 修改和设计操作系统的能力, 期望达到学为所用,并且能进一步提高基于 Linux 的编程能力。 课程设计内容及学时分配课程设计内容及学时分配 本课程含 2 个授课学时、34 个实验学时。设计内容分为四个模块:1. Linux 编程调程环境常用命令及工具使用(2 学时) ;2. 基于 Linux API 的进程线程通信控制实验(8 学时) ;3. 基于 Linux 的经典系统管理算法模拟实验(12 学时) ;4. Linux 内核模块实验(8 学时) 。综合检查 4 学时。注:由于课程设计实验题目的实现程序较长,课堂上未完成的部分需

5、利用课下时间调试完成。 课程考核要求课程考核要求 1.考核成绩记为优秀、良好、中等、及格和不及格五个等级。2.出勤低于 60%的学生考核成绩为不及格。3.每 3-4 名同学自愿组成一个实验小组(尽量采用同宿舍就近原则) ,组员表报给班长并于第二周上课前交给任课老师,课程设计报告以及课堂程序演示考核均以小组为单位(出勤低于 60%的同学自动从小组分离) 。4.圆满完成设计题目 6 个及以上并且通过课程设计报告及上机程序检查的, 成绩为优秀;5 个的为良好;4 个的为中等;3 个的为及格;其它为不及格。5.课程设计报告要求:4(1)一个设计题目完成一份设计报告;(2)报告内容必须包括:设计题目要求

6、、涉及的背景知识及采用的函数或方法概述、题目设计思路或程序框架及主要数据结构、源代码(须加必要注释) 、调试方案设计及调试过程问题分析、运行结果与分析;(3)设计报告以实验小组为单位,组员轮流执笔合作完成。(4)严禁复制抄袭,一经发现该题目视为未完成。6. 每个小组每个题目的上机程序检查环节由任课教师随机抽查组内任一组员单独进行。5第二部分Linux 程序设计环境和预备知识一一.Linux 编程语言编程语言高级程序设计语言C/C+, Java, FortranELF binary formatExcutable and Linkable Format脚本语言Shell: sh/bash, cs

7、h, kshPerl, Python, tcl/tk, sed, awk二二.Linux 开发工具开发工具编译工具 GCCGNU C Compiler - GNU Compiler CollectionThe gcc command: Front end调试工具 GDBGNU DebuggerThe gdb commandxxdgb, ddd管理项目 GUN Make三三.Linux 集成开发环境集成开发环境IDEEmacs/xemacsKdevelopEclipseKylix3Command lineEditor:vi/vim/gvim, emacs/xemacs, picoSource R

8、eader:source navigator; vi/emacs+ ctags/etagsConfigure Tools: automake, autoconf, m46预备实验预备实验Linux 环境程序设计基础环境程序设计基础 实验目的实验目的 1 熟悉 Linux(Ubuntu 版本)的登录和退出、命令及使用格式和常用基本操作命令;2 练习并熟练使用 Linux 提供的 vi 编辑器;3 练习并熟练使用 Linux 操作系统下最常用的 C 语言编译器 gcc;4 练习掌握 Linux 操作系统下最常用的代码调试器 gdb 的使用和调试代码的基本方法;5 学习使用 make 命令和 Mak

9、efile 文件。 实验内容指导实验内容指导 一、一、LinuxLinux 的常用命令和使用的常用命令和使用1. 阅读并上机实践附录一,熟悉 Ubuntu 系统环境。2. 阅读并上机实践附录二,熟悉 Linux 常用的操作命令。二、二、文本编辑器文本编辑器 vivi 的使用的使用进入 vi 的命令: vi file打开或新建编辑文件 file,并将光标置于第一行首 vi r file在上次正用 vi 编辑时发生系统崩溃,恢复 file vi file1.file打开多个文件,依次进行编辑vi 分为编辑状态和命令状态。输入命令要先按 ESC,退出编辑状态,然后输入命令。 常用行方式命令: :e

10、file打开文件 file 进行编辑 :w保存当前文件 :w!不询问方式写入文件 :x保存当前文件并退出 :x!退出不保存当前文件 :q退出 vi :q!不保存文件并退出 :r file读文件 file :r! command将命令 command 的输出结果放到当前行 :!command执行 shell 命令 command i 进入编辑插入状态 ESC 退出编辑状态三、三、编译器编译器 gccgcc 的使用的使用1.阅读在线帮助命令 man gcc 的内容,了解 gcc 的基本使用2. gcc 简介7Unix 上使用的 C 语言编译器 cc,在 Linux 上的派生就是 gcc。在使用 v

11、i 编写完源程 序之后,返回到 shell 下面,使用 gcc 对源程序进行编译的命令是:gcc 源程序其中,“源程序”即为你编写的以.c 为扩展名的 C 语言源代码文件。 如果源代码没有语法错误,使用以上命令编译,会在当前目录下生成一个名为 a.out 的可执行文件。如果源代码有语法错误,则不会生成任何文件,gcc 编译器会在 shell 中 提示你错误的地点和类型。 也可以使用以下方法编译源代码文件,生成自命名的可执行文件:gccgcc o o 自命名的文件名自命名的文件名 源文件名源文件名执行当前目录下的编译生成的可执行文件,使用以下格式:././可执行文件名可执行文件名当使用 gcc

12、编译你写的程序源代码的时候,可能会因为源代码存在语法错误,编译无 法进行下去,这时候,就可以使用调试器 gdb 来对程序进行调试。 假设我们有下面一个非常简单的源程序: /*hello.c*/ #include int main(int argc,char *argv) printf(“Hello Linuxn“); return 0; 要编译这个程序,我们只要在命令行下执行: gcc -o hello hello.c gcc 编译器就会为我们生成一个名为 hello 的可执行文件。执行./hello 就可以看到程 序的输出结果了。命令行中 gcc 表示我们是用 gcc 来编译我们的源程序,-

13、o 选项表示 我们要求编译器给我们输出的可执行文件名为 hello,而 hello.c 是我们的源程序文件。 gcc 编译器有许多选项,一般来说我们只要知道其中的几个常用的就够了。 -o 选项我们已经知道了,表示我们要求输出的可执行文件名。 -c 选项表示我们只要求编译器输出目标代码,而不必要输出可执行文件。 -g 选项表示我们要求编译器在编译的时候提供对程序进行调试的信息。在以后对程序进 行调试时需要用到这些信息。 知道了这三个选项,我们就可以编译我们自己所写的简单的源程序了,如果你想要知道更 多的选项,可以查看 gcc 的帮助文档,那里有着许多对其它选项的详细说明.在 Linux 下 进行

14、程序设计需要经常查阅这些帮助文档来了解程序的用法解决问题。四、四、调试器调试器 gdbgdb 的使用的使用1.阅读在线帮助命令 man gdb 的内容,了解 gdb 的基本使用2. gdb 简介Linux 包含了一个叫 gdb 的 GNU 调试程序。 gdb 是一个用来调试 C 和 C+ 程序 的强力调试器。它使你能在程序运行时观察程序的内部结构和内存的使用情况。以下是 gdb 所提供的一些功能:能监视你程序中变量的值。8能设置断点以使程序在指定的代码行上停止执行。 能一行行的执行你的代码。在命令行上键入gdb并按回车键就可以运行gdb了,如果一切正常的话,gdb将 被启动并且你将在屏幕上看到类似的内容:当启动gdb后, 能在命令行上指定很多的选项。 你也可以以下面的方式来运行gdb:gdbgdb 当你用这种方式运行 gdb ,就能直接指定想要调试的程序。这将告诉 gdb 装入名为 fname 的可执行文件。 你也可以用 gdb 去检查一个因程序异常终止而产生的 core 文件, 或者与一个正在运行的程序相连。你可以参考 gdb 指南页或在命令行上键入 gdb -h 得 到一个有关这些选项的说明的简单列表。 为调试编译代码(Compiling

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

当前位置:首页 > 高等教育 > 其它相关文档

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