您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 薪酬管理 > 用C语言模拟实现操作系统的进程管理机制
《操作系统》实验报告实验一题目用C语言模拟实现操作系统的进程管理机制一、实验内容使用顺序表模拟内存中的进程队列,实现对于进程的管理。进程的管理主要包括进程的创建、进程的查询、进程的换出以及进程的删除等操作。二、实验目的进程是计算机操作系统的重要的核心概念,合理的管理进程是一个操作系统最核心主要的功能之一,通过编写相应的进程程序,加强对进程概念的理解。三、设计过程1进程结构PCB的描述:typedefstructjincheng_type{intpid;intpriority;charstate;intblocktime;}PCB;PCB是对进程的描述,pid代表进程号,priority代表优先级,state代表状态,blocktime代表阻塞时间。2进程队列的描述:使用顺序表typedefstructqueuelist{PCBpro[MAXSIZE];intlength;}MEMORY;内存的描述,系统创建的进程都保存在这里,MAXSIZE是内存中允许存放最大的进程数目3本实验主要包含如下三个主要操作(1)创建进程操作voidcreate(MEMORY*P,intcount);参数P是指向存放进程的内存指针(头指针),count是指创建进程的数目。(2)查询进程操作intcheck(MEMORY*P,intpid);参数P是指向存放进程的内存指针(头指针),pid是指查询进程的进程号,若查询到该进程则返回OK(1),否则返回ERROR(0)。(3)置换进程操作intexchange(MEMORY*P);参数P是指向存放进程的内存指针(头指针),将换出的进程保存在PCBpcb;中,若换出某个进程则返回OK(1),否则返回ERROR(0)。(4)删除进程操作intkill(MEMORY*P,inti);参数P是指向存放进程的内存指针(头指针),删除内存中第i个进程,若删除某个进程则返回OK(1),否则返回ERROR(0)。4程序流程图:(1)主程序的流程图程序开始输入功能号:function=?创建进程查看进程置换进程杀死进程1243(2)三个主要功能的的程序流程图创建进程:voidcreate(MEMORY*P,intcount);传入实参:内存首地址,创建进程数目输入进程的相关信息:pid,priority,state,blocktime将进程保存在内存中查看进程:intcheck(MEMORY*P,intpid);传入实参:内存首地址,查看的进程号在内存中若查询到该进程则输出该进程信息并反正OK,否则返回ERROR换出进程:intexchange(MEMORY*P);传入实参:内存首地址在内存中查询某个进程的阻塞时间,若进程的阻塞时间超出一定的时间,则将它换到外存返回换出进程成功与否的信息删除进程:intkill(MEMORY*P,inti);传入实参:内存首地址,删除进程的序号从内存中删除第i个进程返回删除进程成功与否的信息四、程序实现及运行结果源程序见:实验一程序。Doc实验结果:五、实验总结在以前的学习中,我并没接触过C语言,更没有用C语言编过任何代码,所以一开始编写代码时给我带来了很大的困难。不过通过查阅相关的书籍,我一步步地克服了这些困难。进程是程序以及数据在处理机(即CPU)上运行的过程,它是系统进行资源分配和调度的一个独立单位。没有试验前,我对进程的了解只限于字面的意思,通过这次试验我对进程这一概念右了跟深层次的了解。虽然是模拟进程的创建,我也对进程的创建过程有了更深层次的了解,创建一个进程,首先应该为它分配内存空间,然后将进程的基本信息输入到进程控制快PCB中。同时将创建好的进程插入到进程就绪队列中。而对进程的查阅和换出等功能的实现,只是简单地对就绪队列进行检索,并将相关信息输出来。
本文标题:用C语言模拟实现操作系统的进程管理机制
链接地址:https://www.777doc.com/doc-5153646 .html