操作系统课程设计报告

合集下载

操作系统课程设计

操作系统课程设计

操作系统课程设计一、课程目标知识目标:1. 理解操作系统的基本概念、功能、类型和结构,掌握操作系统的五大核心功能模块(处理器管理、存储器管理、设备管理、文件管理、用户接口);2. 掌握操作系统的发展历程、主要操作系统(如Windows、Linux、Mac OS)的特点及应用场景;3. 了解操作系统的设计与实现原理,包括进程管理、内存管理、设备管理、文件系统等关键技术;4. 学会使用操作系统提供的命令行或图形界面进行基本的系统操作与维护。

技能目标:1. 培养学生对操作系统的实际操作能力,能够熟练使用至少一种操作系统进行日常管理与维护;2. 培养学生运用操作系统原理解决实际问题的能力,如分析系统性能、诊断故障、优化配置等;3. 提高学生的编程能力,使其能够编写简单的系统程序或脚本,实现特定功能。

情感态度价值观目标:1. 培养学生对操作系统的兴趣,激发学生学习计算机科学的热情;2. 培养学生的团队合作意识,使其在讨论、分析、解决问题的过程中学会倾听、交流、协作;3. 培养学生具备良好的信息素养,关注操作系统领域的最新发展,增强信息安全意识。

课程性质:本课程为计算机科学与技术专业(或相关领域)的必修课,具有较强的理论性和实践性。

学生特点:学生已具备一定的计算机基础知识,具有较强的学习兴趣和动手能力,但可能对操作系统原理的理解和应用尚有不足。

教学要求:注重理论与实践相结合,以案例驱动、任务导向的方式进行教学,注重培养学生的实际操作能力和问题解决能力。

通过本课程的学习,使学生能够掌握操作系统的基本原理,提高实际应用水平,为后续专业课程学习打下坚实基础。

二、教学内容1. 操作系统概述:介绍操作系统的基本概念、功能、类型,比较不同操作系统的特点,分析操作系统的发展趋势。

教材章节:第一章 操作系统概述2. 进程与线程管理:讲解进程与线程的概念、状态与转换,进程调度算法,同步与互斥,死锁与饥饿问题。

教材章节:第二章 进程管理3. 存储管理:介绍内存分配与回收策略,虚拟内存技术,页面置换算法,内存保护机制。

《操作系统》课程设计

《操作系统》课程设计

《操作系统》课程设计一、课程目标知识目标:1. 让学生掌握操作系统的基本概念,包括进程、线程、内存管理、文件系统等核心知识;2. 了解操作系统的历史发展,掌握不同类型操作系统的特点及使用场景;3. 掌握操作系统的性能评价方法和常用的调度算法。

技能目标:1. 培养学生运用操作系统知识解决实际问题的能力,如分析系统性能瓶颈、优化系统资源分配等;2. 培养学生具备基本的操作系统编程能力,如进程创建、线程同步、文件操作等;3. 提高学生的团队协作能力和沟通能力,通过小组讨论和项目实践,学会共同解决问题。

情感态度价值观目标:1. 培养学生对操作系统学科的兴趣,激发学生的学习热情,使其形成积极向上的学习态度;2. 培养学生具备良好的信息素养,尊重知识产权,遵循法律法规;3. 培养学生的创新精神和批判性思维,敢于质疑、勇于探索,形成独立思考的能力。

课程性质:本课程为计算机科学与技术专业的核心课程,旨在让学生掌握操作系统的基本原理和实现方法,提高学生的系统分析和编程能力。

学生特点:学生具备一定的编程基础和计算机系统知识,具有较强的逻辑思维能力和动手实践能力。

教学要求:结合学生特点和课程性质,注重理论与实践相结合,通过案例分析和项目实践,帮助学生将所学知识内化为具体的学习成果。

在教学过程中,关注学生的学习进度和反馈,及时调整教学策略,确保课程目标的实现。

二、教学内容1. 操作系统概述:介绍操作系统的定义、发展历程、功能、类型及特点,对应教材第一章内容。

- 操作系统的起源与发展- 操作系统的功能与类型- 操作系统的主要特点2. 进程与线程:讲解进程与线程的概念、状态、调度算法,对应教材第二章内容。

- 进程与线程的定义与区别- 进程状态与转换- 进程调度算法3. 内存管理:分析内存管理的基本原理、策略和技术,对应教材第三章内容。

