프로세스 스케줄링
- 정리
- 프로세스는 실행중인 프로그램을 의미하는 것이며
- 프로세스는 준비 상태 큐에 들어가 있다.
- 이후 프로세서로 인해 실행되게 된다면 이게 Dispatch가 된다
- 실행 상태에서 준비로 돌아간다면 Time run out이 된다.
- 여기서 현재 어디까지 진행되었는지 저장을 해야하는데 그건 PCB에서 하게 된다. (문맥교환)
- 개념
- 운영체제가 프로세스를 관리하기 위해 자동으로 생성
- 여기서 자동으로 생성하는 것 3가지 정리
- PCB
- 시스템 카탈로그: DBMS가 DB를 관리하기 위해 자동으로 생성
- 파일 디스크립터: 운영체제가 파일을 관리하기 위해 자동으로 생성
- 여기서 자동으로 생성하는 것 3가지 정리
- 운영체제가 프로세스를 관리하기 위해 자동으로 생성
- PCB 저장 종류
- Text Section
- Program Counter(pc)
- Stack
- Heap
- Data Section
- 개념
- 대기 상태에서 준비 상태로 올라가는 것을 Wake up 이라고 한다.
- 선점형
- SRT ⇒ 기하현상 생길 수 있음
- RR
- MLQ ⇒ 기하현상 생길 수 있음
- MLFQ ⇒ 에이징 기법 적용
- 비선점
- FCFS
- HRN ⇒ 에이징 기법 적용, 대기 시간이 오래 걸리는 것.
- 대기 시간 계산식
- (실행 시간 + 대기 시간) / 실행 시간
- 대기 시간 계산식
- SJF ⇒ 기하현상 생길 수 있음
- 우선순위 ⇒ 기하현상 생길 수 있음
- 기한부
- 기하현상을 해결하기 위해 에이징 기법을 적용함
- FCFS
- 최대 평균 반환 시간
- 실행 시간이 긴 순서대로 실행 후
- 총 실행 시간을 더한 뒤 프로세스 수를 평균화 하기
- 최소 평균 반환 시간
- 최대 평균 반환 시간과 반대로
- 실행 시간이 짧은 순서대로 실행 후 평균화 하기
- 최대 평균 반환 시간
- SJF
- 유형
- 평균 실행 시간, 평균 대기 시간, 평균 반환 시간을 물어보는게 많이 나온다
- 문제
- SJF 기법을 사용해 평균 실행시간을 구하시오
- P1: 18, P2: 6, P3: 9
- 풀이
- 아래과 같이 작성을 할 수 있는데 이때 평균 대기 시간은 0, 6, 15로 각 프로세스의 첫 번째끼리 더한 다음 나누면 되고 평균 실행 시간은 6, 9, 18로 각 프로세스의 두 번째끼리 더한 다음 나누면 되고 평균 반환 시간은 6, 15, 33로 각 프로세스의 세 번째끼리 더한 다음 나누면 된다.
- P2: 0 + 6 = 6
- P3: 6 + 9 = 15
- P1: 15 + 18 = 33
- 해당 문제에서는 실행 시간이었기에 두 번째인 6+9+18을 3으로 나누면 되기에 답은 11이 된다.
- 유형
Round Robin
- 문제
- 만약 RR 방식으로 모두 처리하고 남은 프로세스 작업이 하나이고 남은 할당 시간은 4시간인데 cpu 할당 시간은 2시간의 경우
- 한 번만 수행하는 것으로 4시간을 모두 처리하는게 아니라
- 원래 할당 시간으로 정해진 대로 4시간을 처리해 두 번 실행하게 된다.
- 문제
- cpu 할당 시간이 5인데
- 다른 여러 프로세스는 0, 1, 4 에 도착했고
- 하나는 6초의 경우에는 기존에 생각했던 방식대로 문제를 풀면 안되고 준비상태 큐를 유심히 체크하며 풀어야 한다.
- 그래서 실행 중간에 들어오는 프로세스를 신경 쓰며 문제를 풀어야 함
- cpu 할당 시간이 5인데
디스크 스케줄링
- 문제
- 스케줄링 처리 순서를 작성할 경우
- 현재 헤드 위치도 함께 적어줘야 한다.
- 스케줄링 처리 순서를 작성할 경우
- SCAN
- 현재 헤드위치에서 왼쪽 방향으로 간다고 했을 경우, 명시하지 않아도 0번 트랙까지 가야한다.
- 이후 0번이 되었다면 다음 트랙으로는 처리하지 않은 가장 왼쪽 트랙으로 가야한다.
- C-SCAN
- 현재 헤드위치에서 왼쪽 방향으로 간다고 했을 경우, 명시하지 않아도 0번 트랙까지 처리
- 이후 0번이 되었다면 중간 트랙을 처리하지 않고 가장 오른쪽 트랙으로 이동
- 문제
- 만약 현재 디스크 헤드는 트랙 35에서 트랙 47로 이동해 왔다고 가정한다라고 했다면
- 시작은 트랙 35가 아닌 트랙 47부터 시작을 해야한다는 것이며,
- 안쪽이 아닌 바깥쪽으로 이동한다는 것을 의미
- 또한 안쪽이 명시되지 않았다면 0이 마지막, 바깥쪽이 명시되지 않았다면 가장 큰 트랙의 번호가 마지막이 된다.
- 에션바흐(Eschenbach) 스케줄링
- 개념
- 헤드가 진행하는 과정에서 각 실린더에 대해 디스크팩의 한 번의 회전 시간 동안만 입출력 요구들을 처리하는 기법
- 즉, 한 회전 동안 서비스를 받지 못하는 요구들에 대한 처리는 다음으로 미루는 것.
- 개념
- N-step SCAN
- 기존 SCAN 방식은 중간에 새롭게 추가된 요청도 처리하면서 가기에 무한 대기 발생 가능성이 있는데 해당 문제와 응답시간을 보안한 방법으로
- 진행중에 새롭게 추가된 요청은 서비스하지 않고 다음 진행시에 서비스하는 기법
'정보처리기사' 카테고리의 다른 글
[정보처리기사] 소프트웨어 구축 (1) (1) | 2023.07.21 |
---|---|
[정보처리기사] 계산식 (3) - 크록 표현식, 퍼미션, LOC, 임계경로 (0) | 2023.07.15 |
[정보처리기사] 계산식 (1) - 서브넷 마스크, 페이지 교체 알고리즘 (0) | 2023.07.15 |
[정보처리기사] 서브넷 마스크, 서브넷 계산 (0) | 2023.07.14 |
[정보처리기사] Java 정리 (0) | 2023.07.13 |