2010-2011学年第一学期_《计算机操作系统》课程设计指导书
《计算机操作系统》课程设计指导书湖南工业大学计算机与通信学院二OO九年九月《计算机操作系统》课程设计说明计算机操作系统是计算机科学与技术专业的主要专业基础课程,其实践性、应用性很强。
实践教学环节是必不可少的一个重要环节。
计算机操作系统课程设计目的是加深对理论教学内容的理解和掌握,使学生较系统地掌握操作系统的基本原理,加深对操作系统基本方法的理解,加深对课堂知识的理解,为学生综合运用所学知识,在Linux环境下编写功能较简单的程序来实现操作系统的基本方法、并在实践应用方面打下一定基础。
要求学生在指导教师的帮助下自行完成各个操作环节,并能实现且达到举一反三的目的,完成一个实验解决一类问题。
要求学生能够全面、深入理解和熟练掌握所学内容,并能够用其分析、设计和解答类似问题;对此能够较好地理解和掌握,并且能够进行简单分析和判断;能够熟练使用Linux 用户界面;掌握操作系统中进程管理概念和控制方法;了解进程的并发,进程之间的通信方式,了解虚拟存储管理的基本思想,了解设备管理的功能,了解文件系统的功能。
同时培养学生进行分析问题、解决问题的能力;培养学生完成实验分析、实验方法、实验操作与测试、实验过程的观察、理解和归纳能力。
为了收到良好的实验效果,编写了这本课程设计指导书。
在指导书中,每一个课程设计任务按照该课程设计大纲的要求编写,力求紧扣理论知识点、突出设计方法、明确设计思路,通过多种形式引导学生有目的、有方向地完成课程设计任务,得出实验结果。
任课教师在课程设计前对课程设计的任务进行一定的分析和讲解,要求学生按照课程设计任务的具体要求提前做准备工作,如:查找资料等,做到有准备地上机。
进行课程设计时,指导教师应检查学生的预习情况,并对设计过程给予积极指导。
课程设计完毕后,学生应根据课程设计情况,实验数据及结果,完成课程设计报告,由学习委员统一收齐后交指导教师审阅评定。
任务1 进程管理演示一、课程设计目的加深对进程概念及进程管理各部分内容的理解;熟悉进程管理中主要数据结构的设计及进程调度算法、进程控制机构、同步机构及通讯机构的实施。
二、课程设计内容设计一个允许n个进程并发运行的进程管理模拟系统。
该系统包括有简单的进程控制、同步与通讯机构,其进程调度算法可任意选择(优先级调度,时间片轮转,短进程优先中的一种)。
每个进程用一个PCB表示,其内容根据具体情况设置。
各进程之间有一定的同步关系(可选)。
系统在运行过程中应能显示或打印各进程的状态及有关参数的变化情况,以便观察诸进程的运行过程及系统的管理过程。
三、课程设计指导1)实验中使用的数据结构:1)PCB进程控制块其中包括参数①进程名name;②要求运行时间runtime;③优先级prior;④状态state;⑤已运行时间runedtime等。
2)为简单起见,只设运行队列,就绪链表,阻塞队列三种数据结构,进程的调度在这两个队列中切换,如图1.1所示图1.1PCB链表2)进程管理的流程图进程管理的流程图如图1.2所示,采取时间片原则来进行调度。
图1.2 进程管理流程图2)运行结果,包括各个进程的运行顺序,每次占用处理机的运行时间,可以参考下列输出如图1.3图1.3 输出结果示意图3)每个进程运行时间随机产生,为1~20之间的整数。
4)时间片的大小由实验者自己定义,可为3或5,优先级也可以随机产生。
5)各进程之间有一定的同步关系(可选),注意进程状态转换的时机。
任务2 存储管理系统设计一、课程设计目的使学生熟悉存储器管理系统的设计方法;加深对所学各种存储器管理方案的了解。
二、课程设计内容采用一些常用的存储器分配算法,设计一个请求页式存储管理模拟系统并调试运行。
三、课程设计指导(1)通过随机数产生一个指令序列,共320条指令。
指令的地址按下述原则生成(可选,也可随机产生):①50%的指令是顺序执行的;②25%的指令是均匀分布在前地址部分;③25%的指令是均匀分布在后地址部分;具体的实施方法是:①在[0,319]的指令地址之间随机选取一起点m;②顺序执行一条指令,即执行地址为m+1的指令;③在前地址[0,m+1]中随机选取一条指令并执行,该指令地址为m’;④顺序执行一条指令,其地址为m’+1;⑤在后地址[m’+2,319]中随机选取一条指令并执行;⑥重复上述步骤①~⑤,直到执行320次指令。
(2)将指令序列变成为页地址流设:①页面大小为1k;②用户内存容量为4页到32页;③用户虚量容量为32k。
在用户虚存中,按每k存放10条指令排列虚存地址,即320条指令在虚存中的存放方式为:第0条~第9条指令为第0页(对应虚存地址为[0,9]);第10条~第19条指令为第1页(对应许存地址为[10,19]);……第310条~第319条指令为第31页(对应许存地址为[310,319]);按以上方式,用户指令可组成32页。
(3)计算并输出下述各种算法在不同内存容量下的命中率。
①先进先出的算法(FIFO);页面失效次数命中率= 1—————————页地址流长度在本次实验中,页地址长度为320,页面失效次数为每次访问相应指令时,该指令所对应的页不内存的次数。
3.随机数产生办法关于随机数产生法,系统提供函数srand()和rand(),分别进行初始化和产生随机数。
例如:srand();语句可初始化一个随机数;a[0]=10*rand()/32767*320;a[0]=10*rand()/32767*a[0];……语句可用来产生a[0]与a[1]中的随机数。
(4)请求页式管理的程序流程图如图2.1图2.1请求页式管理的程序流程图任务3 编程序模拟银行家算法一、课程设计目的通过设计和调试银行家算法通用程序,加深对死锁概念和死锁避免方法的了解。
二、课程设计内容编制银行家算法程序,并检测所给状态的系统安全性。
三、课程设计指导1)对用银行家算法来避免死锁的方法有较深入的了解,给出系统的初始状态,模拟避免死锁的动态过程。
2)银行家算法中的数据结构(1)可利用资源向量Available。
这是一个含有m个元素的数组,其中的每一个元素代表一类可利用的资源数目,其初始值是系统中所配置的该类全部可用资源的数目,其数值随该类资源的分配和回收而动态地改变。
Available[j]=K,则表示系统中现有R j类资源K 个。
(2)最大需求矩阵Max。
这是一个n*m的矩阵,它定义了系统中n个进程中的每一个进程对m类资源的最大需求。
如果Max[i,j]=K,则表示进程i需要R j类资源的最大数目为K。
(3)分配矩阵Allocation。
这也是一个n*m的矩阵,它定义了系统中每一类资源当前已分配给每一进程的资源数。
如果Allocation[i,j]=K,则表示进程i当前已分得R j类资源的数目为K。
(4)需求矩阵Need。
这也是一个n*m的矩阵,用以表示每一个进程尚需的各类资源数。
如果Need[i,j]=K,则表示进程i还需要R j类资源K个,方能完成其任务。
上述三个矩阵存在如下关系:Need[i,j]= Max[i,j]- Allocation[i,j]3)银行家算法设Request[i] 是进程P i的请求向量,如果Request[i,j]=K,表示进程需要K个R j类型的资源。
当P i发出资源请求后,系统按下述步骤进行检查:(1)如果Request[i,j]<= Need[i,j],便转向步骤(2);否则认为出错,因为它所需要的资源数已超过它所宣布的最大值。
(2)如果Request[i,j]<= Available[j],便转向步骤(3);否则,表示尚无足够资源,P i须等待。
(3)系统试探着把资源分配给进程P i,并修改下面数据结构中的数值:Available[j]= Available[j]- Request[i,j];Allocation[i,j]= Allocation[i,j]+ Request[i,j];Need[i,j]= Need[i,j]- Request[i,j];(4)系统执行安全性算法,检查此次资源分配后,系统是否处于安全状态。
若安全,才正式将资源分配给进程P i,以完成本次分配;否则,将本次的试探分配作废,恢复原来的资源分配状态,让进程P i等待。
4)安全性算法系统所执行的安全性算法可描述如下:(1)设置两个向量:①工作向量Work:它表示系统可提供给进程继续运行所需要的各类资源数目,它含有m个元素,在执行安全算发开始时,Work=Available;②Finish:它表示系统是否有足够的资源分配给进程,使之运行完成。
开始时先做Finish[i]=false;当有足够资源分配给进程时,再令Finish[i]=true。
(2)从进程集合中找到一个能满足下述条件的进程:①Finish[i]=false;②Need[i,j] <= Work[j];若找到,执行步骤(3),否则,执行步骤(4)。
(3)当进程P i获得资源后,可顺利执行,直至完成,并释放出分配给它的资源,故应执行:Work[j]= Work[i]+ Allocation[i,j];Finish[i]=true;go to step 2;(4)如果所有进程的Finish[i]=true都满足,则表示系统处于安全状态;否则,系统处于不安全状态。
5)银行家算法程序流程图如图3.1所示,银行家算法所用数据可参考ppt上的例子。
图3.1银行家算法程序流程图任务4 磁盘调度算法的实现与分析一、课程设计目的使学生熟悉磁盘管理系统的设计方法;加深对所学各种磁盘调度算法的了解及其算法的特点。
二、课程设计内容编程序实现下述磁盘调度算法,并求出每种算法的平均移动磁道数,并分析结果:①先来先服务算法(FCFS)②最短寻道时间优先算法(SSTF)③扫描算法(SCAN)④循环扫描算法(C-SCAN)三、课程设计指导1)进程请求访问磁盘的磁道数按时间随机产生,可假设磁盘总共有200个磁道,计算每种算法的平均移动磁道数。
2)具体调度策略见参考文献(2)的161~163页,产生不同的随机磁道数,计算平均寻道时间,再比较其性能的优劣。
任务5 文件系统演示一、课程设计目的使学生熟悉文件管理系统的设计方法;加深对所学各种文件操作的了解及其操作方法的特点。
二、课程设计内容设计一个简单的多用户文件系统。
即①在系统中用一个文件来模拟一个磁盘;②此系统至少有:Create 、delete 、open 、close 、read 、write 等和部分文件属性的功能。
③实现这个文件系统。
④能实际演示这个文件系统。
基本上是进入一个界面(此界面就是该文件系统的界面)后,可以实现设计的操作要求。
三、课程设计指导1)设计一个10个用户的文件系统,每次用户可保存10个文件,一次运行用户可以打开5个文件。
操作系统-课程设计指导书
操作系统课程设计指导书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程序设计的经验。
操作系统课程设计-指导书
长沙学院课程设计指导书课程设计名称操作系统课程设计系(部)计算机科学与技术(盖章)专业软件工程班级09软件1-3班,09游戏1班2011年 5 月 25 日课程名称:操作系统课程设计课程编号:7020530510主笔人:何文德主审人:邓旭东一、课程设计的目的本课程是操作系统课程的重要组成部分,通过本课程的学习,使学生能更进一步地理解操作系统的设计和实现思路。
掌握操作系统主要原理和算法。
培养学生的实际运用操作系统原理分析解决问题的能力。
二、课程设计的题目1.进程管理仿真程序设计2.虚拟磁盘驱动程序设计三、设计内容(主要技术关键的分析、解决思路和方案比较等)(一)进程管理仿真程序设计1.基本要求:设计一个仿真程序,仿真进程管理的五大功能,包括创建进程,用新进程替换当前进程映像,进程状态转换,进程调度,上下文切换。
2.创新要求在基本要求达到后,可以进行创新设计。
3.设计方法和基本原理(1) 问题描述:系统由4种程序组成,它们是进程管理程序(kernel)、命令解释程序(commander)、系统信息程序( reporter)、用户程序(Application)。
系统内有3种进程(下称模拟进程),它们是:命令解释进程(commander),系统信息进程( reporter),用户进程(Application)。
Kernel程序首先运行。
Kernel启动后,创建commander进程。
Kernel程序根据需要创建reporter进程和Application进程。
Kernel负责维护6个数据结构,包括时间(Time), 处理器状态(CPUstate),进程表(PCBTable), 就绪队列(ReadyState),等待队列(BlockedState),运行进程(RunningState)。
系统采用时间轮转和优先级调度混合算法。
优先级以优先数表示,优先数越大则优先级越高。
调度时,就绪队列中优先数最大的进程优先运行,相同优先数进程按FIFO方式调度。
操作系统课程设计指导书_终结版
操作系统课程设计指导书潘万彬赵伟华梁红兵2011年9月计算机学院目录第一章操作系统课程设计的内容与实施方法.............................................................. - 3 -1.1 操作系统课程设计总体要求............................................................................. - 3 -1.2 操作系统课程设计的内容................................................................................. - 3 -1.3 操作系统课程设计实施方案............................................................................. - 4 -第二章基于DOS的多任务系统的实现........................................................................ - 5 -2.1 设计目的和内容要求......................................................................................... - 5 -2.2线程描述 ........................................................................................................ - 6 -2.3线程的创建和撤消 ........................................................................................ - 8 -2.4线程调度设计 .............................................................................................. - 11 -2.5基本实例程序的实现 .................................................................................. - 25 -2.6线程的阻塞和唤醒 ...................................................................................... - 28 -2.7 线程的同步与互斥........................................................................................... - 29 -2.8 利用消息缓冲队列通信机制实现线程间通信............................................... - 30 -第三章简单文件系统的实现.................................................................................... - 35 -3.1 设计目的和内容要求....................................................................................... - 35 -3.2 预备知识........................................................................................................... - 36 -3.3 实例系统的设计与实现................................................................................... - 39 -第四章操作系统课程设计平台使用说明................................................................ - 51 -4.1 系统软硬件配置要求....................................................................................... - 51 -4.2 课程设计平台安装........................................................................................... - 52 -4.3 课程设计平台操作说明................................................................................... - 62 -操作系统课程设计第一章操作系统课程设计的内容与实施方法1.1 操作系统课程设计总体要求1.遵守机房纪律,服从机房调度。
操作系统课程设计任务指导书
计算机学院2010-2011级操作系统课程设计任务指导书湖南科技大学计算机学院陈燕晖编2013年1月课程设计说明一:实验操作系统平台为Linux,不熟悉该系统的同学请先看附录──Linux环境快速上手指南。
此外,同学们最好手头能有Unix/Linux系统编程类书籍便于查阅。
二:本指导书共六个任务,指导老师可根据实际情况要求同学完成其中的几个。
三:要求每人独立完成,不允许抄袭。
请同学们遵循机房管理条例,在机房只能做与课程设计相关的事情,禁止玩游戏、浏览无关网页等情况。
四:及时提交课程设计报告。
目录任务一I/O系统调用开销比较 (1)任务要求 (1)性能测试工具介绍 (1)mmap介绍 (3)任务二实现一个简单的shell (5)任务要求 (5)相关知识介绍 (6)任务三进程/线程同步 (8)任务要求 (8)SYS V信号量API介绍 (9)Posix线程编程介绍 (10)任务四文件内容的并行搜索 (13)任务要求 (13)测试要求 (13)任务五实现一个malloc/free (14)任务要求 (14)相关材料 (14)任务六利用元数据操作ext2文件系统 (30)任务要求: (30)技术进攻路线 (30)EXT2 文件系统资料 (31)附录一:Linux环境快速上手指南 (35)命令行和图形界面 (35)使用帮助 (35)编程步骤简介 (36)Linux shell下的基本命令 (36)附录二:调试器GDB基本使用方法 (38)任务一 I/O系统调用开销比较本任务主要目的在于了解I/O系统调用的特点并通过性能测试对此有直观的认识。
任务要求在LINUX平台用C编程逆序一个文本文件,注意显示逆转结果的必须是原文件名。
如文件原内容为“abcd”,处理后内容应为“dcba”。
请分别使用三种方法(1)标准C的I/O库函数:fopen、fread和fwrite(2)Unix的I/O函数:open、read 和write(3)open和mmap要求尽量考虑效率,比较三种方法的性能。
《操作系统》课程设计说明书
河南城建学院《操作系统》课程设计说明书设计题目:UNIX/Linux文件系统分析专业:计算机科学与技术指导教师:邵国金耿永军陈红军班级:0614082学号:061408261姓名:贠炳森同组人:叶矿辉、陈宇计算机科学与工程系2011年1月7日前言在现在计算机更新如此迅速的时代要学好计算机软件技术,特别是操作系统的学习,不仅要努力学好课本上的基础知识,还要经常在图书馆看些有关这方面的书籍,而更重要的是要有足够的实践经验,也要注重和同学的交流,经常尝试性的做些小的操作系统,对自己技术的提升会有很大的帮助。
同时,学习计算机操作系统技术,除了需要刻苦努力外,还需要掌握软件和操作系统的原理与设计技巧。
如何学习和掌握操作系统技术的原理与实际技巧呢?除了听课和读书之外,最好的方法恐怕就是在实践中练习。
例如,自己设计一个小型操作系统,多使用操作系统,多阅读和分析操作源代码等。
但由于我们的条件和学时有限,在理论学习过程中没有给同学们提供更多的实验机会。
本操作系统课程设计,是给同学提供一个集中实验的机会。
希望同学们通过该设计加深对所学习课程的理解。
本设计是基于课程中学到的UNIX系统调用,使用操作系统环境是Red Hat Linux 9,言语开发环境是Linux的GNU C或C++。
我做的课程设计是:Linux/Unix文件系统分析。
在Linux系统下,使用与文件相关的系统调用实现对物理设备文件的读写,参照Linux系统源代码以及Grub 系统的源代码,对不同介质上的FAT格式文件系统进行分析。
要求在Linux环境下设计出C语言程序,实现以下功能:1)分析UNIX SysV/Linux系统引导记录的作用;2)分析UNIX SysV/Linux的超级块及其结构,并建立相关数据结构,通过编程实现UNIX SysV/Linux文件系统内各部分的定位。
3)至少要实现对给定i节点文件的只读访问目录一.系统环境 (3)1.1硬件环境 (3)1.2软件环境 (3)二.设计目的及要求 (3)三.总体设计 (5)四.详细设计 (6)五.调试与测试 (6)六.设计中遇到的问题及解决方法 (6)七.Linux/Unix文件系统分析源程序清单 (7)7.1 头文件 (7)7.2 示例程序 (10)八.运行结果及分析 (16)8.1 linux文件系统读取 (16)8.2 UNIX文件系统读取 (18)九.心得体会 (19)十.参考文献 (20)Linux/Unix文件系统分析一.系统环境1.1硬件环境cpu为pentium4双线程技术,频率为2.8GHZ,内存为256MB。
《计算机操作系统》课程设计(2010年版)
《计算机操作系统》课程设计一、设计题目1.绘制描述事件先后顺序的前驱图。
(2人)4分●建立前驱图的数据结构描述;●建立绘制前驱图的例程,包括结点和有向边;●可以删除、添加结点或有向边;●可用鼠标在窗口的任意位置指点,确定结点或有向边位置;●可以拖动现有结点的位置,与该结点相连的有向边也随之移动;●可以将前驱图存入文件,从文件中取出;2.绘制简单程序片段的前驱图。
(2人)* 4分●建立前驱图的数据结构描述;●可以从键盘或对话框接收程序片段;●可将程序片段存入磁盘文件或从文件中取出;●对程序片段进行词法分析,得出各语句之间的依赖关系;●画出各语句间的前驱图;3.Intel 80x68系列CPU的环保护机制:分析CIH病毒代码。
(1人)3分●查找CIH病毒代码资料;●分析代码;●找到CIH病毒绕过CPU环保护机制的方法;●分析代码的工作流程,画出相应的流程图。
●写出分析报告;4.多进程/线程编程:临界区控制、线程互斥与同步。
(1人)3分●设置两个进程/线程,一个执行计算N:=N+1,另一个将N的值输出到窗口;●为减慢进程/线程的执行速度,可以在程序中插入Sleep(1000)语句,1000表示程序停顿1000ms,;●在窗口上显示结果;●设法调整两个进程/线程的执行顺序,使之出现教材P29上所列出的(1)、(2)、(3)三种情况;●设置互斥信号量,保证两线程互斥使用共享变量N;●设置同步信号量,保证两线程按指定顺序运行;5.多进程/线程编程:生产者-消费者问题。
(1人)5分●设置两类进程/线程,一类为生产者,一类为消费者;●建立缓冲区的数据结构;●随机启动生产者或消费者;●显示缓冲区状况;●随着进程/线程每次操作缓冲区,更新显示;6.多进程/线程编程:读者-写者问题。
(1人)5分●设置两类进程/线程,一类为读者,一类为写者;●随机启动读者或写者;●显示读者或写者执行状态;●随着进程/线程的执行,更新显示;7.多进程/线程编程:哲学家问题。
指导书《操作系统课程设计》
三、课程设计基本步骤及进度安排
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 工具对根目录下的文件进行删除、隐蔽、恢复、属性修改
及寻找其数据的存储位置;
101《操作系统课程设计》指导书
《操作系统原理》课程设计参考2010年12月课设的目的操作系统是计算机专业的一门专业课,也是计算机专业考研课程,但操作系统比较抽象,有的同学一学期完了都还很难理解进程、内存管理等一些概念和原理,操作系统课程设计的目的就是通过设计的实验,让同学们真正理解进程的实现,内存管理的机制,达到理解概念,了解实现原理。
同时也进一步巩固程序设计与数据结构的实践技能,实现整个大学阶段实践技能不断线的目的。
课设的故事一个操作系统采用请求页式管理方式来管理内存。
当一个进程在运行中,随着进程的执行,它会不断的访问内存(代码执行、存取数据),这样就会提出内存访问请求。
操作系统会根据用户进程提出的访存请求,来做地址变换,从而访问到用户进程想要访问的代码或数据。
操作系统进行地址变换的过程中发现用户将要访问的地址所在的虚页还没有进入内存会自动将该虚页从磁盘中装入内存,再进行地址变换。
当然若新的页调入内存之前,该进程所能使用的最大内存块数已经用完的话,操作系统就会从该进程已经在内存的那些页中根据先进先出的原则来淘汰掉一个页,腾出空间给将要正要请求访问的页。
所以操作系统要记录每个进程的每个页面的状态,记录这些调入内存的页面的顺序,还要记录内存中各个块的使用情况。
这些都是操作系统必需动态维护的数据,是操作系统的信息基础。
现假设一个计算机系统有内存mKB,系统的页面大小为1KB,假设操作系统占用内存低端的n个块(n<m/5),剩余的内存空间采用“随机+顺序”的方式来获取未用内存块,以分配给块请求程序。
所谓“随机+顺序”的内存块分配方式就是用随机数来确定一个起始探测的开始块号,如果其已经被分配,则向下一块探测,如果还是已经分配,则继续下探,直到找到可用块,如果已经到内存的尾部则回到操作系统分界处继续下探。
操作系统采用固定可用块数的方式给每个进程使用和分配内存块,并且规定最大内存块数为x,当某个进程已经用完了它的最大内存块数后就要淘汰页面了。
计算机操作系统课程设计指导书 (武汉华夏)
《计算机操作系统》课程设计指导书2020.6目录《计算机操作系统课程设计》教学大纲 (3)《计算机操作系统》课程设计选题 (6)附件1:课程设计报告封面 (8)附件2:课程设计任务书 (9)附件3:报告正文格式 (11)附件4:课程设计成绩评定表 (17)《计算机操作系统课程设计》教学大纲课程名称:计算机操作系统学时(周):10 学分:1课程英文名称:Operating System of computer 课程类别:专业基础课适用专业:计算机科学与技术、软件工程一、课程设计的目的操作系统课程设计是操作系统课程的重要实践性环节。
通过课程设计,可以加深学生对课堂中所讲授内容的理解,培养学生的系统开发能力,加强学生的项目经验,使学生初步具有研究、设计、编制和调试操作系统模块的能力。
二、课程设计方式1、课程设计题目的选定采用指导教师提供参考题目学生自行选定课程设计题目。
每2~3人为一组,但课程设计报告不得雷同,否则判定成绩为0。
2、课程设计任务的完成在指导教师的指导下,每组学生共同完成课题的分析,并做好分工,在此基础上完成自己那部分工作的设计、代码编写和调试,独立撰写课程设计报告。
所有工作任务主要在实验室完成。
三、基本要求课程设计教学方法:主要以学生上机操作为主,教师指导为辅课程设计要求:1、对系统进行功能分解、模块分析、控制模块分析正确2、选择合适的操作系统原理所需要数据结构以及相应的算法3、程序规模适中,尽可能的使系统的功能更加完善和全面4、掌握程序调试的方法5、说明书、流程图要清楚,阐明设计思路。
6、撰写课程设计报告。
按格式要求写出完整、规范的报告并打印。
其中模块图、流程图要清楚、规范。
四、安排第一次:布置、讲解题目,收集资料;完成分组;第二次:系统分析,算法设计;第三次:编制、调试程序;第四次:测试系统,形成设计结论,编写课设报告;第五次:系统及材料验收,课设答辩。
五、考核方式及成绩评定1. 考核方式成绩考核采取随机抽取答辩形式。
《操作系统课程设计》指导书
设计目的:使学生熟悉存贮器管理系统的工作原理及设计方法;加深对所学各种存贮器管理方案的理解;
设计要求:要求采用一些常用的存贮器分配算法,设计一个存贮器管理模拟系统并调试运行。模拟环境应尽量接近真实。
设计四 SPOOLing系统设计
设计目的:通过设计一个简单的SPOOLing系统来模拟实际的SPOOLing输入/输出过程,以掌握这种有用的技术。
设计要求:
⑴设计一个支持n个用户的文件系统,每个用户可拥有多个文件;
⑵采用二级或二级以上的多级文件目录管理;
⑶对文件应设置存取控制保护方式,如“只能执行”、“允许读”、“允许写”等;
⑷系统的外部特征应接近于真实系统,可设置下述文件操作命令:建立文件、打开文件、关闭文件、删除文件、读文件、写文件、复制文件、查询目录。
1、课程设计的基本思想,系统的总体结构和各子模块的功能说明;
2、课程设计有关算法的描述,并画出有关算法流程图;
3、源程序中核心代码的说明。源代码要求在关键的位置有注释,增加程序的可读性。程序结构和变量等命名必须符合有关软件开发的技术规范(参见有关文献)。
4、本课程设计的个人总结,主要包括以下内容:
《操作系统课程设计》指导书
———————————————————————————————— 作者:
———————————————————————————————— 日期:
ﻩ
操作系统课程设计指导书
李晓东 编
电子与信息工程学院计算机系
2012-9
ﻬ一、课程设计的目的和意义
本课程设计是学生在学完了《操作系统》课程后,培养学生程序设计能力的一个重要教学环节。课程设计为学生提供了一个动手、动脑并独立实践的机会,有助于学生将教材的理论知识和实践相结合,从而锻炼学生分析问题、解决问题的能力,提高学生实际编写程序的能力,为学生学习计算机专业的后续课程打下良好基础。
