先来先服务进程调度

#include<stdio.h>
#define Time int
#define M 100
typedef struct process{
    char name[M];//进程名
    int priority;//优先数
    int reachtime;//到达时间
    int needtime;//需要时间
    int usedtime;//已用时间
    char state;//进程状态
}PCB;      //进程控制块
int n;
PCB pcb[M];
int pTime;
void print(int n){
    int i;
    printf("########################进程调度########################\n");
    printf("-----------------------------------------------------------\n");
    printf("进程名       需要时间    到达时间      \n");
   for(i=0;i<n;i++){
    printf("%1s%12d%12d\n",pcb[i].name,pcb[i].needtime,pcb[i].reachtime);

}
}
void main(){
    int i;
    int j;
    PCB temp;
    printf("\n请输入进程数:");
    scanf("%d",&n);
    
    for(i=0;i<n;i++){
        printf("\n请输入进程名:");
        scanf("%s",&pcb[i].name);
        
        printf("请输入需要的时间:");
        scanf("%d",&pcb[i].needtime);
        printf("请输入到达的时间:");
        scanf("%d",&pcb[i].reachtime);

}
    for(i=0;i<n;i++)
    for(j=i;j<n;j++)
     if(pcb[j].reachtime<pcb[i].reachtime)
     {
      temp=pcb[j];
     pcb[j]=pcb[i];
      pcb[i]=temp;

}

print(n);
}

时间: 2024-08-30 15:57:20

先来先服务进程调度的相关文章

实验二:先来先服务进程调度

#include <stdio.h> #include <malloc.h> typedef struct jinchen  //定义结构体 { char name[5]; int tijiaoshijian; int reachtime; int runtime; int beirun; int accomplishtime; char state; int flag; struct jinchen *next; }PCB; PCB *finish,*ready;//定义队列 一

实验三 、进程调度模拟程序

实验三.进程调度模拟程序 专业 网络工程   姓名 方俊晖 学号 201406114309 一.        实验目的 通过本实验可以加深对有关进程控制块.进程队列的概念的进一步理解. 二.        实验内容和要求 1.进程PCB的结构体定义 2.定义结构体 3.输入进程序列 4.排序(按到位时间) 5.输出进程运行的结果 三.        实验方法.步骤及结果测试 #include<stdio.h> #include<stdlib.h> #include<stri

实验三 进程调度模拟程序

一.实验目的 用高级语言完成一个进程调度程序,以加深对进程的概念及进程调度算法的理解.     二.实验内容和要求 设计一个有 N个进程并发执行的进程调度模拟程序. 进程调度算法:采用最高优先级优先的调度算法(即把处理机分配给优先级最高的进程)和先来先服务(若优先级相同)算法.动态优先数是指进程的优先数在创建进程时可以给定一个初始值,并且可以按一定规则修改优先数.例如:在进程获得一次CPU后就将其优先数减少1,并且进程等待的时间超过某一时限(2个时间片时间)时增加其优先数等. (1).  每个进

把握linux内核设计(九):进程调度

[版权声明:尊重原创,转载请保留出处:blog.csdn.net/shallnet,文章仅供学习交流,请勿用于商业用途] linux为多任务系统,正常情况下都存在成百上千个任务.由于linux提供抢占式的多任务模式,所以linux能同时并发地交互执行多个进程,而调度程序将决定哪一个进程投入运行.何时运行.以及运行多长时间.调度程序是像linux这样的多任务操作系统的基础, 只有通过调度程序的合理调度,系统资源才能最大限度地发挥作用,多进程才会有并发执行的效果.当系统中可运行的进程数目比处理器的个

实验二、进程调度模拟程序1.0

一.    实验目的 用C语言模拟进程调度程序,以加深对进程的概念及进程调度算法的理解. 二.    实验内容及要求 设计一个有 N个进程并发执行的进程调度模拟程序. 进程调度算法: (1)  先来先服务调度算法,即按作业到达的先后次序进行调度.总是首先调度在系统中等待时间最长的作业. (2)  优先级调度算法,为每个作业设置一个优先级,调度之前先比较各作业的优先级,优先数高者优先调度,若优先级相同则用先来先服务算法. 1)每个进程有一个进程控制块(PCB)表示.进程控制块包含如下信息:进程名.

实验三、进程调度模拟程序2.0

一.    实验目的 用C语言模拟进程调度程序,以加深对进程的概念及进程调度算法的理解. 二.    实验内容及要求 设计一个有 N个进程并发执行的进程调度模拟程序. 1.模拟进程数据的生成 用户选择输入每个进程的到达时间,所需运行时间,进程的运行时间以时间片为单位. 2.模拟调度程序的功能 按照模拟数据的到达时间和所需运行时间,能分别执行以下调度算法: FCFS SRTF HRRF RR 3.显示每种算法下各进程的调度执行顺序. 4.计算各进程的开始执行时间,各作业的完成时间,周转时间和带权周

实验二 进程调度模拟程序

1. 实验目的 用高级语言完成一个进程调度程序,以加深对进程的概念及进程调度算法的理解. 2.  实验要求 设计一个有 N个进程并发执行的进程调度模拟程序. 进程调度算法:采用最高优先级优先的调度算法(即把处理机分配给优先级最高的进程)和先来先服务(若优先级相同)算法. (1).  每个进程有一个进程控制块(PCB)表示.进程控制块包含如下信息:进程名.优先级.到达时间.需要运行时间.已用CPU时间.进程状态等等. (2).  进程的优先级及需要的运行时间可以事先人为地指定,进程的运行时间以时间

39 进程调度实验

一. 实验目的 1.用高级语言完成一个进程调度程序,以加深对进程的概念及进程调度算法的理解. 2.实验要求 3.设计一个有 N(N不小于5)个进程并发执行的进程调度模拟程序. 4.进程调度算法:“时间片轮转法”调度算法对N个进程进行调度. 二. 实验内容和要求 完成两个算法(简单时间片轮转法.多级反馈队列调度算法)的设计.编码和调试工作,完成实验报告. 1) 每个进程有一个进程控制块(PCB)表示.进程控制块包含如下信息:进程名.优先级.到达时间.需要运行时间.已用CPU时间.进程状态等等. 2

操作系统核心原理-3.进程管理(中):进程调度

PS:在多进程并发的环境里,虽然从概念上看,有多个进程在同时执行,但在单个CPU下,在任何时刻只能有一个进程处于执行状态,而其他进程则处于非执行状态.那么问题来了,我们是如何确定在任意时刻到底由哪个进程执行,哪些不执行呢?这就涉及到进程管理的一个重要组成部分:进程调度,跟随本篇来一起复习下进程调度吧! 一.进程调度基础 1.1 进程调度定义 进程调度是操作系统进程管理的一个重要组成部分,其任务是选择下一个要运行的进程. 1.2 进程调度目标 首先,一般的程序任务分为三种:CPU计算密集型.IO密