《操作系统课程设计》教学大纲
第一部分课程目的与任务
一、课程基础:
在学这门课之前,学生必须预修过高级语言、数据结构、离散数学方面的基本知识,先修操作系统课程,延时完成操作系统打作业。
二、适应对象:
计算机科学与技术-计算机应用; 软件工程-软件工程; 电子信息科学类-电子信息科学与技术;管理类-信息管理专业
三、教学目的:
为配合《操作系统》课程的教学,通过模拟操作系统原理的实现,使学生能更深刻地领会操作系统工作原理和操作系统实现方法,并提高程序设计能力,特开设此课程设计。
四、内容提要:
本课称要求实现一套模拟的单用户多任务操作系统,该操作系统包括进程管理、存储管理、设备管理和文件管理四部分。
第二部分内容及基本要求
第1部分、进程控制管理实现
●基本要求:利用简单的结构和控制方法模拟进程结构、进程状态和进程控制。
●参考学时:8学时
●实验提示:
1、用PCB表示整个进程实体,利用随机数方法或键盘控制方法模拟进程执
行中产生的事件,或者利用基于图形界面的鼠标或者键盘操作控制进程管理内容。
2、定义PCB(可以采用静态结构或动态结构):包括理论PCB中的基本内容,
如内部ID、外部ID、进程状态、队列指针。
由于无法实现真正的进程创
建功能,在实验中只需建立PCB,用它代表完整的进程。
3、定义进程状态转换方式:进程的状态转换是由进程内部操作或操作系统
的控制引起,由于无法实现这些功能,学生可以采用随机数方法或键盘
控制方法模拟,并实现对应的控制程序。
随机方法指产生1-6的随机数,分别代表创建进程(c)、结束进程(e)、进程阻塞(b)、激活进程(w)、调
度进程(p)、时间片到(t)等事件;键盘模拟方法指定义6种按键代表以
上6种事件。
4、根据事件处理就绪队列、阻塞队列和当前执行进程的状态。
每次事件处
理后应形象地显示出当前系统中的执行进程是哪一个,就绪队列和阻塞
队列分别包含哪些进程。
第2部分、请求分页式存储管理的地址转换过程实现:
●基本要求:在第1部分实验基础上实现进程的分页式内存分配和地址转换过程,并进一步实现请求分页式存储分配和地址转换过程。
页面置换算法至少应实现先进先出(FIFO)、最近最久未使用(LRU)等算法。
●参考学时:16学时
●实验提示:
1、建立一个位示图,用来模拟内存的分配情况,位示图的位数与设定的物
理块个数相同。
程序启动时可利用一组随机0和1填充位示图,表示内
存已被占用情况。
2、创建进程时输入进程大小,并根据程序中设定的物理块大小为进程分配
物理块,同时建立页表。
3、输入当前执行进程所要访问的逻辑地址,并将其转换成相应的物理地址。
4、扩充页表,将其变成支持请求和置换功能的二维页表(增加存在位等),
同时在地址转换过程中实现请求调入和置换功能。
5、分别采用FIFO和LRU置换算法对地址转换进行页面置换,可将多次地址
转换过程中所涉及到的页面视为进程的页面访问序列,从而计算置换次
数和缺页率。
第3部分、设备管理实现:
●基本要求:在前面的实验基础上实现设备管理功能的模拟,主要包括通道和控制器的添加和删除,设备的添加、删除,设备的分配和回收。
●参考学时:12学时
●实验提示:
1、假定模拟系统中已有键盘、鼠标、打印机和显示器四个设备,另有三个
控制器和两个通道,它们之间的控制关系如图所示:
2、设备管理子系统涉及到系统设备表(SDT)、通道控制表(CHCT)、控制器
控制表(COCT)和设备控制表(DCT)来体现输入输出系统的四级结构和三级控制。
应实现上述数据结构来完成对外围设备的管理。
3、实现上述设备、控制器以及通道的层次关系,同时能够添加或删除新的
设备、控制器或通道。
4、通过键盘命令模拟进程执行过程中提出的设备分配或释放请求,并为此
请求分配或释放设备。
分配设备成功后可将进程状态调整为阻塞,释放设备后变为就绪状态。
5、分配设备时应如果该设备已被其它进程占用,则设备分配失败,请求进
程进入阻塞状态,同时等待该设备的释放。
如果设备空闲,进程占用设
备的同时还应提出申请控制器请求,直到与设备相关的通道都已申请成
功为止。
6、设备、控制器或通道的释放应引起对应节点的等待队列中的第一个阻塞
进程被唤醒。
如果被唤醒的进程还未完成申请操作,应继续执行上级节
点的申请操作。
第4部分、文件管理系统实现:
●基本要求:利用磁盘文件实现操作系统的文件管理功能,主要包括目录结构的管理、外存空间的分配与释放以及空闲空间管理三部分。
●参考学时:16学时
●实验提示:
1、通过初始化操作建立一个模拟外存空间的文件,在该文件中保存目录和
文件内容。
创建该文件时应创建初始的根目录内容、索引节点以及空闲
空间位示图。
根目录实为一特殊文件,其内容为“.”和“..”目录项。
2、索引节点应包括类型(目录 or文件)、创建日期、大小、磁盘地址(为
了简单起见,可采用单级索引方式)
3、显示命令提示符“$”,并根据输入命令完成相应的文件操作:
⏹MD(创建子目录):创建目录文件,并在父目录文件中增加目录项,最后
修改父目录文件大小
⏹CD(切换工作目录):根据当前目录切换到指定目录;
⏹RD(删除子目录):搜索所要删除的目录是否为空目录,若是则删除;
⏹MK(创建空文件):创建指定大小的文件(如输入命令“mk test 2000”,
表示创建大小为2000字节的test文件),并在父目录中添加文件名称;
还应对空闲空间位示图进行适当修改;
⏹DEL(删除文件):如果所要删除的文件存在,则删除,同时修改父目录
内容;还应对空闲空间位示图进行适当修改;
⏹DIR:列出当前目录的所有目录项。
第5部分、进程调度算法的实现:
●基本要求:在1、2、3阶段实验基础上实现按先来先服务FCFS、短作业优先SJF以及时间片轮转算法调度进程的模拟过程。
●参考学时:8学时
●实验提示:
1、程序开始运行时选择调度算法,创建进程时输入进程所需服务时间以及
到达时间。
2、根据当前所设定调度算法,连续调度所有进程,并计算每个进程的周转
时间和带权周转时间、所有进程的平均周转时间和平均带权周转时间。
3、调度时应适当输出调度过程中各进程状态队列的变化情况以及进程的已
执行时间、还需服务时间(针对时间片轮转算法)。