高级语言程序设计C的结课报告,《高级语言程序设计》课程设计报告

41528d3028836879cd698677c3999917.gif《高级语言程序设计》课程设计报告

学号 2013-2014学年 第二学期 1208210122 《高级语言程序设计》 课程设计报告 题目: 进程调度模拟 专业: 计算机科学与技术 班级: 12级对口(3)班 姓名: 刘以鹏 指导教师: 代美丽 成绩: 计算机与信息工程系 2014年 5月 23日 目 录 11 设计目的及要求3 1.1 设计目的3 1.2 课程设计的实验环境3 1.3 课程设计的预备知识3 1.4 课程设计要求3 2课程设计内容3 2.1程序功能介绍3 2.2程序整体设计说明4 2.2.1设计思路4 2.2.2数据结构设计及用法说明5 2.2.3程序结构(流程图)5 2.2.4各模块的功能及程序说明6 2.2.5程序运行结果7 3总结9 参考资料11 程序源代码12 1 设计目的及要求 1.1 设计目的 本课程设计是计算机科学与技术专业重要的实践性环节之一,是在学生学习完《程序设计语言(C)》课程后进行的一次全面的综合练习。本课程设计的目的和任务: 1. 巩固和加深学生对C语言课程的基本知识的理解和掌握 2. 掌握C语言编程和程序调试的基本技能 3. 利用C语言进行基本的软件设计 4. 掌握书写程序设计说明文档的能力 5. 提高运用C语言解决实际问题的能力 1.2 课程设计的实验环境 硬件要求能运行Windows 2000/XP操作系统的微机系统。C语言程序设计及相应的开发环境。 1.3 课程设计的预备知识 熟悉C语言及C语言开发工具。 1.4 课程设计要求 1. 分析课程设计题目的要求 2. 写出详细设计说明 3. 编写程序代码,调试程序使其能正确运行 4. 设计完成的软件要便于操作和使用 5. 设计完成后提交课程设计报告 2 课程设计内容 2.1程序功能介绍 在多道程序环境下,进程数目往往多于处理机数目,致使他们争用处理机。这就要求系统能按某种算法,动态地把处理机分配给就绪队列中的一个进程,使之运行。分配处理机的任务是由进程调度程序完成的。一个进程被建立后,系统为了便于对进程进行管理,将系统中的所有进程按其状态,将其组织成不同点进程队列。于是系统中有运行进程队列、就绪队列和各种事件的进程等待队列。进程调度的功能就是从就绪队列中挑选一个进程到处理机上运行。 2.2程序整体设计说明 用C语言实现进程调度-操作系统课程设计设计思想: “最高优先数优先”调度算法的基本思想是把cpu分配给就绪队列中优先数最高的进程。采用动态优先数,即优先数在创建进程时给定一个初始值,当进程获得一次cpu后其优先数就减少1。它用C语言编写的实现模拟进程调度的程序,用户模拟几个进程,输入它们的进程名,优先级,运行时间等,进程的初使状态为就绪状态。然后就按优先级优先方式调度各个进程,进程的状态也因此会变成等待状态或完成状态。 2.2.1设计思路 进程是当前操作系统下一个被加载到内存的、正在运行的应用程序的实例。每一个进程都是由内核对象和地址空间所组成的,内核对象可以让系统在其内存放有关进程的统计信息并使系统能够以此来管理进程,而地址空间则包括了所有程序模块的代码和数据以及线程堆栈、堆分配空间等动态分配的空间。进程仅仅是一个存在,是不能独自完成任何操作的,必须拥有至少一个在其环境下运行的线程,并由其负责执行在进程地址空间内的代码。在进程启动的同时即同时启动了一个线程,该线程被称作主线程或是执行线程,由此线程可以继续创建子线程。如果主线程退出,那么进程也就没有存在的可能了,系统将自动撤消该进程并完成对其地址空间的释放。 加载到进程地址空间的每一个可执行文件或动态链接库文件的映象都会被分配一个与之相关联的全局唯一的实例句柄。该实例句柄实际是一个记录有进程加载位置的基本内存地址。进程的实例句柄在程序入口函数中通过第一个参数传递,其实际值即为进程所使用的基本地址空间的地址。对于VC++链接程序所链接产生的程序,其默认的基本地址空间地址为0 x00400000,如没有必要一般不要修改该值。 通过创建一个新的进程及在其地址空间内运行的主线程来启动并运行一个新的程序。具体的,在执行函数时,首先由操作系统负责创建一个进程内核对象,初始化计数为1,并立即为新进程创建一块虚拟地址空间。随后将可执行文件或其他任何必要的动态链接库文件的代码和数据装载到该地址空间中。在创建主线程时,也是首先由系统负责创建一个线程内核对象,并初始化为1。最后启动主线程并执行进程的入口函数RunProc(),完成对进程和执行线程的创建。 2.2.2数据结构设计及用法说明 数据结构设计:本程序运用了struct函数,并用if语句判断运行指针,用while循环语句确定插入位置。 typedef struct PCB{ char NAME[10]; //进程名字 int PRIO; //进程优先数 int ROUNT; //轮转时间片 int COUNT; //计数器 int NEEDTIME; //需要的CPU时间 int CPUTIME; //占用cpu时间 char *STATE; //进程状态 }ElemPCB; 用法说明: 1.进程通过定义一个进程控制块的数据结构(PCB)来表示; 2.每个进程需要赋予进程信息、进程到达时间、进程需要运行的总时间的属性; 3.在程序进程中,以1为时间片单位; 4.运行时,输入5个进程序列,按照进程的信息输出其执行序列。 2.2.3程序结构(流程图) 2.2.4各模块的功能及程序说明 ① 高级调度模块:又称作业调度。其主要功能是根据一定的算法,从输人的一批作业中选出若干个作业,分配必要的资源,如内存、外设等,为它建立相应的用户作业进程和为其服务的系统进程(如输人、输出进程),最后把它们的程序和数据调人内存,等待进程调度程序对其执行调度,并在作业完成后作善后处理工作。 ② 中级调度模块:又称交换调度。为了使内存中同时存放的进程数目不至于太多,有时就需要把某些进程从内存中移到外存上,以减少多道程序的数目,为此设立了中级调度。特别在采用虚拟存储技术的系统或分时系统中,往往增加中级调度这一级。所以中级调度的功能是在内存使用情况紧张时,将一些暂时不能运行的讲程从内存对换到外存上等待。当以后内存有足够的空闲空间时,再将合适的进程重新换人内存,等待进程调度。引人中级调度的主要目的是为了提高内存的利用率和系统吞吐量。它实际上就是存储器管理中的对换功能 。 ③ 低级调度模块:又称进程调度。其主要功能是根据一定的算法将CPU分派给就绪队列中的一个进程。执行低级调度功能的程序称做进程调度程序,由它实现CPU在进程间的切换。进程调度的运行频率很高,在分时系统中往往几十毫秒就要运行一次。进程调度是操作系统中最基本的一种调度。在一般类型的操作系统中都必须有进程调度,而且它的策略的优劣直接影响整个系

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
c 高级语言程序设计ⅱ是计算机科学与工程学院华南理工大学的一门重要课程。这门课程主要通过学习 c 语言高级编程知识,来培养学生的编程能力和解决问题的能力。在课程中,学生将学习 c 语言高级特性、数据构与算法、内存管理、指针运算等内容,通过理论与实践相合的教学模式,提高学生对 c 语言的深入理解和应用能力。 作为计算机科学与工程学院的一门核心课程,c 高级语言程序设计ⅱ旨在帮助学生掌握 c 语言高级编程技巧,为他们日后的编程实践和工程项目打下坚实的基础。学院通过丰富多样的教学方法,如堂讲解、编程实验、项目实践等,引导学生深入理解 c 语言的底层原理和高级应用,培养他们的编程思维和分析问题的能力。 同时,c 高级语言程序设计ⅱ也注重培养学生的团队合作精神和实际问题解决能力。学生将学习如何利用 c 语言编程语言来解决实际工程中的挑战和问题,培养他们的创新能力和工程实践能力。通过这门课程的学习,学生将逐渐成长为具有扎实技术功底和创新精神的优秀计算机科学与工程人才。 综上所述,c 高级语言程序设计ⅱ是计算机科学与工程学院华南理工大学的一门重要课程,旨在通过 c 语言编程知识的学习和实践,培养学生的编程能力、解决问题的能力和团队合作精神,为他们的职业发展打下坚实的基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值