목차
1. 함수의 기능 및 파라미터
1.1 구조체
1.2 7 가지 함수
2. 전체 흐름
2.1 Flow Chart
3. 소스코드
3.1 소스코드
3.2 실행결과
3.2.1 Visual Studio
3.2.2 Ubuntu
3.3 타 코드와의 차별점
1.1 구조체
1.2 7 가지 함수
2. 전체 흐름
2.1 Flow Chart
3. 소스코드
3.1 소스코드
3.2 실행결과
3.2.1 Visual Studio
3.2.2 Ubuntu
3.3 타 코드와의 차별점
본문내용
본 코드의 main함수가 실행되면 FCFS 스케줄링이 어떻게 실행되는지 함수 별로 나누어 그렸다. 직사각형은 연산을, 마름모는 if문을, 동그라미는 상태를 나타낸다. 코드에서는 직접 명시하지 않은 큐도 시각화 했다. 위 차트의 의 <모든 프로세스 작업완료?>에서 NO가 선택되면 다시 큐의 head로 가서 준비중인 프로세스를 꺼내 작업을 실행한다.
1. #include
2. #include
3.
4. int get_numOfProcess(); //프로세스 개수 입력받기
5. void get_Process(int n); //프로세스 별 도착시간, 실행시간 입력받기
6. void sort(int n, int pos, int i); //구조체 정렬
7. void swap(int i, int pos); //정렬할때 구조체 내 변수 swap
8. void doProcess(int *sum, int i, int *avwt, int *avtat); //전체 시간, 프로세스 별 대기시간, 반환시간 계산
9. void calc_avg(int avwt, int avtat, int i); //평균대기시간, 평균 반환시간 계산 및 출력
10.
11.
12. //프로세스 구조체 선언
13. struct process {
14. int process; //프로세스 번호
15. int arrival; //도착 시간
16. int burst; //작업 시간
17. int wait; //대기 시간
18. int tat; //반환 시간
19. };
20.
21. //구조체 생성
22. struct process *p;
23.
24. //프로세스 개수 입력받기
25. int get_numOfProcess() {
26. int n;
27. printf("프로세스 개수를 입력하세요:t");
28. scanf_s("%d", &n);
29. return n;
30. }
1. #include
2. #include
3.
4. int get_numOfProcess(); //프로세스 개수 입력받기
5. void get_Process(int n); //프로세스 별 도착시간, 실행시간 입력받기
6. void sort(int n, int pos, int i); //구조체 정렬
7. void swap(int i, int pos); //정렬할때 구조체 내 변수 swap
8. void doProcess(int *sum, int i, int *avwt, int *avtat); //전체 시간, 프로세스 별 대기시간, 반환시간 계산
9. void calc_avg(int avwt, int avtat, int i); //평균대기시간, 평균 반환시간 계산 및 출력
10.
11.
12. //프로세스 구조체 선언
13. struct process {
14. int process; //프로세스 번호
15. int arrival; //도착 시간
16. int burst; //작업 시간
17. int wait; //대기 시간
18. int tat; //반환 시간
19. };
20.
21. //구조체 생성
22. struct process *p;
23.
24. //프로세스 개수 입력받기
25. int get_numOfProcess() {
26. int n;
27. printf("프로세스 개수를 입력하세요:t");
28. scanf_s("%d", &n);
29. return n;
30. }
소개글