2009 操作系统课程设计
操作系统教学大纲200912

宁波工程学院《计算机操作系统》课程教学大纲大纲修订时间:2009年12月课程编号:一、课程的性质、任务及适用专业(一)课程性质计算机科学与技术专业的核心必修课程(二)教学任务操作系统对计算机系统资源实施管理,是所有其他软件与计算机硬件的唯一接口,所有用户在使用计算机时都必须得到操作系统提供的服务。
因此本课程的学习目的是培养学生理解和掌握计算机操作系统的基本原理和设计技能。
通过本课程的学习,要求学生掌握操作系统的基本概念、基本原理、设计方法和实现技术,具有初步分析实际操作系统的能力,为其今后在相关领域开展工作打下坚实的基础(三)适用专业计算机科学与技术专业(本科)二、课程教学内容、基本要求及学时分配(一)基本内容 (含章节的重点、难点等)第一章操作系统概述⏹操作系统定义及发展简史⏹操作系统的分类⏹操作系统的五大功能⏹操作系统的特征和结构本章重点是掌握操作系统的定义、操作系统的三大基本类型和五大功能。
第二章进程管理⏹进程的并发与并行;⏹进程的基本状态与转換;⏹进程控制;⏹进程调度;⏹处理机调度⏹进程的同步与互斥;⏹进程通信;⏹进程死锁;⏹线程(补充)。
本章重点是掌握进程的基本概念、进程调度算法、信号量机制和死锁的基本概念,难点是信号量机制解决进程的同步与互斥。
第三章存储器管理⏹存储管理基本概念;⏹内存的分区存储管理;⏹内存的分页存储管理;⏹内存的分段存储管理;⏹内存的段页式存储管理⏹虚拟存储管理方案。
本章重点是掌握分页和分段管理方案;虚拟存储器的概念;请求分页中的地址转换和页面置换算法,难点是分页和分段管理的地址转换、请求分页中的页面置换算法第四章设备管理⏹I/O系统的组成;⏹I/O控制方式;⏹缓冲技术;⏹设备分配;⏹设备处理;⏹存储设备。
本章重点是掌握设备独立性和SPOOLing技术。
第五章文件管理⏹文件系统基本概念;⏹文件结构与分类;⏹目录管理;⏹文件共享和保护;⏹外存空间管理。
本章重点是掌握文件结构、目录管理和外存空间管理。
操作系统课程设计计算机09级

计算机09级《操作系统课程设计》任务书一、课程设计的性质和目的操作系统课程设计是计算机专业的专业课程,通过课程设计使学生进一步巩固课堂所学知识,全面熟悉、掌握操作系统的基本设计方法和技巧,进一步提高分析问题、解决问题及上机操作能力,为将来从事计算机工作打下一定的专业基础。
二、设计课题课题一:模拟实现单级目录的FAT文件系统基本思路:用二进制文件空间模拟磁盘空间,用文件块操作模拟磁盘块操作。
基本设计要求:1、实现如下文件系统功能(过程或函数):a、打开文件系统FILE *OPENSYS(char *filename);b、关闭文件系统int CLOSESYS(FILE *stream);c、显示目录void LISTDIR(void);d、建立文件int FCREATE(char *filename);e、删除文件int FDELETE(char *filename);f、打开文件int FOPEN(char *filename);g、关闭文件int FCLOSE(int fileid);h、文件块读int FREAD(void *ptr, int n, int fileid);i、文件块写int FWRITE(void *ptr, int n, int fileid);j、判断文件结束int FEOF(int fileid);k、获取文件指针long FGETPOS(int fileid);l、设置文件指针int FSETPOS(int fileid, long offset);m、取得文件长度long FGETLEN(char *filename);2、提供文件系统创建程序3、有功能检测模块4、为简化程序设计,假定目录区域大小固定。
文件系统空间划分:可以使用的C语言文件操纵函数:FILE *fopen(const char *filename, const char *mode);int fclose(FILE *stream);int fseek(FILE *stream, long offset, int whence);long ftell(FILE *stream);size_t fread(void *ptr, size_t size, size_t n, FILE *stream);size_t fwrite(const void *ptr, size_t size, size_t n, FILE *stream);课题二:模拟实现单级目录、单级索引的索引文件系统使用链接域将同一文件的各索引块按顺序连接起来;其余各项同课题一。
2009级信息专业课程设计安排

