2015广工操作系统课程设计报告(文档最后含源码下载地址)剖析

合集下载

2015广工编译原理课程设计报告(文档最后含源码下载地址)

2015广工编译原理课程设计报告(文档最后含源码下载地址)

课程设计课程名称___编译原理__________题目名称___PL/0编译器的扩充 __ 学生学院___计算机学院_________专业班级_计算机科学与技术13(9)学号学生姓名指导教师___林志毅________________ 2016 年1 月2 日一、 已完成的内容:(1) 扩充赋值运算:*= 和 /=(2) 扩充语句(Pascal 的FOR 语句)FOR <变量>:=<表达式>STEP<表达式>UNTIL<表达式>Do<语句>(3) 增加类型:①字符类型;②实数类型。

(4) 增加注释; 多行注释由/*和*/包含,单行注释为//二、 实验环境与工具(1)计算机及操作系统:PC 机,Windows7(2)程序设计语言:C++(3)使用软件Borland C++ Builder 6.0(4)教学型编译程序:PL/0三、 具体实现:1. 扩充赋值运算:*= 和 /=(1) 语法树(2) 修改GetSym()方法(写出修改的代码)else if(CH=='*') {GetCh();if(CH=='=') { SYM=TIMESBECOMES; GetCh(); }else SYM=TIMES;} else if(CH=='/') {GetCh();if(CH=='=') { SYM=SLASHBECOMES; GetCh(); }(3) 修改STATEMENT ()方法(写出修改的代码)case IDENT:i=POSITION(ID,TX); if (i==0) Error(11);else if (TABLE[i].KIND==VARIABLE || TABLE[i].KIND==FLOATTYPE) { /*ASSIGNMENT TO NON-VARIABLE*/GetSym();if (SYM==BECOMES|| SYM==TIMESBECOMES || SYM==SLASHBECOMES||SYM==PLUSBECOMES||SYM==MINUSBECOMES) {RELOP=SYM;if(SYM!=BECOMES) { //若为除等于(或其他类似符号)则先把符号左边的变量值放入栈中GEN(LOD,LEV-TABLE[i].vp.LEVEL,TABLE[i].vp.ADR);}GetSym();} else Error(13);EXPRESSION(FSYS,LEV,TX);if(RELOP==TIMESBECOMES) {GEN(OPR,0,4);} else if(RELOP==SLASHBECOMES) {GEN(OPR,0,5);} else if(RELOP==PLUSBECOMES) {GEN(OPR,0,2);} else if(RELOP==MINUSBECOMES) {GEN(OPR,0,3);}GEN(STO,LEV-TABLE[i].vp.LEVEL,TABLE[i].vp.ADR);}(4)运行测试(测试的PL0源码扩充单词的测试并贴运行结果截图)PL0源码:PROGRAM EX01;VAR A,B,C,D;BEGINA:=16;A/=2;WRITE(A); //结果为8B:=4;B*=2;WRITE(B); //结果为8C:=6;C+=2;WRITE(C); //结果为8D:=10;D-=2;WRITE(D); //结果为8END.(5)运行结果:(6)出现的问题及解决开始时在实现/=和*=操作时,*=的实现很顺利,而/=却一直没有得到理想的结果,通过与同学的讨论得知代码中除号指令的解析中,其实为除余操作,于是将%改为/,但是结果还是错误,经过调试发现是两个相除的数在栈中的位置相反了,正确的状态应该是除数位于次栈顶,而被除数位于栈顶。

广工操作系统2015的实验报告材料

广工操作系统2015的实验报告材料

实验报告课程名称操作系统实验学生学院计算机学院专业班级计算机科学与技术学号学生姓名指导教师孙为军2015 年 12 月30日实验一进程调度一、实验目的编写并调试一个模拟的进程调度程序,以加深对进程的概念及进程调度算法的理解.二、实验内容1.采用“短进程优先”调度算法对五个进程进行调度。

每个进程有一个进程控制块( PCB)表示。

进程控制块可以包含如下信息:进程名、到达时间、需要运行时间、已用CPU时间、进程状态等等。

2.每个进程的状态可以是就绪 W(Wait)、运行R(Run)、或完成F(Finish)三种状态之一。

每进行一次调度程序都打印一次运行进程、就绪队列、以及各个进程的 PCB,以便进行检查。

重复以上过程,直到所要进程都完成为止。

三、实现思路先考虑实现进程调度所需要的数据结构,然后根据所需要的算法进行设计。