- 内存分配与回收策略- 虚拟内存技术- 页面置换算法4. 文件系统:介绍文件系统的基本概念、结构、存储原理,对应教材第四章内容。

计算机操作系统课程设计报告

计算机操作系统课程设计报告

计算机操作系统课程设计学院:同济大学浙江学院系(部):机械与电气信息工程系专业:计算机科学与技术姓名:学号:指导教师:构建工具:Microsoft Visual C++ 6.0实习地点:学校实习时间:2011.7.23—2011.9.1C++课程设计报告目录1.引言 (3)1.1编写目的 (3)1.2 背景说明 (3)1.3 定义 (3)1.4 参考资料 (3)2.任务概述 (3)2.1 目标 (3)2.2用户的特点 (4)2.3假定和约束 (4)3.需求分析 (5)3.1.功能需求 (5)4.总体设计 (6)5.测试报告 (7)5.1测试时间.地点和人员 (7)5.2测试环境描述 (7)5.3测试结果 (7)6.结论与心得 (7)1.引言1.1编写目的本文档将对《模拟内存模拟》软件开发需求进行描述,使专业人员了解本程序的设计思想,实现功能,便于更好地使用和维护。

1.2 背景说明本项目作为操作系统课程设计的训练项目提出。

在这次项目的设计开发过程中掌握内存管理的基本策略和算法,了解软件文档的相关标准和编写原则,训练并掌握软件各类文档写作的技巧,同时提高开发应用程序的能力。

本项目的名称:模拟内存分配本项目的提出者:贺向东本项目的开发者:同济大学浙江学院08计算机-陈佳1.3 定义模拟内存分配:展示操作系统中内存的分配过程和页面淘汰过程的平台1.4 参考资料《计算机操作系统(第2版)》作者:张海藩《软件工程导论》作者:彭民德肖健宇《Visual C++ 图形程序设计》作者:许志闻2.任务概述2.1 目标1、定义一个输入的数据格式要求和前面的作业调度和进程调度结合进行总体设计,定义一个符合模拟系统中程序运行所需要的输入数据的格式,设计模拟系统所需的数据格式2、实现存储管理2.1 分区管理分区管理要实现固定分区、可变分区两种模拟实现要求分区的分配可以直观地通过图形化的方式展示2.2 段页管理段页管理要实现段式、页式和段页式的模拟实现要求自己定义段式、页式、段页式的数据区域,结果用表格的方式实现2.3 页面置换算法页面置换算法要实现FIFO、LRU两种不同的置换要求自己定义所需的各种参数,要对算法执行的结果用表格或者图表的方式进行显示软件开发的最终目标是理解内存管理的基本策略和算法、软件文档写作规范以及了解如何在开发简单的软件,同时也希望最终产品能满足用户了解计算机内存工作方式的需求。

操作系统课程设计实验报告

操作系统课程设计实验报告

湖南科技大学计算机科学与工程学院操作系统课程设计报告学号:姓名:班级:目录实验一.........................................................一、实验题目.............................................二、实验目的.............................................三、总体设计.............................................一、实验题目二、实验目的.............................................三、总体设计.............................................四、详细设计.............................................五、实验结果与分析.......................................六、小结与心得体会.......................................实验四.........................................................一、实验题目.............................................二、实验目的.............................................三、总体设计.............................................四、详细设计.............................................三、总体设计.............................................四、详细设计.............................................五、实验结果与分析.......................................六、小结与心得体会....................................... 实验七.........................................................一、实验题目.............................................二、实验目的.............................................三、总体设计.............................................四、详细设计.............................................五、实验结果与分析.......................................2)通过创建进程、观察正在运行的进程和终止进程的程序设计和调试操作,进一步熟悉操作系统的进程概念,理解 Windows进程的“一生”。

操作系统课程设计pintos

操作系统课程设计pintos

操作系统课程设计pintos一、教学目标本课程的目标是让学生了解和掌握操作系统的基本原理和概念,通过学习Pintos操作系统,使学生能够理解操作系统的核心机制,包括进程管理、内存管理、文件系统和输入/输出系统等。

在技能方面,学生应能够使用Pintos进行简单的操作系统设计和实现,提升编程能力和系统分析能力。

在情感态度价值观方面,学生应培养对计算机科学和操作系统的兴趣,增强解决实际问题的责任感和使命感。

