- 운영체제는 어떻게 부팅되는지 부트스트랩 프로그램, 커널, 데몬 등을 가지고 설명하시오.
- 인터럽트에 대해 설명하시오.
- 중첩된 인터럽트에 대한 처리는 어떻게 하는지 설명하시오.
- 인터럽트 벡터, 인터럽트 서비스 루틴, 프로세스 블록 등을 이용하여 인터럽트 과정에 대하여 설명하고 각 개념들을 간단히 소개하시오.
- 디스크 컨트롤러가 요청한 파일을 다 읽고나면 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에 PC를 포함한 Register값을 보관하는 이유는?
- 문맥교환(context switching)에 대해 설명하시요
- 문맥교환이 일어나는 경우는 무엇이 있는가?
- 문맥교환은 어떤 문제를 가지고 있나요?
- 프로세스 A 에서 커널 모드로 갔다가 다시 프로세스 A 로 CPU를 할당한다면 이를 문맥교환이라고 하나요?
- process context switching이 thread context switching보다 오버헤드가 심한이유는?
- CPU 스케줄링이 왜 필요할까요?
- 장기 중기 단기 스케줄링의 특징은?
- 선점 스케줄링과 비선점 스케줄링의 차이는 무엇인지 설명하고, 각 스케줄링 방식에는 어떤 알고리즘이 있는지 말해주세요.
- 선점형으로 스케줄링을 하게 된다면 주의할 부분이 있을까요?
- 요즘 운영체제에선 선점형으로 스케줄링 알고리즘을 많이 사용하는데, 이유가 있을까요?
- 스케줄링 성능 지표엔 CPU utilization(이용률), Throughput(처리량), Turnaround time(소요시간, 반환시간), Waiting time(대기 시간), Response time(응답 시간)이 있다. 각각에 대해 설명하라
- 스케줄링 평가 지표중 시스템 관점의 지표와 사용자 관점의 지표는 무엇이 있는가?
- SJF에 대해 설명하시오
- SJF의 장점과 단점은?
- Shortest Process Next의 단점을 극볼할 수 있는 방법은 무엇인가?
- SJF와 우선순위 스케줄링 알고리즘의 차이를 비교하면서 설명해주세요
- FCFS에 대해 설명하시오
- FCFS의 단점은?
- RR 스케줄링에 대해 설명하시오
- 라운드 로빈의 장점은 뭐라고 생각하세요?
- Round Robin 알고리즘에 에서 time quantum이 너무 작거나 큰 경우에는 각각 어떤 문제가 있을까요?
- 본인이 만약 라운드 로빈 스케줄링 알고리즘을 만든다고 하면 어떤 자료구조를 사용하실껀가요? 그 이유는 뭐죠?
- 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) 알고리즘이란 무엇인지 설명하시오.