一、操作系统研究综述
综述Linux操作系统的总体设计和功能。
每个同学任选一种Linux来论述(字数:3000字左右)
1.Linux发展简史(不超过300字)
2.目前比较流行的Linux种类简介(不超过300字)
3.根据自己选择的Linux,论述该OS设计的总体框架(结构)及相关说明4.根据自己选择的Linux,列举该种Linux的主要优点,并根据以下功能模块分别说明:
a)内存管理
b)CPU调度
c)进程管理
d)I/O管理
e)文件管理
二、设计并用信号量机制实现一个生产者-消费者进程之间进程同步的程序。
分别有2个生产者和4个消费者进程。
实现语言:C/C++/Java
数据项:将当前的时间(精确到秒,如20111219191734)表示2011年12月19日19点17分34秒
1.生产者随机生产数据放入buffer中
2.Buffer size为10个数据项
3.消费者随机消费buffer中的数据
输出:打印如下信息,生产者生产某数据;消费者在消费数据之前打印出buffer内所有数据项的信息;消费者消费某数据。
注意:如果消费者1消费时发现buffer中没有数据,则打印“消费者1等待生产者生产数据”并挂起一段时间;若生产者生产数据后发现buffer中没有空位,则打印“生产者无空位,等待消费者消费”,并挂起一段时间。
操作系统-课程设计

操作系统-课程设计一、教学目标本章节的教学目标分为三个部分:知识目标、技能目标和情感态度价值观目标。
知识目标:通过本章节的学习,学生需要掌握操作系统的概念、原理和基本功能,包括进程管理、内存管理、文件系统和设备管理等方面的知识。
技能目标:学生能够运用所学知识分析和解决操作系统相关的问题,具备基本的操作系统使用和维护能力。
情感态度价值观目标:培养学生对操作系统的兴趣和好奇心,提高学生对计算机科学的热爱和责任感。
二、教学内容本章节的教学内容主要包括以下几个部分:1.操作系统的概念和作用:介绍操作系统的定义、功能和作用,以及操作系统的发展历程。
2.进程管理:讲解进程的定义、特点和基本管理方法,包括进程调度、进程同步和进程通信等内容。
3.内存管理:介绍内存的概念、分类和分配策略,以及内存管理的具体方法,如分页、分段和虚拟内存等。
4.文件系统:讲解文件和文件夹的概念、方式和存储结构,以及文件系统的管理方法,如目录结构、文件读写和磁盘空间分配等。
5.设备管理:介绍设备的分类、设备驱动程序和设备管理的基本方法,包括输入输出控制、中断处理和DMA传输等。
三、教学方法为了提高教学效果,本章节将采用多种教学方法相结合的方式进行教学:1.讲授法:通过讲解操作系统的概念、原理和基本功能,使学生掌握操作系统的相关知识。
2.案例分析法:通过分析具体的操作系统案例,使学生更好地理解和掌握操作系统的原理和方法。
3.实验法:安排实验室实践环节,让学生亲自动手进行操作系统的实验操作,提高学生的实际操作能力。
4.讨论法:学生进行小组讨论,分享学习心得和经验,促进学生之间的交流与合作。
四、教学资源为了支持本章节的教学,我们将准备以下教学资源:1.教材:选用权威、实用的操作系统教材,为学生提供系统、全面的学习资料。
2.参考书:推荐学生阅读一些优秀的操作系统参考书籍,丰富学生的知识体系。
3.多媒体资料:制作精美的PPT课件,为学生提供直观、生动的学习界面。
2009操作系统实验指导书

