Transcript c9d293dc.

파일시스템 소개
파일시스템의 정의
 저장장치 내에서 데이터를 읽고 쓰기 위해 미리 정해진 약
속
 특정 OS에서 지원하는 파일시스템은 여러 개 존재
• 예) MS-Windows : FAT32, NTFS
• a.txt : 겉모습은 같으나 내부 파일저장 방식이 틀림
• NTFS를 선택하면 무엇이 달라지나?
 정해진 약속
• 예) RPG 게임환경 저장 방법
캐릭터의 종류(1), 레벨(1), HP(1), MP(1), 현재위치(4), 돈(4)
부산외대 EmbeddedIT
1
• 이 파일을 읽어 오는 방법은?
 OS에서 파일을 쓰고 읽는 방법도 약속으로 정해져 있음
부산외대 EmbeddedIT
2
파일시스템 선택의 필요성
 왜 다양한 파일시스템이 존재하는가?
 호환
• USB 메모리 : 변환이 필요한 경우 효율성 저하
 보안
• USB 메모리 : 변환이 필요없을 경우 보안에 취약
 성능
• MP3P : 기존 파일시스템 복수 지원시 호환, 보안 성능 우수
• 성능은 전용 독자 파일시스템보다 저하
 애플리케이션 레벨의 속성
• 파일 및 폴더에 대한 추가 정보 기록 여부
– 예) 소유자, 접근 권한
• 추가 정보를 많이 기록할 수록 관리복잡, 성능 저하
• 추가 정보를 많이 기록할 수록 기능 우수
부산외대 EmbeddedIT
3
파일시스템 분류
일반적인 파일시스템(FS)
 FAT(File Allocation Table) FS
•
•
•
•
Microsoft사 초기 FS(DOS)
FAT, FAT16, FAT32로 확장
간단하지만 제약사항이 많음
가장 널리 사용
 HPFS(High Performance FS)
• IBM OS/2 FS, NTFS가 나오게 된 동기 부여
• 대용량, 안정성, 보안 기능 지원
 NTFS(New Technology FS)
• MS-Windows Server용 FS, 일반 MS-Windows로 확산
• 대용량, 안정성, 보안, 기타 부가기능 지원
• Source가 완전히 공개되지 않아 완벽한 호환 어려움
부산외대 EmbeddedIT
4
 UFS(Unix FS)
• 시초 : Berkeley FFS(Fast FS), IBM Bell Unix V7
• HP-UX, Apple OS X, Sun Solaris, Linux Ext2로 응용됨
• 대용량, 안정성, 보안, 기타 신뢰성 높은 FS
 Ext2(Second Extended) FS
• Linux FS
• UFS에서 필요없는 기능을 제거하고 구조를 간소화 함
• Ext3로 확장
플래시 파일시스템
 예전 : 고가, 소용량
• FS 사용하지 않고 직접 물리 주소로 접근
 최근 : 전용 FS 사용, 까다로움
• Read : byte 단위로 자유로움
• Write/Erase : 블록 단위로 해야 함, 횟수 제한(몇만번)
부산외대 EmbeddedIT
5
CD-ROM 파일시스템
 1988년 IOS(International Organization for
Standardization)의 ISO 9660 표준 FS
 폴더 기반 FS로 표준 I/F 제공으로 다양한 OS에서 호환
 ISO 9660 Level 1 : 파일이름 Dos와 같이 8+3 구조
 ISO 9660 Level 2 : 64Byte까지
 ISO 9660 Level 3 : 128Byte까지
 ISO 9660 MS- Joliet : 유니코드 파일이름 지원
네트워크 파일시스템(NFS)
 1984년 Sun Micorsystems에서 개발
 원격지 FS를 Local에 연결하여 사용가능
부산외대 EmbeddedIT
6
가상 파일시스템
 하나의 OS가 여러 파일 시스템에 접근할 수 있도록 지원하
는 FS
 SunOS 2.0에서 UFS와 NFS 동시 지원을 위해 처음 도입됨
응용프로그램
시스템콜
가상 FS(OS)
등록된 FS시스템콜백
함수호출
FS(FAT32, NTFS, Ext2 등)
초기화 : FS 제어함수
등록
볼륨 및 파티션
물리장치(HDD 등)
부산외대 EmbeddedIT
7
파일시스템 요소들
기본 요소
 클러스터(Cluster)
