操作系统存储管理与进程管理课程论文设计.doc

上传人:仙人指路1688 文档编号:2392208 上传时间:2023-02-17 格式:DOC 页数:25 大小:216KB
返回 下载 相关 举报
操作系统存储管理与进程管理课程论文设计.doc_第1页
第1页 / 共25页
操作系统存储管理与进程管理课程论文设计.doc_第2页
第2页 / 共25页
操作系统存储管理与进程管理课程论文设计.doc_第3页
第3页 / 共25页
操作系统存储管理与进程管理课程论文设计.doc_第4页
第4页 / 共25页
操作系统存储管理与进程管理课程论文设计.doc_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《操作系统存储管理与进程管理课程论文设计.doc》由会员分享,可在线阅读,更多相关《操作系统存储管理与进程管理课程论文设计.doc(25页珍藏版)》请在三一办公上搜索。

1、 学年论文(课程设计)题目: 操作系统存储管理与进程管理学 院 学科门类 工 学 2012 年 05 月 26 日操作系统存储管理与进程管理摘要此系统实现了存储管理和进程管理。存储管理部分主要实现主存空间的分配和回收。存储管理采用可移动的可变分区存储管理方式。采用数组来模拟主存,大小为512个字节。进程管理主要包括进程调度,进程的创建和撤销、进程的阻塞和唤醒,中断作用的实现。其中硬件中的中央处理器用不断循环的函数CPU( )模拟,重要寄存器(如:程序状态寄存器PSW、指令寄存器IR)用全局变量模拟,中断的发现是在函数CPU中加检测PSW的方式来模拟,时钟的模拟通过timer控件实现。进程控制块

2、的模拟通过数组,本系统最多容纳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.De

3、sign 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

4、 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引言11.1性质11.2教学目的11.3任务和要求

5、11.4意义11.5论文结构安排1系统分析与设计22.1此次课程设计总体把握22.2存储管理的要求22.3进程管理的要求22.3.1进程控制块22.3.3进程创建22.3.4进程撤销22.3.5进程阻塞32.3.6进程的唤醒33系统实现43.1全局变量43.2内存分配53.3内存回收63.4创建进程73.5撤销进程83.6进程调度93.7进程阻塞103.8CPU函数124结束语15参考文献16致 谢171引言1.1性质操作系统是计算机科学与技术专业的主要专业基础课和主干课。操作系统对计算机系统资源实施管理,是所有其他软件与计算机硬件的唯一接口,所有用户在使用计算机时都要得到操作系统提供的服务。

6、本课程使学生掌握操作系统的基本概念、基本原理、设计方法和实现技术,具有初步分析实际操作系统的能力 ,训练分析和解决实际问题能力,为其今后在相关领域开展工作打下坚实的基础。 1.2教学目的本科程通过模拟操作系统原理的实现,应使学生加深对操作系统工作原理和操作系统实现方法的理解,系统科学地受到分析问题和解决问题的训练,提高运用理论知识解决实际问题的能力。为学生从事科学研究和独立负担计算机及其应用方面的工作打好扎实的基础。1.3任务和要求此系统为基于时间片轮转调度算法的进程管理系统,主要实现存储管理,设备管理和进程管理。存储管理部分主要实现主存空间的分配和回收、存储保护。设备管理主要包括设备的分配和

7、回收。进程管理主要包括进程调度,进程的创建和撤销、进程的阻塞和唤醒,中断作用的实现。1.4意义通过本模拟系统的设计,可以加深学生对操作系统的原理的理解,明白操作系统的各项功能的具体实现和具体操作,提高学生的动手能力。1.5论文结构安排第二章为系统分析与设计,写出系统要求,分析出包含哪些功能模块、每个模块的计划采用的实现方法和原理。第三章为系统实现,写出主要模块的实现,包括全局变量说明和主要功能的实现流程。第四章为结束语,总结课程设计的体会。系统分析与设计2.1此次课程设计总体把握我此次主要实现的是对设备管理与进程管理,在设备管理中加入了一些小的知识点,如设备的分配,撤销,显示等等,对进程也是,

