操作系统课程设计指导书2015

合集下载

操作系统-课程设计指导书

操作系统-课程设计指导书

操作系统课程设计指导书1.操作系统课程设计1.1 课程的性质和目的“操作系统基础”是计算机专业的核心专业课,“操作系统课程设计”是理解和巩固操作系统基本理论、原理和方法的重要的实践环节。

操作系统课程主要讲述的内容是多道操作系统的原理与技术,与其它计算机原理、编译原理、汇编语言、计算机网络、程序设计等专业课程关系十分密切。

本课程设计的目的综合应用学生所学知识,建立系统和完整的计算机系统概念,理解和巩固操作系统基本理论、原理和方法,掌握多道程序设计基本技能。

实验的目的:(1) 掌握进程和线程的概念;(2) 掌握进程控制原语或进程控制系统调用的使用;(3) 掌握多道程序设计的基本理论、方法和技术;(4) 掌握相关语言进程控制的函数及win98或windows2000的进程控制的API函数和MFC的使用;(5) 培养学生多道程序设计的能力。

1.2 课程的内容计算机操作系统是计算机系统中最不可缺少的、最常用的软件,也是核心的、最接近于计算机硬件的软件。

计算机操作系统是计算机专业及其相关专业的主要的基础课程之一,其内容综合了各种操作系统的结构、设计思想、方法、技术和理论,其特点是内容繁多、概念抽象,因此造成理解困难、掌握不易。

现代操作系统最为核心的概念是多道程序、进程和线程,它们对于操作系统的初学者掌握尤其不易。

本课程设计的内容为“多道程序间的协同操作”,其指导思想是通过这个课程设计掌握多道程序的基本要点,解决进程和线程概念的理解难点,以利用基本概念和原理的进行多道程序设计为重点,在有限的一周时间内,利用诸如VC++或Java掌握多道程序及其进程同步和互斥的设计的基本方法, 达到能用、会用、巧用的效果。

1.3 学时分配和辅导(1)基本任务简介、原理讲解2学时(2)软件设计4学时(3)上机编程、调试24学时(4)检查考核2学时每小班大约30人,每小班至少配备一名指导教师跟综辅导答疑,解决技术难题。

要求指导教师熟悉多道程序间的协同操作、进程同步和互斥的原理,具有VC++或Java程序设计的经验。

《操作系统》课程设计指导书

《操作系统》课程设计指导书

《操作系统》课程设计指导书Course Work of Operating System本指导书中包含5个题目,每个小组选择一个题目。

小组人数最多为4人,也可以1个人为1组。

上机时间安排为:每周二7~8节在软件实验室。

总学时为“两周”,分散到整个学期完成。

在2004年12月31日(周五)之前上交课程设计报告并拷贝电子文档及源程序到615的机器上。

每个题目的实验提示是互相启发的。

另外实验提示只是提示,你可以有自己的实现方法和理解,但必须在报告中清楚地说明。

你在实现复杂原理时可以也必须做简化假设。

数据结构以你自设的数组或链表居多。

题目一页面置换算法的模拟实现和计算命中率一、课程设计目的通过请求页式管理方式中页面置换算法的模拟设计,了解虚拟存储技术的特点,掌握请求页式存储管理中的页面置换算法。

二、课程设计内容模拟实现OPT、FIFO和LRU算法,并计算命中率。

命中率= 1- 缺页率。

三、实验要求及提示1、首先用随机数生成函数产生“指令”序列(实际上是产生指令将访问的地址序列),然后将指令序列变换成相应的页地址流,再计算不同算法下的命中率。

2、通过随机数产生一个指令序列,共产生400条。

其中50%的指令是顺序执行的(另外50%就是非顺序),且25%的指令分布在前半部地址空间,25%的指令分布在后半部地址空间。

具体的产生方法是:1)在[0,399]之间随机选取一起点m,记录到指令地址流数组中;2)所谓“顺序执行一条指令”,即执行地址为m+1的指令,把m+1记录下来;3)在前半部地址空间,即[0,m+1]中随机选一数,作为新指令地址m’;4)顺序执行一条指令,其地址为m’+1;5)在后半部地址空间[m’+2,399]中随机选一数,作为新指令地址;6)重复步骤1~5,直到产生400个指令地址。