四、主要的数据结构进程控制块PCB:struct pcb {char name[10];char state;int ntime;int rtime;struct pcb* link;}*ready=NULL,*p;五、算法流程图六、运行与测试输入进程信息:输入完毕,显示当前运行以及就绪的进程:优先运行短进程七、改进的方向界面比较难看,可以中文化信息。

实验二作业调度一、实验目的用高级语言编写和调试一个或多个作业调度的模拟程序,以加深对作业调度算法的理解。

二、实验内容1.写并调试一个单道处理系统的作业等待模拟程序。

2.作业等待算法:分别采用先来先服务(FCFS)、响应比高者优先(HRN)的调度算法。

3.由于在单道批处理系统中,作业一投入运行,它就占有计算机的一切资源直到作业完成为止,因此调度作业时不必考虑它所需要的资源是否得到满足,它所占用的 CPU时限等因素。

4.每个作业由一个作业控制块JCB表示,JCB可以包含如下信息:作业名、提交时间、所需的运行时间、所需的资源、作业状态、链指针等等。

操作系统课程设计报告

操作系统课程设计报告

操作系统课程设计报告东莞理工学院操作系统课程设计报告学院:计算机学院专业班级: 13软件工程1班提交时间: 2015/9/14指导教师评阅意见:.项目名称:进程与线程管理功能一、设计目的用语言来模拟进程和线程管理系统,加深对进程和线程的理解,掌握对进程和线程各种状态和管理的算法原理。

二、环境条件系统: WindowsXP、VMWare、Ubuntu Linux语言:C/C++开发工具:gcc/g++、Visual C++ 6.0三、设计内容1. 项目背景计算机的硬件资源有限,为了提高内存的利用率和系统的吞吐量,就要根据某种算法来管理进程和线程的状态从而达到目的。

进程与线程管理功能完成基于优先级的抢占式线程调度功能,完成进程虚拟内存管理功能。

进程与线程管理功能基本要求:完成基于优先级的抢占式线程调度功能,完成进程虚拟内存管理功能。

提高要求:(增加1项就予以加分)(1) 实现多种线程调度算法;(2)通过“公共信箱”进行通信的机制,规定每一封信的大小为128字节,实现两个用户进程之间通过这个“公共信箱”进行通信。

(3) 实现多用户进程并发的虚拟内存管理功能。

(4) 实现用户进程间通信功能,并用生产者/消费者问题测试进程间通信功能的正确性。

(5) 实现改进型Clock页面置换算法。

(6) 实现Cache功能,采用FIFO替换算法。

2. 扩展内容实现多种线程调度算法:时间片轮转调度算法四、人员分工优先级调度算法:钟德新,莫友芝时间片轮转调度算法:张德华,袁马龙设计报告由小组队员共同完成。

