欢迎来到天天文库
浏览记录
ID:18593757
大小:214.50 KB
页数:19页
时间:2018-09-19
《《高级语言程序设计》课程设计报告59607》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、计算机与信息工程系《高级语言程序设计》课程设计报告学号2013-2014学年第二学期1208210122《高级语言程序设计》课程设计报告题目:进程调度模拟专业:计算机科学与技术班级:12级对口(3)班姓名:刘以鹏指导教师:代美丽成绩:计算机与信息工程系2014年5月23日1计算机与信息工程系《高级语言程序设计》课程设计报告目录11设计目的及要求31.1设计目的31.2课程设计的实验环境31.3课程设计的预备知识31.4课程设计要求32课程设计内容32.1程序功能介绍32.2程序整体设计说明42.2.1设计思路42.2.2数据结构设计及用法说明52.2.3程序结
2、构(流程图)52.2.4各模块的功能及程序说明62.2.5程序运行结果73总结9参考资料11程序源代码121计算机与信息工程系《高级语言程序设计》课程设计报告1设计目的及要求1.1设计目的本课程设计是计算机科学与技术专业重要的实践性环节之一,是在学生学习完《程序设计语言(C)》课程后进行的一次全面的综合练习。本课程设计的目的和任务:1.巩固和加深学生对C语言课程的基本知识的理解和掌握2.掌握C语言编程和程序调试的基本技能3.利用C语言进行基本的软件设计4.掌握书写程序设计说明文档的能力5.提高运用C语言解决实际问题的能力1.2课程设计的实验环境硬件要求能运行W
3、indows2000/XP操作系统的微机系统。C语言程序设计及相应的开发环境。1.3课程设计的预备知识熟悉C语言及C语言开发工具。1.4课程设计要求1.分析课程设计题目的要求2.写出详细设计说明3.编写程序代码,调试程序使其能正确运行4.设计完成的软件要便于操作和使用5.设计完成后提交课程设计报告2课程设计内容2.1程序功能介绍1计算机与信息工程系《高级语言程序设计》课程设计报告在多道程序环境下,进程数目往往多于处理机数目,致使他们争用处理机。这就要求系统能按某种算法,动态地把处理机分配给就绪队列中的一个进程,使之运行。分配处理机的任务是由进程调度程序完成的。
4、一个进程被建立后,系统为了便于对进程进行管理,将系统中的所有进程按其状态,将其组织成不同点进程队列。于是系统中有运行进程队列、就绪队列和各种事件的进程等待队列。进程调度的功能就是从就绪队列中挑选一个进程到处理机上运行。2.2程序整体设计说明用C语言实现进程调度-操作系统课程设计设计思想:“最高优先数优先”调度算法的基本思想是把cpu分配给就绪队列中优先数最高的进程。采用动态优先数,即优先数在创建进程时给定一个初始值,当进程获得一次cpu后其优先数就减少1。它用C语言编写的实现模拟进程调度的程序,用户模拟几个进程,输入它们的进程名,优先级,运行时间等,进程的初使
5、状态为就绪状态。然后就按优先级优先方式调度各个进程,进程的状态也因此会变成等待状态或完成状态。2.2.1设计思路进程是当前操作系统下一个被加载到内存的、正在运行的应用程序的实例。每一个进程都是由内核对象和地址空间所组成的,内核对象可以让系统在其内存放有关进程的统计信息并使系统能够以此来管理进程,而地址空间则包括了所有程序模块的代码和数据以及线程堆栈、堆分配空间等动态分配的空间。进程仅仅是一个存在,是不能独自完成任何操作的,必须拥有至少一个在其环境下运行的线程,并由其负责执行在进程地址空间内的代码。在进程启动的同时即同时启动了一个线程,该线程被称作主线程或是执行
6、线程,由此线程可以继续创建子线程。如果主线程退出,那么进程也就没有存在的可能了,系统将自动撤消该进程并完成对其地址空间的释放。加载到进程地址空间的每一个可执行文件或动态链接库文件的映象都会被分配一个与之相关联的全局唯一的实例句柄。该实例句柄实际是一个记录有进程加载位置的基本内存地址。进程的实例句柄在程序入口函数中通过第一个参数传递,其实际值即为进程所使用的基本地址空间的地址。对于VC++链接程序所链接产生的程序,其默认的基本地址空间地址为0x00400000,如没有必要一般不要修改该值。1计算机与信息工程系《高级语言程序设计》课程设计报告通过创建一个新的进程及
7、在其地址空间内运行的主线程来启动并运行一个新的程序。具体的,在执行函数时,首先由操作系统负责创建一个进程内核对象,初始化计数为1,并立即为新进程创建一块虚拟地址空间。随后将可执行文件或其他任何必要的动态链接库文件的代码和数据装载到该地址空间中。在创建主线程时,也是首先由系统负责创建一个线程内核对象,并初始化为1。最后启动主线程并执行进程的入口函数RunProc(),完成对进程和执行线程的创建。2.2.2数据结构设计及用法说明数据结构设计:本程序运用了struct函数,并用if语句判断运行指针,用while循环语句确定插入位置。typedefstructPCB{
8、charNAME[10];//进程名字
此文档下载收益归作者所有