操作系统实验指导书青岛理工大学计算机工程学院二零一一年九月一、课程编号:071235二、适用专业:计算机科学与技术专业、网络工程专业、软件工程专业三、实验个数与学时:4个实验,8学时四、《操作系统实验》的目的《操作系统》是一门重要的专业基础课,是涉及较多硬件知识的计算机系统软件课程。
在计算机软硬件课程的设置上,它起着承上启下的作用。
操作系统对计算机系统资源实施管理,是所有其他软件与计算机硬件的唯一接口,所有用户在使用计算机时都要得到操作系统提供的服务。
操作系统实验的主要任务是让学生掌握常用操作系统的安装方法,了解操作系统进程管理的基本内容,通过实验演示了解操作系统是如何进行进程管理的,为后期操作系统的课程设计奠定基础。
五、实验平台在虚拟机Vmware或者Virtual Box上的Ubuntu 11.10实验1 安装Linux操作系统一、实验目的在虚拟机Vmware或者Virtual Box上安装Unbuntu 11.10操作系统,后续实验都将在此环境上进行。
通过实验,要求:1、掌握在虚拟机上安装操作系统的方法;2、学会安装Linux系统;3、学会启动Linux系统;4、学会在宿主机Windows XP操作系统下,与虚拟机上安排的Ubuntu共享文件的方法。
二、实验内容1、把ubuntu安装至虚拟机上。
●加载安装ubuntu操作系统的ISO IMG文件●启动ubuntu虚拟机●按提示分阶段装入系统2、在Windows下通过网络磁盘来访问ubuntu共享文件夹●在虚拟系统Ubuntu下新建一个文件夹,右击该文件夹,选择属性,共享,启用“共享此目录”,并允许他人在此共享里写数据。
注:共享时需要Samba的支持,系统会提示安装。
●安装完成Samba后,需要重启ubuntu才能生效。
此时回到XP时可在网上邻居里看到一个*** - desktop server(Samba,Ubuntu)的共享目录。
●返回Windows XP系统,右击“网上邻居”,选择“映射网络驱动器”,●在“浏览”里找到刚才在Ubuntu下共享的文件夹,选择后完成映射,●这时打开“我的电脑”会发现多了一个“网络驱动器”,如同我们的硬盘一样。
操作系统课程设计(完整规范版)

操作系统课程设计(完整规范版)一、设计目的操作系统课程设计旨在让学生深入了解操作系统的基本原理,掌握操作系统的设计与实现方法,培养学生在实际操作系统中分析和解决问题的能力。
通过本次课程设计,学生将能够:1. 加深对操作系统理论知识的理解与应用;2. 提高动手实践能力,培养创新精神和团队协作意识;3. 为今后从事操作系统相关领域的研究和工作奠定基础。
二、设计要求(1)进程管理:包括进程的创建、撤销、调度等;(2)内存管理:实现内存分配、回收、页面置换等;(3)文件系统:实现文件的创建、删除、读写等操作;(4)设备管理:实现设备的分配、回收、驱动等功能。
(1)代码规范:编写清晰、易读、易维护的代码;(3)团队协作:合理分工,确保团队成员共同参与、共同进步。
三、设计步骤1. 需求分析:分析课程设计所需实现的功能,明确各个模块的具体要求;2. 概要设计:根据需求分析,制定总体设计方案,划分模块,确定模块间接口;3. 详细设计:针对每个模块,进行具体实现方案的设计;4. 编码实现:按照设计文档,编写代码,实现各个功能模块;5. 测试与调试:对实现的功能进行测试,发现问题并进行调试;6. 优化与改进:根据测试结果,对代码进行优化,提高系统性能;四、预期成果1. 完成一套具有基本功能的模拟操作系统,能够演示进程管理、内存管理、文件系统和设备管理的主要操作;2. 提供完整的,包括注释,以便他人理解和学习;3. 形成一份详尽的课程设计报告,记录设计过程中的思考、遇到的问题及解决方案;4. 通过课程设计,提升个人在操作系统领域的理论知识和实践能力。
五、评价标准1. 功能完整性:各功能模块是否按照要求实现,系统是否能正常运行;3. 创新性:设计过程中是否有独特的想法,是否对现有技术有所改进;4. 团队协作:团队成员之间沟通是否顺畅,分工是否合理,协作是否高效;5. 文档质量:课程设计报告是否详细、准确,是否能够完整反映设计过程和成果。
2009-2010学年第一学期_《计算机操作系统》课程设计指导书

《计算机操作系统》课程设计指导书湖南工业大学计算机与通信学院二OO九年九月《计算机操作系统》课程设计说明计算机操作系统是计算机科学与技术专业的主要专业基础课程,其实践性、应用性很强。
实践教学环节是必不可少的一个重要环节。
计算机操作系统课程设计目的是加深对理论教学内容的理解和掌握,使学生较系统地掌握操作系统的基本原理,加深对操作系统基本方法的理解,加深对课堂知识的理解,为学生综合运用所学知识,在Linux环境下编写功能较简单的程序来实现操作系统的基本方法、并在实践应用方面打下一定基础。
要求学生在指导教师的帮助下自行完成各个操作环节,并能实现且达到举一反三的目的,完成一个实验解决一类问题。
要求学生能够全面、深入理解和熟练掌握所学内容,并能够用其分析、设计和解答类似问题;对此能够较好地理解和掌握,并且能够进行简单分析和判断;能够熟练使用Linux 用户界面;掌握操作系统中进程管理概念和控制方法;了解进程的并发,进程之间的通信方式,了解虚拟存储管理的基本思想,了解设备管理的功能,了解文件系统的功能。
同时培养学生进行分析问题、解决问题的能力;培养学生完成实验分析、实验方法、实验操作与测试、实验过程的观察、理解和归纳能力。
为了收到良好的实验效果,编写了这本课程设计指导书。
在指导书中,每一个课程设计任务按照该课程设计大纲的要求编写,力求紧扣理论知识点、突出设计方法、明确设计思路,通过多种形式引导学生有目的、有方向地完成课程设计任务,得出实验结果。
任课教师在课程设计前对课程设计的任务进行一定的分析和讲解,要求学生按照课程设计任务的具体要求提前做准备工作,如:查找资料等,做到有准备地上机。
进行课程设计时,指导教师应检查学生的预习情况,并对设计过程给予积极指导。
课程设计完毕后,学生应根据课程设计情况,实验数据及结果,完成课程设计报告,由学习委员统一收齐后交指导教师审阅评定。
任务1 进程管理演示一、课程设计目的加深对进程概念及进程管理各部分内容的理解;熟悉进程管理中主要数据结构的设计及进程调度算法、进程控制机构、同步机构及通讯机构的实施。
操作系统课程设计报告

