操作系统源代码

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

#include<stdio、h>

#include<time、h〉

#include

int memoryStartAddress= -1;

int memorySize =—1;

struct jobList

int id;/*作业ID */

intsize;/*作业大小(需要得存储空间大小)*/

intstatus;

/*作业状态0: newjob ,1 :in the memory ,2:finished、*/

structjobList *next;/* 作业链表指针*/

};

structfreeList

{

intstartAddress; /*分区起始地址*/

ﻩintsize;/* 分区大小*/

struct freeList *next;/* 分区链表指针*/

};

struct usedList

int startAddress;/* 分区起始地址*/

int jobID; /*分区中存放作业ID*/

structusedList *next;/*分区链表指针*/

};

void errorMessage(void)/*出现严重错误时显示信息并结束程序*/

{

ﻩprintf("\n\tError !\a”);

printf(”\nPress any keyto exit !”);

ﻩgetch();

ﻩexit(1);

}

void open **fp,char* *mode)

/*以要求得方式打开文件*/ {

ﻩif((*fp=fopen())==NULL)

ﻩprintf(”\nCan't open%s in mode %s、",);

ﻩerrorMessage();

}

void makeFreeNode(structfreeList **empty,int startAddress,in tsize)

/*根据参数startAddress、size创建空闲节点,由empty指针返回*/

ﻩif((*empty= malloc(sizeof(struct freeList)))== NULL)

ﻩ{

ﻩprintf("\nNot enough toallocatefor the freenode 、”); ﻩﻩerrorMessage();

ﻩ(*empty)—>startAddress =startAddress;

ﻩ(*empty)-〉size= size;

(*empty)-〉next = NULL;

void iniMemory(void) /*初始化存储空间起始地址、大小*/

ﻩchar MSA[10],MS[10];

ﻩprintf(”\nPlease input the start address ofthe memory!");ﻩscanf(”%s”,MSA);

ﻩmemoryStartAddress= atoi(MSA);

ﻩprintf(”\nPleaseinputthesize ofthe memory !”);

scanf(”%s",MS);

memorySize= atoi(MS);

char selectFitMethod(void) /*选择适应算法*/

{

ﻩFILE*fp;

char fitMethod;

ﻩdo{

ﻩprintf(”\n\nPlease input a char as fallow toselect the fit method!\

ﻩﻩﻩ\n 1(Best fit)\

ﻩ\n 2 (Worst fit) \

ﻩ\n 3 (First fit) \

ﻩ\n 4 (Last fit)\n");

}while(fitMethod < '1'||fitMethod >'4’);

open,”d:\\result、cl","a");

ﻩswitch(fitMethod)

case ’1’:

ﻩﻩfprintf(fp,”\n\n\n\n\tBest fit”);

ﻩfprintf(fp,"\n**********************************************”);

ﻩbreak;

ﻩﻩcase'2’:

ﻩﻩfprintf(fp,”\n\n\n\n\tWorstfit”);

fprintf(fp,"\n**********************************************");

ﻩbreak;

ﻩ case’3':

fprintf(fp,”\n\n\n\n\tFirstfit");

fprintf(fp,”\n**********************************************”);

ﻩbreak;

ﻩ case'4':fprintf(fp,”\n\n\n\n\tLast fit”);

ﻩfprintf(fp,"\n**********************************************”);

ﻩbreak;

}

ﻩfclose(fp);

ﻩreturn fitMethod;

}

voidinputJob(void) /*从键盘输入作业到D盘得JOB文件*/

int /*id,size,*/status=0,jobnum= 0;

ﻩFILE *fp;

char id[10],size[10];

ﻩopen,"d:\\job、cl”,"w”);

fprintf(fp,”job_ID\tsize\tstatus");

ﻩprintf("\n\n\n\nPlease input the jobs asfallow !\ \nEnter a integer smallerthan 1 to quit 、\njob_ID\tsize\n");

ﻩdo{

/*ﻩscanf("%d%d”,&id,&size); */

相关文档
最新文档