3、将指令地址流变换成页地址(页号)流,简化假设为:1)页面大小为1K;2)用户虚存容量为40K;3)用户内存容量为4页到40页;4)用户虚存中,每K存放10条指令,所以那400条指令访问地址所对应的页地址(页号)流为:指令访问地址为[0,9]的指令为第0页;指令访问地址为[10,19]的指令为第1页;……。

实验指导(2015完全版)

实验指导(2015完全版)

操作系统上机实验指导书(第一版)闫大顺李晟编著吴家培主审计算机科学与工程学院2014.8操作系统实验指导本课程是为《计算机操作系统》课所开的实验。

计算机操作系统课程是一门实践性很强的技术课程,本课程实验的目的在于培养学生的实践能力,促进理论与实践的结合。

要求学生通过上机编程,熟悉对操作系统原理,并熟练使用程序接口,并了解如何模拟操作系统原理的实现,从而加深对操作系统原理的领会,加深对操作系统实现方法的理解,与此同时使学生在程序设计方面也能够得到很大程度的提高。

实验的目的是使学生理论联系实际,提高学生系统理解与开发能力。

这里所列的实验分为必做和选做。

具体实验题的选择,不仅要考虑课程内容,而且要考虑学生目前的编程能力,要由浅入深。

教师可通过运行示例或动画,帮助学生理解实验要求。

学生应选择自己熟悉的语言与开发环境去完成实验。

根据以往的教学经验,Delphi、C++ Builder,JBuilder由于提供了许多可重用的构件,易于学习、使用,VC++学习、使用困难较多。

实验要求尽量在windows操作系统下,也可以在Linux下完成,由于多数没有专门学习Linux,在其平台下做试验比较困难。

实验的硬件要求是能够支持VC++、Delphi、C++ Builder,JBuilder的微机即可。

每个学生都独立在一台计算机上完成自己的实验内容,杜绝学生的抄袭。

实验报告的要求1. 每位同学准备实验报告本,上机前作好充分的准备工作,预习本次实验的内容,事先熟悉与实验有关的软硬件环境。

2. 实验时遵守实验室的规章制度,爱护实验设备,对于实验设备出现的问题,要及时向指导老师汇报。

3. 提交实验文件格式:[班级][学号]_[实验题号].[扩展名]例:计051班学号为03的学生第四个实验的文件名为:j05103_4.c4. 最终的实验报告按照实验名称、实验目的、实验内容,实验过程(程序设计、实现与调试)、实验总结五部分书写,按时上交。

操作系统课程设计任务指导书

操作系统课程设计任务指导书

《操作系统原理》课程设计--进程调度模拟程序一、课程设计目的《操作系统原理》是计算机科学与技术专业的一门专业核心课程,也是研究生入学考试中计算机专业综合中所涉及的内容。

该课程理论性强,纯粹的理论学习相对枯燥乏味,不易理解。

通过课程设计,可加强学生对原理知识的理解。

二、课程设计的任务和要求本次课程设计的题目是,时间片轮转调度算法的模拟实现。

要求在充分理解时间片轮转调度算法原理的基础上,编写一个可视化的算法模拟程序。

具体任务如下:1、根据需要,合理设计PCB(进程控制块)结构,以适用于时间片轮转调度算法;2、设计模拟指令格式,并以文件形式存储,程序能够读取文件并自动生成指令序列。

3、根据文件内容,建立模拟进程队列,并能采用时间片轮转调度算法对模拟进程进行调度。

任务要求:1、进程的个数,进程的内容(即进程的功能序列)来源于一个进程序列描述文件。

2、需将调度过程输出到一个运行日志文件。

3、开发平台及语言不限。

4、要求设计一个Windows可视化应用程序。

三、模拟程序的描述:模拟指令的格式:操作命令+操作时间● C :表示在CPU上计算●I :表示输入●O :表示输出●W :表示等待●H :表示进程结束操作时间代表该操作命令要执行多长时间。

这里假设I/O设备的数量没有限制,I和O设备都只有一类。

I,O,W三条指令实际上是不占有CPU的,执行这三条指令就应该将进程放入对应的等待队列(输入等待队列,输出等待队列,其他等待队列)。

