操作系统大作业 基于Linux的模拟进程调度算法 运用c++语言编程 在VMware虚拟机里 centos 亲自写亲自测试 代码 说明书

本文档详述了一次操作系统课程设计任务,学生通过C++编程在VMware虚拟机的CentOS环境下模拟实现了先来先服务(FCFS)、短作业优先(SJF)和最高响应比优先(HRRN)三种进程调度算法。设计中涉及进程的创建、调度算法的逻辑、等待时间、周转时间和带权周转时间的计算。通过代码展示了调度过程和结果输出。
摘要由CSDN通过智能技术生成

发布文章 博文管理我的博客退出 Trash Temp 操作系统大作业 基于Linux的模拟进程调度算法 运用c++语言编程 在VMware虚拟机里 centos 亲自写亲自测试 代码 说明书 @[TO 中 北 大 学课程设计任务书 学 院:软件学院专 业:软件工程学 生 姓 名: 学 号: 设 计 题 目:基于Linux的模拟进程调度算法起 迄 日 期:2018年12月24日–2019年1月4日设计地点:软件学院机房指导教师:王素红 发任务书日期: 2018 年12月24日 课 程 设 计 任 务 书1.设计目的: 进程是操作系统中最重要的概念,也是学习现代操作系统的关键。通过本次课程设计,要求理解进程的实质和进程管理的机制。掌握进程调度的工作流程以及进程调度的算法。2.设计内容和要求(包括原始数据、技术参数、条件、设计要求等):设计内容:1.创建进程:手动创建几个进程,或者随即创建几个进程,都在界面上完成;要求包括进程的名称(不能重复)、创建时间、执行时间等。在此因为某时刻仅一个进程在运行,需要申请的资源都能申请到。 2.完成先来先服务、最短作业优先以及最高响应比优先调度算法。 设计要求:要求在屏幕上输出各进程不同调度算法的演示过程、对周转时间、平均周转时间和平均带权周转时间进行计算,并对比各算法的优劣。 3.设计工作任务及工作量的要求〔包括课程设计计算说明书(论文)、图纸、实物样品等〕: (1) 根据设计内容和要求进行需求分析,分析出系统的主要功能和设计重点。(2) 根据需求分析的内容在小组中合理划分模块。(3) 利用C, C++或JAVA语言在Linux平台下进行程序设计并调试通过。(4) 按格式要求,每人根据自己的工作写出课程设计说明书。 课 程 设 计 任 务 书4.主要参考文献: [1] 张丽芬,刘昕,刘利雄. 操作系统实验教程及Linux和Windows系统调用编程.清华大学出版社,2010-9-1[2] 汤小丹,梁红兵,哲凤屏,汤子瀛. 计算机操作系统(第四版). 陕西:西安电子科技大学出版社,2014.5[3] 张尧学,史美林. 计算机操作系统教程(第2版). 北京:清华大学出版社,2000.8[4] 潘爱民,Windows内核原理与实现,北京:电子工业出版社,2013.5[5] [美]博韦,西斯特. 深入理解LINUX内核(第三版),北京:中国电力出版社,2007.9 5.设计成果形式及要求:课程设计说明书 软件6.工作计划及进度:2018年12月24日 – 2018年12月25日 需求分析;2018年12月26日 – 2018年12月27日 概要设计和详细设计;2018年12月28日 – 2019年1月1日 编码、链接、调试;2019年1月2日 – 2019年1月3日 测试,撰写课程设计说明书;2019年1月4日 验收、成绩考核 中 北 大 学操作系统课程设计说 明 书 学 院、系:软件学院专 业:软件工程班 级设 计 题 目:基于Linux的模拟进程调度算法 起 迄 日 期:2018年12月24日–2019年1月4日 2019 年1月4日。 1.2算法分析1.2.1先来先服务调度算法(FCFS)如果早就绪的进程排在就绪队列的前面,迟就绪的进程排在就绪队列的后面,那么先来 先服务总是把当前处于就绪队列之首的那个进程调度到运行状态。也就说,它只考虑进程进入就绪队列的先后,而不考虑它的下一个CPU周期的长短及其他因素。是从“就绪队列”中选择一个最先进入队列的进程,为它分配处理器,使之开始运行。 1.2.2短作业优先调度算法(SJF)短作业优先是一种调试任务请求的调试策略。每个任务请求都含有请求时间(即向系统提交请求的时间)和持续时间(即完成任务所需时间)属性。当前任务完成后,SJF策略选择最短持续时间的任务执行;如果多个任务具有相同持续时间,那么选择请求时间最早的任务。任务的等待时间为实际开始的时间和请求时间的差值。1.2.3最高响应比优先调度算法(HHRN)高响应比优先调度算法的基本思想是把CPU分配给就绪队列中响应比最高的进程,它既考虑作业的执行时间也考虑作业的等待时间,综合了先来先服务和最短作业优先两种算法的特点。高响应比优先调度算法既考虑作业的执行时间也考虑作业的等待时间,综合了先来先服务和最短作业优先两种算法的特点。该算法中的响应比是指作业等待时间与运行比值,响应比公式定义如下:响应比 =(等待时间+要求服务时间)/ 要求服务时间,因此响应比一定是大于1的。1.3计算问题和要得出的结果1.3.1计算三种算法都要完成其相应的周转时间、平均周转时间和平均带权周转时间进行计算,需要实现这功能应该具体分析它们的计算方法,通过编写程序来实现。 1.3.2下列计算公式完成时间 = 开始时间 + 需要运行时间周转时间 = 完成时间 - 到达时间平均周转时间 = 每个作业的周转时间 / 总作业个数带权周转时间 = 周转时间 / 需要运行时间平均带权周转时间 = 每个作业的带权周转时间 / 总作业个数等待时间 = 当前时间 - 到达时间优先权 [响应比] = (等待时间 + 需要运行时间) / 需要运行时间2总体设计2.1进程的定义及相关知识2.1.1进程的定义进程是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。2.1.2识进程具有的特征结构特征:由程序段、数据段、进程控制块三部分组成(进程实体) ;动态性:进程的实质是程序的一次执行过程;并发性:多个进程可同存于内存中,能在一段时间内同时运行;独立性:独立运行的基本单位,独立获得资源和调度的基本单位;异步性:各进程按各自独立的不可预知的速度向前推进。2.1.3进程创建的要求首先是在进程表中为进程建立一个进程控制块PCB,采用fork()系统调用将复制执行进程的PCB块,U区和内存图像到新的进程。 主要内容包括:进程创建原语、fork()系统调用的编程和UNIX V6的fork()源码分析。2.1.4进程的状态 运行态,阻塞态,就绪态。2.1.5进程三种状态的转换 I/O完成 进程调度 时间片完 I/O请求图 2.1 进程的三种状态转换图2.2进程调度 (1)每个进程有一个进程控制块(PCB)表示。进程控制块可以包含如下信息:进程名、优先数、需要运行时间、已用CPU时间、进程状态等等。     (2)进程的优先数及需要的运行时间事先人为地指定。     (3)每个进程的状态可以是就绪 W、运行R、完成F三种状态之一。 (4)进程的运行时间以时间片为单位进行计算。 (5)就绪进程获得CPU后都只能运行一个时间片。用已占用CPU时间加1来表示。(6)采用最高优先数算法的动态优先数法则控制进程:如果运行一个时间片后,进程的已占用CPU时间已达到所需要的运行时间,则撤消该进程,如果运行一个时间片后进程的已占用CPU时间还未达所需要的运行时间,也就是进程还需要继续运行,此时应将进程的优先数减1(即降低一级),然后把它插入就绪队列等待CPU。 (7)每进行一次调度程序都打印一次运行进程、就绪队列、以及各个进程的PCB,以便进行检查。 (8)重复以上过程,直到所要进程都完成为止。可以采用不同的调度算法,得到的结果也不一样。(9)进程调度的流程: 时间片完 就绪队列 进程调度 进程完成 交互用户 等待事件 阻塞队列 图 2.2 进程调度的流程2.3进程调度的算法2.3.1先来先服务调度算法(FCFS)(1)思想按照进程进入就绪队列的先后顺序调度并分配处理机执行。先来先服务调度算法是一种不可抢占的算法,先进入就绪队列的进程,先分配处理机运行。一旦一个进程占有了处理机,它就一直运行下去,直到该进程完成工作或者因为等待某事件发生而不能继续运行时才释放处理机。 图 2.3 先来先服务算法的流程图 2.3.2短作业优先调度算法(SJF)(1)思想 短作业优先(SJF)的调度算法是从后备队列中选择一个或若干个估计运行时间最短的作业,将它们调入内存运行。而短进程优先调度算法则是从就绪队列中选出一个估计运行时间最短的进程,将处理机分配给它,使它立即执行并一直执行到完成,或发生某事件而被阻塞放弃处理机时再重新调度。( 图 2.4 短作业优先算法的程序流程图2.3.3最高相应比优先调度算法(HHRN)(1)思想如果运行一个时间片后,进程的已占用CPU时间已达到所需要的运行时间,则撤消该进程,如果运行一个时间片后进程的已占用CPU时间还未达所需要的运行时间,也就是进程还需要继续运行,此时应将进程的优先数减1(即降低一级),然后把它插入就绪队列等待CPU。 3详细设计3.1进程信息输出int output(){ //调度结果输出 int i=0;int j=1;int p1=0;p1=counter; tasks[i].round_time=0; tasks[i].w_round_time=0; float turn_round_time=0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱编程的小美女

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值