LabHub

운영체제 · 프로세스와 스레드 · 퀴즈

퀴즈: 프로세스와 스레드

LabHub 에서 이어서 보기

문항 7개. 정답과 해설은 풀어 본 뒤에 보여 드립니다.

  1. 같은 프로세스에 속한 두 스레드가 공유하지 않는 것은?

    1. 힙에 할당한 메모리 영역
    2. 함수 호출 스택
    3. 전역 변수와 정적 변수
    4. 열린 파일 디스크립터
  2. fork() 가 부모의 주소 공간을 통째로 복사하는 것처럼 보이지만 실제로는 싼 이유는?

    1. 쓰기 시 복사로 페이지를 공유하다가 수정 시점에만 해당 페이지를 복사하기 때문
    2. 커널이 복사를 비동기로 미루기 때문
    3. 자식 프로세스는 메모리를 쓰지 않기 때문
    4. 부모가 곧바로 종료되기 때문
  3. 컨텍스트 스위치의 실제 비용에서 가장 큰 비중을 차지하는 것은?

    1. 레지스터 값을 PCB 에 저장하고 복원하는 시간
    2. PCB 를 새로 할당하는 시간
    3. 스위치 이후 캐시와 TLB 미스가 쏟아지는 간접 비용
    4. 스케줄러가 다음 프로세스를 고르는 시간
  4. 컨테이너에서 애플리케이션을 1번 프로세스로 띄웠더니 좀비 프로세스가 쌓인다. 원인은?

    1. 컨테이너 런타임이 시그널을 전달하지 않아서
    2. 1번 프로세스는 고아가 된 자식을 거둬야 하는데 일반 애플리케이션에는 그 코드가 없어서
    3. cgroup 의 프로세스 수 제한 때문에
    4. 컨테이너 안에서는 wait 시스템 콜이 동작하지 않아서
  5. ps 출력에서 D 상태(중단 불가 대기)인 프로세스에 대한 설명으로 옳은 것은?

    1. 대개 디스크나 네트워크 파일시스템 I/O 를 기다리는 중이며 시그널로 즉시 깨울 수 없다
    2. 시그널을 정상 처리하므로 kill -9 로 즉시 종료할 수 있다
    3. CPU 를 100퍼센트 쓰며 계산 중이라는 뜻이다
    4. 종료했지만 부모가 거두지 않은 좀비 상태의 다른 이름이다
  6. CPU 바운드 작업의 스레드 수를 코어 수보다 훨씬 크게 잡으면 생기는 일은?

    1. 처리량이 스레드 수에 비례해 증가한다
    2. 컨텍스트 스위치와 캐시 오염이 늘어 오히려 처리량이 떨어질 수 있다
    3. 운영체제가 자동으로 코어 수만큼만 실행해 아무 차이가 없다
    4. 메모리 사용량만 늘고 성능은 동일하다
  7. 일대일 스레드 모델(리눅스, 윈도우)이 다대일 모델보다 나은 점은?

    1. 한 스레드의 블로킹 시스템 콜이 다른 스레드를 멈추지 않고, 여러 코어에서 진짜 병렬 실행이 가능하다
    2. 스레드 생성 비용이 더 싸다
    3. 컨텍스트 스위치가 사용자 공간에서 일어나 더 빠르다
    4. 스레드 개수에 제한이 없다