☆★☆2016.01.13 작성☆★☆
☆★☆참고책 _리눅스 커널 내부구조(저자_백승재, 최종무)☆★☆
1. 파일시스템 일반
* 파일시스템 : 보조 기억장치(ex 하드 디스크) 같은 저장장치를 관리하는 소프트웨어
- 기억장치는 한정, 내부/외부 단편화 최소화
* 메모리 관리 기법과 파일시스템의 차이 : naming 기법
- 메모리 관리 기법 + Naming = 파일시스템
- 파일시스템은 사용자에게 이름이라는 속성으로 접근되는 '파일'이라는 개념 제공
- 이름 값을 입력받아 해당 데이터 처리, 리턴
* 파일시스템의 하드디스크의 정보
- 메타 데이터 : 파일의 속성 정보, 이름 데이터 블록 인덱스 등.. 저장
- 사용자 데이터 : 실제 기록하려는 내용 저장
2. 디스크 구조와 블록 관리 기법
(그림참조) http://wingsofgod.tistory.com/category/%EC%BB%B4%ED%93%A8%ED%84%B0%20%EC%A7%80%EC%8B%9D?page=5
* 하드디스크 물리적 구조
- 원판(plotter) : 원모양 track(512byte의 섹터로 구분)
같은 위치를 같은 트랙들의 집합 cylinder
- arm
- head : 각 원판에 하나씩 존재
- head 개수, 실린더 개수, 섹터 개수에 따라 디스크의 용량과 물리적 특성 결정
* 데이터 접근 시간
- 탐색 시간 : 헤드를 요청한 데이터가 해당 트랙까지 가는데 걸리는 시간
- 회전 지연 시간 : 요청한 섹터가 헤드 아래로 갈 깨까지 디스크 원판을 회전시키는데 걸리는 시간
- 데이터 전송 시간 : 헤드가 섹터의 내용을 읽고 쓰는데 걸리는 시간
* 하드디스크 논리적 구조
- 논리적인 디스크 블록들의 집합
- 디스크 블록 : 논리적인 번호를 갖음(크기는 4kb)
- 디스크 디바이스 드라이버 or 디스크 컨트롤러 : 디스크 블록 번호와 섹터를 mapping시키는 역할
* 디스크 블록의 할당과 회수(색 칠해진 것 : 디스크 블록 사용 상태 / 안 칠해진 것 : free 상태)
- 연속 할당 : 2개의 디스크 필요시, 연속된 7번 8번 디스크 블록에 할당
-> 탐색 시간이 적기 때문에 읽는 속도 빠름.
-> 파일의 크기 변화시, 기존의 디스크 블록을 더 넓은 곳으로 복사해서 새로운 내용 추가
- 불연속 할당 : free한 어떠한 블록에라도 할당이 가능, 2번 5번 디스크 블록에 할당
* 정보 기록 방법
- 블록 체인 기법(block chain)
(그림참조) http://atsequence.tistory.com/8
: Linked list와 유사하게 체인으로 연결하는 방법
첫 번째 디스크 블록에서 포인터를 이용하여 다음 블록 위치 탐색가능
-> 파일 끝을 읽을 때도 앞에서부터 읽어야함 / 중간 블록 유실시 나머지 데이터 모두 읽어버림
- 인덱스 블록 기법(index block)
(그림참조) http://atsequence.tistory.com/8
: 블록들의 위치 정보를 기록한 인덱스 블록 사용하는 방법 (리눅스에서는 inode)
-> 인덱스 블록 유실시, 파일의 데이터 전체가 없어짐 / 인덱스 블록을 위한 별도 공간 필요
- FAT 기법(File Allocation Table)
(그림참조) http://atsequence.tistory.com/8
: 같은 파일이 속해있는 블록들의 위치를 FAT 자료구조(파일시스템 관리 공간에 전역적으로 존재)에 기록
-> FAT 구조가 소실되면, 파일시스템 내의 모든 파일이 소실된다는 문제 (요즘은 중복해서 관리)
'나름컴공이라공 > Linux Kernel' 카테고리의 다른 글
Linux Kernal Internal > Ch5 파일시스템과 가상 파일시스템(3) (0) | 2019.07.19 |
---|---|
Linux Kernal Internal > Ch5 파일시스템과 가상 파일시스템(2) (0) | 2019.07.19 |
Linux Kernal Internal > Ch3 태스크 관리(3) (0) | 2019.07.19 |
Linux Kernal Internal > Ch3 태스크 관리(2) (0) | 2019.07.19 |
Linux Kernal Internal > Ch3 태스크 관리(1) (0) | 2019.07.19 |