课程名称计算机操作系统实验

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、课程名称:计算机操作系统实验

(一)本课程实验总体介绍

1、本课程上机实验的任务:

通过该实验真正认识多进程、多线程、微核、死锁、文件系统、缓存等概念及实现原理;在充分理解原理和算法的基础上,发挥学生自我创造力,鼓励并创造机会让学生提出新的算法或实现。

2、本课程上机实验简介:

分为课程实验和课程设计两大部分。

课程实验通过应用层编程调用系统接口加深对进程、内存、文件和设备等功能的理解。具体为实验1-4。课程设计通过对Linux核心源代码的实例分析和设计掌握系统设计的原理和方法。具体为实验5-12。

3、本课程适用专业:

计算机相关专业。

4、本课程上机实验涉及核心知识点:

核心知识点:微核、系统调用、核心态与用户态、进程、线程、同步、互斥、并发、死锁、伙伴算法、文件及文件目录、I/O缓冲、调度算法、系统初始化、时钟中断等。

5、本课程上机实验重点与难点:

并发控制,内核代码的分析与设计。

6、本课程上机实验运用软件名称:

VC++编译环境, Source Insight分析器、gcc编译器,

7、总学时:

课程实验:16学时

课程设计:共8个课程设计,每个根据难度在8-20学时。

8、教材名称及教材性质(自编、统编、临时):

名称:《LINUX操作系统分析与设计》

性质:自编

9、参考资料:

●计算机操作系统. 汤子瀛,西安电子科技大学出版社(第3版)

●《Linux设备驱动程序》第二版Alessandro Rubini & Jonathan Corbet编

著魏永明骆刚等译中国电力出版社2002年11月第一版。

●《Linux操作系统内核分析》陈莉君编人民邮电出版社第一版。

●《Linux操作系统内核实习》Gary Nutt 著机械工业出版社。

(二)包含实验项目基本信息

实验项目1

1、实验项目名称:

进程调度算法设计实践

2、实验项目的目的和任务:

目的:通过该实验,加深对多道系统中调度算法的认识。

任务:实现FIFO,RR(q=1),SPN, SRT, HRRN, FB(去=2i-1)六种调度算法。

并通过输入一组进程序列计算出每种算法的输出进程序列。

3、上机实验内容:

(1)实现主程序及六种调度算法。

(2)输入一组进程序列,对序列中的每一个进程,定义不同的优先级、总执行时间,用六种调度算法输出调度最终的排序结果。

序列例;

4、学时数:4

实验项目2

1、实验项目名称:

线程间同步与互斥

2、实验项目的目的和任务:

目的:通过多线程并发程序设计,掌握同步与互斥的设计方法。

任务:实现一个生产者、消费者的两线程同步算法。

3、上机实验内容:

(1)申请10个缓冲区。

(2)编制生产者线程:首先产生一个随机数,写入到一个缓冲区中。其次将该缓冲区置“满”标志。

(3)编制消费者线程:取一个“满”标志的缓冲区中数据,打印输出,然后将该缓冲区置“空”标志。

(4)添加相应的同步互斥控制代码。

4、学时数:4

实验项目3

1、实验项目名称:

内存分配与回收设计

2、实验项目的目的和任务:

目的:学习内存管理的实现原理。

任务:实现一个基于伙伴算法的内存分配回收算法,并通过输入一组内存请求与回收序列验证该算法执行情况。

3、上机实验内容:

(1)实现主程序及伙伴算法(设内存总量为1M)。

(2)用如下请求和释放序列验证该算法执行情况。

请求100k――>请求240k――>请求64k――>请求256k――>释放240k――>释放100k――>请求75k――>释放64k――>释放75k――>释放256k

试输出每次请求和释放动作产生后的内存状态。

4、学时数:4

实验项目4

1、实验项目名称:

文件复制

2、实验项目的目的和任务:

目的:掌握文件系统的系统调用的使用。

任务:产生两个文件A和B,并将这两个文件内容交叉复制到文件C中,并输出文件C的结果。

3、上机实验内容:

(1)产生一个1k的文件A,其内容为数字。

(2)产生一个1k的文件B,其内容为字母。

(3)以100字节为单位,将A、B两文件的内容交替复制到文件C中。最后输出C的结果。

4、学时数:4

实验项目5

1、实验项目名称:

Linux时间系统分析

2、实验项目的目的和任务:

通过对LINUX系统与时间有关的系统源代码分析,学习多任务系统中调度的核心事件时钟中断的实现原理,学习LINUX的内核机制以及内核时钟维护机制。

3、上机实验内容:

●编写一个拾取当前时间的应用程序,熟悉系统调用gettimeofday() 的使

用。

●分析\linux\kernel\time.c中的sys_gettimeofday()过程,说明时间是从何处

取得的,并给出分析流图。

●分析\linux\kernel\itimer.c中的sys_getitimer()和sys_setitimer()过程,给出

分析流图。

●分析\linux\arch\i386\kernel中的时钟中断处理过程do_timer_interrupt()和

\linux\kernel\中的timer_bh()过程,给出分析流图,解释时钟中断处理的

相关文档
最新文档