CS/OS

24. File Systems 1

hjkim0502 2022. 4. 12. 17:51

  • 메모리(주소로 접근), 파일(이름으로 접근)
  • reposition: 파일 내 포인터를 그 파일의 다른 곳으로 옮기는 것 (계속 연속적으로만 읽지 않을 수 있음)

  • open
    • root의 metadata 위치는 이미 알고 있어서 메모리에 올려놓고 root 파일에 있는 a의 metadata를 메모리에 올림
    • 디렉토리 파일인 a의 metadata 정보로 a의 저장 위치로 접근해 그 안에 있는 b의 metadata를 메모리에 올림
  • read
    • b의 저장 위치로 접근해 요청한 만큼의 데이터를 OS영역의 버퍼 캐시 공간에 저장
    • 버퍼 캐시에 있는 데이터의 복사본을 사용자 메모리 영역에 저장
    • 요청한 데이터가 버퍼 캐시에 존재하는 경우 CPU 판단 하에 디스크를 경유하지 않고 바로 복사하여 전달
  • A의 PCB에 파일 b의 metadata 위치를 가리키는 포인터가 존재하여 디스크 내 b의 위치를 쉽게 찾을 수 있음
  • open, read 등은 시스템 콜이므로 항상 제어권이 CPU로 넘어가는 과정이 있어 LRU, LFU 등의 알고리즘 사용 가능
  • 각 프로세스 별로 파일들의 어디를 접근하고 있는지 관리하는 테이블을 별도로 두는 것이 일반적

  • 모든 파일과 모든 프로세스에 대해 행렬을 만들면 공간 낭비가 심하다 -> 연결 리스트 형태로
    • 연결 리스트로 해도 오버헤드가 커서 일반적으로 그루핑 사용

  • mounting으로 서로 다른 파티션에 존재하는 파일 시스템에 접근할 수 있음

  • 순차 접근: 원하는 위치로 임의로 이동 불가(순차적으로 다 접근해야함)

 

출처: https://core.ewha.ac.kr/publicview/C0101020140516150939191200?vmode=f