当前位置:文档之家› 操作系统课程论文设计

操作系统课程论文设计

学年论文(课程设计)题目:操作系统存储管理与进程管理学院河北大学工商学院学科门类工学专业电气2类学号2010482213姓名李璐指导教师刘海波2012 年05 月26 日操作系统存储管理与进程管理摘要此系统实现了存储管理和进程管理。

存储管理部分主要实现主存空间的分配和回收。

存储管理采用可移动的可变分区存储管理方式。

采用数组来模拟主存,大小为512个字节。

进程管理主要包括进程调度,进程的创建和撤销、进程的阻塞和唤醒,中断作用的实现。

其中硬件中的中央处理器用不断循环的函数CPU( )模拟,重要寄存器(如:程序状态寄存器PSW、指令寄存器IR)用全局变量模拟,中断的发现是在函数CPU中加检测PSW 的方式来模拟,时钟的模拟通过timer控件实现。

进程控制块的模拟通过数组,本系统最多容纳10个。

进程调度时采用时间片轮转调度算法,时间片为5。

关键词:存储管理;进程管理;时间片Operating system memory management and process managementABSTRACTObjective To determine whether treatment with atorvastatin, 80 mg/d, initiated 24 to 96 hours after an acute coronary syndrome, reduces death and nonfatal ischemic events.Design and Setting A randomized, double-blind trial conducted from May 1997 to September 1999, with follow-up through 16 weeks at 122 clinical centers in Europe, North America, South Africa, and Australasia.Patients A total of 3086 adults aged 18 years or older with unstable angina or non-Q-wave acute myocardial infarction.Interventions Patients were stratified by center and randomly assigned to receive treatment with atorvastatin (80 mg/d) or matching placebo between 24 and 96 hours after hospital admission.Keywords: Storage management; Process management; Time slice目录1 引言 (1)1.1 性质 (1)1.2 教学目的 (1)1.3 任务和要求 (1)1.4 意义 (1)1.5 论文结构安排 (1)2系统分析与设计 (2)2.1 此次课程设计总体把握 (2)2.2 存储管理的要求 (2)2.3 进程管理的要求 (2)2.3.1 进程控制块 (2)2.3.3 进程创建 (2)2.3.4 进程撤销 (2)2.3.5 进程阻塞 (3)2.3.6 进程的唤醒 (3)3 系统实现 (4)3.1 全局变量 (4)3.2 内存分配 (5)3.3 内存回收 (6)3.4 创建进程 (7)3.5 撤销进程 (8)3.6 进程调度 (9)3.7 进程阻塞 (10)3.8 CPU函数 (12)4 结束语 (15)参考文献 (16)致谢 (17)1 引言1.1 性质操作系统是计算机科学与技术专业的主要专业基础课和主干课。

操作系统对计算机系统资源实施管理,是所有其他软件与计算机硬件的唯一接口,所有用户在使用计算机时都要得到操作系统提供的服务。

本课程使学生掌握操作系统的基本概念、基本原理、设计方法和实现技术,具有初步分析实际操作系统的能力,训练分析和解决实际问题能力,为其今后在相关领域开展工作打下坚实的基础。

1.2 教学目的本科程通过模拟操作系统原理的实现,应使学生加深对操作系统工作原理和操作系统实现方法的理解,系统科学地受到分析问题和解决问题的训练,提高运用理论知识解决实际问题的能力。

为学生从事科学研究和独立负担计算机及其应用方面的工作打好扎实的基础。

1.3 任务和要求此系统为基于时间片轮转调度算法的进程管理系统,主要实现存储管理,设备管理和进程管理。

存储管理部分主要实现主存空间的分配和回收、存储保护。

设备管理主要包括设备的分配和回收。

进程管理主要包括进程调度,进程的创建和撤销、进程的阻塞和唤醒,中断作用的实现。

1.4 意义通过本模拟系统的设计,可以加深学生对操作系统的原理的理解,明白操作系统的各项功能的具体实现和具体操作,提高学生的动手能力。

1.5 论文结构安排第二章为系统分析与设计,写出系统要求,分析出包含哪些功能模块、每个模块的计划采用的实现方法和原理。

第三章为系统实现,写出主要模块的实现,包括全局变量说明和主要功能的实现流程。

第四章为结束语,总结课程设计的体会。

