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

操作系统课程设计一、课程目标知识目标: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. 文件系统:介绍文件系统的基本概念、结构、存储原理,对应教材第四章内容。
操作系统课程设计实验报告

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

北邮操作系统课程设计一、教学目标本课程的教学目标是使学生掌握操作系统的基本原理和关键技术,包括进程管理、内存管理、文件系统和输入/输出系统等。
通过本课程的学习,学生应能理解操作系统的整体结构和工作原理,具备分析和设计简单操作系统的能力。
此外,学生应掌握常用的操作系统工具和命令,能够进行基本的开源操作系统开发和调试。
在学习过程中,培养学生独立思考、创新能力和团队合作精神,提高学生对计算机科学的兴趣和热情。
二、教学内容本课程的教学内容主要包括操作系统的基本概念、原理和关键技术。
具体包括以下几个部分:1.操作系统的概述:介绍操作系统的定义、功能、分类和发展历程。
2.进程管理:讲述进程的概念、进程控制块、进程调度算法、同步与互斥、死锁和进程通信等内容。
3.内存管理:包括内存分配与回收策略、虚拟内存技术、页面置换算法、内存保护机制等。
4.文件系统:介绍文件和目录的结构、文件存储管理、文件访问控制、磁盘空间分配策略等。
5.输入/输出系统:包括设备管理、中断处理、直接内存访问(DMA)、设备驱动程序等内容。
三、教学方法为了提高教学效果,本课程将采用多种教学方法相结合的方式进行授课。
具体包括以下几种方法:1.讲授法:教师通过讲解操作系统的理论知识,使学生掌握基本概念和原理。
2.案例分析法:分析实际操作系统案例,让学生更好地理解操作系统的应用和设计。
3.实验法:安排实验课程,使学生亲自动手实践,加深对操作系统原理的理解。
4.讨论法:学生进行小组讨论,培养学生的团队合作精神和独立思考能力。
四、教学资源为了保证教学效果,本课程将提供丰富的教学资源。
具体包括以下几种资源:1.教材:选用国内外优秀教材,如《操作系统概念》等,为学生提供系统的理论知识。
2.参考书:推荐学生阅读相关参考书籍,加深对操作系统知识的理解。
3.多媒体资料:制作课件、教学视频等,以图文并茂的形式展示课程内容。
4.实验设备:提供实验室环境,让学生能够进行实际操作练习。
课程设计操作系统

课程设计操作系统一、教学目标本课程旨在让学生掌握操作系统的基本原理和概念,了解操作系统的运行机制和功能,培养学生运用操作系统知识解决实际问题的能力。
具体目标如下: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.预备内容:阅读操作系统的内存管理章节内容,理解动态分区、页式、段式和段页式存储管理的思想及相应的分配主存的过程。
2.实践准备:掌握一种计算机高级语言的使用。
要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1.下列内部存储器管理中地址转换,在完成指定存储管理技术中的地址转换基础上还可以选择其它内部存储器管理中的地址转换进行模拟设计并实现:⑴动态分区方案,用最先适用算法对作业实施内存分配,然后把作业地址空间的某一逻辑地址转换成相应的物理地址。
能够处理以下的情形:输入某一逻辑地址,程序能判断地址的合法性,如果合法,计算并输出相应的物理地址。
如果不能计算出相应的物理地址,说明原因。
⑵页式存储管理中逻辑地址到物理地址的转换(十进制)。
能够处理以下的情形:输入某一十进制逻辑地址,能检查地址的合法性,如果合法进行转换,否则显示“地址非法”;物理地址用十进制表示。
⑶页式存储管理中逻辑地址到物理地址的转换(八进制)。
能够处理以下的情形:输入某一八进制逻辑地址,能检查地址的合法性,如果合法进行转换,否则显示“地址非法”;物理地址用八进制表示。
⑷页式存储管理中逻辑地址到物理地址的转换(十六进制)。
能够处理以下的情形:输入某一十六进制逻辑地址,能检查地址的合法性,如果合法进行转换,否则显示“地址非法”;物理地址用十六进制表示。
⑸段式存储管理中逻辑地址到物理地址的转换。
能够处理以下的情形:指定内存的大小,进程的个数,每个进程的段数及段大小;能检查地址的合法性,如果合法进行转换,否则显示地址非法的原因。
⑹段页式存储管理中逻辑地址到物理地址的转换。
操作系统课程设计银行家算法

《操作系统--课程设计报告》银行家算法姓名:学号:专业:指导老师:目录一、设计目的 ............................................................................... 错误!未定义书签。
二、设计要求ﻩ错误!未定义书签。
三、设计内容和步骤 ................................................................... 错误!未定义书签。
四、算法描述ﻩ错误!未定义书签。
五、实验结果ﻩ错误!未定义书签。
六、实验心得 ............................................................................... 错误!未定义书签。
一、设计目的银行家算法是避免死锁的一种重要方法,本实验要求用高级语言编写和调试一个简单的银行家算法程序。
加深了解有关资源申请、避免死锁等概念,并体会和了解死锁和避免死锁的具体实施方法。
二、设计要求在了解和掌握银行家算法的基础上,能熟练的处理课本例题中所给状态的安全性问题,能编制银行家算法通用程序,将调试结果显示在计算机屏幕上。
具体程序的功能要求:1.设定进程对各类资源最大申请表示及初值确定。
2.设定系统提供资源初始状况(已分配资源、可用资源)。
3.设定每次某个进程对各类资源的申请表示。
4.编制程序,依据银行家算法,决定其申请是否得到满足。
三、设计内容和步骤设计内容银行家算法的思路:先对用户提出的请求进行合法性检查,即检查请求的是不大于需要的,是否不大于可利用的。
若请求合法,则进行试分配。
最后对试分配后的状态调用安全性检查算法进行安全性检查。
若安全,则分配,否则,不分配,恢复原来状态,拒绝申请。
设计步骤1、为实现银行家算法,系统中需要设置若干数据结构,用来表示系统中各进程的资源分配及需求情况。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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++){ //输入进程名字和所需时间,创建进程的PCB p=(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{ //创建就绪队列的第一个PCB p->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";}这是一个程序运行结果的输出函数,输出程序的结果内容,在什么时间段完成,什么时间段到达,以及程序的状态等信息五、设计过程进程是进程实体的运行过程是系统进行资源分配和调度的一个独立单位。