크래프톤 정글/TIL

PintOS 프로젝트 2주차 커널 모드, Context Switching, fsync()

양선규 2024. 5. 28. 15:29
728x90
반응형

1.1 커널 모드에서 실행될 수 있는 작업

-> 공유 자원 관리

- 공유 자원 관리는 운영체제의 중요한 기능 중 하나로, 주로 커널 모드에서 실행된다.

- 파일시스템, 메모리, 프린터 등과 같은 자원은 여러 프로세스에 의해 동시에 요청될 수 있기에, 접근과 사용을 적절히 관리하는 것이 필수적이다.

- 커널 모드는 이러한 자원들에 대한 접근을 제어하고 충돌/데이터 손상을 방지한다.

 

1.2 공유 자원 관리가 사용자 모드에서 실행되지 않는 이유

- 여러 사용자 또는 프로세스가 자원에 직접 접근할 경우, 데이터의 일관성과 안정성이 위협받을 수 있기 때문이다.

 

 

2. 운영체제에서 Context Switching이 발생하는 과정에서 어떤 정보가 저장되고 복원되는가?

- 현재 프로세스의 상태(Context, 문맥)를 저장하고 다음에 실행할 프로세스의 저장된 상태를 복원한다.

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

 

 

3.1 fsync()함수의 작동 원리와 역할

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

- 파일에 대한 쓰기 작업이 메모리에만 저장되는 것이 아니라, 실제 저장 매체(디스크)에 반영되도록 보장한다

- fsync()의 중요한 역할 중 하나는 시스템이 예기치 않게 중단되더라도 데이터의 무결성을 보장하는 것

 

3.2 fsync()를 사용할 때 주요 성능상의 영향

- 디스크 I/O 작업이 증가하여 시스템의 전반적인 성능 저하가 발생할 수 있음

- 빈번한 fsync() 호출은 디스크의 작업 부하를 증가시키고, 결과적으로 시스템 반응 속도를 늦출 수 있다.

728x90
반응형