二、教学内容教学内容将按照Pintos操作系统的结构和功能进行,包括:1. 操作系统的概述和基本概念;2. 进程管理,包括进程的创建、调度和同步;3. 内存管理,包括物理内存管理和虚拟内存管理;4. 文件系统,包括文件和目录的、文件系统的实现;5. 输入/输出系统,包括设备驱动程序和中断处理。

三、教学方法为了激发学生的学习兴趣和主动性,将采用多种教学方法,包括:1. 讲授法,用于讲解操作系统的原理和概念;2. 讨论法,用于讨论操作系统的实现和应用;3. 案例分析法,通过分析具体的操作系统案例,让学生理解操作系统的实际应用;4. 实验法,通过实验操作,让学生亲手实现操作系统的核心机制。

四、教学资源教学资源包括:1. Pintos操作系统的教材和相关参考书;2. 多媒体资料,包括操作系统的教学视频和PPT;3. 实验设备,包括计算机和相关的硬件设备。

这些教学资源将用于支持教学内容和教学方法的实施,丰富学生的学习体验。

五、教学评估教学评估将采用多种方式进行,以全面、客观、公正地评价学生的学习成果。

评估方式包括:1. 平时表现,包括课堂参与、提问和讨论等,占总评的20%;2.作业,包括理论和实践作业,占总评的30%;3. 考试,包括期中考试和期末考试,占总评的50%。

考试内容将涵盖操作系统的原理、概念和实验操作。

六、教学安排教学安排将根据课程内容和学生的实际情况进行设计。

本课程计划在一个学期内完成,每周安排2次课时,每次课时1小时。

操作系统课程设计Linux

操作系统课程设计Linux

操作系统课程设计Linux一、教学目标本课程的教学目标是使学生掌握Linux操作系统的核心概念、原理和应用技能。

通过本课程的学习,学生将能够:1.理解操作系统的基本原理,包括进程管理、内存管理、文件系统和输入/输出系统。

2.掌握Linux操作系统的安装、配置和管理方法。

3.熟练使用Linux命令行界面,进行日常操作和系统管理。

4.掌握Linux常用命令、 shell脚本编写和系统监控工具的使用。

5.了解Linux操作系统在服务器、嵌入式设备和云计算等领域的应用。

二、教学内容本课程的教学内容分为五个部分:1.操作系统概述:介绍操作系统的定义、功能和分类,以及Linux操作系统的历史和发展。

2.进程管理:讲解进程的基本概念、进程控制、进程同步和互斥、死锁及其解决方法。

3.内存管理:介绍内存分配与回收策略、内存保护、虚拟内存和分页分段机制。

4.文件系统:讲解文件和目录结构、文件访问控制、文件系统性能优化和磁盘空间分配策略。

5.输入/输出系统:介绍I/O设备管理、中断和DMA机制、设备驱动程序和I/O调度策略。

三、教学方法本课程采用多种教学方法相结合的方式,以提高学生的学习兴趣和主动性:1.讲授法:教师讲解操作系统的核心概念和原理,引导学生掌握基本知识。

2.讨论法:学生针对实际案例和问题进行讨论,培养学生的思考和分析能力。

3.案例分析法:分析Linux操作系统的实际应用案例,使学生了解操作系统的应用场景。

4.实验法:安排实验室课时,让学生亲自动手进行系统安装、配置和调试,提高学生的实践能力。

四、教学资源本课程的教学资源包括:1.教材:选用权威、实用的Linux操作系统教材,如《Linux操作系统原理与应用》。

2.参考书:提供相关的学术论文、技术博客和在线文档,供学生拓展阅读。

3.多媒体资料:制作课件、教学视频和演示文稿,辅助学生理解和记忆。

4.实验设备:提供Linux服务器、虚拟机和实验室环境,让学生进行实际操作。

操作系统课程设计报告

操作系统课程设计报告

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

课程设计操作系统

课程设计操作系统

课程设计操作系统一、教学目标本课程旨在让学生掌握操作系统的基本原理和概念,了解操作系统的运行机制和功能,培养学生运用操作系统知识解决实际问题的能力。

具体目标如下:1.知识目标:(1)理解操作系统的基本概念、功能和作用;(2)掌握操作系统的运行机制,包括进程管理、内存管理、文件管理和设备管理;(3)了解操作系统的发展历程和主流操作系统的基本特点。

2.技能目标:(1)能够运用操作系统知识分析和解决实际问题;(2)具备基本的操作系统使用和维护能力;(3)掌握操作系统的基本配置和优化方法。

3.情感态度价值观目标:(1)培养学生对操作系统知识的兴趣和好奇心;(2)树立正确的计算机使用观念,提高信息素养;(3)培养学生团队协作、创新思考和持续学习的能力。

二、教学内容本课程的教学内容主要包括以下几个部分:1.操作系统概述:介绍操作系统的定义、功能、作用和分类;2.进程管理:讲解进程的概念、进程控制、进程同步与互斥、死锁等问题;3.内存管理:讲解内存分配与回收策略、虚拟内存、页面置换算法等;4.文件管理:讲解文件和目录的概念、文件存储结构、文件访问控制、磁盘空间分配等;5.设备管理:讲解设备驱动程序、I/O调度策略、中断处理和DMA传输等;6.操作系统实例分析:分析主流操作系统(如Windows、Linux)的基本特点和运行机制。

三、教学方法本课程采用多种教学方法相结合,以提高学生的学习兴趣和主动性:1.讲授法:讲解操作系统的基本概念、原理和知识点;2.讨论法:学生针对操作系统相关问题进行讨论,培养学生的思维能力和团队协作精神;3.案例分析法:分析实际案例,让学生了解操作系统在实际应用中的作用和意义;4.实验法:安排实验课程,让学生动手实践,巩固所学知识。

四、教学资源为实现课程目标,我们将采用以下教学资源:1.教材:选用权威、实用的操作系统教材,为学生提供系统、全面的知识体系;2.参考书:提供相关领域的参考书籍,拓展学生的知识视野;3.多媒体资料:制作精美的PPT课件,辅助讲解和展示操作系统的相关概念和实例;4.实验设备:配置相应的实验设备,让学生动手实践,提高操作能力。

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

东莞理工学院操作系统课程设计报告学院:计算机学院专业班级: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的程序调入就绪队列,如此循环直至所有程序终止为止。

