Jungle

[TIL] 운영체제 개념 퀴즈 정리

손가든 2023. 12. 12. 15:42

금주에 오랜만에 퀴즈를 응시했다.

 

이번주는 운영체제와 관련된 문제들이 출제됬다.

 


 

1. 커널 모드에서 실행될 수 있는 작업의 예 / 커널에서 실행하는 작업들이 사용자 모드에서 실행되어선 안되는 이유

 

커널 모드에서는 파일 시스템, 메모리, I/O 자원 요청 관리를 수행한다.

 

이에 대한 접근은 사용자 모드에서 실행되어서는 안된다.

 

운영체제는 운영체제의 중요한 업무의 세가지인

 

'하드웨어를 추상화하여 디자인' / '각 프로세스가 독립적인 컴퓨터로 수행되기 위한 보호와 분리' / '컴퓨터 자원의 공유' 를 수행한다.

 

만약 사용자 모드에서 공유 자원을 직접 관리하게 되면 독립적인 컴퓨터로 수행되기 위한 보호와 분리가 통제되지 못한다.

 

따라서 사용자 모드는 system call() 함수로 커널에 공유 자원의 데이터를 요청하여 값을 다뤄야 한다.

 


 

2. 운영 체제에서 컨텍스트 스위칭이 발생하는 과정에서 어떤 정보가 저장되고 복원되는가?

 

컨텍스트 스위칭 과정에서 운영체제는 현재 프로세스의 상태(컨텍스트)를 저장하고, 다음 스케줄링된 프로세스의 저장된 상태를 복원한다.

 

저장되는 정보에는 프로세스의 프로그램 카운터, 레지스터 상태, 메모리 관리 정보, 열린 파일 목록 등이 포함된다.

 


 

3. fsync() system call 

 

fsync() 함수는 열려 있는 파일 디스크립터와 관련된 모든 수정된 데이터를 디스크에 동기화한다.

 

이는 파일 쓰기 작업이 메모리에만 저장되는 것이 아니라 디스크에 존재하는 실제 저장 매체에도 반영되도록 보장하는 역할을 한다.

 

따라서 시스템이 예기치 않게 중단되더라도 데이터의 무결성을 보장해준다.

 

 

fsync() 함수를 사용할 때 고려해야 할 점은 디스크에 직접 I/O 작업을 하기 때문에 시스템의 전반적인 성능이 저하할 수 있다.

 

따라서 빈번한 fsync()의 호출은 디스크의 작업 부하를 증가시켜 시스템의 반응 속도가 늦어질 수 있다.