서술형: ‘호위함 효과(Convoy Effect)‘의 의미와 이를 해결하기 위한 알고리즘을 쓰시오.
정답: 실행 시간이 짧은 프로세스들이 긴 프로세스의 종료를 기다리는 현상이며, SJF나 STCF로 해결 가능함
서술형: 왜 공정성과 성능(반환 시간)은 동시에 달성하기 어려운지 서술하시오.
정답: 성능을 위해 짧은 작업을 먼저 끝내려 하면(SJF) 긴 작업의 응답성이 나빠지고, 공정하게 나누면(RR) 작업들의 개별 완료 시간이 늦어지기 때문임
단답형: 작업이 완료된 시각에서 도착 시각을 뺀 성능 지표는?
정답: 반환 시간(Turnaround time)
단답형: 여러 작업을 공평하게 나누었는지 측정하는 지표의 이름은?
정답: Jain’s Fairness Index
08
객관식: MLFQ에서 새로운 작업이 진입할 때의 규칙은?
① 가장 낮은 큐에 배치 ② 가장 높은 큐에 배치 ③ 중간 큐에 배치
객관식: 스케줄러 조작(Gaming)을 방지하기 위해 도입된 규칙은?
① 규칙 1 ② 규칙 3 ③ 규칙 4 (시간 할당량 소진 시 강등)
객관식: MLFQ의 기원과 관련 있는 시스템은?
① CTSS (Compatible Time-Sharing System) ② MS-DOS ③ Windows 3.1
계산: 최상위 큐의 타임 슬라이스가 10ms인 시스템에서, 장기 실행 작업이 최소 5%의 CPU를 보장받으려면 부스트 주기 S는 얼마여야 하는가?
정답: 200ms (10ms / 200ms = 0.05. 즉, 200ms마다 한 번은 최상위 큐에서 10ms를 실행할 기회를 얻어야 함)
계산: 작업 A가 Q2에서 4ms 사용 후 I/O 호출, 다시 4ms 사용 후 I/O 호출을 했다. 타임 슬라이스가 10ms일 때, 조작 방지 규칙(새 규칙 4) 적용 시 남은 할당량은?
정답: 2ms (총 8ms를 사용했으므로 남은 2ms를 다 쓰면 강등됨)
서술형: ‘부두 상수(Voodoo constants)‘의 의미와 MLFQ에서의 대표적인 예시를 쓰시오.
정답: 정확한 값을 결정하기 위해 흑마술이 필요한 것처럼 어려운 설정 값을 의미하며, 대표적으로 우선순위 상향 조정 주기 S가 있다
서술형: MLFQ가 어떻게 SJF(Shortest Job First)를 근사하는지 설명하시오.
정답: 작업을 일단 짧은 작업이라 가정하고 최상위 큐에 배치한 뒤, 실행이 길어지면 단계적으로 아래 큐로 강등시켜 긴 작업임을 스스로 증명하게 만들기 때문이다
단답형: 작업이 낮은 우선순위 큐에 머물러 실행되지 못하는 현상은?
정답: 기아 상태(Starvation)
단답형: MLFQ 설계 시 성능 개선을 위해 관리자나 사용자가 힌트를 주는 인터페이스는?
정답: 조언(Advice) (예: nice 명령어)
09
객관식: 추첨 스케줄링에서 무작위 방식의 장점이 아닌 것은?
① 관리가 가볍다. ② 결정이 빠르다. ③ 작업 길이가 짧아도 비율이 정확하다. (정답: ③, 길어야 정확함)
객관식: 보폭 스케줄링에서 다음에 실행될 작업을 선택하는 기준은?
① 가장 큰 보폭 ② 가장 작은 패스(Pass) 값 ③ 가장 많은 티켓 수
계산: A(티켓 100), B(티켓 200)인 시스템에서 보폭(상수 10,000 기준)은 각각 얼마인가?
정답: A: 100, B: 50 (10,000/100=100,10,000/200=50)
계산: 작업 A가 시간 10에 종료되고 작업 B가 시간 20에 종료되었다면, 불공정 지표 U는?
정답: 0.5 (10/20)
서술형: 추첨권 양도(Ticket Transfer)가 특히 유용한 환경은?
정답: 클라이언트/서버 환경에서 클라이언트가 자신의 요청을 빨리 처리하기 위해 서버에게 티켓을 넘겨줄 때 유용함.
서술형: 추첨 스케줄링이 범용 스케줄러(MLFQ 등)보다 덜 쓰이는 이유는?
정답: 입출력과 맞물렸을 때 제대로 동작하지 않고, 각 작업에 티켓을 몇 개 할당해야 할지 결정하는 기준이 모호하기 때문임.
단답형: 사용자가 로컬 티켓을 할당하면 시스템이 글로벌 티켓으로 자동 변환하는 기법은?
정답: 추첨권 화폐(Ticket Currency)
10
객관식: 여러 CPU가 공유 메모리를 사용할 때 캐시의 데이터가 서로 달라지는 현상은?
① 캐시 친화성 ② 캐시 일관성 ③ 워크로드 불균형 ④ 작업 훔치기
객관식: SQMS(단일 큐)의 가장 큰 단점으로 시스템 규모 확장을 방해하는 요소는?
① 구현의 복잡성 ② 동기화 락 경합 ③ 워크로드 불균형 ④ 메모리 낭비
객관식: MQMS(멀티 큐)에서 특정 CPU가 유휴 상태가 되는 문제를 해결하는 기법은?
① 버스 스누핑 ② 락 프라이밍 ③ 작업 이주 및 작업 훔치기 ④ 지역성 강화
객관식: Linux 스케줄러 중 결정론적 비례 배분 방식을 사용하는 것은?
① O(1) ② CFS ③ BFS ④ MLFQ
단답형: 캐시 데이터 변경 시 버스를 감시하여 자신의 사본을 무효화하는 기법의 이름은?
정답: 버스 스누핑(Bus Snooping)
단답형: 작업이 이전에 실행되었던 CPU에서 재실행되어 얻는 이점을 무엇이라 하는가?
정답: 캐시 친화성(Cache Affinity)
단답형: 소스 큐가 대상 큐의 작업을 가져와 균형을 맞추는 구체적인 기술 명칭은?
정답: 작업 훔치기(Work Stealing)
서술형: SQMS에서 캐시 친화성을 보존하기 위해 일부 작업만 이주시킬 때의 문제점을 서술하시오.
정답: 특정 작업만 이동시키면 구현이 복잡해지며, 이동하지 않는 작업과 이동하는 작업 간의 형평성 문제가 발생할 수 있음.
서술형: 왜 MQMS가 SQMS보다 확장성(Scalability) 측면에서 유리한지 설명하시오.
정답: 공유 큐를 위한 단일 락 경합이 없으며, CPU 수에 비례하여 큐와 락이 분산되므로 캐시 경합이 줄어들기 때문임.
서술형: 작업 훔치기에서 큐를 검사하는 주기가 성능에 미치는 영향을 서술하시오.
정답: 너무 자주 검사하면 오버헤드로 확장성이 저하되고, 너무 드물게 검사하면 워크로드 불균형이 심화됨.
13
객관식: 가상 메모리 시스템의 목표가 아닌 것은?
① 투명성 ② 효율성 ③ 보호 ④ 가상 주소의 사용자 직접 매핑
(정답: ④, 매핑은 OS와 하드웨어가 수행함)
단답형: 함수 호출 시 지역 변수와 리턴 주소를 저장하며 주소 공간 하단에서 위로 커지는 영역은?
정답: 스택(Stack)
단답형: 신뢰할 수 있는 시스템 구축을 위해 프로세스를 다른 프로세스로부터 고립시켜 영향을 주지 않게 하는 원칙은?
정답: 고립의 원칙(Isolation)
서술형: 초기 시분할 시스템이 프로세스 전환 시 메모리 전체를 디스크에 저장했던 방식의 가장 큰 문제점은?
정답: 메모리 용량이 커질수록 전체 내용을 디스크에 쓰고 읽는 과정이 매우 느려지기 때문입니다
서술형: C 프로그램에서 포인터 주소를 출력했을 때 그 주소가 물리 주소가 아닌 가상 주소인 이유는?
정답: 운영체제가 메모리 가상화를 통해 사용자 프로그램에게 추상화된 주소 공간만을 제공하며, 실제 물리 주소는 보안과 관리를 위해 숨기기 때문입니다
14
**1. 객관식: malloc() 호출 실패 시 반환되는 값은?
- ① 0 ② -1 ③ NULL ④ Segmentation Fault
2. 객관식: 해제된 메모리를 가리키는 포인터를 무엇이라 하는가?
- ① Null Pointer ② Dangling Pointer ③ Magic Pointer ④ Break Pointer
3. 객관식: 힙 영역을 관리하기 위해 실제 라이브러리가 OS에 요청하는 시스템 콜은?
- ① malloc ② free ③ brk ④ calloc
4. 코드흐름추적: strcpy(dst, src) 호출 전 dst에 malloc을 하지 않으면 어떤 결과가 발생하는가?
- 정답: **세그멘테이션 폴트(Segmentation Fault)가 발생함.
5. 코드흐름추적: malloc(strlen(src))를 통해 문자열을 복사할 공간을 만들 때 발생하는 오류의 명칭은?
- 정답: 버퍼 오버플로우(문자열 끝 NULL 문자를 위한 +1 공간이 부족하기 때문임).
6. 코드흐름추적: free()를 호출한 직후 동일한 포인터로 free()를 한 번 더 호출하면?
- 정답: 이중 해제(Double Free) 오류로 프로그램이 크래시될 수 있음.
7. 서술형: 왜 free(ptr) 호출 시 해제할 메모리의 크기를 명시하지 않아도 되는지 설명하시오.
- 정답: 메모리 할당 라이브러리가 할당 시 ‘헤더’ 블록에 크기 정보를 저장해 두기 때문임.
8. 서술형: 실행 시간이 매우 짧은 프로그램에서 메모리 누수가 치명적이지 않은 이유는?
- 정답: 프로세스가 종료될 때 운영체제가 해당 프로세스에 할당된 모든 페이지를 강제로 회수하기 때문임.
9. 서술형: malloc과 calloc의 결정적인 차이점은 무엇인가?
- 정답: calloc은 메모리를 할당한 후 해당 영역을 모두 0으로 채워서 반환하여 초기화 오류를 방지함.
10. 단답형: 힙의 마지막 위치를 나타내며 brk 시스템 콜에 의해 이동되는 지점은?
- 정답: break.
15
객관식: 베이스가 32 KB이고 바운드가 16 KB일 때, 가상 주소 15 KB의 물리 주소는?