例如,有一虚拟程序文件prc.txt描述如下:P1C10 // 在CPU上运算10个时间单位I20 // 输入,占用20个时间单位C40 // 在CPU上运算40个时间单位I30 // 输入,占用30个时间单位C20 // 在CPU上运算20个时间单位O30 // 输出,占用30个时间单位H00 // 进程结束P2I10C50O20H00P3C10I20W20 // 等待20个时间单位C40O10H00................四、实验报告要求除了编程实现设计的要求,在运行调试完成后,要书写出课程设计报告,总结归纳课设的各个方面,锻炼自己实践和总结报告的能力。

指导书《操作系统课程设计》

指导书《操作系统课程设计》

三、课程设计基本步骤及进度安排
1. 学生分组(建议1-2人一组)、了解课程要求及熟悉任务一。(第9周)
2. 完成任务一的程序设计、编写与测试工作。(第10周)
3. 开始任务二的程序设计工作。(第11周)
4. 完成任务二的程序设计、编写与测试工作。(第12周)
5. 开始任务三的程序设计工作。(第13周)
课时4个学时。
任务二:程序模拟存储管理之“伙伴系统”算法
设计与编写程序实现动态内存管理之“伙伴系统”算法。初始内存的大小(必须是2 的幂)、申请内存的进程大小及次序等数据放在文本文件中。对于给定的输入文件,输 出进程申请与退出每步的内存分配状态。
课时4个学时。
任务三:老化算法模拟分页系统
设计与编写程序使用老化算法模拟一个分页系统。页面访问序列从文件(文本文 件)中读取。对于一个给定的输入文件,列出每1000个内存访问中发生缺页中断的数
设计内容:
1. 分析并执行“生产者-消费者问题” 示例演示程序(源代码清单:1-1)。
演示程序执行步骤:
1) 以“记事本”程序创建 pc.txt 文件,文件内容为:
其中,第 1 列为线程序号,第 2 列为线程类型(生产者还是消费者线程),第 3 列为等待时间, 第 4 列为运行时间。
2) 将文件 pc.txt 放在 C 盘根目录下 3) 运行生产程序,结果如下:
北理珠“操作系统”课题组
《操作系统课程设计指导书》
任务四:使用工具分析 Windows 之 NTFS 文件系统
2012-11
设计内容:
1. 学习 WinHex 工具软件的使用;
2. 利用 WinHex 工具对根目录下的文件进行删除、隐蔽、恢复、属性修改
及寻找其数据的存储位置;

《操作系统课程设计》指导书

《操作系统课程设计》指导书
设计三 存贮器管理系统设计
设计目的:使学生熟悉存贮器管理系统的工作原理及设计方法;加深对所学各种存贮器管理方案的理解;
设计要求:要求采用一些常用的存贮器分配算法,设计一个存贮器管理模拟系统并调试运行。模拟环境应尽量接近真实。
设计四 SPOOLing系统设计
设计目的:通过设计一个简单的SPOOLing系统来模拟实际的SPOOLing输入/输出过程,以掌握这种有用的技术。
设计要求:
⑴设计一个支持n个用户的文件系统,每个用户可拥有多个文件;
⑵采用二级或二级以上的多级文件目录管理;
⑶对文件应设置存取控制保护方式,如“只能执行”、“允许读”、“允许写”等;
⑷系统的外部特征应接近于真实系统,可设置下述文件操作命令:建立文件、打开文件、关闭文件、删除文件、读文件、写文件、复制文件、查询目录。
1、课程设计的基本思想,系统的总体结构和各子模块的功能说明;
2、课程设计有关算法的描述,并画出有关算法流程图;
3、源程序中核心代码的说明。源代码要求在关键的位置有注释,增加程序的可读性。程序结构和变量等命名必须符合有关软件开发的技术规范(参见有关文献)。
4、本课程设计的个人总结,主要包括以下内容:
《操作系统课程设计》指导书
———————————————————————————————— 作者:
———————————————————————————————— 日期:

