操作系统实验——处理器调度

本文探讨了操作系统中关于处理器调度的实验,涵盖了先来先服务(FCFS)、高响应比优先(HRRN)、轮转(RR)、短作业优先(SPN)以及最短剩余时间优先(SRT)等调度算法的实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Main.c

#include "tools.h"
#include "dispatch.h"

/*
* 定义进程数据结构
*/

int main()
{
    pro myPro[5] = {
  {"A",0,3},{"B",2,6},{"C",4,4},{"D",6,5},{"E",8,2}}; 

    for(int i=0;i<n;i++){
        print(myPro[i]);//打印进程
    }

    FCFS(myPro,5);//先来先服务
    RR(myPro,5);//乱转,q=1
    SPN(myPro,5);//最短进程优先
    SRT(myPro,5);//最短剩余时间
    HRRN(myPro,5);//最高响应比

    return 0;
}


tools.h

#define Num 100

typedef struct pro
{
    char name[20]; //进程名称
    int arrTime; //到达时间
    int serTime; //服务时间
    int finTime; //结束时间
    int cycTime; //周转时间
    float  resRation; //响应比
}pro;

void printResult(pro process[], int n);

void copy(pro process[], pro tempPro[], int n);

void sortByArrTime(pro process[], int n);

void sortOfPro(pro process[], int sort[],int n);

int isFinish(pro process[], int n);

void print(pro process);


tools.c

#include<stdio.h>
#include<string.h>
#define Num 100

typedef struct pro
{
    char name[20]; //进程名称
    int arrTime; //到达时间
    int serTime; //服务时间
    int finTime; //结束时间
    int cycTime; //周转时间
    float  resRation; //响应比
}pro;

void print(pro process)
{
    printf("进程:%s\n", process.name);
    printf("\t到达时间:%d\n", process.arrTime);
    printf("\t服务时间:%d\n", process.serTime);
    printf("\t结束时间:%d\n", process.finTime);
    printf("\t周转时间:%d\n", process.cycTime);
}

void printResult(pro process[], int n)
{
    for (int i = 0; i<n; i++) {
        printf("进程 %s:\n", process[i].name);
        //printf("\t到达时间:%d\n", process[i].arrTime);
        //printf("\t服务时间:%d\n", process[i].serTime);
        printf("\t完成时间:%d\n", process[i].finTime);
        printf("\t周转时间:%d\n", process[i].cycTime);
        printf("\t响应比: %.2f\n", process[i].resRation);
    }
}

void copy(pro process[], pro tempPro[], int n)
{
    for (int i = 0; i<n; i++) {
        tempPro[i] = process[i];
        //print(tempPro[i]);
    }
}

void sortByArrTime(pro process[], int n)
{
    for (int i = 0; i
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值