기술 면접 질문 정리 - 운영 체제

devJune·2023년 8월 31일
0

면접 질문 정리

목록 보기
1/2

1. 프로세스와 쓰레드의 차이에 대해 설명하라

프로세스는 실행 중인 프로그램을 말하며, 완벽히 독립적이기 때문에 메모리 영역을 다른 프로세스와 공유하지 않는다. 프로세스는 최소 1개의 쓰레드를 가지고 있다.

쓰레드는 프로세스 내에는 STACK만 따로 할당 받고, 그 이외의 메모리 영역을 공유하기 때문에 다른 쓰레드의 실행결과를 즉시 확인할 수 있다.
쓰레드는 프로세스 내에 존재하며 프로세스가 할당 받은 자원을 이용하여 실행됩니다.

2. 멀티 프로세스와 멀티 스레드의 특징에 대해 설명해달라.

멀티 프로세스는 하나의 프로세스가 죽어도, 다른 프로세스에 영향을 끼치지 않고 계속 실행된다는 장점이 있지만 멀티 스레드 보다 많은 메모리 공간과 CPU 시간을 차지한다는 단점이 있다.

멀티 스레드는 멀티 프로세스와 적은 메모리 공간을 차지하고 문맥 전환이 빠르다는 장점이 있지만 하나의 스레드에 문제가 생기면 전체 스레드가 영향을 받으며 동기화 문제도 있다는 단점이 있다.

3. 선점형 스캐줄링과, 비선점형 스캐줄링의 차이를 설명하라.

  • 선점형은 하나의 프로세스가 다른 프로세스대신에 CPU를 차지할 수 있음을 말한다.

  • 비선점형은 하나의 프로세스가 끝나지 않으면 다른 프로세스는 CPU를 사용할 수 없음을 말한다.

4. 동기와 비동기의 차이에 대해 설명하라.

  • 동기는 순차적, 직렬적으로 테스크를 수행하고,

  • 비동기는 병렬적으로 테스크를 수행한다.

예를 들어, 서버에서 데이터를 가져와서 화면에 표시하는 작업을 수행할 때,
동기는 서버에 데이터를 요청하고 데이터가 응답될 때까지 이후 테스크들은 블로킹(Blocking, 작업 중단)됩니다.

비동기는 서버에 데이터를 요청한 이후 서버로부터 데이터가 응답될 때까지 대기하지 않고(Non-Blocking) 즉시 다음 테스크를 계속해 수행합니다.

동기

  • 동기는 말 그대로 동시에 일어난다는 뜻이다. 요청과 그 결과가 동시에 일어난다는 약속이다.

바로 요청을 하면 시간이 얼마나 걸리던지 요청한 자리에서 결과가 주어져야 한다.

순서에 맞춰 진행되는 장점이 있지만, 여러 가지 요청을 동시에 처리할 수 없다.

위 그림의 (a)처럼 커피 주문을 받고 나올 때까지 기다리는 것이 동기 방식의 예시라고 할 수 있다.

비동기

  • 비동기는 동시에 일어나지 않는다를 의미한다. 요청과 결과가 동시에 일어나지 않을 거라는 약속이다.

하나의 요청에 따른 응답을 즉시 처리하지 않아도, 그 대기 시간동안 또 다른 요청에 대해 처리 가능한 방식이다.

여러 개의 요청을 동시에 처리할 수 있는 장점이 있지만 동기 방식보다 속도가 떨어질 수도 있다.

동기와 비동기는 상황에 따라서 각각의 장단점이 있다.

  • 동기방식 은 설계가 매우 간단하고 직관적이지만 결과가 주어질 때까지 아무것도 못하고 대기해야 하는 단점이 있고,
  • 비동기방식 은 동기보다 복잡하지만 결과가 주어지는데 시간이 걸리더라도 그 시간 동안 작업을 할 수 있으므로 자원을 효율적으로 사용할 수 있는 장점이 있다.
profile
지식 저장소

0개의 댓글