操作系统课程设计指导书
李晓东 编
电子与信息工程学院计算机系
2012-9
ﻬ一、课程设计的目的和意义
本课程设计是学生在学完了《操作系统》课程后,培养学生程序设计能力的一个重要教学环节。课程设计为学生提供了一个动手、动脑并独立实践的机会,有助于学生将教材的理论知识和实践相结合,从而锻炼学生分析问题、解决问题的能力,提高学生实际编写程序的能力,为学生学习计算机专业的后续课程打下良好基础。

《操作系统》课程设计指导书

操作系统》课程设计指导书信息技术系0—0年六月课程设计任务(一):进程调度一、目的与要求1、目的进程是操作系统最重要的概念之一,进程调度又是操作系统核心的主要内容。

木任务要求学生独立地用C语言(或其它程序设计语言)编写和调试一个简单的进程调度程序。

调度算法(如,简单轮转法和优先数法等)可任意选择或自行设计。

以加深对进程调度和各种调度算法的理解。

(1)设计一个有n个进程并行的进程调度程序。

每个进程由一个进程控制块(PCB)表示。

进程控制块通常应包含下述信息:进程名、进程优先数、进程需要运行的时间、占用CPU的时间以及进程的状态等,且可按调度算法的不同而增删。

(2)调度程序可包含4〜5种不同的调度算法,运行时可任意选一种,以利于各种算法的分析比较。

完成1种调度算法得基本分即60分,每增加1种加10分,满分100分。

(3)系统应能显示各进程状态和参数的变化情况,便于观察诸进程的调度过程二、示例1、题目本程序可选用优先数法或简单轮转法对五个进程进行调度。

每个进程处于运行R(run)、就绪W(wait)和完成F(finish)三种状态之一,并假设起始状态都是就绪状态肌为了便于处理,程序进程的运行时间以时间片为单位计算。

各进程的优先数或轮转时间片数、以及进程需要运行的时间片数,均由伪随机数发生器产生。

进程控制块结构如下:PCB进程标识数链指针优先数/轮转时间片数占用CPU时间片数进程所需时间片数进程状态进程控制块链结构如下其中:RUN —当前运行进程指针;HEAD —进程就绪链链首指针;TAID —进程就绪链链尾指针。

2、算法与框图(1)优先数法。

进程就绪链按优先数大小从高到低排列,链首进程首先投入运行。

每过一个时间片,运行进程所需运行的时间片数减1,说明它已运行了一个时间片,优先数也减3,理由是该进程如果在一个时间片中完成不了,优先级应该降低一级。

接着比较现■ • • • ・• •• •• • •• • ■••• ••・•・•・••・ :•・・• ・• • ••••• •・• • •• • m• *• • ・••・••• ••••• ・*• • w ・・•■• ••••《操作系统》课程设计指导书行进程和就绪链链首进程的优先数,如果仍是现行进程高或者相同,就让现行进程继续进行,否则,调度就绪链链首进程投入运行。

操作系统实验指导书[2015春季学期]

操作系统实验指导书计算机科学与软件学院2015年实验一进程控制与描述一、实验目的通过对Windows XP编程,进一步熟悉操作系统的基本概念,较好地理解Windows XP的结构。

通过创建进程、观察正在运行的进程和终止进程的程序设计和调试操作,进一步熟悉操作系统的进程概念,理解Windows XP进程的“一生”。

二、实验环境硬件环境:计算机一台,局域网环境;软件环境:Windows XP,Visual C++ 6.0专业版或企业版。

三、实验内容和步骤第一部分Windows 编程Windows XP可以识别的程序包括控制台应用程序、GUI应用程序和服务应用程序。

本实验中主要用到的是控制台应用程序和GUI应用程序。

1、简单的控制台应用程序创建一个名为“Hello”的应用程序, 在“开始”菜单中单击“程序”-“附件”-“记事本”命令,将程序键入记事本中,并把代码保存为1-1.cpp。

程序1-1 Windows XP的GUI应用程序#include <iostream>void main(){Std::cout<<”Hello, Windows XP”<<std::endl;}在“命令提示符”窗口运行CL.EXE,产生1-1.EXE文件:C:\> CL 1-1.cpp运行1-1.EXE程序,运行结果是:(如果运行不成功,则可能的原因是什么?)________________________________________________________________________________________________________________________________________2、GUI应用程序Windows XP Professional下的GUI应用程序,使用Visual C++编译器创建一个GUI应用程序,代码中包括了WinMain()方法,该方法GUI类型的应用程序的标准入口点。

