- 우리가 사용하는 시스템 콜의 예시를 들어주세요.
- 시스템 콜이, 운영체제에서 어떤 과정으로 실행되는지 설명해 주세요.
- 시스템 콜의 유형에 대해 설명해 주세요.
- 운영체제의 Dual Mode 에 대해 설명해 주세요.
- 서로 다른 시스템 콜을 어떻게 구분할 수 있을까요?
- 프로그램과 프로세스, 스레드의 차이에 대해 설명해 주세요.
- PCB가 무엇인가요?
- 그렇다면, 스레드는 PCB를 갖고 있을까요?
- 리눅스에서, 프로세스와 스레드는 각각 어떻게 생성될까요?
- 자식 프로세스가 상태를 알리지 않고 죽거나, 부모 프로세스가 먼저 죽게 되면 어떻게 처리하나요?
- 리눅스에서, 데몬프로세스에 대해 설명해 주세요.
- 초기화 하지 않은 변수들은 어디에 저장될까요?
- 일반적인 주소공간 그림처럼, Stack과 Heap의 크기는 매우 크다고 할 수 있을까요? 그렇지 않다면, 그 크기는 언제 결정될까요?
- Stack과 Heap 공간에 대해, 접근 속도가 더 빠른 공간은 어디일까요?
- 다음과 같이 공간을 분할하는 이유가 있을까요?
- 스레드의 주소공간은 어떻게 구성되어 있을까요?
- 현대 OS에는 단기, 중기, 장기 스케쥴러를 모두 사용하고 있나요?
- 프로세스의 스케쥴링 상태에 대해 설명해 주세요.
- preemptive/non-preemptive 에서 존재할 수 없는 상태가 있을까요?
- Memory가 부족할 경우, Process는 어떠한 상태로 변화할까요?
- 프로세스와 쓰레드는 컨텍스트 스위칭이 발생했을 때 어떤 차이가 있을까요?
- 컨텍스트 스위칭이 발생할 때, 기존의 프로세스 정보는 커널스택에 어떠한 형식으로 저장되나요?
- 컨텍스트 스위칭은 언제 일어날까요?
- RR을 사용할 때, Time Slice에 따른 trade-off를 설명해 주세요.
- 싱글 스레드 CPU 에서 상시로 돌아가야 하는 프로세스가 있다면, 어떤 스케쥴링 알고리즘을 사용하는 것이 좋을까요? 또 왜 그럴까요?
- 동시성과 병렬성의 차이에 대해 설명해 주세요.
- 타 스케쥴러와 비교하여, Multi-level Feedback Queue는 어떤 문제점들을 해결한다고 볼 수 있을까요?
- Deadlock 이 동작하기 위한 4가지 조건에 대해 설명해 주세요.
- 그렇다면 3가지만 충족하면 왜 Deadlock 이 발생하지 않을까요?
- 어떤 방식으로 예방할 수 있을까요?
- 왜 현대 OS는 Deadlock을 처리하지 않을까요?
- Wait Free와 Lock Free를 비교해 주세요.
- 링커와, 로더의 차이에 대해 설명해 주세요.
- 컴파일 언어와 인터프리터 언어의 차이에 대해 설명해 주세요.
- JIT에 대해 설명해 주세요.
- 본인이 사용하는 언어는, 어떤식으로 컴파일 및 실행되는지 설명해 주세요.
- Shared Memory가 무엇이며, 사용할 때 유의해야 할 점에 대해 설명해 주세요.
- 메시지 큐는 단방향이라고 할 수 있나요?
- Thread Safe 를 보장하기 위해 어떤 방법을 사용할 수 있나요?
- Peterson's Algorithm 이 무엇이며, 한계점에 대해 설명해 주세요.
- Race Condition 이 무엇인가요?
- 캐시 메모리는 어디에 위치해 있나요?
- L1, L2 캐시에 대해 설명해 주세요.
- 캐시에 올라오는 데이터는 어떻게 관리되나요?
- 캐시간의 동기화는 어떻게 이루어지나요?
- 캐시 메모리의 Mapping 방식에 대해 설명해 주세요.
- 캐시의 지역성에 대해 설명해 주세요.
- 캐시의 지역성을 기반으로, 이차원 배열을 가로/세로로 탐색했을 때의 성능 차이에 대해 설명해 주세요.
- worst-fit 은 언제 사용할 수 있을까요?
- 성능이 가장 좋은 알고리즘은 무엇일까요?
- 가상 메모리가 가능한 이유가 무엇일까요?
- Page Fault가 발생했을 때, 어떻게 처리하는지 설명해 주세요.
- 페이지 크기에 대한 Trade-Off를 설명해 주세요.
- 페이지 크기가 커지면, 페이지 폴트가 더 많이 발생한다고 할 수 있나요?
- 페이지와 프레임의 차이에 대해 설명해 주세요.
- 내부 단편화와, 외부 단편화에 대해 설명해 주세요.
- 페이지에서 실제 주소를 어떻게 가져올 수 있는지 설명해 주세요.
- 어떤 주소공간이 있을 때, 이 공간이 수정 가능한지 확인할 수 있는 방법이 있나요?
- 32비트에서, 페이지의 크기가 1kb 이라면 페이지 테이블의 최대 크기는 몇 개일까요?
- volatile 키워드는 어떤 의미가 있나요?
- 싱글코어가 아니라 멀티코어라면, 어떻게 동기화가 이뤄질까요?
- LRU 알고리즘은 어떤 특성을 이용한 알고리즘이라고 할 수 있을까요?
- LRU 알고리즘을 구현한다면, 어떻게 구현할 수 있을까요?