《操作系统课程设计》一、课程设计目的1、进程调度是处理机管理的核心内容。
2、本设计要求用C语言编写和调试一个简单的进程调度程序。
3、通过设计本可以加深理解有关进程控制块、进程队列的概念,并体会和了解最高优先数优先的调度算法(即把处理机分配给优先数最高的进程)和先来先服务算法的具体实施办法。
二、课程设计主要内容1、项目名称设计一个有 N个进程共行的进程调度程序2、实验设备及环境:软件要求:WINDOWS NT 系列操作系统,VC、VB、TURBO C等多种程序设计开发工具。
硬件要求:P4 2.0以上CPU、256M、40G硬盘。
3、课程设计类型综合设计型4、课程设计内容与要求1)进程调度算法:采用最高优先数优先的调度算法(即把处理机分配给优先数最高的进程)和先来先服务算法。
2)每个进程有一个进程控制块( PCB)表示。
进程控制块可以包含如下信息:进程名、优先数、到达时间、需要运行时间、已用CPU时间、进程状态等等。
3)进程的优先数及需要的运行时间可以事先人为地指定(也可以由随机数产生)。
进程的到达时间为进程输入的时间。
进程的运行时间以时间片为单位进行计算。
4)每个进程的状态可以是就绪 W(Wait)、运行R(Run)、或完成F(Finish)三种状态之一。
5)就绪进程获得 CPU后都只能运行一个时间片。
用已占用CPU时间加1来表示。
如果运行一个时间片后,进程的已占用 CPU 时间已达到所需要的运行时间,则撤消该进程,如果运行一个时间片后进程的已占用CPU时间还未达所需要的运行时间,也就是进程还需要继续运行,此时应将进程的优先数减1(即降低一级),然后把它插入就绪队列等待CPU。
6)每进行一次调度程序都打印一次运行进程、就绪队列、以及各个进程的 PCB,以便进行检查。
7)重复以上过程,直到所要进程都完成为止。
5、课程设计方法及步骤1)充分了解各项设计要求。
深入理解有关进程控制块、进程队列的概念,并体会和了解最高优先数优先的调度算法(即把处理机分配给优先数最高的进程)和先来先服务算法的具体实施办法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第2章 课程设计环境
一,GeekOS系统开发调试环境 GeekOS系统开发调试环境
在Windows下使用Cygwin模拟Linux的开发环境; Windows下使用Cygwin模拟Linux的开发环境; 在PC机上直接安装Linux进行开发调试; PC机上直接安装Linux进行开发调试; 在虚拟机上安装Linux进行开发调试 在虚拟机上安装Linux进行开发调试 ; 建议使用后两种环境进行项目开发,会减少许多 不必要的困难, Linux最好使用red hat 9.0版本. Linux最好使用red 9.0版本.
二,针对针对CISC结构的Intel IA二,针对针对CISC结构的Intel IA-32 (or x86)通用处理器的教学操作系统 x86)通用处理器的教学操作系统
MINIX: MINIX:是Andrew S. Tanenbaum AST) 1987年开发的 目前主要有1.5 年开发的, (AST)于1987年开发的,目前主要有1.5 版和2.0 版两个版本在使用. 版和2.0 版两个版本在使用.MINIX 系统 是免费的,可以从许多FTP 上下载, 是免费的,可以从许多FTP 上下载, MINIX是一个包括了虚拟内存管理 MINIX是一个包括了虚拟内存管理,文件 是一个包括了虚拟内存管理, 系统,设备驱动程序, 系统,设备驱动程序,网络和用户态程序等 的比较完整的操作系统, 的比较完整的操作系统,由两万多行代码组 成. 对于教学有点过于庞大和复杂, 对于教学有点过于庞大和复杂,而且由于它 已经实现了操作系统的全部基本功能, 已经实现了操作系统的全部基本功能,没有 留下合适的练习让学生自己完成
第1章 GeekOS教学操作系 GeekOS教学操作系 统概论
教学操作系统 教学操作系统有两大类,一类是针对 RISC结构MIPS处理器的,另外一类是针 RISC结构MIPS处理器的,另外一类是针 对CISC结构的the Intel IA-32 (or x86)通 CISC结构的the IAx86)通 用处理器的. 这样分类是因为:处理器是操作系统运 行的硬件环境中最重要的部分.
GeekOS的设计项目 GeekOS的设计项目
项目4 要求学生实现分页虚存管理,以替代在项目1 项目4:要求学生实现分页虚存管理,以替代在项目1和 项目2中采用的分段存储管理.实现分页虚存管理后. 项目2中采用的分段存储管理.实现分页虚存管理后.系 统在内存不够的情况下就可以将部分页调到硬盘, 统在内存不够的情况下就可以将部分页调到硬盘,以释 放内存实现虚拟存储技术. 放内存实现虚拟存储技术. 项目5 要求实现GOSFS文件系统 由于GeekOS使用 项目5:要求实现GOSFS文件系统.由于GeekOS使用 文件系统. 了虚拟文件系统,可以加载不同的文件系统, 了虚拟文件系统,可以加载不同的文件系统,而系统默 认加载的是PFAT只读文件系统 在这个项目中, 只读文件系统. 认加载的是PFAT只读文件系统.在这个项目中,需要实 现一个多极目录的,可读写的文件系统. 现一个多极目录的,可读写的文件系统. 项目6 要求为文件系统增加访问控制列表, 项目6:要求为文件系统增加访问控制列表,并使用匿名 半双工管道实现进程间通信. 半双工管道实现进程间通信.
GeekOS编译环境
GeekOS运行环境
二,GeekOS开发的工具软件 GeekOS开发的工具软件
GNU gcc编译器:用来编译C语言程序代码 gcc编译器 用来编译C 编译器: NASM汇编器: NASM汇编器:用来编译汇编语言程序代码 汇编器 GNU gdb调试器:用来查找程序代码错误 gdb调试器 调试器: Bochs PC模拟器:用来运行GeekOS系统 PC模拟器 用来运行GeekOS系统 模拟器: Source Insight : 程序编辑器和代码浏览器
GeekOS:是一个基于X86架构的 机上运行的 GeekOS:是一个基于X86架构的PC机上运行的 架构的PC 微操作系统内核,由美国马理兰大学的教师开发, 微操作系统内核,由美国马理兰大学的教师开发, 是一个用C语言开发的操作系统, GeekOS主要用 是一个用C语言开发的操作系统, GeekOS主要用 于操作系统课程设计, 于操作系统课程设计,目的是使学生能够实际动 手参与到一个操作系统的开发工作中. 手参与到一个操作系统的开发工作中.学生可以 Linux或Unix环境下对其进行功能扩充 环境下对其进行功能扩充, 在Linux或Unix环境下对其进行功能扩充,也可 windows下使用Cygwin工具进行开发, 以在windows下使用Cygwin工具进行开发 以在windows下使用Cygwin工具进行开发,且 其针对进程,文件系统, 其针对进程,文件系统,存储管理等操作系统核 心内容分别设计了7 心内容分别设计了7个难度逐渐增加的项目供教师 选择 . 出于教学目的,这个系统内核设计简单, 出于教学目的,这个系统内核设计简单,却又兼 备实用性,它可以运行在真正的X86 PC硬件平台 硬件平台. 备实用性,它可以运行在真正的X86 PC硬件平台.
2, Bochs系统文件 Bochs系统文件
为了模拟一台计算机执行一个操作系统软件, bochs需要几个文件来代替PC机硬件的不同部 bochs需要几个文件来代替PC机硬件的不同部 分:
bochs— bochs—模拟器程序本身 BIOS-bochs-lastest—模拟bochs硬件的BIOS. BIOS-bochs-lastest—模拟bochs硬件的BIOS. VGABIOS-lgpl-lastest—模拟bochs显示系统的BIOS. VGABIOS-lgpl-lastest—模拟bochs显示系统的BIOS. bochsrc.txt— bochsrc.txt—描述模拟器硬件配置的配置文件. disk image(.img)—包含了一个模拟器能引导的操 image(.img)— 作系统镜像
1,Bochs安装和使用 Bochs安装和使用
bochs有 Linux和 Windows等不同环境的软件安 bochs 有 Linux 和 Windows 等不同环境的软件安 装包,用户根据操作系统平台下载相应的版本. 装包,用户根据操作系统平台下载相应的版本. 如 果 用 户 选 择 在 Cygwin 中 开 发 调 试 则 选 择 Windows 版 本 下 载 . 在 Windows 系 统 下 安 装 Bochs非常简单 , 直接运行安装软件, Bochs 非常简单, 直接运行安装软件 , 按提示 操作就可完成. Linux系统中需先解压软件包, 操作就可完成.在Linux系统中需先解压软件包, 然后再配置编译生成系统文件. 然后再配置编译生成系统文件. 推荐使用的Bochs 版本是2 以上, 版本2 推荐使用的 Bochs 版本是 2.0 以上 , 版本 2.1.1 可以很好的运行GeekOS. 可以很好的运行GeekOS.
1.GeekOS系统源代码结构 1.GeekOS系统源代码结构
2,GeekOS的设计项目 GeekOS的设计项目
项目0 项目0要求实现一个内核进程, 项目0:项目0要求实现一个内核进程,功能是实现 从键盘接收一个按键,并在屏幕上显示. 从键盘接收一个按键,并在屏幕上显示.主要是让学 生熟悉GeekOS的编译 运行过程, 的编译, 生熟悉GeekOS的编译,运行过程,了解计算机系统 的启动原理. 的启动原理. 项目1 项目要求学生熟悉ELF文件格式 项目1:项目要求学生熟悉ELF文件格式,并编写代 文件格式, 码对ELF文件进行分析 并将分析传送给加载器. 文件进行分析, 码对ELF文件进行分析,并将分析传送给加载器.主 要让学生熟悉可执行链接文件(ELF文件 的结构, 文件) 要让学生熟悉可执行链接文件(ELF文件)的结构, 并学会加载和运行可执行文件. 并学会加载和运行可执行文件.Bochs/GeekOS
GeekOS Linux操作系统 VMware (硬件模拟器) Windows操作系统 计算机硬件 计算机硬件 GeekOS BOCHS(硬件模拟器) Windows操作系统
GeekOS Linux操作系统 计算机硬件
GeekOS BOCHS(硬件模拟器) Linux操作系统 计算机硬件
一,针对RISC结构MIPS处理器的教 一,针对RISC结构MIPS处理器的教 学操作系统
Nachos( Nachos(Not Another Completely Heuristic Operating System).是建立在软件模拟的虚拟机 System). ).是建立在软件模拟的虚拟机 之上的教学操作系统,采用MIPS R2/3000的指令 之上的教学操作系统,采用MIPS R2/3000的指令 能模拟主存,中断, 集,能模拟主存,中断,网络以及磁盘系统等所必须 的硬件系统, 的硬件系统,美国加州大学伯克利分校多次采用该操 作系统作为课程设计平台. 作系统作为课程设计平台. OS/161是运行在与操作系统无关的 OS/161是运行在与操作系统无关的system/161模 是运行在与操作系统无关的system/161模 拟器上的,操作系统代码是MIPS对应的机器代码 对应的机器代码. 拟器上的,操作系统代码是MIPS对应的机器代码. 无论是Nachos还是OS/161,若学生使用Windows或 无论是Nachos还是OS/161,若学生使用Windows或 Linux 开发环境的话,都需要使用交叉编译器才能把 代码编译成MIPS相应的机器代码. 代码编译成MIPS相应的机器代码.
三,GeekOS系统源代码结构 GeekOS系统源代码结构
GeekOS操作系统源文件geekosGeekOS操作系统源文件geekos-0.3.0.zip可 下载. 以从下载 以从下载.
GeekOS的设计项目 GeekOS的设计项目
项目2 要求学生实现对用户态进程的支持.在项目2 项目2:要求学生实现对用户态进程的支持.在项目2 实现之前,GeekOS一直使用内核进程 一直使用内核进程. 实现之前,GeekOS一直使用内核进程.对用户态进 程执行的支持包括用户态进程结构的初始化, 程执行的支持包括用户态进程结构的初始化,用户进 程空间的初始化,用户进程切换和用户程序导入等. 程空间的初始化,用户进程切换和用户程序导入等. 该项目中,存储分配依然使用分段分配方式. 该项目中,存储分配依然使用分段分配方式.实现项 用户就可以使用GeekOS提供的命令行解释 目2后,用户就可以使用GeekOS提供的命令行解释 Shell运行一些命令来执行 运行一些命令来执行PFAT文件系统内的用户 器Shell运行一些命令来执行PFAT文件系统内的用户 测试程序. 测试程序. 项目3 要求学生改进GeekOS的调度程序 项目3:要求学生改进GeekOS的调度程序,实现基 的调度程序, 级反馈队列的调度算法(初始GeekOS系统仅提 于4级反馈队列的调度算法(初始GeekOS系统仅提 供了FIFO进程调度算法),并实现信号量 进程调度算法),并实现信号量, 供了FIFO进程调度算法),并实现信号量,支持进程 间通信. 间通信.