1

내 운영체제 클래스에 대한 최종 질문의 예 :파일 시스템 - 메모리 매핑 파일

대부분의 운영 체제는 "메모리 맵 파일"을 지원합니다. 실행중인 프로세스의 주소 공간에 매핑되는 파일을 설명합니다. 파일에 대한 읽기 및 쓰기는 메모리 읽기 및 쓰기로 변환됩니다. map()과 unmap()이라는 두 개의 새로운 시스템 호출이 있다는 것을 상상할 수 있습니다.

a) map(); 파일 이름과 가상 주소를 받아들이므로 운영 체제가 파일을 가상 주소에서 시작하는 주소 공간에 매핑합니다. 이 호출을 지원하기 위해 가상 메모리 시스템을 사용하는 방법을 설명하십시오.

b) 고려해보십시오. unmap(); 파일을 가상 주소 공간에서 연결 해제합니다. 이 시스템 호출을 구현하기 위해 취해야 할 통계를 기술하십시오. 모든 가정을 열거하십시오.

c) 많은 UNIX 시스템에서 inode는 디스크 시작 부분에 보관됩니다. 또 다른 설계는 파일이 생성 될 때 inode를 할당하고 파일의 첫 번째 블록의 시작 부분에 inode를 놓는 것입니다. 이 대안의 장단점에 대해 토론하십시오.

d) 사용 가능한 디스크 블록에 대한 정보가 포함 된 비트 맵 또는 사용 가능 목록이 충돌로 인해 완전히 손실되면 어떻게됩니까? 이 재앙으로부터 복구 할 수있는 방법이 있습니까, 아니면 더 이상 사용할 수없는 디스크입니까? UNIX 및 FAT 스타일의 디스크 블록 할당에 대한 대답을 토론하십시오.

이 질문에 대한 토론의 모든 정보는 크게 감사하겠습니다.

답변

1

c) 오버 헤드는 디렉토리/파일 및 데이터를 검색 할 때 특히 유용합니다. 모든 파일을 검색하고 파일 크기, 사용 권한 등을 검색하는 결과가 발생합니다. 공간이 많이 필요하기 때문에 디스크 시작 부분에 많은 메모리가 필요할 수 있습니다.