您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 模拟操作系统课程设计概要
河北大学2011级操作系统学年论文(设计)1一引言1.1性质计算机系统是计算机系统中不可缺少的基本系统软件,计算机系统是由硬件和软件两部分构成的。操作系统实际上是一个计算机系统中硬、软件资源的总指挥部。能有效的组织和管理计算机系统中的硬件和软件资源、合理的组织计算机工作流程,控制程序的执行、并向用户提供各种服务功能,使得用户能够合理、方便、有效的使用计算机,是整个计算机系统能高效运行的一组程序模块的集合。操作系统在计算机体系中张非常重要的地位。本课程设计旨在加深对操作系统的认识和理解。通过对操作系统模拟的实现,掌握操作系统的工作原理和实现方法。提高学生分析问题和解决问题的能力,并提高学生的编程能力。1.2教学目的通过对操作系统模拟的实现,使学生加深对计算机操作系统的认识和理解,掌握操作系统的工作原理和实现方法。是学生在理论知识应用于实践的过程中,提高学生分析问题和解决问题的能力。同时也提高学生的编程能力。1.3任务和要求实现操作系统的模拟,此系统为操作系统的模拟,提供命令接口和图形借口。该系统包括文件管理,实现了磁盘模拟、文件的创建、编辑、移动、复制、删除等功能。单用户多进程的存储管理、设备管理和进程管理部分。存储管理包括主存分配与回收。设备管理包括设备的分配与回收。设备分配时采用采用先来先服务策略,设备回收时唤醒等待设备的进程。进程管理主要包括进程调度,采用时间片轮转法,实现了进程的创建和撤销、进程的阻塞和唤醒和中断。并且以上过程在屏幕上显示。并提供友好的用户使用页面。1.4意义通过对操作系统模拟的实现,加深对计算机操作系统的认识和理解,提高学生把理论应用与实际的能力。使学生的缝隙问题和解决问题的能力得到提高。为以后的发展打下基础。1.5论文结构安排第一章引言说明本课程设计的性质、教学目的与任务和要求,意义,以及论文结构安排。第二章系统分析与设计写出系统要求,分析出包含哪些功能模块、每个模块的计划采用的实现方法和原理第三章系统实现写出主要模块的实现,包括全局变量说明和主要功能的实现流程(按照模块说)第四章结束语总结课程实际的体会河北大学2011级操作系统学年论文(设计)2二系统分析与设计2.1文件管理2.1.1文件的逻辑结构文件的逻辑结构采用流式结构,文件的内容均采用文本文件,系统中有两种文件,一种是存放任意字符的文件(.txt),一种是可执行文件(.exe),可执行文件的内容就是系统内进程的程序体。可执行文件要包括如下命令:X=?;给i赋值一位数X++;i加1X--;i减1!??;第一个?为A,B,C中某个设备,第二个?为一位数,表示使用设备的时间end;表示文件结束2.1.2文件的物理结构文件的物理结构采用索引文件,每个文件分配一个索引块(用来存放索引的盘块)把分配给该文件的所有盘块号都记录在该索引块中,按照这种分派方式存储的文件就是索引文件。由于索引块就是一个存放许多盘块号的盘块,因此,为使系统能找到文件存放的地址,文件目录项记录该文件索引块的盘块号和文件长度。为一个大文件分配磁盘空间时,如果所分配除去盘块的盘块号,已经装满一索引块时,便需再为该文件分配另一个索引块,用于将以后继续分配给该文件的盘块号记录其中,以此类推。同时,应为这些索引块再建立一级索引,即系统再分配一索引块,作为一级索引块的索引块,将第一块、第二块、第三块、……索引块的盘块号写入此索引块中,这样便形成了二级索引的分配方式,如果文件非常大的时候,还可以用三级、四级索引分配方式。本系统实现二级索引,如图2-1所示:河北大学2011级操作系统学年论文(设计)32.1.3目录结构目录结构采用树型目录结构。目录项内容(16个字节):目录名、文件名:6个字节;扩展名:3个字节(可执行文件扩展名为exe,目录没有扩展名);目录、文件属性:1字节;文件长度:2字节(目录没有长度,字节数)。地址:直接地址项1个,一级索引项1个,二级索引1项,每项1个字节;预留1字节根目录:根目录位置固定,占用磁盘2块,大小固定,共16项,占用模拟磁盘第1、2块;子目录;位置不固定,大小不固定目录结构如图2-2所示:图2-1文件索引分配方式河北大学2011级操作系统学年论文(设计)42.1.4磁盘模拟磁盘的分配采用混合索引结构的分配方式。系统采用成组链接法记录磁盘空间的使用情况。空闲块每组登记10个空闲块,专用块占用第0块。索引块中每个盘块号占用4字节,登记32块。如图2-3是空闲块成组链接示意图:uSuSbcEliuyongxing…abcu2…uSabcHHTabcJ2Y根目录文件目录图2-3空闲块成组链接示意图图2-2目录结构示意图河北大学2011级操作系统学年论文(设计)52.1.5用户接口用户接口提供用户命令接口,具体实现以下命令:1.创建文件:create文件名2.拷贝文件:copy源文件名目标文件名(拷贝文件可同名拷贝,也可更名拷贝)3.删除文件:delete文件名4.移动文件:move源文件名目标文件名(磁盘内和磁盘间文件移动不同,磁盘内的移动实际只是目录的改变,并不需要真的移动文件;磁盘间的文件移动实际上是先拷贝文件到目标磁盘,然后再删除源文件。)5.显示文件:type文件名(仅仅是显示文件内容)6.编辑文件:edit文件名(此命令完成对文件的编辑,只读文件不可以修改。)7.改变文件属性:change文件名属性(将文件在只读和非只读、隐藏和非隐藏之间转换。)8.磁盘格式化命令:format9.建立目录:makdir目录名(建立目录,若有同名目录存在,则建立失败。)10.删除空目录:rdir目录名(只能删除空目录,非空目录不能删除)11.删除目录:deldir目录名(既可以删除空目录,又可以删除非空目录,对与非空目录,首先要删除其下文件和目录,然后才能删除其本身。)2.2存储管理存储管理部分主要实现主存空间的分配和回收、存储保护。模拟系统中,内存部分分为两部分,一部分是系统区,这里只存放进程控制块,一部分是用户区,这里主要是对用户区的管理。系统区包括pcb区域、主存空间分配表。存储管理采用可移动的可变分区存储管理方式。采用数组来模拟主存的用户区,每个数组元素占用一个字节。实验中主存大小为512个字节主存的模拟:采用数组来模拟主存的用户区,每个数组元素占用一个字节,主存大小为512个字节,每个主存块16个字节数据结构:本次实验采用页式管理策略对主存进行分配和回收策略,采用位示图记录主存使用情况主存分配策略:当有程序要存放入主存时,查看空闲块总数是否够用,如果够用,先分配一块用来存放页表,然后查位示图中为“0”的位,根据查到的位所在的字号和位号可计算出对应的块号,同时在该位填上占用标志“1”,并填写页表;不够用,分配失败。块号=字号*字长+位号主存回收策略:根据页表归还存储空间时,可以根据归还块的块号推算出在位示图中河北大学2011级操作系统学年论文(设计)6的位置:字号=[块号/位示图中字长]位号=块号mod位示图中字长然后把这一位的“1”清成“0”,表示该块成为空闲块了,最后回收页表所占用空间。屏幕显示:主存使用情况示意图,哪些主存已经分配,哪些主存未分配,以不同的颜色表示(例如,红色表示已分配,蓝色表示未分配)。正在运行的进程对应指令存放的位置以特殊颜色显示。2.3进程管理进程管理主要包括进程调度,进程的创建和撤销、进程的阻塞和唤醒,中断作用的实现。2.3.1主要寄存器的模拟用全局变量模拟重要寄存器,如cpu重要寄存器,程序状态寄存器PSW、指令寄存器IR,程序计数器PC,数据缓冲寄存器DR等。2.3.2中断的模拟中断的发现应该是硬件的工作,这里在函数CPU中加检测PSW的方式来模拟。在CPU()函数中,每执行一条指令之前,先检查PSW,判断有无中断,若有进行中断处理,然后再运行解释指令。CPU函数应该不断循环执行的。2.3.3模拟中断的种类和中断处理方式:程序结束(执行指令end形成的中断,软中断):将结果写入文件out,其中包括文件路径名和x的值,调用进程撤销原语撤销进程,然后进行进程调度;I/O中断(设备完成输入输出):将输入输出完成的进程唤醒,将等待该设备的一个进程同时唤醒。2.3.4时钟模拟系统中的绝对时钟和相对时钟用全局变量模拟。系统时钟用来记录开机以后的时间。这里的系统时钟并不是计算机的真正的时钟,这里所说的时间只是一个单位,例如使用vb中的时钟控件实现,每触发一次timer事件,绝对时钟增1,表示增加一个时间单位,绝对时钟减1,表示时间片消耗一个。2.3.5进程控制块进程控制块内容包括进程标识符、主要寄存器内容、进程状态、阻塞原因等等。本模拟系统最多容纳10个进程块。pcb区域用数组模拟。进程控制块根据内容的不同组成不同的队列,空白进程控制块链、就绪队列和阻塞队河北大学2011级操作系统学年论文(设计)7列,正在运行的进程只有一个,系统初始时只有空白进程控制块链。2.3.6进程调度采用抢占式优先级调度算法。进程调度函数的主要工作是:将正在运行的进程保存在该进程对应进程控制块中;从就绪队列中选择一个进程;将这个进程中进程控制块中记录的各寄存器内容恢复到CPU各个寄存器内。2.3.7进程控制建立四个函数模拟进程创建、撤销、阻塞和唤醒四个原语。进程创建create进程创建的主要工作是:第一步,申请空白进程控制块;第二步,申请主存空间,申请成功,装入主存;第三步,初始化进程控制块;第四步,将进程链入就绪队列,根据情况决定是否转向进程调度。进程撤销destory进程撤销的主要工作是:第一步,回收进程所占内存资源;第二步,回收进程控制块;第三步,在屏幕上显示进程执行结果,进程撤销进程阻塞block进程阻塞的主要工作是:第一步,保存运行进程的CPU现场;第二步,修改进程状态;第三步,将进程链入对应的阻塞队列,然后转向进程调度。2.3.8进程的创建:进程创建的主要工作是:第一步,申请空白进程控制块;第二步,申请主存空间,申请成功,装入主存;第三步,初始化进程控制块;2.3.9进程的撤销:进程撤销的主要工作是:第一步,回收进程所占内存资源;河北大学2011级操作系统学年论文(设计)8第二步,回收进程控制块;第三步,在屏幕上显示进程执行结果,进程撤销2.3.10进程的阻塞:进程阻塞的主要工作是:第一步,保存运行进程的CPU现场;第二步,修改进程状态;第三步,将进程链入对应的阻塞队列,然后转向进程调度。2.3.11进程的唤醒进程唤醒的主要工作是第一步,将进程由阻塞队列中摘下;第二步,修改进程状态为就绪;第三步,链入就绪队列,根据情况决定是否转向进程调度。2.3.12屏幕显示屏幕显示要求包括:显示系统时钟;显示正在运行的进程的进程名、运行的指令、中间结果、相对时钟寄存器内容;显示就绪队列中进程名;显示阻塞队列中进程名。2.3.13硬件工作的模拟硬件工作的模拟包括中央处理器的模拟、主要寄存器的模拟、中断的模拟和时钟的模拟四方面。①中央处理器的模拟。用函数CPU()(该函数不能有参数)模拟中央处理器。该函数主要负责解释“可执行文件”中的命令。如:给x赋值x=?;x自加x++;x自减x--;申请设备和时间!??;程序结束end;CPU只能解释指令寄存器IR中的指令。一个进程的运行时要根据进程执行的位置,将对应的指令存放到指令寄存器中。②主要寄存器的模拟用全局变量模拟重要寄存器,如cpu重要寄存器,程序状态寄存器PSW、指令寄存器IR,程序计数器PC,数据缓冲寄存器DR等。③中断的模拟。中断的发现应该是硬件的工作,这里在函数CPU中加检测PSW的方式来模拟。在CPU()函数中,每执行一条指令之前,先检查PSW,判断有无中断,若有进行中断处理,然后再运行解释指令。CPU函数应该不断循环执行的。模拟中断的种类有如下几种:程序结束、时间片到、I/O中断。程序结束(执行指令end形成的中断,软中断):将结果写入文件out,其中包括文件路径名和x的值,调用河北大学2011级操作系统学年论文(设计)9进程撤销原语撤销进程,然后进行进程调度;I/O中断(设备完成输入输出):将输入
本文标题:模拟操作系统课程设计概要
链接地址:https://www.777doc.com/doc-3816965 .html