Skip to content

Latest commit

 

History

History
255 lines (180 loc) · 12.5 KB

README.md

File metadata and controls

255 lines (180 loc) · 12.5 KB

운영체제

운영체제 기초

부팅

  • 운영체제는 어떻게 부팅되는지 부트스트랩 프로그램, 커널, 데몬 등을 가지고 설명하시오.

인터럽트

  • 인터럽트에 대해 설명하시오.
  • 중첩된 인터럽트에 대한 처리는 어떻게 하는지 설명하시오.
  • 인터럽트 벡터, 인터럽트 서비스 루틴, 프로세스 블록 등을 이용하여 인터럽트 과정에 대하여 설명하고 각 개념들을 간단히 소개하시오.
  • 디스크 컨트롤러가 요청한 파일을 다 읽고나면 CPU에게 완료됐다고 어떻게 알려주는가?
  • 프로세스가 무한루프를 돌며 쓸모없는 작업을 하고 있다면 운영체제는 어떻게 처리하는가?
  • 잦은 하드웨어 인터럽트로 인해 CPU의 효율이 떨어질 수 있다. 이를 해결하기 위한 방법은 무엇이 있는가?

시스템 콜

  • 시스템 콜(System call)이란 무엇인지 설명하시오.

이중 모드

  • 운영체제의 이중 동작 모드란 무엇인지 설명하시오.
  • 이중모드를 나누는 목적이 무엇인지 설명하시오.
  • 만약 Mode bit이 1인데 (사용자 모드일 때) 권한에 없는 불순한 기계어를 실행시키려고 하면 운영체제는 어떻게 동작하는지 설명하시오.

프로세스 - 쓰레드

  • 쓰레드에 대해 설명하시오.
  • 유저 레벨 쓰레드와 커널 레벨 쓰레드의 차이를 설명하시오.
  • 스택을 쓰레드마다 독립적으로 할당하는 이유는 무엇인가?
  • PC와 레지스터를 쓰레드마다 독립적으로 할당하는 이유는 무엇인가?
  • 왜 유저 스레드는 커널 스레드에 매핑되어야하나요?

기타

  • 커널 메모리를 구성하는 코드, 데이터, 스택 영역에 무엇을 저장하는지 설명하시오
  • 커널 메모리는 스택, 데이터, 코드로 구성되어있다. 여기서 프로세스마다 별도의 스택을 두게되는데 그 이유는 무엇인가?

프로세스

프로세스 상태

  • 프로세스는 무엇인가요?
  • I/O 작업 및 기타 이벤트가 발생했을 때 프로세스의 상태변화를 설명해주세요
  • 시간초과로 인한 인터럽트 (time sharing에 의한 인터럽트)가 발생했을 때 프로세스의 상태변화를 설명해주세요
  • 왜 스레드를 만드는 대신 자식 프로세스를 만드나요? (반대 질문: 왜 자식 프로세스를 만드는 대신 스레드를 만들까요?)
  • 프로세스간의 커뮤니케이션을 하는 방법 두 가지는 무엇이 있을까요?
  • 메모리에 많은 프로세스가 올라와서 다음 프로세스가 못올라오는 상황일 때, 어떻게 처리 될까요?
  • 만약 프로세스가 필요한 데이터가 메모리에 없다면 어떻게 될까요?
  • 프로세스의 new, running, ready, blocked(waiting), terminated 상태에 대해 설명하라
  • 프로세스가 running을 멈추는 경우를 모두 말해보아라
  • 프로세스가 running에서 ready상태가 되는 사례는 무엇이 있는가?
  • 프로세스가 blocked상태가 되는 사례는 무엇이 있는가?
  • CPU 스케줄링이 발생할 때 프로세스상태는 어떻게 변화하는가?
  • 부모 프로세스를 종료시킬 때 그 아래의 자식 프로세스들은 어떻게되는가?

PCB

  • PCB는 무엇인가?
  • PCB는 어떤 정보들은 저장하나요? (구성요소)
  • PCB는 커널의 주소공간 어느 영역에 위치하는가?
  • PCB에 PC를 포함한 Register값을 보관하는 이유는?

문맥교환(context switching)

  • 문맥교환(context switching)에 대해 설명하시요
  • 문맥교환이 일어나는 경우는 무엇이 있는가?
  • 문맥교환은 어떤 문제를 가지고 있나요?
  • 프로세스 A 에서 커널 모드로 갔다가 다시 프로세스 A 로 CPU를 할당한다면 이를 문맥교환이라고 하나요?
  • process context switching이 thread context switching보다 오버헤드가 심한이유는?

CPU 스케줄링

