《操作系统课程设计》
(2017/2018学年第一学期第17周)
指导教师:田秋红 郭奕亿
班级: 学号: 姓名:
1
操作系统课程设计
任 务 书
一、题目:
在阅读Linux操作系统源代码的基础上完成两个主要Project。题目可选做A类或者B类,或
者C类,或者自主命题。
二、设计目的和要求:
操作系统原理是计算机专业的核心课程。本课程设计的目的旨在加深学生对计算机操作系统内核的理解,提高对操作系统内核的分析与扩展能力。在课程理论教学中,较多地是讲解操作系统理论和实现原理。本课程设计提供两类难度相当的实验,学生可按照自己的兴趣选做A类或者B类:
A、本课程设计要求学生在阅读Linux操作系统源代码的基础上完成如下两个主要Project:
1、 在Linux2.4的内核中添加新的系统调用,以理解系统调用的工作机制,掌握扩展内核功能
的技术。
2、 在Linux2.4中修改调度程序的代码,扩展一个新的调度算法 B、在Java虚拟机上完成如下两个Project(2,3选一): 1、基于java虚拟机的线程调度 2、请求页式管理的Java实现
3. 用JAVA语言模仿“生产者—消费者问题 C、方向命题,具体内容不限,任选2题; D、自主命题。
为将来在基于Linux的嵌入式系统开发或在Java虚拟机上的软件开发工作奠定基础。
三、工作内容及工作计划:1周(17周,其中课内20学时,课外20学时)
序号 实验项目 内 容 提 要 名称 1、 Linux内核代码的层次分析 代码分析1 (部分) 3、 系统调用内部数据结构以及执行过程的分析 4、 内核调试基本技术 1、编写一个新系统调用的响应函数, 新增系统2 调用 Linux内核中 2、编写应用程序以测试新的系统调 义。把新的系统调用函数嵌入到专业基础 综合型 20 2 3选一) 函数的名称和功能由实验者自行定 必做(2、专业基础 基本型 20 2 必做 Linux内核2、 调度程序代码段的分析 实验性质 类 分配 人数 实验种学时每组备注 2
用并输出测试结果 1、 分析Linux进程调度模块 进程调度2、 扩展调度模块,使得新创建的普 必做(2、专业基础 综合型 20 3 的扩展 通进程获得的优先级比一个曾2 3选一) 经运行过的优先级高 1、 Java线程的优先级机制及调度机制 2、 用Java语言实现基于优先级的基于java 轮转线程调度 虚拟机的专业基础 综合型 20 2 必做 4 3、 至少创建5个线程并输出它们在线程调度 上述调度算法下的调度情况,并输出到终端,以检查算法的执行情况 1、 创建一个页面访问序列(页号范围为0-9),序列长度自定,假定分配给线程的主存块数为3,即请求页式M=3 必做(5、5 管理的2、 实现下面的页面置换算法: 专业基础 综合型 20 2 6选一) Java实现 ·FIFO ·近似LRU ·OPT 3、输出页面置换序列和缺页率 1. 通过Java语言中的wait()和notify()命令模拟操作系统中的P/V操作; 2. 为每个生产者/消费者产生一个线程,设计正确的同步算法 用JAVA语3. 每个生产者和消费者对有界缓 言模仿“生冲区进行操作后,即时显示有界必做(5、6 专业基础 综合型 20 3-4 产者—消缓冲区的当前全部内容、 6选一) 费者问题“ 当前指针位置和生产者/消费者线程的自定义标识符。 4. 生产者和消费者各有两个以上。 5. 多个生产者或多个消费者之间须共享对缓冲区进行操作的函数代码。
3
或者在以下题目选择两项(C类):
1 进程管理 理解进程表示和状态转换、模式转换;掌握进程上下文切换机制;掌握软中断的实现机理和作用;掌握进程调度的基本思想;熟练应用进程相关的系统调用。重点在于进程的创建与结束、进程调度与切换以及软中断机制。 2 文件系统 理解文件系统的层次结构,掌握高速缓存管理和磁盘管理的基本思想和算法,掌握文件系统的系统调用处理算法和运用,设计小型文件系统 。 3 存储管理 掌握页式虚拟存储系统的实现机理,理解进程存储空间的表示、实现和管理,模拟实现存储管理系统。 4 设备管理 理解I/O子系统的结构,用户使用设备系统调用接口、操作系统与驱动程序的接口;了解磁盘驱动程序和中断驱动程序结构。 5 进程间通信 理解IPC机制的实现机理,掌握消息通信、管道通信以及共享存储区等各种通信方式的运用,实现进程间通信。
或者自由发挥,跟老师沟通后自主命题(D)。
四、实验参考资料
1. Gray Nutt.Kernel Projects for Linux(影印版).北京:机械工业出版社,2002 2. 李善平,郑扣根.Linux操作系统计实验教程.北京:机械工业出版社,1999 3. 印旻.Java语言与面向对象程序设计.北京:清华大学出版社,2000
五、考核成绩评定标准:
本课程设计的评价由三部分组成,包括程序演示(50%),课程设计报告(30%),回答教师提问(20%)。指导教师根据每个学生小组必做实验和选做完成情况、实验结果的正确性、选做实验的数量和完成情况,进行小组评分,作为该小组成员的最高得分。对组内各个成员评分,结合学生小组分工情况和组内评价进行评分,并将成绩记录在册。
1、 程序演示:
(1) 优
功能完善,全部测试正确,并且能够对局部进行完善,能够对 不同测试数据进行正确分析
(2) 良 功能完善,但测试欠缺 (3) 中 功能基本完善,但程序尚有部分错误 (4)及格 完成一定功能
(5)不及格 功能不完善,且程序错误较多,无法运行
2、 课程设计报告:
(1) 优 包括设计内容,设计思想,已经完成的任务及达到的目标,
4
(2) 良
(3) 中
(4) 及格 (5) 不及格
3、 回答教师提问:
(1) 优 (2) 良 (3) 中 (4) 及格 (5) 不及格
设计思路清晰、书写条理清楚,源程序结构合理、清晰,注 释说明完整,有对本次课程设计的心得体会。
包括设计内容,设计思想,已经完成的任务及达到的目标, 设计思路基本清晰、书写条理基本清楚,源程序结构合理、 清晰,注释说明基本完整,有对本次课程设计的心得体会。 课程设计报告内容基本完整,思路较清晰,书写基本清楚, 源程序结构尚可,有注释说明但不完整
课程设计报告内容基本完整,思路较差,书写尚清楚。 课程设计报告内容不完整,书写没有条理。
能回答教师提出的所有问题,并完全正确,思路清晰 基本能回答教师提出的所有问题,有些小错误
基本能回答教师提出的问题,少数问题回答错误或不清楚 能回答教师提出的问题,但较多问题回答错误或不能回答 基本不能回答教师提出的问题
5