8、有等待进程的管理,执行设备的管理,阻塞进程的管理,进程调度等2.2存储管理的要求存储管理的功能在多道程序环境中,存储管理的目的是:一是提高资源的利用率,尽量满足多个用户对内存的要求,而是能方便用户使用内存。2.3进程管理的要求进程管理主要包括进程调度,进程的创建和撤销、进程的阻塞和唤醒,中断作用的实现。2.3.1进程控制块进程控制块内容包括进程标识符、主要寄存器内容、进程状态、阻塞原因等等。本模拟系统最多容纳10个进程块。pcb区域用数组模拟。进程控制块根据内容的不同组成不同的队列,空白进程控制块链、就绪队列和阻塞队列,正在运行的进程只有一个,系统初始时只有空白进程控制块链。2.3.2进程调度

9、采用时间片轮转调度算法,时间片为5。 进程调度函数的主要工作是:第一步,将正在运行的进程保存在该进程对应进程控制块中;第二步,从就绪队列中选择一个进程;第三步,将这个进程中进程控制块中记录的各寄存器内容恢复到CPU各个寄存器内。2.3.3进程创建进程创建creat的主要工作是:第一步,申请空白进程控制块;第二步,申请主存空间,申请成功,装入主存;第三步,初始化进程控制块;第四步,将进程链入就绪队列,根据情况决定是否转向进程调度。2.3.4进程撤销进程撤销destory的主要工作是:第一步,回收进程所占内存资源;第二步,回收进程控制块;第三步,在屏幕上显示进程执行结果,进程撤销2.3.5进程阻塞

10、进程阻塞block的主要工作是:第一步,保存运行进程的CPU现场;第二步,修改进程状态;第三步,将进程链入对应的阻塞队列,然后转向进程调度。2.3.6进程的唤醒进程唤醒的主要工作是第一步,将进程由阻塞队列中摘下;第二步,修改进程状态为就绪;第三步,链入就绪队列,根据情况决定是否转向进程调度。系统实现3.1全局变量系统代码中定义了一些全局变量namespace myos class PCB public string name = null; publicstringcontent =null; public int numberp = -1;/记录断点 namespace myos class

11、 Process static public void processcreate(int n) ReadyQ.readyqReadyQ.countp = new PCB(); ReadyQ.readyqReadyQ.countp.name = MENUSTRUCTURE.fcbn.name + .exe; ReadyQ.readyqReadyQ.countp.content = File.ReadAllText(e: + MENUSTRUCTURE.fcbn.name + .txt); ReadyQ.countp+; static public void processdestory(int

12、 n) ReadyQ.readyqn.name = null; ReadyQ.readyqn.content = null; ReadyQ.readyqn.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-1内存分配算法流程图内存分配后,内存区颜色有改变。如图

13、3-2所示图3-2内存分配后的界面显示3.3内存回收归还内存区域的流程如图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.BackCol

