Time Shared Priority Queue Scheduling(프로세서 우선순위에 따른 운영체제 스케줄링)
- 최초 등록일
- 2008.05.20
- 최종 저작일
- 2007.04
- C언어
- 가격 3,000원
소개글
프로그램 개요
- 입력으로 Process id, priority 필드와 computingtime 필드를 받아 priority queue
를 관리하며 scheduling하는 프로그램을 작성한다.
- priority queue는 3개의 queue로 분리되며, priority 값이 1 - 10사이가 가장 높은
단계의 queue(Queue ID = 1)에서 관리된다. Priority 값이 11 - 20사이는 중간
단계의 queue(Queue ID = 2)에서 관리되며, priority 값이 21 – 30인 경우에는
가장 낮은 단계의 queue(Queue ID =3)에서 관리된다.
- 각 queue에서는 priority 가 높을수록(숫자가 적을수록 priority 가 높다) head 가
까이에 위치된다. Priority가 같은 경우에는 FIFO(먼저 들어온 것이 priority가 높
음)로 처리된다.
- priority queue 초기화 function(initialize_queue())은 queue의 초기화 기능을 수
행한다.
- priority queue 삽입 function(insert_queue())은 priority에 따라서 원소를 적절한
queue에 삽입한다.
- Scheduling은 현재 queue에서 가장 priority가 높은 원소를 선택하여 CPU를 할당하
며, Process ID, Queue ID, priority, computing_time, turnaround_time을 출력
한다.
- Time Quantum은 20이며, 20이내에 수행을 종료하지 못하면 해당 Queue의 맨 마
지막에 다시 연결되어, 나중에 순서가 되면 CPU를 할당받아 나머지 작업을 처리한
다.
- 입력은 file에서 읽어오며, 20개의 {process ID, priority, computing_time} 필드를
입력으로 가진다.
주석은 라인마다 달려있어 이해하기 편합니다.
file.txt는 밑에 형식으로 하여 결과가 나왔습니다.
1 5 55
2 8 35
3 20 20
4 30 45
5 18 80
6 25 60
7 40 35
8 10 25
9 19 15
10 7 10
컴파일 실행환경
Microsoft visual c++, 유닉스, 리눅스
참고 자료
없음