운영체제 RoundRobin Scheduling 구현 과제
- 최초 등록일
- 2023.01.30
- 최종 저작일
- 2022.06
- 21페이지/ MS 워드
- 가격 2,500원
소개글
운영체제 RoundRobin Scheduling 구현 과제입니다. 전체 소스는 맨 마지막장에 있습니다.
목 차
I.서론
II.Flow
1.PCB 구조체 정의
2.PCB 구조체의 할당, 초기화, 반환
3.라운드로빈 스케줄링
4.시스템 시뮬레이션
III.Code (별도 첨부)
IV.실행 결과
목차
I.서론
II.Flow
1.PCB 구조체 정의
2.PCB 구조체의 할당, 초기화, 반환
3.라운드로빈 스케줄링
4.시스템 시뮬레이션
III.Code (별도 첨부)
IV.실행 결과
본문내용
II. Flow
1. PCB 구조체 정의
프로세스 ID : 우선순위는 존재하지 않으나 프로세스ID는 존재. ID는 중복될 수 없음.
실행시간 : 프로세스가 실행되는 시간
잔여시간 : 프로세스의 잔여 실행 시간. 0이 될 경우 프로세스 종료
생성시간 : 프로세스가 생성되는 시점의 시간
2. PCB 구조체의 할당, 초기화, 반환
1) 프로세스 생성 및 초기화
- 사용자로부터 [프로세스 ID, 실행시간, 생성시간]을 입력받음
- 중복되는 ID의 프로세스를 입력받을 경우 pass
- 입력받은 정보를 바탕으로 생성된 PCB 구조체를 PCB List에 연결(Live list)
- PCB List를 PCB ReadyList로 copy한 뒤 creation time을 기준으로 sorting
2) 프로세스 반환
- 프로세스 잔여시간이 0이 되었을 경우 프로세스 종료
- 잔여 시간이 0이 된 PCB ID에 해당하는 배열 index를 탐색한 뒤, 해당 index부터 끝 index까지 1씩 감소 = PCB List, PCB ReadyList 배열에서 각각 삭제
- Live Process의 갯수를 세는 변수인 cnt도 1 감소
3. 라운드로빈 스케줄링
스케줄링은 생성시간을 기준으로 정렬된 PCB ReadyList의 맨 앞부터 순서대로 진행됨
1) PCB의 잔여시간과 TQ를 비교
case1) (i번째 프로세스의 잔여시간 > TQ) 인 경우
case2) (i번째 프로세스의 잔여시간 <= TQ) 인 경우
만약 (잔여시간 <= TQ) 일 경우 스케줄링 이후 프로세스 종료(반환)
2) 프로세스의 종료 여부를 판단
case1) i번째 프로세스가 종료되지 않은 경우
(i+1)번째 프로세스의 생성시간을 확인한 뒤, 생성되지 않았으면 i번째 프로세스(=현재 프로세스)를 재스케줄링
case2) i번째 프로세스가 종료된 경우
(i+1)번째 프로세스의 생성시간을 확인한 뒤, (i+1)번째 프로세스의 실행시점까지 Jump(Do nothing)
참고 자료
없음