操作系统课设指导书

《操作系统》/《操作系统课程设计》课设指导书《操作系统》《操作系统课程设计》课设指导书计算机工程学院《操作系统》/《操作系统课程设计》课设指导书《操作系统》/《操作系统课程设计》课设项目指导书课设项目1 磁盘调度算法程序设计一、目的磁盘是经常使用的一种重要的外设,对磁盘数据的寻道时间的长短直接影响机器的整体运行速度,本设计要求用C语言(或高级语言)编写程序模拟实现磁盘调度的常用算法。

以加深对磁盘调度常用算法的理解和实现技巧。

二、课设要求1)、设计一个函数完成先来先服务的磁盘调度功能。

2)、设计一个函数完成最短寻道时间优先的磁盘调度功能。

3)、设计一个函数完成电梯算法的磁盘调度功能。

三、课设设备、环境奔腾以上计算机,装有Turbo C 2.0软件四、课设方法及步骤1、设计方法:根据设计任务书的要求,画出程序设计流程图,确定程序的功能,把整个程序根据功能要求分解为各个子程序,利用TC语言分编写程序代码,然后进行上机调试、修改、进行连接,测试,写出设计总结报告。

2、设计步骤:1)、自定义磁盘调度相关的数据结构。

2)、依据先来先服务算法(FCFS)、最短寻道优先算法(SSTF)、扫描(SCAN,也称电梯)算法的原理,编写对应函数,模拟系统的磁盘调度服务。

3)、为了更好地模拟和评价算法的性能,随机产生需寻道的磁道序列,磁道序列的首磁道为磁头的当前位置;在SCAN算法中,允许用户指定当前寻道方向。

4)、统计各算法总寻道次数和平均寻道距离;分析各算法性能,并作出评价。

5)、设计要求一人单独进行,独立完成设计,上机进行运行调试。

6)、写出课程设计报告书。

课设项目2 进程调度程序设计一、目的进程调度是处理机管理的核心内容。

本设计要求用C语言编写和调试一个简单的进程调度程序。

通过设计本可以加深理解有关进程控制块、进程队列的概念,并体会和了解最高优先数优先的调度算法(即把处理机分配给优先数最高的进程)和先来先服务算法的具体实施办法。

2015年操作系统课程设计题目及要求概论

《操作系统课程设计》教学大纲一、课程设计基本信息课程设计环节代码:230027课程设计环节名称:操作系统课程设计英文名称:Course Design of Operating System课程设计周数:2周学分:2.0适用对象:计算机科学与技术专业、网络工程专业先修课程与环节:高级语言程序设计、数据结构和操作系统二、课程设计目的和任务本课程是计算机专业的学生在学习了《操作系统》课程之后,为了加深和巩固学生对所学操作系统各个理论和算法知识的理解,同时提高学生利用操作系统知识综合运用的能力和分析问题、解决的问题的能力而开设的一门实践课程。

通过本环节学生能够充分把学到的知识应用到实际的编程实践中,有可以进一步巩固操作系统中学习的理论。

通过算法实现各种控制应用进一步体会操作系统中基本功能模块的结构和实现方法的实质,建立深入了解现有操作系统的评价和比较的方法,加深体会利用操作系统的原理能够解决实际问题的在计算机系统编程和普通编程中解决实际问题的思路;通过对程序编写规范,可以培养学生良好的编程风格,包括程序结构形式,行文格式和程序正文格式等;并培养学生的上机调试能力。

三、课程设计方式1、课程设计题目的选定采用指导教师提供参考题目与学生自主命题相结合的办法选定课程设计题目。

一人一题,不得重复。

其中学生自主命题需要指导教师严格的审核,看是否满足课程要求,检查是否为重复课题。

2、课程设计任务的完成在指导教师的指导下,各个学生独立完成课题分析、设计、代码编写和调试,独立撰写课程设计报告。

所有工作任务主要在微机实验室完成。

四、课程设计教学方法与要求课程设计教学方法:主要以学生上机操作为主,教师指导为辅课程设计要求:1、对系统进行功能分解、模块分析、控制模块分析正确2、选择合适的操作系统原理所需要数据结构以及相应的算法3、程序规模适中,着重于内核修订功能,也可以编写外围的程序驱动、文件系统的辅助工具和网络工具等。