•
•
•
•
•
OS가 읽고 쓰는 최소크기
고정되어 있거나 FS 생성시(Format시) 결정함
크기에 따라 FS 성능에 큰 영향을 미침
예) 1KByte V.S. 4KByte
공간 낭비 V.S. 입출력 효율
부산외대 EmbeddedIT
8
기본 요소
 파일
• (메타데이터 + 파일 데이터) 조합으로 FS에 저장됨
• 메타데이터 : 파일명, 읽기속성, 날짜, 파일데이터위치 등
• 파일데이터 : 실제 파일의 내용
– FAT : 연결 리스트 구조 사용
– NTFS : B-Tree 구조 사용
 디렉토리(Directory)
• 현존하는 모든 FS가 사용하는 개념
• 파일들을 Tree 구조로 그룹화
• FS에서 파일과 디렉토리는 차이가 없음
부산외대 EmbeddedIT
9
부산외대 EmbeddedIT
10
부가요소
 소유권
• NTFS, UFS, Ext2
 동기화
• Multi-Tasking 기능 지원
• 동시에 두 프로그램이 한 파일을 수정하는 경우 동기화 필요
 일관성 체크와 저널링
• 시스템 Crash 상황 대비 지원
• 리부팅시 안전한 상태로 복구하는 기능
• 저널링 : 데이터베이스의 복구 기능을 FS에 도입한 것
 보안
• 접근 권한 제어 지원
부산외대 EmbeddedIT
11
저장장치 소개
저장장치 소개
 메모리
• Storage, ROM, DRAM, SRAM, Register
• 속도, 용량, 가격 비교?
부산외대 EmbeddedIT
12
저장장치 분류
 자기방식
•
•
•
•
천공카드 다음으로 오래된 방식
다양한 매체의 표면에 마그네틱을 발라 전기장으로 기록
자기와 충격에 약하고 신뢰성 높지 않음
테이프, 플로피 디스크, 하드 디스크 등
 전기방식
• 전기적으로 반도체 소자에 기록
• 안정적이나 고가 소용량
• PROM, EPROM, EEPROM, FLASH-ROM
부산외대 EmbeddedIT
13
저장장치 분류
 광학방식
•
•
•
•
플라스틱판에 특정 염료를 도포하여 레이저로 파서 기록
레이저로 빛을 쏘아 반사율로 읽음
저가, 대용량, 충격과 습기에 강하나 느림
전용 ISO 9660 FS 사용
하드디스크(HDD) 분석
 HDD 소개
• 최근 초소형 HDD 등장으로 임베디드 분야(MP3, PMP등)에서 활
용되기 시작
 HDD 주요 구성 요소
• 그림 1-13
• 트랙, 섹터, 실린더, 헤드
– 실린더 : 헤드가 한번에 읽을 수 있는 트랙 집합
부산외대 EmbeddedIT
14
부산외대 EmbeddedIT
15
하드디스크(HDD) 분석
 HDD 인터페이스(I/F)
• 컴퓨터와 저장장치를 연결하는 버스의 규격
• ATA(또는 IDE) : 1980년대 IDE사에서 만든 Advanced
Technology Attachment I/F
– ATA-1 ~ ATA-7, S-ATA로 발전
• SCSI(Small Computer System Interface) : HDD를 직렬방식으
로 연결하는 I/F
• S-ATA(Serial ATA, ATA-8) : 직렬 방식의 ATA I/F
• PIO(Programmed I/O) : CPU가 HDD에 직접 접근
• DMA(Dynamic Memory Access) : 전용 CPU가 HDD 담당
• 전송속도 비교
– 표 1-3 참조
부산외대 EmbeddedIT
16
하드디스크(HDD) 분석
 ATA 레지스터
• 표 1-4 : 컨트롤 블록 어드레스
• 표 1-5 : 커맨트 블록 어드레스
 CHS Address와 LBA Address
• CHS 모드 : Cylinder(Track), Head, Sector 주소로 HDD 저장소
주소지정(Addressing)
– 8GB 한계 : 1024C*256H*64S*512Byte (24bit 사용)
• LBA모드 : Logical Block Area, 물리 주소를 논리적 번지로 대
응시켜 주소지정
– 128Gb 한계 : 228*512Byte
– 현재 248bit LBA 지원
부산외대 EmbeddedIT
17
휴대용 저장장치
휴대용 저장장치
 USB 내용을 LBA 모드로 읽어 화면에 출력
 MS-Windows는 가상 FS를 통해 USB에 접근
• 일반 HDD로 인식함
부산외대 EmbeddedIT
18
부산외대 EmbeddedIT
19