Computer Science/운영체제
운영체제 면접 예상질문 3주차
somm12
2024. 8. 29. 15:17
- 기아 상태가 무엇인가요?
- 프로세스가 원하는 자원을 계속 할당 받지 못하는 상태를 기아상태라고 말합니다.
- 기아 상태를 어떻게 해결할 수 있나요?
- 공정한 자원 할당을 위해 시간 제한 및 우선순위 부여와 같은 방법을 사용하여 모든 프로세스가 적절한 기회를 가지도록 해야 합니다.
- 조금더 자세한 예시를 들자면,
- 우선순위 스케줄링 (Priority Scheduling)
- 각 프로세스나 스레드에 우선순위를 할당하여, 자원에 대한 접근 권한을 우선순위에 따라 부여하는 방법
- 시간 제한 (Timeouts)
- 일정 시간이 지나면 자원을 기다리는 프로세스나 스레드한테 자원을 할당해주는 방법
- 공정한 자원 할당을 위해 시간 제한 및 우선순위 부여와 같은 방법을 사용하여 모든 프로세스가 적절한 기회를 가지도록 해야 합니다.
- CPU 스케줄링에 대해 설명해주세요.
- CPU 스케줄링은 다중 프로세스 또는 다중 스레드 환경에서 CPU 자원을 효율적으로 할당하는 방법을 결정하는 작업을 말합니다.
- 여러 프로세스 또는 스레드가 실행을 기다리는 상황에서 CPU를 어떤 순서로 얼마나 오랫동안 할당할지를 관리하는 중요한 운영체제 기능 중 하나입니다.
- 스케줄러의 종류는 무엇이 있나요?
- 장기 스케줄러, 단기 스케줄러, 중기 스케줄러가 있습니다.
- 장기 스케줄러
- 어떤 프로세스를 ready queue에 보낼지 결정하는 스케줄러입니다.
- 프로세스에 메모리를 할당하며, 메모리에 동시에 올라가 있는 프로세스의 수를 조절하는 역할을 합니다.
- 단기 스케줄러
- 준비 상태의 프로세스 중에서 어떤 프로세스를 다음에 실행시킬지 결정하는 스케줄러입니다.
- 중기 스케줄러
- 여유 공간 마련을 위해서 프로세스를 통째로 메모리에서 디스크로 쫓아내는 역할을 하며, 메모리에 적재된 프로세스의 수를 조절하는 스케줄러입니다.
- 선점형 스케줄링과 비전형 스케줄링의 차이가 무엇인가요?
- 선점형 스케줄링은 어떤 프로세스가 CPU를 할당받아 실행 중이더라도 운영체제가 CPU를 강제로 빼앗을 수 있는 스케줄링 방식입니다.
- 비선점형 스케줄링은 스스로 CPU를 반납하기 전까지는 CPU를 빼앗기지 않는 스케줄링 방식입니다.
- 선점형 방식의 특징은
- CPU를 독점할 수 없어서 대화형이나 시분할 시스템에 적합.
- 뺏기 때문에 컨텍스트 스위칭 오버헤드가 많다.
- 비선점형 방식의 특징은
- 독점을 하는 방식이라 컨텍스트 스위칭 오버헤드가 적다
- 프로세스의 실행이 끝날 때까지 기다려야하므로, 일괄 처리 방식에 적합합니다.
- 선입선출 스케줄링(FCFS)에 대해 설명해주세요.
- 먼저 온 순서대로 먼저 처리하는 방식입니다.
- 구현이 쉽다는 장점이 있음.
- 하지만 CPU를 오래 쓰는 프로세스가 먼저 도착한다면, 다른 프로세스들은 오래 기다려야한다는 특징이 있음.
- 최단 작업 우선 스케줄링(SJF)에 대해 설명해주세요.
- CPU를 사용하고자 하는 시간이 가장 짧은 프로세스에게 CPU 제어권을 넘겨주는 방식입니다.
- CPU 사용시간이 짧은 프로세스는 사용 후, CPU를 바로 넘겨주는 방식이라 평균 대기 시간이 작은방식입니다.
- 최소 잔류 시간 우선 스케줄링(SRTF) 방식에 대해 설명해주세요.
- 프로세스의 남은 실행 시간이 가장 짧은 것부터 우선적으로 처리하는 CPU 스케줄링 방식.
- 선점형 스케줄링이므로, 새로운 프로세스가 도착하거나 기존의 프로세스가 종료될 때마다 CPU를 재할당합니다.
- 평균 대기 시간과, 응답시간을 최소화할 수 있지만, 실행시간이 긴 프로세스는 계속해서 선점당하는 기아현상이 발생할 수 있음.
- 우선순위 스케줄링에 대해 설명해주세요.
- 프로세스나 작업에 우선순위를 부여하여 실행 순서를 결정하는 스케줄링 방식입니다.
- 우선순위 스케줄링에는 정적/동적 방식의 스케줄링이 있다.
- 정적 우선순위 스케줄링
- 프로세스나 작업이 생성될 때 우선순위가 정해지고 변경되지 않는 방식
- 동적 우선순위 스케줄링
- 프로세스나 작업의 상태에 따라 우선순위가 변화하는 방식
- 정적 우선순위 스케줄링
- 라운드 로빈 스케줄링에대해 설명해주세요.
- 선점형 스케줄링 알고리즘으로, 준비 큐에 도착한 순서에 따라 cpu제어권을 받지만 정해진 시간 할당량에 의해 실행을 제한합니다.특징
- CPU를 독점하지 않고 공평하게 이용할 수 있으며 대화형 운영체제에 유용합니다.
- 시간 할당량이 너무 크면 FCFS 스케줄링과 같아질 수 있고, 시간 할당량이 너무 적으면 문맥 교환에 따른 오버헤드가 증가할 수 있다는 특징이 있습니다.
- 시간 할당량 안에 완료되지 못한 프로세스는 준비 큐의 맨 뒤에 배치시키는 방식입니다.
- 선점형 스케줄링 알고리즘으로, 준비 큐에 도착한 순서에 따라 cpu제어권을 받지만 정해진 시간 할당량에 의해 실행을 제한합니다.특징
- 멀티 레벨 큐 스케줄링에 대해 설명해주세요.
- 레디큐를 여러개로 나누어 관리하는 스케줄링으로, 우선순위가 높은 큐를 모두 처리한 후, 낮은 우선순위의 큐를 처리하는 방식.
- 일반적으로 CPU 실행시간이 짧은 대화형 프로세스를 담기 위한 전위 큐와(라운드 로빈 방식 적용)
- CPU 실행시간이 긴 계산위주의 프로세스를 담기 위한 후위 큐로 분할되어 운영됩니다.(FCFS 방식 적용)
- 레디큐를 여러개로 나누어 관리하는 스케줄링으로, 우선순위가 높은 큐를 모두 처리한 후, 낮은 우선순위의 큐를 처리하는 방식.
- 멀티 레벨 피드백 큐 스케줄링에 대해 설명해주세요.
- 멀티 레벨 큐 스케줄링 방식에서 프로세스들이 우선 순위를 가진 큐들을 다른 큐로 이동할 수 있는 방식
- 현재 큐에서 실행을 끝내지 못하면 하위 우선순위 큐로 이동하게 됩니다.
- 우선순위가 낮은 레디큐에서 너무 오래 기다린 프로세스에 대해서는 다시 우선 순위가 높은 레디큐로 보내는 에이징 기법을 적용 합니다.
- 멀티 레벨 큐 스케줄링 방식에서 프로세스들이 우선 순위를 가진 큐들을 다른 큐로 이동할 수 있는 방식