Device File은 Special File이라고도 하며, 일반 regular file과 달리 data block을 가지고 있지
않고 Application이 H/W Access를
필요로 할 때, 직접 H/W를 제어하는 Kernel과 Application과의 Interface역할을 한다. 따라서 하나의 Device가 동작하기 위해서는 Kernel에 Driver가 적재되어 있어야 하고 /dev 디렉토리에 Device file이 존재해야 한다.
<그림 6.1> Kernel과 Device file의 관계
1. Device File Type
Device File은 I/O 형태에 따라 Block Device file과 Character Device file로 나뉜고 각
Device File의 특징은 표 6.1과 같다.
|
보통 우리가 PC에 운영체제를 설치하기 위해 가장 먼저 해야하는 작업은 파티션을 나누고 포맷을 하는 일이다. 포맷을
한다
는 것은 물리적인 디스크를 운영체제가 사용할 수 있도록 파일시스템을 설치하는 작업을 말하는데 파일 시스템을
설치해야
하는 이유는 바로 물리적인 디스크와 운영체제가 사용하는 가장 작은 데이터의 단위가 다르기
때문이다.
디스크는 최소단위가 섹터로 512Byte로 디스크의 동심원을 따라 일정하게 배열되어 있는 반면, 운영체제의 최소 단위는
파
일이고 파일은 제각각 크기가 다르다. 따라서 운영체제는 물리적인 디스크를 블록단위로 나누고 각
블록에 주소를 부여하여
디스크를 관리하게 되는데, Block Device의
Block은 File System에서의 블록을 의미한다고 할 수 있다.
Block Device와 Character Device의
가장 큰 차이점은 Application의 I/O 요구가 있을 시, 데이터를 File System에서 읽어오느냐
Character Device(Raw device)에서
읽어오느냐의 차이인데 File System에서 읽어올 경우 운영체제의 File System Cache에
Buffering을 사용하고 Character
Device에서 읽어 올 경우에는 파일시스템이 없기 때문에 당연히 파일, 디렉토리, 억세스 컨트
롤 등을 Application에서 직접관리
해야한다.
raw Device를 사용하는 대표적인
Application으로는 DBMS가 있고, 데이타 베이스는 자체적으로 블록과 익스텐트 등의
스토리지 관리 개념을 가지고 있기 때문에 이것을 Raw Device가 아닌 운영체제의 File System을 사용할 경우 DBMS와 운영
스토리지 관리 개념을 가지고 있기 때문에 이것을 Raw Device가 아닌 운영체제의 File System을 사용할 경우 DBMS와 운영
체제에서 이중으로 Buffering을 하기 때문에
효율적이지 못하므로 Raw Device를 사용한다.
Raw Device와 File system의 장단점을
말하자면 파일관리측면에선 파일시스템이, 성능면에서는 Raw Device가 좋다고 할 수
있다. 앞에서 말한 바와 같이 DBMS가 자체 IO버퍼를
설정 하기 때문에 OS 의 파일시스템 캐시가 필요 없게되고, 운영체제와
Application의 더블 버퍼링 를 막음으로써
운영체제는 메모리 파일시스템 캐싱을 위한 메모리 매니지먼트( 메모리에 적재하여
Block이 꽉차면 Disk에 write)가
필요없어지고,DBMS 에서만 버퍼링을 하므로 메모리를 덜 소모하게 된다.
RAW의 장점은 KAIO(kernal async IO)도 있다. raw device는 I/O요구가 발생될때 유저라이브러리를 사용 하지 않고 커널 레벨
RAW의 장점은 KAIO(kernal async IO)도 있다. raw device는 I/O요구가 발생될때 유저라이브러리를 사용 하지 않고 커널 레벨
에서 I/O 가 이루어 지므로 명령이 단순해 져서
결과적으론 CPU를 덜 사용하게 된다.
하지만 File System은 관리측면에서 OS에서 지원하는 여러가지 Tool을 사용하여 관리 할 수 있는 반면, Raw device는 초기
하지만 File System은 관리측면에서 OS에서 지원하는 여러가지 Tool을 사용하여 관리 할 수 있는 반면, Raw device는 초기
Setup이 어렵고, File System이 없기 때문에
Backup 및 관리에서도 어려운 면이 적지 않다.
<그림 6.2>
앞서 말한 device file들은 /dev 디렉토리에 존재하며 그림 6.1과 같이 device type에 따라
각각 다른 디렉토리에 저장되고, 같은 type의
device도 Block device와 Character Device의 구분에 따라 각각 다른 디렉토리에 저장, 사용된다. 예를 들어
DISK의 경우 Block
Device file은 /dev/dsk 밑에 존재하고 Character device file은 raw device의 "r"자를 붙여 /dev/rdsk 디렉토리에 존재한다.
Device file은 /dev/dsk 밑에 존재하고 Character device file은 raw device의 "r"자를 붙여 /dev/rdsk 디렉토리에 존재한다.
3. Device Naming Convention
각 device file들은 제각각의
naming convention을 가지고 있으며 ,그림 6.4는 disk의 naming convention의 예를 보여 주고 있다.
Disk는 "c#t#d#"의 naming convention을 갖는데 각각이 의미하는 바는 "c#"은 Card
Instance Number, "t#"은 SCSI Target Number,
"d#"은 LUN Number를 뜻한다.
<표 6.2> Device naming convention의
의미
|
각 Device에 따른 naming convention의 형식의 예는 표6.3과 같다.
<표 6.3> Device
file naming convention
|
댓글
댓글 쓰기