14、or = Color.Lime; private void listBox1_SelectedIndexChanged(object sender, EventArgs e) /对应内容 if (listBox1.SelectedItem != null) for (int n = 0; n ReadyQ.countp; n+) if (ReadyQ.readyqn.name != null) if (ReadyQ.readyqn.name.Equals(listBox1.SelectedItem) filecontent = ReadyQ.readyqn.content; string ar

15、ray0 = filecontent.Split(;); for (int i = 0; i array0.Length; i+) listBox2.Items.Add(array0i); 3.5撤销进程进程结束时,即读到end指令后,传递指向当前正在运行的指针,撤销当前进程。 public void destroy(int r) int a, i, t; t = reclaim(r); if (t = 0) /回收内存资源不成功 MessageBox.Show(内存资源回收不成功!); else /回收内存资源成功,然后回收进程控制块 a = DR; / 记录结果if (empty.tail

16、 = -1 & empty.head = -1) /将进程控制块挂入空闲队列 empty.tail = empty.head = r; pcbempty.head.next = -1; else pcbempty.tail.next = r; pcbr.next = -1; empty.tail = r; MessageBox.Show(x= + a);if (ready.head = -1) for (i = 0; i 10; i+) readysi.Text = ; 3.6进程调度当前一进程结束时,CPU会调度就绪队列中的进程。 public int sheduling() int i,

17、j, s, h; char a = new char4;if (ready.tail = -1 & ready.head = -1) /就绪队列中无进程可调度 return 0; else /有进程可调度 i = ready.head;/记录取走的 if (pcbready.head.next = -1)/就绪队列只有一个进程了,取走后为空 ready.tail = ready.head = -1; else /就绪队列中不只剩下一个进程 ready.head = pcbready.head.next; j = 0; /显示就绪队列中的进程h = ready.head; if (ready.h

18、ead != -1)/有进程 while (pcbh.next != -1)/不是唯一的 readysj.Text = pcbh.name.ToString(); h = pcbh.next; j+; readysj.Text = pcbh.name.ToString(); j+; for (s = j; s 10; s+) readyss.Text = ; TIME = 5;/设置时间片 textBox12.Text = TIME.ToString(); timer3.Enabled = true;/控制时间片的/恢复该进程现场信息AX = pcbi.ax; BX = pcbi.bx; CX

19、 = pcbi.cx; DX = pcbi.dx; PC = pcbi.pc; DR = pcbi.dr; run = i; /修改指向运行进程的指针runreturn 1; 3.7进程阻塞进程申请设备不够时,则阻塞该进程。public void block(int r, char equipment) int j, h, s; /保存现场信息 pcbr.dr = DR; pcbr.ax = AX; pcbr.bx = BX; pcbr.cx = CX; pcbr.dx = DX; pcbr.pc = PC; pcbr.reason = equipment; /填写阻塞原因 /将进程链入阻塞队

20、列 if (wait.tail = -1 & wait.head = -1)/阻塞队列为空 wait.tail = wait.head = run; pcbwait.tail.next = -1; else pcbwait.tail.name = run; pcbrun.next = -1; wait.tail = run; /转入新的进程调度 run = -1; /阻塞队列的显示 j = 0; h = wait.head; if (wait.head != -1)/不空 while (pcbh.next != -1) waitsnj.Text = pcbh.name.ToString();

21、waitsrj.Text = 缺少设备 + pcbh.reason.ToString(); h = pcbh.next; j+; waitsnj.Text = pcbh.name.ToString(); waitsrj.Text = 缺少设备 + pcbh.reason.ToString(); j+; for (s = j; s 10; s+) waitsns.Text = ; waitsrs.Text = ; 由于缺少设备进程被阻塞后,在阻塞队列区域显示阻塞的进程名和阻塞原因。如图3-5所示图3-5 进程阻塞后的界面显示3.8CPU函数namespace myos public partia

22、l class Fos : Form public Fos() InitializeComponent(); static int i = 3; /文件夹名字变量 static public string filecontent = null;/文件内容 static public int x = 0;/传值变量 static int number1 = 0; static int number2 = 0; static public int fatnum1 = 0; static public int fatnum2 = 0; static public int fatnum3 = 0; s

23、tatic public int countr = 0;/readyq的参数 static public int l = 0;/listbox2的焦点 static public int flag = 0; static public int time = 0; private void treeView_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e) /显示contextmenustrip位置 if (e.Button = MouseButtons.Right) treeView.SelectedNode = e.No

24、de; Point pos = new Point(e.Node.Bounds.X + e.Node.Bounds.Width, e.Node.Bounds.Y + e.Node.Bounds.Height); bool bl =e.Node.Text.Contains(.txt) | e.Node.Text.Contains(.exe); if (bl=false ) Create.Show(treeView, pos); else contextMenuStripDelete.Show(treeView ,pos); else ContextMenuStrip = null; /寻找路径

25、string path = e.Node.Text; TreeNode t = e.Node; while (t.Parent != null) t = t.Parent; path = path.Insert(0, t.Text + ); textBpath.Text = path; 整体界面显示如图3-6所示图3-6 系统整体界面结束语通过上了将近四个星期的操作系统课程设计课,终于把老师的要求完成了,尽管这里面呢有抄袭的,有转用的,但多多少少学到了一点东西,通过这次课程设计我明白了操作系统内部的工作原理,能够清楚的理解一些操作的原因,理解了操作系统的实现方法,明白了遇到问题时应该做的系统的

26、分析,运用自己学过的理论知识来解决问题,而不是马上着手进行设计。还有就是要充分的利用网络资源,在网络上,能很快的找到自己想要的资料。一定要先把在写代码之前的分析工作做好,不能急于写,不然会事倍功半的。参考文献1 王煜,张明,刘振鹏.操作系统习题解答与实验指导.石家庄:中国铁道出版社. 20072 任爱华.操作系统实验指导.清华大学出版社. 20043 姚卫华.操作系统实验教程(Windows版).清华大学出版社. 20054 百度,,12.6.2致 谢非常感谢刘海波老师的指导,通过这几个星期的努力,我的操作系统的毕业论文终于完工了,这意味着我的操作系统有一个完美的结束,从最初的定题到收集资料,再到写作,修改,到论文的定稿,刘老师都给我很多的指导跟帮助,使我对这门课有了更深一步的认识。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号