莫友芝编写的代码:void priority(){run = ready;ready = ready->next;run->state = "运行";while(run!=NULL) /*当运行队列不空时,有进程正在运行*/{Dtime(3);//调用延时函数,延时3秒run->runtime=run->runtime+1; //运行时间+1run->needOftime=run->needOftime-1; //完成需要时间-1run->pri=run->pri-1; /* //优先级-1每运行一次优先数降低1个单位*/if(run->needOftime==0) /*如所需时间为0将其插入完成队列*/{run->state = "完成";run->next = finish;finish = run;run=NULL; /*运行队列头指针为空*/if(ready!=NULL) /*如就绪队列不空*/{run = ready;run->state = "运行";ready = ready->next;}}else if( (ready!=NULL)&&(run->pri < ready->pri) ){ //就绪队列不为空,就绪队列队首优先级大于运行队列队首run->state="就绪";insert(run); //运行中的进程重新比较优先级大小run = ready; //对队列队首的进程调入CPUrun->state = "运行";ready = ready->next;}Prinft(); /*输出进程PCB信息*/}}这是程序运行时的实时程序,通过循环的方法在程序等候3秒后,调用德新设计的优先级排序算法,进行排序。

void CTProcessOfPri()//创建进程{PCB * Node;string c[5]={"P1","P2","P3","P4","P5"}; //模拟设计5条进程srand((int)time(0)); //设置随机种子for(int j = 0;j < 5; j++){Node = new PCB;if(Node==NULL){return;}else{Node->procname=c[j]; //为进程名赋值Node->needOftime=1+(int)(15.0*rand()/(RAND_MAX+1.0));//为进程随机分配占用CPU时间.Node->runtime = 0; //为运行时间赋值Node->state ="就绪"; //设置初始状态为“就绪”状态Node->pri =1+(int)(20.0*rand()/(RAND_MAX+1.0)); //为进程随机分配优先数.}insert(Node); //出入就行队列}}随机创建5个模拟程序,为其赋上初值后,调用优先级排序函数,进行第一次排序张德华编写的程序代码:void insert(PCB *p){ //时间片插入函数if(start->next==NULL){PCB *q=start;if(p->Arrive_time<q->Arrive_time){start=p;p->next=q;q->next=NULL;end=q;}else{q->next=p;p->next=NULL;end=p;}}else{PCB *q=start;PCB *s=start->next;while(s!=NULL){if(q->Arrive_time > p->Arrive_time){p->next=q;start=p;return;}else{if(s->Arrive_time > p->Arrive_time){q->next=p;p->next=s;return;}else{q=q->next;s=s->next;}}}s->next=p;end=p;}}这个是时间片插入函数,也是轮转调度模拟程序的核心函数,首先对到达时间进行排序,将队首调入CPU后,运行时间片的时间后,调入就绪队列队尾,等候下一次的资源.void firstin(){ //将就绪队列的第一个进程放入运行队列run=start;run->State='W'; //改变其状态start=start->next;}模拟占用CPU的函数void show(PCB *p) //输出函数{cout<<"进程名"<<"\t"<<"到达时间"<<"\t"<<"剩余时间"<<"\t"<<"状态\n"; //if(run!=NULL) //如果运行指针不为空,就输出当前正在运行的进程的PCB{ cout<<p->name<<"\t"<<p->Arrive_time<<"\t""\t"<<p->Need_time<<"\t""\t"<<p->State<<"\n\n";}}这是一个程序初始值的输出函数,验证输入的各程序的初始值是否是预期输入袁马龙编写的代码:void create() //时间片算法创建进程函数{cout<<"请输入所需要运行的进程个数: ";cin>>N;PCB *p;int Time_piece;start=NULL; //就绪队列头指针finish=NULL; //完成队列头指针run=NULL; //运行队列指针cout<<"请输入时间片长度: ";cin>>Time_piece;for(int i=1;i<=N;i++){ //输入进程名字和所需时间,创建进程的PCBp=(PCB *)malloc(sizeof(PCB));cout<<"请输入第"<<i<<"个进程的名字:";cin>>p->name;cout<<"预计运行的时间:";cin>>p->Need_time;cout<<"到达时间:";cin>>p->Arrive_time;Cpu_time=0;p->Count=0; //计数器p->State='W'; //进程的初始状态设为就绪'W'p->Time_piece=Time_piece; //时间片的初始值if(start!=NULL){insert(p); //若就绪队列不为空,将其插入就绪队列}else{ //创建就绪队列的第一个PCBp->next=start;start=p; //头指针end=p; //尾指针}}cout<<endl<<endl<<"\t使用时间片轮转算法输出结果: (W为就绪状态,F为终止状态)\n";cout<<"*********************************************************\n";run=start; //将就绪队列的第一个进程投入运行start=start->next;run->State='W';}这是一个设置程序运行初始的条件函数,如需要运行的程序数目,程序名称,运行时间等,在调用德华设计的排序函数进行排序,调入队列中void roundrobin(){ //时间片算法函数int m=0;while(run!=NULL){if(run->Arrive_time>Cpu_time){Cpu_time=Cpu_time+1; //每运行一次cputime加一}else{if(m==0){cout<<"~~~~~~~~~~~~~~~~~~~~~~~~进程"<<run->name<<"开始 ~~~~~~~~~~~~~~~~~~~~~~~\n\n";m++;}run->Need_time=run->Need_time-1; //每运行一次needtime减一if(run->Need_time!=0)show(run);Cpu_time=Cpu_time+1; //每运行一次cputime加一run->Count=run->Count+1; //每运行一次计数器count加一if(run->Need_time==0){ //若运行完后run->next=finish;finish=run; //将其插入完成队列头部run->State='F'; //将其状态改为完成态"F"show(run);cout<<"~~~~~~~~~~~~~~~~~~~~~~~~进程"<<run->name<<"结束~~~~~~~~~~~~~~~~~~~~~~~\n\n";run=NULL; //将运行队列清空if(start!=NULL) {firstin(); //若就绪对列不空,将第一个进程投入运行cout<<"~~~~~~~~~~~~~~~~~~~~~~~~进程"<<run->name<<"开始 ~~~~~~~~~~~~~~~~~~~~~~~\n\n";}}else{if(run->Count==run->Time_piece){ //如果时间片到run->Count=0; //计数器置0if(start!=NULL){ //若就绪队列不空run->State='W';insert2(run); //将进程插入到就绪队列中等待轮转firstin(); //将就绪队列的第一个进程投入运行cout<<"~~~~~~~~~~~~~~~~~~~~~~~~进程"<<run->name<<"开始~~~~~~~~~~~~~~~~~~~~~~~\n\n";}}}}}cout<<"*********************************************************\n";}这是一个程序运行结果的输出函数,输出程序的结果内容,在什么时间段完成,什么时间段到达,以及程序的状态等信息五、设计过程进程是进程实体的运行过程是系统进行资源分配和调度的一个独立单位。

相关文档
最新文档