스케줄링

  • CPU 스케줄링이 왜 필요할까요?
  • 장기 중기 단기 스케줄링의 특징은?
  • 선점 스케줄링과 비선점 스케줄링의 차이는 무엇인지 설명하고, 각 스케줄링 방식에는 어떤 알고리즘이 있는지 말해주세요.
  • 선점형으로 스케줄링을 하게 된다면 주의할 부분이 있을까요?
  • 요즘 운영체제에선 선점형으로 스케줄링 알고리즘을 많이 사용하는데, 이유가 있을까요?
  • 스케줄링 성능 지표엔 CPU utilization(이용률), Throughput(처리량), Turnaround time(소요시간, 반환시간), Waiting time(대기 시간), Response time(응답 시간)이 있다. 각각에 대해 설명하라
  • 스케줄링 평가 지표중 시스템 관점의 지표와 사용자 관점의 지표는 무엇이 있는가?

SJF(Shortest Job First) 스케줄링

  • SJF에 대해 설명하시오
  • SJF의 장점과 단점은?
  • Shortest Process Next의 단점을 극볼할 수 있는 방법은 무엇인가?
  • SJF와 우선순위 스케줄링 알고리즘의 차이를 비교하면서 설명해주세요

FCFS(First Come First Service) 스케줄링

  • FCFS에 대해 설명하시오
  • FCFS의 단점은?

RR(Round Robin) 스케줄링

  • RR 스케줄링에 대해 설명하시오
  • 라운드 로빈의 장점은 뭐라고 생각하세요?
  • Round Robin 알고리즘에 에서 time quantum이 너무 작거나 큰 경우에는 각각 어떤 문제가 있을까요?
  • 본인이 만약 라운드 로빈 스케줄링 알고리즘을 만든다고 하면 어떤 자료구조를 사용하실껀가요? 그 이유는 뭐죠?

Priority 스케줄링

  • Priority 스케줄링에 대해 설명하시오
  • 우선순위 스케줄링 알고리즘의 단점은 무엇이고 보완하기 위한 방법이 있나요? 없다면 없다고 말하셔도 됩니다.

다중 처리기 스케줄링

  • 다중처리기 스케줄링 대해 설명하라
  • 다중 처리기 스케줄링에서 고려 해야할만한 현상은 뭐가 있을까요?
  • 다중프로세서 스케줄링에서 로드밸런싱은 무엇이고, 로드밸런싱을 하는 방식 두가지를 설명해주세요.
  • 다중프로세서 스케줄링에서 비대칭형 멀티프로세싱이랑 대칭형 멀티프로세싱의 차이는?
  • 처리기 친화성(processor affinity)란 무엇이며, 왜 필요한가요?

멀티레벨큐

  • 멀티레벨큐 대해 설명하라
  • 멀티 레벨 큐에 레디 큐에 고정 우선순위 방식을 사용할 때, 어떤 문제점이 있을까요? 그리고 어떻게 해결할 수 있을까요?
  • 멀티 레벨 큐와 멀티 피드백 큐를 비교하면서 설명해줄래요?

실시간 스케줄링

  • 실시간 스케줄링에 대해 설명하라
  • 실시간 스케줄링에서 어떤 스케줄링 알고리즘을 사용할까요?
  • soft real time 과 hard real time의 차이는?
  • 리얼타임 CPU 스케줄링을 하기 위한 알고리즘은 어떤 것이 있나요?

디스패쳐

  • 디스패처는 무슨 일을 할까요?
  • 만약 디스패처 레이턴시가 길다고 하면 라운드 로빈의 어떤 설정을 수정하면 좋을까요?

프로세스 동기화

  • 병행과 병렬의 차이는?
  • 동기와 비동기의 차이는 무엇인가?

상호 배제

  • 상호 배제 소프트웨어 하드웨어 차이
  • 상호 배제 소프트웨어 단점
  • 상호 배제(Mutual Exclusion)에 대해 설명하시오.
  • 상호 배제를 위한 알고리즘에 대해서 아는대로 설명하시오.

동기화

  • 동기화가 무엇인가요?
  • 다중 처리 시스템에서 자원을 수정 할때 생길 수 있는 문제
  • 프로세스 동기화를 왜 해줘야 할까요?

세마포어 & 모니터

  • Semaphores는 무엇이고 종류는 무엇이 있는가?
  • Semaphores의 단점은 무엇인가?
  • 굳이 세마포어 자료형을 사용해서 공유데이터를 동기화하는 이유는?
  • 세마포어와 뮤택스의 차이를 설명하시오
  • 모니터는 무엇인가?
  • 모니터는 무엇을 해결하려고 나왔을까요
  • 모니터와 세마포어의 차이는?
  • 뮤택스와 모니터의 차이를 설명하시오.
  • 모니터가 상호배제를 실현하는 방법에 대해 설명하시오.

임계 영역

  • 임계영역(critical section)에 대해 설명하시오.
  • 임계영역이 만족해야 하는 세 가지 조건을 설명하시오.

