操作系统学年论文
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 引言
1.1 性质
操作系统是计算机科学与技术专业的主要专业基础课和主干课。操作系统对计算机系统资源实施管理,是所有其他软件与计算机硬件的唯一接口,所有用户在使用计算机时都要得到操作系统提供的服务。本课程使学生掌握操作系统的基本概念、基本原理、设计方法和实现技术,具有初步分析实际操作系统的能力,训练分析和解决实际问题能力,为其今后在相关领域开展工作打下坚实的基础。
1.2 教学目的
本科程通过模拟操作系统原理的实现,应使学生加深对操作系统工作原理和操作系统实现方法的理解,系统科学地受到分析问题和解决问题的训练,提高运用理论知识解决实际问题的能力。为学生从事科学研究和独立负担计算机及其应用方面的工作打好扎实的基础。
1.3 任务和要求
此系统为基于时间片轮转调度算法的进程管理系统,主要实现存储管理,设备管理和进程管理。存储管理部分主要实现主存空间的分配和回收、存储保护。设备管理主要包括设备的分配和回收。进程管理主要包括进程调度,进程的创建和撤销、进程的阻塞和唤醒,中断作用的实现。
1.4 意义
通过本模拟系统的设计,可以加深学生对操作系统的原理的理解,明白操作系统的各项功能的具体实现和具体操作,提高学生的动手能力。
1.5 论文结构安排
第2章为系统分析与设计,写出系统要求,分析出包含哪些功能模块、每个模块的计划采用的实现方法和原理。
第3章为系统实现,写出主要模块的实现,包括全局变量说明和主要功能的实现流程。
第4章为结束语,总结课程设计的体会。
2 系统分析与设计
2.1 存储管理的要求
存储管理部分主要实现主存空间的分配和回收、存储保护。模拟系统中,采用虚拟页式储管理方案(PCB区域、位示图等单独存放),模拟系统中只管理用户区。
模拟系统中,主存部分分为两部分,一部分是系统区,这里只存放进程控制块(PCB)和主存分配表(位示图),一部分是用户区,这里主要是对用户区的管理:
2.1.1 数据结构
采用位示图记录主存使用情况,实现主存空间的分配和回收、存储保护。
用数组模拟内存用户区,大小为512字节,每个主存块16个字节(32块)。
2.1.2 页表
可以占用内存用户区,也可以放在另外区域或pcb;
可以采用预调入策略;
页面局部置换算法(在本物理块中选择淘汰页,换入新页);
模拟系统中,缺页中断发生在根据根据pc取指令时;
2.1.3 初始化
初始主存块分配数量自行决定方法,不能分配太多,也不能太少
2.1.4 屏幕显示
主存使用情况示意图,哪些主存已经分配,哪些主存未分配,以不同的颜色表示(例如,红色表示已分配,蓝色表示未分配)。
正在运行的进程对应指令存放的位置以特殊颜色显示。
2.2 设备管理的要求
设备管理主要包括设备的分配和回收。
⑴设备的模拟
模拟系统中有A、B、C三种独占型设备,A设备3个,B设备2个,C设备1个。
⑵数据结构
因为模拟系统比较小,因此只要设备表设计合理既可。
⑶设备分配
采用先来先服务策略。
⑷设备回收
回收设备后,要注意唤醒等待设备的进程。
⑸屏幕显示
屏幕显示要求包括:每个设备是否被使用,哪个进程在使用该设备,哪些进程在等待使用该设备。
2.3 进程管理的要求
进程管理主要包括进程调度,进程的创建和撤销、进程的阻塞和唤醒,中断作用的实现。
2.3.1 硬件工作的模拟
①时钟的模拟。
系统中的绝对时钟和相对时钟用全局变量模拟。系统时钟用来记录开机以后的时间。
这里的系统时钟并不是计算机的真正的时钟,这里所说的时间只是一个单位,例如使用vb中的时钟控件实现,每触发一次timer事件,绝对时钟增1,表示增加一个时间单位,绝对时钟减1,表减少一个单位时间。
②主要寄存器的模拟
用全局变量模拟重要寄存器,如cpu重要寄存器,程序状态寄存器PSW(int 0或1)、寄存器IR,程序计数器PC(int),数据缓冲寄存器DR等。
③中断的模拟
中断的发现应该是硬件的工作,这里在函数CPU中加检测PSW的方式来模拟
在CPU()函数中,每执行一条指令之前,先检查PSW,判断有无中断,若有进行中断处理,然后再运行解释指令。
模拟中断的种类和中断处理方式:
程序结束(执行指令end形成的中断,软中断):将结果写入文件out,其中包括文件路径名和x的值,调用进程撤销原语撤销进程,然后进行进程调度;
I/O中断(设备完成输入输出):将输入输出完成的进程唤醒,将等待该设备的一个进程同时唤醒。
时钟中断:进程时间片用完,转为就绪,重新进程调度。
缺页中断:发生在根据根据pc取指令时。
④中央处理器的模拟
用函数CPU( )(该函数不能有参数)模拟中央处理器。
该函数主要负责解释“可执行文件”中的命令。
x=?;
x++;
x--;
!??;
end.
注意:CPU只能解释指令寄存器IR中的指令。一个进程的运行时要根据进程执行的位
置,将对应的指令存放到指令寄存器中。
CPU函数应该不断循环执行的。Cpu函数应该包括的内容:
cpu()
{
L:检测有无中断,有进行处理
If(缺页中断)缺页中断处理;
If(进程结束软中断)撤销进程;进程调度;
If(输入输出完成)输入输出中断处理;
If(时间片到)进程调度
根据pc取指令,若pc所指指令在主存,将指令放入IR寄存器;若不在主存,置中断,延时,goto L;
执行IR指令;//解释执行课程设计中的指令
pc++
延时
}
可以建立一个闲逛进程idle,进程就绪判断正在运行进程是否为idle,是则转向进程调度。
2.3.2 进程控制块
进程控制块内容包括进程标识符、主要寄存器内容、进程状态、阻塞原因等等。本模拟系统最多容纳10个进程块。pcb区域用数组模拟。
进程控制块根据内容的不同组成不同的队列,空白进程控制块链、就绪队列和阻塞队列,正在运行的进程只有一个,系统初始时只有空白进程控制块链。
2.3.3 进程调度
采用时间片轮转调度算法,时间片为5。
进程调度函数的主要工作是:
第一步,将正在运行的进程保存在该进程对应进程控制块中;
第二步,从就绪队列中选择一个进程;
第三步,将这个进程中进程控制块中记录的各寄存器内容恢复到CPU各个寄存器内。
2.3.4 进程创建
进程创建的主要工作是:
第一步,申请空白进程控制块;
第二步,申请主存空间,申请成功,装入主存;
第三步,初始化进程控制块;
第四步,将进程链入就绪队列,根据情况决定是否转向进程调度。