★_HDD 구성

File System/#_Basic 2012. 12. 17. 19:02

 -> 여러 장의 Platter로 이루어져 있다.

  : 동그란 원형 마그네틱 판이다.

 -> 각각의 Platter 표면은 track과 sector로 나눠지게 된다.

 -> platter의 표면마다 head가 있다.

  : read / write를 하는 역할을 한다.

 -> head의 수는 platter*2가 된다.

 -> Track

: 디스크의 중심으로부터 반지름이 같은 영역을 이어놓은 원이다.

: 반지름이 커질수록 원이 커진 만큼 데이터를 많이 보관한다.

 -> Sector

: Disk에서 부채꼴 형태로 자른 뒤 다시 트랙으로 자른 형태가 sector다.

  : 각각의 sector는 571byte의 공간을 차지한다.

  : Sector는 각각 주소 값을 가지고 있어서 해당 주소로 접근하여 각 섹터를 읽어온다.

   : sector(571byte) = 고유번호(59byte) + data(512byte)
 
 -> Cylinder

: 여러 장의 platter가 수직으로 같은 위치에 있게 되는데,

: 이 때 수직으로 같은 위치에 있는 트랙들을 합친 것을 말한다.

: 4장의 platter가 있고 100개의 트랙이 있다면,

: 100개의 cylinder가 있는 것이고, 각 cylinder에는 8개의 track이 존재한다. 


'File System > #_Basic' 카테고리의 다른 글

★_Slack Space  (0) 2012.12.23
★_Cluster  (0) 2012.12.18
★_주소 지정 방식  (0) 2012.12.17
★_OS별 File System  (0) 2012.12.17
★_기본 개념  (0) 2012.12.17
Posted by 훈승오승훈
l

* OS별 File System 종류


 => 고정적으로 사용되는 것은 아니다.
 => 경우에 따라서 서로 포팅되어 사용될 수 있다.


'File System > #_Basic' 카테고리의 다른 글

★_Slack Space  (0) 2012.12.23
★_Cluster  (0) 2012.12.18
★_주소 지정 방식  (0) 2012.12.17
★_HDD 구성  (0) 2012.12.17
★_기본 개념  (0) 2012.12.17
Posted by 훈승오승훈
l

* File System

 -> 저장장치 내에서 데이터를 읽고 쓰기 위해 미리 정해진 약속

* Cluster

 -> OS가 데이터를 읽고 쓰는 논리적인 기본 단위

 -> File System에 따라 cluster 크기가 고정 & 저장장치 크기를 고려하여 조절

 -> 크기는 저장장치의 크기 및 사용 용도에 따라서 달라진다.

 -> if) cluster = 4KB / data = 1KB -> 3KB의 낭비되는 영역이 생긴다. (Slack)

 -> 그럼에도 불구하고 클러스터를 크게 쓰는 이유가 있다.

  : 디스크 입출력이다.

  If) 10KB 파일을 읽을 때 / cluster가 1KB이면 10번, 4KB이면 3번으로 전부 읽는다.

* File

 -> 저장장치에 저장한 데이터와 이를 가리키는 이름의 추상적인 개념

 -> Meta Data 영역 / File Data 영역

 -> Meta Data 영역

  : 파일을 관리할 수 있는 정보 자체 (속성 및 기록한 위치)

  : 파일 이름, 위치, 크기, 시간 정보, 삭제 유무

 -> File Data 영역

  : 실제 데이터를 기록하는 곳이다.

 -> File 정보 요청 process

  : 1. OS에서 파일에 정보를 요청한다. (파일 경로를 묻는다.)

  : 2. Meta Data 영역에서 file에 여러 속성을 알려준다.

  : 3. OS에서 File Data 읽기 요청한다.

  : 4. Meta Data에서 File Data로 이동한다.

* Directory

 -> file들을 계층화하고 그룹화 한다.

 -> 상, 하위 개념의 directory와 file들은 그것들을 관리함에 있어 많은 이점을 준다.

* 소유권

 -> 각 file과 directory마다 그룹과 소유권을 따로 관리할 수 있다.

 -> 계정을 달리하면 접근 권한도 달라지게 된다.

* 동기화

 -> 모든 OS들은 Multi-Tasking 기능을 지원한다.

 -> 하나의 file에 여러 process가 동시에 접근해서 작업하는 경우

  : 해당 file에 lock을 걸어주고, 해제하는 동기화가 진행되어야 한다.

 -> A.txt file에 특정 process가 접근해서 읽기를 시도하던 중, 다른 process가 삭제 명령 시도

  : lock이 걸려있지 않으면, file을 삭제가 되고 쓰레기 데이터를 읽는다. (운 좋게)

  : 잘못된 포인터에 접근하여 세그먼테이션 오류를 발생할 수 있다.

* 일관성 체크

 -> 갑작스럽게 System이 멈춘다거나 Crash 상황을 고려해야 한다.

 -> if) Meta Data를 먼저 쓰고, File Data를 나중에 쓰는 경우 멈췄을 때,

  : 파일리스트에는 제대로 나오겠지만, File Data에는 쓰레기 값이 들어간다.

 -> if) File Data를 먼저 쓰고, Meta Data를 나중에 쓰는 경우 멈췄을 때,

  : 파일리스트에는 제대로 나오지 않겠지만, File Data는 비어 있는 영역이다.

* Journaling

 -> DB에서 일관성 체크를 위해 사용되는 방법이다.

 -> File System 업데이트 시에 로그를 기록한다.

 -> 문제가 생길 경우 해당 로그를 참조하여 업데이트를 cancel or commit 한다.

'File System > #_Basic' 카테고리의 다른 글

★_Slack Space  (0) 2012.12.23
★_Cluster  (0) 2012.12.18
★_주소 지정 방식  (0) 2012.12.17
★_HDD 구성  (0) 2012.12.17
★_OS별 File System  (0) 2012.12.17
Posted by 훈승오승훈
l