커널 모드에서 실행될 수 있는 작업의 예를 들고, 이러한 작업들이 사용자 모드에서 실행되지 않는 이유를 설명하세요.
[답안]
공유 자원 관리는 운영 체제의 중요한 기능 중 하나로, 주로 커널 모드에서 실행됩니다.
예를 들어, 파일 시스템, 메모리, 프린터 등과 같은 자원은 여러 프로세스에 의해 동시에 요청될 수 있으며, 이에 대한 접근과 사용을 적절히 관리하는 것이 필수적입니다. 커널 모드에서는 이러한 자원들에 대한 접근을 제어하고, 충돌이나 데이터 손상을 방지하는 역할을 합니다.
사용자 모드에서는 이러한 공유 자원의 직접 관리를 수행하지 않습니다. 이는 여러 사용자 또는 프로세스가 자원에 직접 접근할 경우 데이터의 일관성과 안정성이 위협받을 수 있기 때문입니다.

운영 체제에서 컨텍스트 스위칭이 발생하는 과정에서 어떤 정보가 저장되고 복원되는지 설명하세요.
[답안]
컨텍스트 스위칭 과정에서 운영 체제는 현재 프로세스의 상태(컨텍스트)를 저장하고, 다음에 실행할 프로세스의 저장된 상태를 복원합니다.
저장되는 정보에는 프로세스의 프로그램 카운터, 레지스터 상태, 메모리 관리 정보, 열린 파일 목록 등이 포함됩니다.
fsync() 함수의 작동 원리를 설명하고, 이 함수가 파일 시스템에서 어떤 역할을 하는지 서술하세요. 또한, fsync()를 사용할 때 고려해야 할 성능상의 영향에 대해서도 설명하세요.
[답안]
fsync() 함수는 열려 있는 파일 디스크립터와 관련된 모든 수정된 데이터를 디스크에 동기화합니다. 이는 파일의 쓰기 작업이 메모리에만 저장되는 것이 아니라, 실제 저장 매체에도 반영되도록 보장하는 역할을 합니다. fsync()의 중요한 역할 중 하나는 시스템이 예기치 않게 중단되더라도 데이터의 무결성을 보장하는 것입니다.
fsync()를 사용할 때의 주요 성능상의 영향으로는 디스크 I/O 작업이 증가하여 시스템의 전반적인 성능 저하가 발생할 수 있다는 점을 고려해야 합니다. 특히, 빈번한 fsync() 호출은 디스크의 작업 부하를 증가시키고, 결과적으로 시스템의 반응 속도를 늦출 수 있습니다.
멀티레벨 피드백 큐(MLFQ) 스케줄러를 구현하는 시스템에 5개의 프로세스가 있습니다.
도착시간 - 5, 8, 25, 27, 29
CPU 버스트 시간 - 14, 2, 5, 2, 2
MLFQ에는 3개의 대기열이 있습니다. 대기열 1과 대기열 2는 시간 할당량이 2와 5인 라운드 로빈 스케줄링으로 구현합니다. 그리고 세 번째 큐는 FCFS로 구현합니다.
가장 마지막에 완료되는 프로세스는 무엇인가요? 큐 별로 gantt chart를 그려서 풀어보세요.
[답안]
P3 입니다.

CS는 Context Switching의 약자입니다.