2系统分析与设计2.1 此次课程设计总体把握我此次主要实现的是对设备管理与进程管理,在设备管理中加入了一些小的知识点,如设备的分配,撤销,显示等等,对进程也是,有等待进程的管理,执行设备的管理,阻塞进程的管理,进程调度等2.2 存储管理的要求存储管理的功能在多道程序环境中,存储管理的目的是:一是提高资源的利用率,尽量满足多个用户对内存的要求,而是能方便用户使用内存。

2.3 进程管理的要求进程管理主要包括进程调度,进程的创建和撤销、进程的阻塞和唤醒,中断作用的实现。

2.3.1 进程控制块进程控制块内容包括进程标识符、主要寄存器内容、进程状态、阻塞原因等等。

本模拟系统最多容纳10个进程块。

pcb区域用数组模拟。

进程控制块根据内容的不同组成不同的队列,空白进程控制块链、就绪队列和阻塞队列,正在运行的进程只有一个,系统初始时只有空白进程控制块链。

2.3.2进程调度采用时间片轮转调度算法,时间片为5。

进程调度函数的主要工作是:第一步,将正在运行的进程保存在该进程对应进程控制块中;第二步,从就绪队列中选择一个进程;第三步,将这个进程中进程控制块中记录的各寄存器内容恢复到CPU各个寄存器内。

2.3.3 进程创建进程创建creat的主要工作是:第一步,申请空白进程控制块;第二步,申请主存空间,申请成功,装入主存;第三步,初始化进程控制块;第四步,将进程链入就绪队列,根据情况决定是否转向进程调度。

2.3.4 进程撤销进程撤销destory的主要工作是:第一步,回收进程所占内存资源;第二步,回收进程控制块;第三步,在屏幕上显示进程执行结果,进程撤销2.3.5 进程阻塞进程阻塞block的主要工作是:第一步,保存运行进程的CPU现场;第二步,修改进程状态;第三步,将进程链入对应的阻塞队列,然后转向进程调度。

2.3.6 进程的唤醒进程唤醒的主要工作是第一步,将进程由阻塞队列中摘下;第二步,修改进程状态为就绪;第三步,链入就绪队列,根据情况决定是否转向进程调度。

3系统实现3.1 全局变量系统代码中定义了一些全局变量namespace myos{class PCB{public string name = null;public string content =null;public int numberp = -1;//记录断点}}namespace myos{class Process{static public void processcreate(int n){ReadyQ.readyq[ReadyQ.countp] = new PCB();ReadyQ.readyq[ReadyQ.countp].name = MENUSTRUCTURE.fcb[n].name + ".exe";ReadyQ.readyq[ReadyQ.countp].content = File.ReadAllText(@"e:\" + MENUSTRUCTURE.fcb[n].name + ".txt");ReadyQ.countp++;}static public void processdestory(int n){ReadyQ.readyq[n].name = null;ReadyQ.readyq[n].content = null;ReadyQ.readyq[n].numberp = -1;}public void processblock(){ }public void processwakeup(){ }}}namespace myos{class ReadyQ{public static PCB [] readyq = new PCB [8]; public static int countp = 0;}}3.2 内存分配可变分区方式的内存分配流程如图3-1所示内存分配后,内存区颜色有改变。

如图3-2所示图3-2 内存分配后的界面显示3.3 内存回收归还内存区域的流程如图3-3所示。

内存回收后颜色恢复如图3-4所示。

图3-4 内存回收后的界面显示3.4 创建进程当执行可执行文件时,把指令传过来,调用creat函数。

private void Processsrun(string p){if (p.Contains("!设备1")){string[] arrayt1 = p.Split('1');butd1.BackColor = Color.Lime;}if (p.Contains("!设备2")){string[] arrayt2 = p.Split('1');butd2.BackColor = Color.Lime;}}private void listBox1_SelectedIndexChanged(object sender, EventArgs e) {//对应内容if (listBox1.SelectedItem != null){for (int n = 0; n < ReadyQ.countp; n++){if (ReadyQ.readyq[n].name != null){if(ReadyQ.readyq[n].name.Equals(listBox1.SelectedItem)){filecontent = ReadyQ.readyq[n].content;}}}string[] array0 = filecontent.Split(';');for (int i = 0; i < array0.Length; i++){listBox2.Items.Add(array0[i]);}}}3.5 撤销进程进程结束时,即读到end指令后,传递指向当前正在运行的指针,撤销当前进程。

相关主题