小组成员设计的代码分工如下:钟德新编写的代码:void Prinft(){PCB *p;system("cls");//清屏p=run;//运行队列if(p!=NULL){p->next=NULL;}cout<<"当前正在运行的进程:"<<endl;cout<<"进程名称"<<"\t"<<"优先数"<<"\t"<<"还需要时间"<<"\t"<<"已运行时间"<<"\t"<<"状态:"<<endl;while(p!=NULL){cout<<p->procname<<"\t\t"<<p->pri<<"\t"<<p->needOftime<<"\t\t"<<p->runtime<<"\t\t"<<p->state<<endl;p=p->next;}cout<<endl<<endl;cout<<"当前的就绪队列:"<<endl; cout<<"进程名称"<<"\t"<<"优先数"<<"\t"<<"还需要时间"<<"\t"<<"已运行时间"<<"\t"<<"状态:"<<endl;p=ready;//就绪队列while(p!=NULL){cout<<p->procname<<"\t\t"<<p->pri<<"\t"<<p->needOftime<<"\t\t"<<p->runtime<<"\t\t"<<p->state<<endl;p=p->next;}cout<<endl<<endl;cout<<"当前已经完成的进程:"<<endl;//终止队列cout<<"进程名称"<<"\t"<<"优先数"<<"\t"<<"还需要时间"<<"\t"<<"已运行时间"<<"\t"<<"状态:"<<endl;p=finish;while(p!=NULL){cout<<p->procname<<"\t\t"<<p->pri<<"\t"<<p->needOftime<<"\t\t"<<p->runtime<<"\t\t"<<p->state<<endl;p=p->next;}}这个函数是优先级调度算法程序的界面函数,主要为程序运行时能够直观的显示结果void insert(PCB *p){PCB *S1,*S2;if(ready==NULL) //判断队列是否为空{p->next = NULL;ready = p;//插入就绪队列}else{S1 = ready;S2 = S1;while(S1!=NULL){if(S1->pri >= p->pri) //判断优先级大小{S2 = S1;//置换位置S1 = S1->next;}else{break;//跳出循环}}if(S2->pri >= p->pri){S2->next = p;p->next = S1;}else{p->next = ready;ready = p;}}}这是程序优先级排序的函数,也是优先级调度算法的核心思想函数,对程序的优先级通过指针进行排序,再将队首的程序调入运行队列,通过置换的方法,将运行队列队首即占用CPU的程序调入就绪队列,如此循环直至所有程序终止为止。

操作系统课程设计报告

操作系统课程设计报告

操作系统课程设计报告概述:本课程设计旨在使学生熟悉文件管理系统的设计方法,加深对所学各种文件操作的了解及其操作方法的特点。

通过模拟文件系统的实现,深入理解操作系统中文件系统的理论知识,加深对教材中的重要算法的理解。

同时通过编程实现这些算法,更好地掌握操作系统的原理及实现方法,提高综合运用各专业课知识的能力。

主要任务:本课程设计的主要任务是设计和实现一个简单的文件系统,包括建立文件存储介质的管理机制、建立目录(采用一级目录结构)、文件系统功能(显示目录、创建、删除、打开、关闭、读、写)和文件操作接口(显示目录、创建、删除、打开、关闭、读、写)。

系统设计:本系统模拟一个文件管理系统,要完成对文件的基本操作,包括文件、文件夹的打开、新建、删除和读取写入文件,创建更改目录,列出目录内容等信息。

系统建立了文件目录树,存储文件系统中的所有文件。

对于用户名下的文件,用文件目录树的分支来存储。

采用命令行操作界面很直观,也方便用户进行操作,用户只要按照操作界面所显示的命令来操作即可。

整体设计框架:系统初始化界面由创建用户存储空间、管理文件、退出系统三个模块组成。

用户创建由创建用户存储空间、进入目录、删除用户存储空间、显示所有用户存储空间等模块组成。

然后各个模块再由一些小模块组成。

其中创建文件、打开关闭文件、读写文件等文件操作模块包括在进入目录模块里面。

系统实现:以下是本课程设计的主要内容的实现程序代码:cincludeincludeincludetypedef struct file{ char name[10];struct file *next; File;typedef struct content{ char name[10];File *file;int f_num;struct content *next; Content;typedef struct user{ char name[10];char psw[10]; Content *con;struct user *next; User;char cur_user[20];XXX;int user_num=0;添加文件:在该函数中,我们首先需要获取文件名,然后检查是否已经存在该文件。

操作系统课程设计实验报告(附思考题答案)

操作系统课程设计实验报告(附思考题答案)

操作系统课程设计实验报告(附思考题答案)课程设计(综合实验)报告( 2015 -- 2016 年度第 1 学期)名称:操作系统综合实验题目:oslab综合实验院系:计算机系班级:学号:学生姓名:指导教师:设计周数:分散进行成绩:日期:2015 年10 月29 日一、综合实验的目的与要求1. 理解和掌握操作系统的基本概念、基本组成与工作原理;2. 理解和掌握操作系统中主要功能模块的工作原理及其实现算法;3. 掌握软件模块设计技能;熟悉并能较好地利用软件开发环境独立编程、调试和分析程序运行情况,逐渐形成创新思维和从事系统软件的研究和开发能力。

二、实验正文实验1:实验环境的使用1.1实验目的:1.熟悉操作系统集成实验环境OS Lab 的基本使用方法。

2.练习编译、调试EOS 操作系统内核以及EOS 应用程序。

1.2实验内容:1.启动OS Lab2.学习OS Lab 的基本用法● 新建 Windows 控制台应用程序项目(1)在“文件”菜单中选择“新建”,然后单击“项目”。

(2)在“新建项目”对话框中,选择项目模板“控制台应用程序(c)”。

(3)在“名称”中输入新项目使用的文件夹名称“oslab ”。

(4)在“位置”中输入新项目保存在磁盘上的位置“C:\test ”。

(5)点击“确定”按钮。

● 生成、执行项目●3.EOS 内核项目的生成和调试● 新建 EOS 内核项目并按F7生成项目● 调试项目● 查看软盘镜像文件中的内容、EOS SDK (Software Development Kit )文件夹4.EOS 应用程序项目的生成和调试● 新建 EOS 应用程序项目● 修改 EOS 应用程序项目名称使用断点中断执行查看变量的值5.退出OS Lab6.保存EOS内核项目1.3思考与练习●在实验1中,生成EOS SDK文件夹的目的和作用是什么?答:SDK文件夹中提供了开发EOS应用程序需要的所有文件。

debug文件夹是在使用debug配置生成项目时生成的,其中存放了调试版本的EOS二进制文件。

2015广工操作系统课程设计报告之磁盘调度(附java源代码)

2015广工操作系统课程设计报告之磁盘调度(附java源代码)

《操作系统》课程设计磁盘调度算法学 院 计算机学院 专 业 计算机科学与技术 学 号 姓 名指导教师孙为军日期2016年1月2日操作系统课程设计任务书说明:本表由指导教师填写,由系主任审核后下达给选题学生,装订在设计(论文)首页一、设计思想说明1.1 设计环境开发平台:eclipse Version: Luna Service Release 1 (4.4.1) Build id: 20140925-1800开发环境:Windows10 操作系统Java版本:java version “1.8.0_25”java<TM> SE Runtime Environment <build 1.8.0_25-b18>java HotSpot(TM) 64-Bit Server Vm <Build 25.25-b02,mixed mode>1.2 设计思想1.先到先服务算法(FCFS)这是一种比较简单的磁盘调度算法。

它根据进程请求访问磁盘的先后次序进行调度。

此算法的优点是公平、简单,且每个进程的请求都能依次得到处理,不会出现某一进程的请求长期得不到满足的情况。

此算法由于未对寻道进行优化,在对磁盘的访问请求比较多的情况下,此算法将降低设备服务的吞吐量,致使平均寻道时间可能较长,但各进程得到服务的响应时间的变化幅度较小。

2.最短寻道时间优先调度算法(SSTF)该算法选择这样的进程,其要求访问的磁道与当前磁头所在的磁道距离最近,以使每次的寻道时间最短,该算法可以得到比较好的吞吐量,但却不能保证平均寻道时间最短。

其缺点是对用户的服务请求的响应机会不是均等的,因而导致响应时间的变化幅度很大。

在服务请求很多的情况下,对内外边缘磁道的请求将会无限期的被延迟,有些请求的响应时间将不可预期。

3.扫描算法(SCAN)扫描算法不仅考虑到欲访问的磁道与当前磁道的距离,更优先考虑的是磁头的当前移动方向。

广工计算机网络课程设计

广工计算机网络课程设计

《计算机网络》采用Windows 2003 server 组建网络服务器学院计算机学院专业计算机科学与技术班别 12级2班学号3112005819姓名黄敏龙指导老师王文彦2015年6月03日1搭建DNS服务器1.1安装DNS本机的服务器名为GDUT-314B256412。

首先把本机的TCP/IP属性改好,例如(DNS 的IP要填上本机的IP,本机IP一定是固定IP,吴某某的报告采用的是11.2.3.4的IP和255.255.255.0的掩码)安装好DNS组件,注意,如果安装过程中提示插入CD的话,可以下载一个虚拟光驱,将安装镜像虚拟成一个光驱即可。

1.2配置DNS1 打开DNS控制台开始-->所有程序-->管理工具-->DNS2配置右键【GDUT-314B256412】选择【配置DNS服务器】-->【下一步】--> 选择【创建正向和反向查找区域(适合大型网络使用)】,点击【下一步】--> 选择【是,创建正向查找区域(推荐)(Y)】,单击【下一步】--> 选择【主要区域(P)】,下一步--> 填入区域名称(如果网络中的服务器要使用的完整域名是“”,则在区域名称中填入“”)--> 创建新区域文件,文件名称采用默认值".dns",单击【下一步】--> 在弹出的窗口中可以选择是否接受动态更新,如果对安全要求不高,可以选择【允许非安全和安全动态更新(A)】,本实验选【不允许动态更新】--> 选择【是,现在创建反向查找区域(Y)】,单击【下一步】--> 选择【主要区域(P)】,单击【下一步】--> 在【网络ID】处输入“11.2.3.”,单击【下一步】--> 反向区域文件名称采用默认值3.2.11.in-addr.arpa.dns,单击【下一步】--> 选择【不允许动态更新(D)】,单击【下一步】--> 在弹出的窗口中设置NDS的转发器,在转发器中输入“114.114.114.114”和“8.8.8.8”(在该DNS服务器中无法解析的域名,该DNS服务器可以转发给其他指定的DNS服务器上进行解析,如向ISP(互联网服务提供商)的DNS服务器转发)--> 等待收集根提示--> 单击【完成】1.3创建主机记录和指针完成“DNS服务器的配置”后,在DNS控制台的正向查找区域可以看到下图画面。

操作系统课程设计报告

操作系统课程设计报告

操作系统课程设计报告1. 引言操作系统是计算机系统中最核心的软件之一,它负责管理和优化计算机资源的分配和调度,为用户和应用程序提供一个可靠、高效的执行环境。

在操作系统课程设计中,我们通过设计一个简单的操作系统,深入理解操作系统的原理和功能,提升对操作系统的理解和实践能力。

本报告将详细介绍我们小组在操作系统课程设计过程中所完成的工作和实现的目标。

2. 设计目标在本次操作系统课程设计中,我们的设计目标包括:•实现一个基本的中断处理、进程调度和内存管理机制;•设计一个简单的文件系统;•确保操作系统的稳定性和可靠性;•实现用户命令解析和执行功能。

3. 系统架构我们的操作系统设计采用了经典的分层结构,主要由硬件抽象层、内核和用户接口层组成。

1.硬件抽象层:负责与硬件进行交互,提供基本的底层硬件接口,如处理器管理、中断处理、设备控制等。

2.内核:实现操作系统的核心功能,包括进程管理、内存管理、文件系统管理等。

这一层是操作系统的核心,负责管理和调度系统资源。

3.用户接口层:为用户提供简单友好的界面,解析用户输入的命令并调用内核功能进行处理。

用户可以通过命令行或图形界面与操作系统进行交互。

4. 功能实现4.1 中断处理中断是操作系统与外部设备通信的重要机制,我们的操作系统设计中实现了基本的中断处理功能。

通过在硬件抽象层中捕获和处理硬件的中断信号,内核可以对中断进行相应的处理,保证系统的响应能力和稳定性。

4.2 进程调度进程调度是操作系统中的重要任务之一,它决定了系统如何分配和调度上下文切换。

我们的操作系统设计中实现了一个简单的进程调度算法,通过时间片轮转算法和优先级调度算法来管理多个进程的执行顺序,以提高系统的吞吐量和响应性能。

4.3 内存管理内存管理是操作系统中必不可少的功能,它负责对系统内存的分配和回收。

我们的操作系统设计中实现了基本的内存管理功能,包括内存分区、内存空闲管理和地址映射等。

通过合理的内存管理,可以提高系统的内存利用率和性能。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

学生学院____ 计算机学院______ 专业班级 13级计科9 学号
学生姓名
指导教师李敏
2015 年12 月29 日
一、课程设计介绍
设计模拟一个实现多道批处理系统的两级调度。

通过具体的作业调度、进程调度、内存分配等功能的实现,加深对多道批处理系统的两级调度模型和实现过程的理解。

作业从进入系统到最后完成,要经历两级调度:作业调度和进程调度。

作业调度是高级调度,它的主要功能是根据一定的算法,从输入井中选中若干个作业,分配必要的资源,如主存、外设等,为它们建立初始状态为就绪的作业进程。

进程调度是低级调度,它的主要功能是根据一定的算法将CPU分派给就绪队列中的一个进程。

在本次课程设计中假定系统可供用户使用的主存空间共100KB,并有4台磁带机。

主存分配采用可变分区分配方式且主存中信息不允许移动,对磁带机采用静态分配策略,作业调度分别采用先来先服务算法和最小作业优先算法,进程调度则采用先来先服务和最短进程优先算法。

二、课程设计环境
1.计算机及操作系统:PC机,WindowsXP系统
2.程序设计使用工具:Microsoft VisualC++ 6.0
3.程序设计语言:C语言
三、课程设计思想
假定“预输入”程序已经把一批作业的信息存放在输入井了,并为它们建立了相应作业表。

测试数据如下:
作业到达时间估计运行时间内存需要磁带机需要
JOB1 10:00 25分钟15K 2台
JOB2 10:20 30分钟60K 1台
JOB3 10:30 10分钟50K 3台
JOB4 10:35 20分钟10K 2台
JOB5 10:40 15分钟30K 2台
本次课程设计采用的是两个作业调度算法:先来先服务算法和短作业优先算法,两个进程调度算法:先来先服务算法,短进程优先算法。

系统根据所选算法组合对输入系统的作业进行两级调度(作业调度,进程调度)。

分别在不同算法控制下运行设计的程序,依次显示被选中作业、内存空闲区和磁带机的情况,输出不同算法作业的选中次序及作业平均周转时间。

作业的数据初始化输入通过读取文件这种方式进行导入。

系统运行是通过设置指针来循环运作。

四、系统结构说明
系统的各个模块之间的关系如下:
五、数据结构说明
1.定义一个显示时间的结构体,成员包括时、分
struct time
{
int hour; //时
int min; //分
};
2.建立作业控制块,具体成员如下所示:
struct jcb
{
char name[10]; //进程名
struct time arr_time; //到达时间
struct time ent_time; //进入内存时间
struct time sta_time; //开始时间
struct time fin_time; //结束时间
int run_time; //估计运行时间
int tr_time; //周转时间
int men; //主存需要
int mac; //磁带机
int sta; //状态位
struct jcb* next;
};typedef struct jcb JCB;
3.进程的链接结构体,成员如下所示:
struct link
{
char name[10]; //进程名
struct time arr_time; //到达时间
struct time ent_time; //进入内存时间
struct time sta_time; //开始时间
struct time fin_time; //结束时间
int run_time; //估计运行时间
int tr_time; //周转时间
int addr; //起始地址
int len; //分区大小
int mac; //磁带机
int state; //状态位,0为空闲,1为被使用
struct link *f; //前指针
struct link *b; //后指针
} ;
六、主要调度算法思想流程图
1.整体算法流程图
2.实现代码
详见CourseDesign.cpp
七、运行测试
1.测试数据(test.txt):
进程名到达运行主存磁带机
JOB1 10:00 25 15 2
JOB2 10:20 30 60 1
JOB3 10:30 10 50 3
JOB4 10:35 20 10 2
JOB5 10:40 15 30 2
2.程序界面
1)算法组合:JFCFS&PFCFS
根据先来先服务,第一个进行调度的是JOB1,到达时间为10:00,运行时间为25分钟,周转时间为25分钟。

为该作业分配内存和磁带机,磁带机由4->2,运行后得到如下图:
实际程序运行所得并不止以上数据,除此以外还有显示内存情况的图表,这里只是为了分析清楚而把主要数据给出,具体数据可运行程序所得,下面分析和以上一样都做了简化。

第二个进行调度的是JOB2,到达时间为10:20,完成时间为10:55,周转时间为35分钟,分配内存和磁带机,如下图所示:
如此类推,最后得出所有作业的运行情况:
此时按回车键返回,重新选择新的算法组合,得到各算法组合的所有作业运行情况
2)算法组合:JFCFS&PSPF:
3)算法组合:JSJF&PFCFS:
4)算法组合:JSJF&PSPF:
得到四种组合的结果后,我们就可以来比较一下四种方式下得到的平均周转时间,在选择调度方式时输入5,程序会运行得到四种方式下的作业运行情况和各自的平均周转时间。

