1.1 커널 모드에서 실행될 수 있는 작업
-> 공유 자원 관리
- 공유 자원 관리는 운영체제의 중요한 기능 중 하나로, 주로 커널 모드에서 실행된다.
- 파일시스템, 메모리, 프린터 등과 같은 자원은 여러 프로세스에 의해 동시에 요청될 수 있기에, 접근과 사용을 적절히 관리하는 것이 필수적이다.
- 커널 모드는 이러한 자원들에 대한 접근을 제어하고 충돌/데이터 손상을 방지한다.
1.2 공유 자원 관리가 사용자 모드에서 실행되지 않는 이유
- 여러 사용자 또는 프로세스가 자원에 직접 접근할 경우, 데이터의 일관성과 안정성이 위협받을 수 있기 때문이다.
2. 운영체제에서 Context Switching이 발생하는 과정에서 어떤 정보가 저장되고 복원되는가?
- 현재 프로세스의 상태(Context, 문맥)를 저장하고 다음에 실행할 프로세스의 저장된 상태를 복원한다.
- 저장되는 정보에는 프로세스의 PC(프로그램 카운터), 레지스터 상태, 메모리 관리 정보, 열린 파일 목록 등이 포함된다.
3.1 fsync()함수의 작동 원리와 역할
- 열려 있는 파일 디스크립터와 관련된, 모든 수정된 데이터를 디스크에 동기화한다
- 파일에 대한 쓰기 작업이 메모리에만 저장되는 것이 아니라, 실제 저장 매체(디스크)에 반영되도록 보장한다
- fsync()의 중요한 역할 중 하나는 시스템이 예기치 않게 중단되더라도 데이터의 무결성을 보장하는 것
3.2 fsync()를 사용할 때 주요 성능상의 영향
- 디스크 I/O 작업이 증가하여 시스템의 전반적인 성능 저하가 발생할 수 있음
- 빈번한 fsync() 호출은 디스크의 작업 부하를 증가시키고, 결과적으로 시스템 반응 속도를 늦출 수 있다.
'크래프톤 정글 > TIL' 카테고리의 다른 글
PintOS 프로젝트 2주차 [User Programs / System Call] (1) (0) | 2024.05.31 |
---|---|
PintOS 프로젝트 3주차 발제 후 티타임 / 이력서와 면접에 관한 팁들 (0) | 2024.05.30 |
PintOS 프로젝트 2주차 [User Programs / Argument Passing] (2) | 2024.05.23 |
PintOS 프로젝트 1주차 [Threads / 트러블 슈팅] (2) | 2024.05.21 |
PintOS 프로젝트 1주차 [Threads / Priority Donation] (0) | 2024.05.20 |