资源简介

2015广工操作系统课程设计-多道批处理两级调度模拟,含报告

资源截图

代码片段和文件信息

#include 
#include 
#include 
#include 

#define getpch(type)(type*)malloc(sizeof(type))

#define N 10
#define M 100
#define C 4


struct time
{
int hour; //时
int min;  //分
};


struct jcb
{
    char name[10];        //进程名
    struct time arr_time; //到达时间
    struct time ent_time; //进入内存时间
    struct time sta_time; //开始时间
    struct time fin_time; //结束时间
int run_time;         //估计运行时间
    int tr_time;          //周转时间

    int men;              //主存需要
    int mac;              //磁带机
    int sta;              //状态位
    struct jcb* next;
};

typedef struct jcb JCB;

struct link
{
    char name[10];         //进程名
    struct time arr_time;  //到达时间
    struct time ent_time;  //进入内存时间
    struct time sta_time;  //开始时间
    struct time fin_time;  //结束时间
int run_time;          //估计运行时间
    int tr_time;           //周转时间

    int addr;              //起始地址
    int len;               //分区大小
    int mac;               //磁带机
    int state;             //状态位0为空闲1为被使用

    struct link *f;        //前指针
    struct link *b;        //后指针
} ;



struct jcb  save[N];
struct jcb *first_jcb=NULL*p;

struct jcb  result[6][6];


struct link *s*q;

int sort_result(int i);
int run();
int apply(jcb *p1);
int compare(int i);
int print(int i);
int dis_job();
int dis_mem();
int merge(link *y);
int input_job1();
int input_job2();
int read();
int release();
int run();
int p_fcfs();
int p_spf();
int sort_job1();
int sort_job2();
int sort_result(int i);
int time_cmp(time atime b);
int j_attemper(int type);

int sys_men=100;     //系统内存分配为100
int sys_mac=4;       //磁带机数
struct time sys_timesys_time1;
char name[10];

int  print(int i)    //显示作业最终运行情况
{
    struct jcb *p1;
    int j;
    p1=first_jcb;
    for(j=1;j<=5;j++)
    {
        result[i][j]=*p1;
        p1=p1->next;

    }

    sort_result(i);
    printf(“\n\n  ===========================================================================\n“);
    printf(“\n\t作业运行结果情况:\n“);
    printf(“\n\t进程名\t到达\t运行\t主存\t磁带机\t进入\t开始\t完成\t周转“);

    for(j=1;j<=5;j++)
    {
printf(“\n\t%s\t %d:%d\t%d\t%d\t%d\t“result[i][j].nameresult[i][j].arr_time.hourresult[i][j].arr_time.minresult[i][j].run_timeresult[i][j].menresult[i][j].mac);
printf(“%d:%d\t%d:%d\t%d:%d\t%d“result[i][j].ent_time.hourresult[i][j].ent_time.minresult[i][j].sta_time.hourresult[i][j].sta_time.minresult[i][j].fin_time.hourresult[i][j].ent_time.minresult[i][j].tr_time);

    }

}


int sort_result(int i)  //对作业按到达时间重新排序显示分析方便
{
    int jk;

    for(k=1;k<=4;k++)
    {
        for(j=1;j<=4;j++)
        {
if(time_cmp(result[i][j].arr_timeresult[i][j+1].arr_time)==1)
{
result[i][0]=result[i][j];
result[i][j]=result[i][j+1];
result[i][j+1]=result[i][0];
}
        }
    }
return 1;

}

int time_cmp(struct time astruct time b)   //时间比较 a

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      15831  2016-01-06 23:46  课程设计-多道批处理两级调度模拟\CourseDesign.cpp

     文件        130  2012-06-27 20:49  课程设计-多道批处理两级调度模拟\test.txt

     文件      15831  2016-01-06 23:46  课程设计-多道批处理两级调度模拟\源程序\CourseDesign.cpp

     文件      12288  2016-01-06 23:50  课程设计-多道批处理两级调度模拟\源程序\CourseDesign.exe

     文件      10990  2016-01-06 23:50  课程设计-多道批处理两级调度模拟\源程序\CourseDesign.o

     文件        130  2012-06-27 20:49  课程设计-多道批处理两级调度模拟\源程序\test.txt

     文件     327680  2016-01-07 00:07  课程设计-多道批处理两级调度模拟\课程设计报告.doc

     目录          0  2016-01-07 08:54  课程设计-多道批处理两级调度模拟\源程序

     目录          0  2016-01-07 08:54  课程设计-多道批处理两级调度模拟

----------- ---------  ---------- -----  ----

               382880                    9


评论

共有 条评论