목차
1. 문제설명
2. 소스코드
2. 소스코드
본문내용
ut","w");
fscanf(input_fp,"%d",&num);
insert_value(num,input_fp);
sorting(num);
calcul(num);
display(output_fp,num);
fclose(input_fp);fclose(output_fp);
return 0;
}
void insert_value(int num,FILE *input_fp)
{
int i,input;
for(i=0;i
fscanf(input_fp,"%d",&input);
s[i].id = input;
fscanf(input_fp,"%d",&input);
s[i].arrive = input;
fscanf(input_fp,"%d",&input);
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].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;
for(j=0;j
{
if(i==end_time){
j++;
wait_plus(i,num); //현재시간i를비교해서waiting을++해줌
s[j-1].flag = 1;
if(isit_pro(i,num)){
end_time += s[j].cpu;
}
else{
end_time = s[j].arrive + s[j].cpu;
}
s[j].flag = 1;
}
else{
wait_plus(i,num);
}
}
}
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);
}
fscanf(input_fp,"%d",&num);
insert_value(num,input_fp);
sorting(num);
calcul(num);
display(output_fp,num);
fclose(input_fp);fclose(output_fp);
return 0;
}
void insert_value(int num,FILE *input_fp)
{
int i,input;
for(i=0;i
s[i].id = input;
fscanf(input_fp,"%d",&input);
s[i].arrive = input;
fscanf(input_fp,"%d",&input);
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
{
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].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;
for(j=0;j
if(i==end_time){
j++;
wait_plus(i,num); //현재시간i를비교해서waiting을++해줌
s[j-1].flag = 1;
if(isit_pro(i,num)){
end_time += s[j].cpu;
}
else{
end_time = s[j].arrive + s[j].cpu;
}
s[j].flag = 1;
}
else{
wait_plus(i,num);
}
}
}
void wait_plus(int now_time, int num)
{
int i;
for(i=0;i
s[i].waiting++;
}
}
}
int isit_pro(int now_time,int num)
{
int i;
for(i=0;i
return 1;
}
return 0;
}
void display(FILE *output_fp,int num)
{
int i,waiting=0;
for(i=1;i
}
fprintf(output_fp,"%d",waiting);
}
키워드
추천자료
컴퓨터 제어유니트
Intel 8051 microcontroller 의 구조적 측면에 대한 설명
컴퓨터 용어 정리
프로그램 입출력 방식
메모리 구조 및 종류
커널 분석(인터럽트)
RS-232C 직렬통신 프로그램
8051 조사
[경제사 개설] 무어의 법칙 (moor's law)
레지스터의 의의 및 종류
[컴퓨터의이해] 마이크로프로세서 발전과정과 컴퓨터 산업에 기여한 점 그리고 최신동향(1200...
마이크로프로세서(Microprocessor)의 발전 과정과 컴퓨터 산업에 기여한 점 그리고 최신동향...
임베디드embeded실습 레포트2
2018년 1학기 운영체제 중간시험과제물 공통(비선점 스케줄링 정책과 선점 스케줄링 정책)
소개글