(C语言实现)进程调度 |
您所在的位置:网站首页 › 时间片调度算法用c语言实现 › (C语言实现)进程调度 |
一、设计目的: 本设计模拟在单处理器情况下的时间片轮转进程调度,目的是加深对进程调度工作的理解,掌握不同调度算法的优缺点。 二、设计内容 设计程序模拟单处理机系统中时间片轮转进程调度算法,每个进程由一个进程控制块(PCB)表示。进程控制块包含如下信息:进程名、到达时间、需要运行时间、完成标志与否、进程状态、还需运行的时间等。 进程的需要运行时间和到达时间以及进程运行的时间片人为设定。 每个进程的状态可以是就绪W(Wait)、运行R(Run)或完成F(Finish)3种状态。 时间片轮转调度算法的思想:给每个进程固定的执行时间,根据进程到达的先后顺序让进程在单位时间片内执行,执行完成后便调度下一个进程执行,时间片轮转调度不考虑进程等待时间和执行时间,属于抢占式调度。优点是兼顾长短作业;缺点是平均等待时间较长,上下文切换较费时。适用于分时系统。 三、程序结构: 首先,对所有的进程按到达时间升序排序,这个排序的稳定的,也就是说如果他们同时到达则先输入的排在前面; 接着,把当前时间time赋值为process[1].at; 后来,对就绪队列中的进程一一执行,直到所有进程运行完毕。 自己写的源程序: #include #define N 50 struct PCB { int pn; //process name进程名字 int at; //arrival time到达时间 int st; //service time服务时间 int ct; //completion time完成时刻 int sc; //sign completion标志是否完成 int st1; //剩余服务时间 }process[N]; int sjp(int n) { int i,j,T; printf("\n请输入时间片:\n"); scanf("%d",&T); for(i=1;i |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |