
인프런 워밍업 클럽 CS 3기 2주차 미션 (운영체제)
운영체제
FIFO 스케줄링의 장단점이 뭔가요?
장점:
- 먼저 온 프로세스가 먼저 CPU를 사용하는 First In First Out의 구조를 가지기 때문에 단순하고 직관적입니다.
단점:
- 현재 실행 중인 프로세스가 완전히 끝나야 다음 프로세스가 실행되기 때문에 먼저 도착한 실행시간이 긴 프로세스가 완료될 때까지 기다려야 하는 Convoy effect(호위 효과)가 일어날 수 있습니다.
- FIFO 스케줄링은 비선점의 특징을 가지기 때문에 실행 중인 프로세스가 CPU를 스스로 포기하지 않는 한 강제로 CPU를 뺏을 수 없습니다.
- 만약 CPU를 사용하는 프로세스가 I/O 작업을 진행하고 있다면 CPU는 쉬고 있는 상태가 되기 때문에 CPU 사용률이 좋지 않습니다.SJF를 사용하기 여러운 이유가 뭔가요?
- 프로세스의 종료시간을 예측하는 것은 거의 불가능하기 때문입니다.
- Burst Time이 긴 프로세스는 실행 순위가 계속 뒤로 밀려 아주 오랫동안 실행되지 않을 수 있습니다.
RR 스케줄링에서 타임 슬라이스가 아주 작으면 어떤 문제가 발생할까요?
- 타임 슬라이스를 너무 작게 설정하면 컨텍스트 스위칭이 너무 자주 일어나게 되어 오버헤드가 커지게 됩니다.
운영체제가 MLFQ에서 CPU Bound Process와 I/O Bound Process를 어떻게 구분할까요?
- CPU를 사용하는 프로세스가 타임 슬라이스 전에 CPU를 스스로 반납한다면 운영체제는 이 프로세스의 CPU 사용량이 적으므로 I/O Bound Process일 가능성이 높다고 판단합니다.
- 반대로 CPU를 사용하는 프로세스가 타임 슬라이스를 오버하여 CPU 스케줄러에 의해 강제로 CPU를 뺏긴다면 운영체제는 이 프로세스의 CPU 사용량이 높으므로 CPU Bound Process일 가능성이 높다고 판단합니다.
공유자원이란무엇인가요?
- 프로세스/쓰레드 간 통신을 할 때 여러 프로세스/쓰레드가 공동으로 이용하는 자원(메모리, 변수, 파일, 데이터 등…)을 ‘공유자원’이라고 합니다.
교착상태에 빠질 수 있는 조건은 어떤 것들을 충족해야할까요?
- 교착상태의 필요조건으로는 4가지가 있습니다.
-
상호 배제
어떤 프로세스/쓰레드가 한 리소스를 점유했다면 그 리소스를 사용하는 동안 다른 프로세스에게 공유되면 안됨
식사하는 철학자에서 포크가 리소스에 해당합니다.
-
비선점
프로세스/쓰레드 A가 리소스를 점유하고 있는데 프로세스/쓰레드 B가 그 리소스를 빼앗을 수 없어야 함
식사하는 철학자에서 철학자 A가 들고 있는 포크를 철학자 B가 뺏을 수 없는 상황에 해당합니다.
-
점유와 대기
어떤 프로세스/쓰레드가 리소스를 가지고 있는 상태에서 추가적인 리소스를 원하지만 추가 리소스를 사용할 수 없어 대기하는 상태
식사하는 철학자에서 오른쪽 포크를 손에 쥔 채로 왼쪽 포크를 기다리는 상태를 의미합니다.
-
원형 대기
점유와 대기를 하는 프로세스/쓰레들의 관계가 원형(순환 구조)을 이루며, 각 프로세스가 다음 프로세스가 보유한 리소스를 기다리는 상황.
식사하는 철학자에서 서로가 서로의 포크를 원하는 원형(순환 구조)를 이루는 상황에 해당합니다.
댓글을 작성해보세요.