3.退出系统
回车,输入0结束程序。

八、使用说明书
1.运行程序,会显示用户界面,程序左下角会提示用户输入要进行模拟的文件名。

若输入错误,程序会出现错误提示,然后重新输入正确的文件名。

2.输入文件名后,程序会显示文件内容并提示点击任意键继续运行。

3.选择进行调度的方式,分别对应1、2、3、4选项,5选项用来比较四种调度方式的平均周转时间。

0是结束并退出程序。

4.选择要进行的调度方式后,程序自动模拟两级调度情况,显示当前系统时间、内存分配、磁带机分配以及作业调度的情况。

5.点击任意键,返回步骤3选择调度方式,如此类推。

6.注:在显示内存分配情况的图表中,#代表此时并无作业调进内存,除了起始地址、状态、大小有数据之外,其余用0表示其他项并没有数据。

九、课程设计总结
这次的课程设计内容就是实验的前三个内容的组合:进程调度,作业调度,内存分配与回收。

这三个内容都充分地体现了计算机运行作业和程序的各个方面,从而体现了计算机的底层是如何实现进程和作业的分配和使用。

其次,我觉得编程设计是学习软件工程必不可少的也是最重要的一个过程。

通过对课程设计的实现,我学到了很多知识。

原来,学语言是要打牢基础的。

在课程设计的过程中我感觉到自己的语言知识还远远不够,就一个简单的课程设计也能把我搞得头晕。

还有算法的基本思想是要靠平时的积累与体会才能提高的。

看来以
后要多多专研这方面。

希望以后能有更多类似的课程设计,因为我觉得受益匪浅。

源码下载地址:/s/1pK1HcMn。

相关文档
最新文档