SJF
본 자료는 3페이지 의 미리보기를 제공합니다. 이미지를 클릭하여 주세요.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
해당 자료는 3페이지 까지만 미리보기를 제공합니다.
3페이지 이후부터 다운로드 후 확인할 수 있습니다.

소개글

SJF에 대한 보고서 자료입니다.

목차

1. 문제설명
2. 소스코드

본문내용

);
s[i].cpu = input;
s[i].waiting = 0;
s[i].flag = 0;
}
}
void sorting(int num)
{
int i,j,temp_id,temp_cpu,temp_arrive;
for(i=0;i for(j=0;j if(s[j].arrive > s[j+1].arrive)
{
temp_id = s[j].id;
temp_cpu = s[j].cpu;
temp_arrive = s[j].arrive;
s[j].id = s[j+1].id;
s[j].cpu = s[j+1].cpu;
s[j].arrive = s[j+1].arrive;
s[j+1].id = temp_id;
s[j+1].cpu = temp_cpu;
s[j+1].arrive = temp_arrive;
}
else if(s[j].arrive == s[j+1].arrive && s[j].cpu> s[j+1].cpu)
{
temp_id = s[j].id;
temp_cpu = s[j].cpu;
temp_arrive = s[j].arrive;
s[j].id = s[j+1].id;
s[j].cpu = s[j+1].cpu;
s[j].arrive = s[j+1].arrive;
s[j+1].id = temp_id;
s[j+1].cpu = temp_cpu;
s[j+1].arrive = temp_arrive;
}
else if(s[j].arrive == s[j+1].arrive && s[j].cpu== s[j+1].cpu && s[j].id > s[j+1].id)
{
temp_id = s[j].id;
temp_cpu = s[j].cpu;
temp_arrive = s[j].arrive;
s[j].id = s[j+1].id;
s[j].cpu = s[j+1].cpu;
s[j].arrive = s[j+1].arrive;
s[j+1].id = temp_id;
s[j+1].cpu = temp_cpu;
s[j+1].arrive = temp_arrive;
}
}
}
void calcul(int num)
{
int i = s[0].arrive;
int end_time = i + s[0].cpu;
s[0].flag = 1;
int j=0;
for(;;i++)
{
if(isit_end(num))
break
else if(i==end_time){
if(isit_pro(i,num)){
j = find_next(i,num);
end_time +=s[j].cpu;
s[j].waiting = i - s[j].arrive;
s[j].flag = 1;
}
}
else if(i>end_time){
if(isit_pro(i,num)){
j=find_next(i,num);
end_time=s[j].arrive + s[j].cpu;
s[j].flag = 1;
}
}
}
}
int find_next(int now_time, int num)
{
int i,temp=100000000,posi=51,wit=0;
for(i=0;i if(s[i].flag != 1 && s[i].arrive <= now_time){
if(s[i].cpu < temp){
temp = s[i].cpu;
posi = s[i].id;
wit = i;
}
else if(s[i].cpu == temp && s[i].id < posi){
temp = s[i].cpu;
posi = s[i].id;
wit = i;
}
}
}
return wit;
}
int isit_end(int num)
{
int i;
for(i=0;i if(s[i].flag == 0)
return 0;
return 1;
}
void wait_plus(int now_time, int num)
{
int i;
for(i=0;i if(now_time > s[i].arrive && s[i].flag == 0){
s[i].waiting++;
}
}
}
int isit_pro(int now_time,int num)
{
int i;
for(i=0;i if(now_time >= s[i].arrive && s[i].flag == 0)
return 1;
}
return 0;
}
void display(FILE *output_fp,int num)
{
int i,waiting=0;
for(i=1;i waiting+=s[i].waiting;
}
fprintf(output_fp,"%d",waiting);
}

키워드

SJF,   CPU,   CPU Schedule,   스케쥴링
  • 가격1,800
  • 페이지수9페이지
  • 등록일2012.04.17
  • 저작시기2012.4
  • 파일형식한글(hwp)
  • 자료번호#740703
본 자료는 최근 2주간 다운받은 회원이 없습니다.
청소해
다운로드 장바구니