尽可能的使系统的功能更加完善和全面4、掌握程序调试的方法5、说明书、流程图要清楚,阐明设计思路。

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

操作系统课程设计指导书赵伟华梁红兵刘真2013年2月计算机学院目录第一章操作系统课程设计的内容与实施方法.............................................................. - 3 -1.1 操作系统课程设计总体要求............................................................................. - 3 -1.2 操作系统课程设计的内容................................................................................. - 3 -1.3 操作系统课程设计实施方案............................................................................. - 3 - 第二章基于DOS的多任务系统的实现........................................................................ - 5 -2.1 设计目的和内容要求......................................................................................... - 5 -2.2 线程描述.......................................................................................................... - 6 -2.3 线程的创建和撤消.......................................................................................... - 8 -2.4 线程调度设计................................................................................................ - 10 -2.5 基本实例程序的实现.................................................................................... - 23 -2.6 线程的阻塞和唤醒........................................................................................ - 26 -2.7 线程的同步与互斥........................................................................................... - 26 -2.8 利用消息缓冲队列通信机制实现线程间通信............................................... - 27 - 第三章简单文件系统的实现.................................................................................... - 32 -3.1 设计目的和内容要求......................................................................................... - 32 -3.2 预备知识............................................................................................................. - 33 -3.3实例系统的设计与实现...................................................................................... - 36 -操作系统课程设计第一章操作系统课程设计的内容与实施方法1.1 操作系统课程设计总体要求1.遵守机房纪律,服从机房调度。

2.课程设计的设计和上机调试要求独立完成,不能拷贝。

3.上机前,努力准备上机内容,并预先作一些情况分析。

4.仔细观察上机时出现的各种现象,记录上机的结果。

5.认真书写课程设计报告。

报告中应包括:课程设计的目的及要求、程序的设计思想及流程图、程序调试中遇到的问题及分析、程序代码清单和结果分析;程序的不足之处及修改方案等。

程序要带注释。

1.2 操作系统课程设计的内容本次课程设计共设置了以下两个题目:1.基于DOS的多任务系统的实现DOS系统是一个典型的单用户单任务操作系统。

“基于DOS的多任务系统的实现”的基本设计思想是设计一个运行在DOS系统中的应用程序,该应用程序能实现多线程机制,即能完成所有与线程管理有关的工作,包括线程创建与撤销、线程阻塞与唤醒、线程互斥与同步、线程调度、线程通信等。

我们利用这些功能创建多个线程,并调度这些线程在CPU 上并发执行,每个线程执行一个函数完成指定的功能。

2.简单文件系统的实现文件系统是操作系统内核中非常重要的组成部分之一。

一个相对完整的文件系统应该具备以下几个方面的功能:磁盘存储空间管理、目录管理、文件读写管理、文件保护与共享。

由于对磁盘的存取操作必然涉及到磁盘驱动程序设计,为了降低设计难度,本实验的基本设计思想是在内存中申请一块存储空间作为虚拟磁盘,在其上建立一个类似于FAT的文件系统,所有对文件系统的操作都是在该虚拟磁盘空间中进行。

为了保存该文件系统中的内容,如我们创建的目录、文件等,在退出文件系统的使用之前必须将整个虚拟磁盘上的内容以一个文件的形式全部保存到系统真正的磁盘上;以后想再次使用该文件系统时又必须首先从磁盘上读入这个文件的内容到内存中的虚拟磁盘上,然后才能继续使用。

1.3 操作系统课程设计实施方案操作系统是计算机系统中最核心最重要的一组软件集合,用来控制系统中的所有硬件及其他软件的运行,各程序模块内部的控制流程及相互间的接口都很复杂。

本课程设计虽然只是实现其中的一部分功能,但对学生的综合要求依然较高,既要求对原理知识的综合掌握,又要求具有一定的C语言编程能力,特别是“基于DOS的多任务系统的实现”这个题目,由于要利用Turbo C的interrupt类型的函数来实现线程切换过程中的线程运行现场及环境信息的自动保存及恢复,因此程序开发工具是采用字符型界面的Turbo C。