경쟁 상태

  • 프로세스들이 공유 데이터에 대해 서로 접근을 시도하는 상황인 경쟁상태으로 인한 문제
  • OS에서 race condition(동일한 데이터에 접근한 상태)은 언제 발생하는가?

데드락(교착상태)

  • 교착 상태가 무엇인가?
  • Deadlock의 발생 조건은 무엇이 있는가? (4가지)
  • 배타적 사용 및 순차적 재사용 가능 자원에 대한 교착 상태의 발생과 해결책
  • 안전 상태(Safe State)에 대해 설명하시오.

데드락 상태 처리

  • Deadlock을 방지(처리)하는 방법은 무엇이 있는가?
  • 교착상태의 복구 기법의 두 가지 방식에 대해 설명하시오.
  • 교착상태의 회피 기법 알고리즘 중 하나인 Banker's Algorithm에 대해 설명하시오.
  • dijkstra 은행가 알고리즘 설명
  • 교착상태 회복 기법들 설명
  • 교착상태의 복구기법인 프로세스 종료 방식을 사용하면 어떤 방식으로 프로세스를 종료시켜야 하는가? 그리고 그 방식의 단점을 설명하시오.
  • 교착상태의 복구기법인 자원 선점에 의한 방식이 프로세스 종료방식과 어떤 차이점이 있는지 설명하시오.

메인 메모리

주소 바인딩

  • 주소 바인딩 방식은 무엇이 있는지 각각에 대해 설명하시오.
  • MMU의 역할은 무엇이며 장점은 어떤 것들이 있는가?

동적로딩, 동적링킹, 중첩, 스와핑

  • 다중 프로그래밍 환경에서 메모리 사용의 효율성을 높이기위한 방법엔 무엇이 있는가? (메모리 동적로딩)
  • 매번 코드를 컴파일할 때 마다 코드에 사용된 라이브러리 파일을 함께 컴파일하면 실행파일의 크기가 커진다. 어떻게 해결할 수 있는가? (메모리 동적연결)
  • 중첩 (overlay)은 언제 사용하는가?
  • 스와핑의 정의와 사용하는 목적에 대하여 설명하시오.

물리적 메모리의 연속할당방식

  • 물리적 메모리의 연속할당 방식에서 고정분할과 가변분할을 차이는?
  • 메모리의 고정할당방식의 단점은 무엇인가?
  • 가변분할 방식에서 최초적합(first-fit), 최적적합(best-fit), 최악적합(worst-fit)에 대해 설명하시오.
  • 가변분할 방식에서 최초적합의 단점을 보완하는 알고리즘을 설명하시오. (next-fit)
  • 외부 조각과 내부 조각의 차이는 무엇인가요?
  • 버디 시스템에 대해 설명하시오.
  • 가변분할 방식에서 홀(Hole)을 병합하는 방법에 대해 설명하시오. (컴팩션)

물리적 메모리의 불연속할당방식

  • 페이징 기법의 장단점에 대하여 설명하시오.
  • 페이징(paging)에서 가상주소(페이지 번호 p, 페이지 내에서의 위치 d)를 바탕으로 실 주소를 찾는 과정을 설명하시오.
  • 페이징에서 페이지 테이블에 접근한 후 다시 메모리에 접근하게되면 오버헤드가 발생한다. 어떻게 해결하는가?
  • TLB의 역할에 대하여 설명해주세요.
  • 세그멘테이션 기법의 장단점에 대하여 설명하시오.
  • 페이징과 세그먼테이션 기법의 장점을 이용한 페이지드 세그멘테이션에 대하여 설명시오.

가상 메모리

가상 메모리

  • 가상메모리는 무엇을 지칭하는가?

페이지 부재

  • 페이지 부재에 대해 설명하시오.
  • 요구 페이징의 장점은 무엇인가?
  • 요구 페이징이 페이지 부재를 처리하는 과정을 설명하시오.

페이지 교체 알고리즘

  • 페이지 교체 알고리즘 중 최적 알고리즘에 대하여 설명하시오.
  • 페이지 교체 알고리즘 중 선입선출(FIFO) 알고리즘의 단점은 무엇인가?
  • 페이지 교체 알고리즘 중 LRU 알고리즘의 교체 기준은 무엇인가?
  • LRU 알고리즘과 LFU 알고리즘의 차이는 무엇인가?
  • 클럭 알고리즘(second-chance)에 대해 설명하시오.
  • 대부분의 시스템에서 LRU, LFU보다 클럭알고리즘을 사용하는 이유는 무엇인가?

전역 교체와 지역 교체

  • 전역교체와 지역교체는 무엇인가?

쓰레싱

  • 쓰레싱이 무엇인지 설명하시오.
  • 워킹셋(Working set) 알고리즘이란 무엇인지 설명하시오.
  • 페이지 부재 빈도(PFF) 알고리즘이란 무엇인지 설명하시오.