而不同学生在编程能力上存在差异,且大多数学生对字符型界面的开发平台存在畏惧心理,为了达到因材施教的目的,保证每个学生都能根据自己的实际情况参与到课程设计过程中,我们开发设计了一个可视化的操作系统课程设计平台软件(该平台软件的使用方法见后面第三篇内容),该软件系统最大的特点是提供了模块式替换功能,即将每个课程设计题目的内容分解成若干个相对“较小”的功能模块(模块具体划分情况见后面课程设计的详细介绍),允许每个学生根据自身能力情况选择实现课程设计的全部或部分功能模块,学生完成一个或多个模块后可在软件系统中进行模块替换操作,替换后需要重新进行编译、链接工作,然后就可以运行程序,从而及时看到所编写模块的功能实现情况。

这样能够提高所有学生主动学习的兴趣,提高实际动手能力。

第二章基于DOS的多任务系统的实现2.1 设计目的和内容要求1.设计目的通过对线程(和进程)的创建和撤消、CPU的调度、同步机制、通信机制的实现,达到以下目的:(1)加深对线程和进程概念的理解,明确进程和程序的区别。

(2)加深对CPU调度过程(现场保护、CPU的分派和现场恢复)的理解。

(3)进一步认识并发执行的概念,明确顺序执行和并发执行的区别。

(4)加深对临界资源、临界区、信号量以及同步机制的理解。

(5)加深对消息缓冲通信的理解。

2.内容要求(1)用C语言完成线程的创建和撤消,并按先来先服务方式对多个线程进行调度。

(2)将线程调度算法修改为时间片轮转算法,实现时间片轮转调度。

(也可以结合优先权,实现优先权加时间片轮转算法的线程调度。

)(3)改变时间片的大小,观察结果的变化。

思考:为什么时间片不能太小或太大。

(4)假设两个线程共用同一软件资源(如某一变量,或某一数据结构),请用记录型信号量来实现对它的互斥访问。

(5)假设有两个线程共享一个可存放5个整数的缓冲,其中一个线程不停地计算1至50的平方,并将结果放入缓冲中,另一个线程不断地从缓冲中取出结果,并将它们打印出来,请用记录型信号量实现这一生产者和消费者的同步问题。

(6)实现消息缓冲通信,并与4、5中的简单通信进行比较。

(7)思考:在线程间进行消息缓冲通信时,若对消息队列的访问没有满足互斥要求,情况将会怎样?3. 学时安排(共21学时)(1)授课3学时,内容包括线程的创建、撤消、调度等内容。

(2)线程的创建、撤消、先来先服务调度,8学时上机。

(3)时间片轮转调度,3学时上机。

(4)信号量的实现,3学时上机。

(5)线程间的消息缓冲队列通信,4学时上机。

4.开发平台TurboC 2.0或3.0。

2.2线程描述2.2.1线程基本概念在一些多任务的环境下,用户可以同时运行多个完整的程序。

例如,在UNIX环境下,你可以用CC命令编译一个C程序,并把它作为一个后台进程运行(只需在命令行后加上字符‘&’);在前台,你又可以做其他的事情,比如,编辑另一个文件。

我们把这种系统称为基于进程的多任务系统。

另外有一种多任务系统,在其下,一个程序的多个部分可同时运行,我们把这种环境下的任务,即程序的每个部分叫做线程,称这种系统为基于线程的多任务系统。

在这种环境下,处理机的调度单位为线程,它们共享整个进程的资源,还拥有一些自己的私有资源。

我们将通过本课程设计实现多个线程的并发执行。

线程,有时也叫做轻进程(lightweight process),是CPU调度的基本单位,每个线程有自己的一个指令计数器、一组寄存器和一个私有堆栈。

而代码段、数据段以及操作系统的其它资源(如打开的文件)是由一组线程共享的,这一组线程组成一个Task(传统的进程,即heavyweight process相当于只有一个线程的Task)。

在许多方面,对线程的操作类似于进程:线程可处于就绪、阻塞、执行三种状态之一;线程可共享CPU,在单机系统中,任何时刻最多只能有一个线程处于执行状态;一个Task 中的多个线程可并发执行。

相关文档
最新文档