file structures 강의

50
Page 1 File Structures File Structures 강강 강강 강강 강강 강강강 강강 강강 (Ch. 1 in “ 강강 강강” ) 강강 강강 강강 (Ch. 2 in “ 강강 강강” ) 강강강 강강강 강강 (Ch. 3 in “ 강강 강강” ) 강강 강강 (Ch. 4 in “ 강강 강강” ) File Structu

Upload: venus-obrien

Post on 03-Jan-2016

38 views

Category:

Documents


3 download

DESCRIPTION

File Structures 강의. File Structures. 강의 내용 파일의 기본 개념 (Ch. 1 in “ 파일 구조” ) 파일 저장 장치 (Ch. 2 in “ 파일 구조” ) 파일의 입출력 제어 (Ch. 3 in “ 파일 구조” ) 순차 파일 (Ch. 4 in “ 파일 구조” ). 파일 저장 장치의 특성. File Structures. 저장 장치 (storage device) 저장 매체 (medium) + 매체에 데이터를 저장하고 검색하기 위한 장치 (device) - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: File Structures  강의

Page 1

File Structures File Structures 강의강의

강의 내용• 파일의 기본 개념 (Ch. 1 in “ 파일 구조” )

• 파일 저장 장치 (Ch. 2 in “ 파일 구조” )

• 파일의 입출력 제어 (Ch. 3 in “ 파일 구조” )

• 순차 파일 (Ch. 4 in “ 파일 구조” )

File Structures

Page 2: File Structures  강의

Page 2

파일 저장 장치의 특성파일 저장 장치의 특성

저장 장치 (storage device)

• 저장 매체 (medium) + 매체에 데이터를 저장하고 검색하기 위한 장치 (device)

• 예 : physical disk + disk controller

저장 매체 (storage media)

• 데이터를 저장하는 물리적 재료 (physical disk)

• 소멸성 (volatile) vs. 비소멸성 (nonvolatile) disk vs. memory

접근 장치 (access device or access mechanism)

• 데이터를 판독 (read) 하거나 기록 (write) 하는 장치 ( 혹은 방법 )

• 예 : disk controller(driver), tape driver

File Structures

Page 3: File Structures  강의

Page 3

저장 장치 저장 장치 (memory & storage)(memory & storage)

1 차 저장 장치 (primary storage)

• 주기억 장치 (main memory)

- 데이터 액세스 시간이 일정하고 ( 디스크 등에 비해 ) 매우 빠름

- 프로그램 /데이터 처리를 위한 작업 공간

• 캐시 메모리 (cache memory)

- 주기억 장치의 성능을 향상 시키기 위한 목적으로 , CPU Chipset 내에 구현되기도 함

- 주기억 장치 보다 빠른 액세스 속도를 가지며 , 최근에는 캐시 메모리 자체도Primary(L1 Cache, 일반적으로 CPU 내부에 장착 ),Secondary(L2 Cache, 일반적으로 마더보드에 장착 ) 로 구분되기도 함

2 차 저장 장치 (secondary storage)

• 자기 디스크 (magnetic disk)

- 데이터 액세스 시간일 일정하지 않고 ( 메모리에 비해 ) 액세스 시간이 느림

- 용량이 크고 싸서 주로 파일의 저장에 사용됨

- 저장된 데이터는 주기억 장치를 거쳐 ( 메모리에 올라 와 ) CPU 에 의해 처리됨

• 광 디스크 (optical disk), 자기 테이프 (magnetic tape) 등

File Structures

Page 4: File Structures  강의

Page 4

저장 장치의 유형 저장 장치의 유형 (1/5)(1/5)

캐시 메모리 (cache memory)

• 가장 빠르고 가장 비싼 저장 장치

• SRAM(Static Random Access Memory) 을 주로 사용함

• 일부 캐시 (L1 Cache) 의 경우는 CPU Chipset 내에 구현되어 고성능을 보장함

• 현재 수십 KB ~ 수 MB 수준의 용량이 제공됨

주기억 장치 (main memory)

• 프로그램 실행과 이에 필요한 데이터 유지 공간 ( 프로그램이 로딩되는 공간이며 , 프로그램이 사용하는 데이터가 로딩되는 공간이기도 함 )

• DRAM(Dynamic Random Access Memory) 을 주로 사용함

• 저용량 , 소멸성 ( 데이터 저장에는 부적함 )

• 현재 수백 MB ~ 수십 GB 수준의 용량이 제공됨

File Structures

Page 5: File Structures  강의

Page 5

저장 장치의 유형 저장 장치의 유형 (2/5)(2/5)File Structures

캐시 메모리의 역할

Page 6: File Structures  강의

Page 6

저장 장치의 유형 저장 장치의 유형 (3/5)(3/5)

플래시 메모리 (flash memory)

• 고밀도 , 고성능 메모리로서 비소멸성 (nonvolatile) 의 특성을 가짐

• 주기억 장치와 비슷한 액세스 속도를 보임

• 핸드폰 , MP3 Player, PDA 등에서 디스크 /메모리 역할을 수행함

• 현재 수 MB ~ 수 GB 수준의 용량이 제공됨

File Structures

Page 7: File Structures  강의

Page 7

저장 장치의 유형 저장 장치의 유형 (4/5)(4/5)

자기 디스크 (magnetic disk)

• 데이터 ( 파일 ) 저장 장치의 주된 매체로 사용되고 있음

• 데이터 처리와 기록을 위해서는 주기억 장치를 거쳐야 함 ( 버퍼를 통해서 이루어짐 )

• 고용량이며 , 비소멸성의 특징을 가짐

• 현재 수십 GB ~ 수십 TB 수준의 용량이 제공됨 (disk array 를 구성하여 사용 )

File Structures

Page 8: File Structures  강의

Page 8

저장 장치의 유형 저장 장치의 유형 (5/5)(5/5)

광 디스크 (optical disk)

• 광학적으로 저장 , 레이저로 판독

• 용량이 크고 , 보존 기간이 긴 특성을 가짐

• CD-ROM, CD-R, CD-RW

• DVD(digital video disk)-ROM, DVD-R(Recordable), DVM-RAM

자기 테이프 (magnetic tape)

• 데이터의 백업과 보존을 위한 저장 매체

• 순차 접근이 적용되는 대표적인 저장 장치

• 테이프 쥬크 박스 ( 대용량 데이터 저장 가능 )

• 은행 , 통신 등에서는 주기적인 백업을 위하여자기 테이프를 널리 활용함

File Structures

Page 9: File Structures  강의

Page 9

저장 장치의 계층저장 장치의 계층File Structures

비용 접근 속도

캐시 메모리

메인 메모리

플래시 메모리

자기 디스크

광 디스크

자기 테이프

Page 10: File Structures  강의

Page 10

하드 디스크 하드 디스크 (Hard Disk) (1/5)(Hard Disk) (1/5)File Structures

자기 디스크의 종류• 하드 디스크 (hard disk): 1955 년 IBM 에서 개발 – 초기 5MB

• 유연한 디스크 (flexible disk): floppy disk, diskette (~1.44 MB)

Page 11: File Structures  강의

Page 11

하드 디스크 하드 디스크 (Hard Disk) (2/5)(Hard Disk) (2/5)File Structures

하드 디스크의 물리적 구성 (I) 판독 /기록 헤드

접근 암자기 코팅된알루미늄 원반

스핀들

Page 12: File Structures  강의

Page 12

하드 디스크 하드 디스크 (Hard Disk) (3/5)(Hard Disk) (3/5)File Structures

하드 디스크의 물리적 구성 (II)

Page 13: File Structures  강의

Page 13

하드 디스크 하드 디스크 (Hard Disk) (4/5)(Hard Disk) (4/5)File Structures

하드 디스크의 논리적 구성• 갭 (gap): 자기화되지 않은 영역으로서 섹터를 구분하는 구분자 역할을 함

• 트랙 (track): 갭 (gap) 으로 분리된 ( 하나의 원을 구성하는 ) 섹터들로 구성

• 섹터 (sector): 기록과 판독 작업의 최소 단위 (block 크기에 대응됨 )

• 실린더 : 여러 디스크로 디스크 팩 (disk pack) 이 형성되었을 때 , 지름이 같은 트랙의 모음

track

sector

gap

cylinder

Page 14: File Structures  강의

Page 14

하드 디스크 하드 디스크 (Hard Disk) (5/5)(Hard Disk) (5/5)File Structures

데이터 액세스 시간의 구분• 디스크에서 데이터를 읽거나 , 디스크에 데이터를 쓰기 위해서는

1) 원하는 실린더 ( 또는 트랙 ) 을 찾아야 하고 ( 디스크 헤드의 좌우 이동 ),2) 원하는 섹터를 찾아야 하며 ( 디스크 회전 이동 ),3) 원하는 양 만큼 데이터를 전송해야 한다 .

• Seek time(= s): 원하는 데이터가 있는 실린더 ( 혹은 트랙 ) 에 디스크 헤드를 위치 시키는데 걸리는 시간

• Rotational latency( = r): 실린더를 찾은 후 , 원하는 섹터에 헤드를 위치시키기 위해 디스크가 회전하는 시간

• Transfer time(= t): 섹터 ( 와 갭 ) 들이 헤드 밑을 회전하며 데이터를 전송하는 시간

− Transfer rate: 초당 데이터가 전송되는 속도 (MBps)

파일 시스템 ( 혹은 저장 시스템 ) 의 설계자는 seek time 과 rotational time 을 최소화하도록 데이터 구조의 설계를 진행하여야 함 (clustering, locality, …)

Page 15: File Structures  강의

Page 15

< 표 4.2 > 디스크 구동기 특성---------------------------------------------------------------------------------------------------------------------제조업자 전송 속도 평균 실린더 수 트랙 수 색터 수 바이트 수 및 상표명 ( 바이트 / 초 ) 탐색시간 ( 실린더 ) ( 트랙 ) ( 트랙 )

removable disksBurrough B9484 425 K 30 ms 406 20 60 10,800DEC RP07 1.5 M 23 ms 630 32 50 25,600IBM 3330 806 K 30 ms 404 19 - 13,030IBM 3380 3 M 16 ms 885 15 - 47,476HP 3933 1.2 M 24 ms 1,321 13 92 23,552

fixed disksBurrough B9370-2 300 K - 100 2 100 10,000DEC R503 250 K - 64 1 64 4,096IBM 2305 3 M - 32 12 - 14,136

winchester disksMiniscribe 4020 500 K 120 ms 480 4 56 8,192Maxtor XT1140 500 K 30 ms 918 15 56 8,192

floppy disksShugart SA850(8") 40 K 91 ms 77 2 26 6,656TEAC FD-55F(5.25") 20 K 94 ms 80 2 16 4,096

Page 16: File Structures  강의

Page 16

플로피 디스크 플로피 디스크 (Floppy Disk)(Floppy Disk)File Structures

유연한 디스크 (flexible) 저장 장치• 1970 년경 IBM 에서 개발

• 직경 : 5¼ inch, 3½ inch

• 회전 속도 : 360 rpm (c.f., 5400 ~ 10K rpm in hard disks)

• 과거 ( 수년 전 ): 네트워크가 연결되지 않은 컴퓨터 간의 파일 이동을 위한 가장 유용한 장치로 각광 받았음 ( 한 장에 1K 원대 )

• 현재 ?: 용량 및 액세스 속도 문제로 인하여 CD-ROM 및 USB Driver 에 그 자리를 거의 빼앗긴 상태임 ( 열 장에 수 K 원대 )

Page 17: File Structures  강의

Page 17

블로킹 블로킹 (Blocking) (1/7)(Blocking) (1/7)File Structures

블록 (block)

• 데이터 전송의 단위 ( 디스크와 메모리 사이의 최소 전송 단위 )

• 트랙 길이 = b x B

- b = number of blocks in a track

- B = block size ( 블록 크기 )

• 블록 크기 트랙 길이

• 블록은 일반적으로 하나 ( 혹은 몇 개 ) 의 섹터로 구성 ( 매핑 ) 됨

Page 18: File Structures  강의

Page 18

블로킹 블로킹 (Blocking) (3/7)(Blocking) (3/7)File Structures

블로킹 (blocking)

• 기억 공간과 I/O 효율을 위하여 , 몇 개의 논리적 레코드를 하나의 물리적 레코드 ( 블록 ) 에 저장시키는 것( 즉 , 여러 레코드들을 하나의 블록에 저장시키는 것을 블로킹이라 함 )

• 블로킹 인수 (blocking factor) Bf = B/R

- B = 블록 크기 (block size)

- R = 레코드 크기 (fixed or variable)

• 블로킹은 I/O 시간을 감소시키는 장점 (bulk read & write) 이 있는 반면에 , 1) 불필요한 레코드들을 함께 읽어오는 오버헤드와 ,2) fragmentation 에 의해 저장 공간이 감소하는 단점이 있음

Page 19: File Structures  강의

버퍼링

. 프로그램의 논리적 레코드에 대한 연산과 블록킹 사이의 문제를 조정하는 소프트웨어 인터페이스

. 버퍼링 인터페이스는 비블럭킹 루틴과 블록킹 루틴의 두가지가 있다 .

- 블록킹 루틴 : 프로그램에서 논리적인 레코드를 쓸 때 , 주기억장치 버퍼에 한 블록 단위로 모으는 인터페이스 .

- 비 블록킹 루틴 : 버퍼에 읽어들인 한 블록내의 논리적인 레코드를 프로그램에 하나씩 전달하는 인터페이스

. 버퍼링 관련 연산 - 물리적 읽기 : 보조기억장치의 물리적 블록을 버퍼로 읽는 것 - 논리적 읽기 : 버퍼로부터 논리적 레코드를 읽는 것 - 논리적 쓰기 : 한 블록 크기의 버퍼에 논리적 레코드를 쓰는 것 - 물리적 쓰기 : 버퍼가 찼을 때 그 블록을 보조 기억 장치에 물리적으로

출력하는 것

Page 20: File Structures  강의

·¹ÄÚµå 1È ÀÏ ·¹ÄÚµå 6·¹ÄÚµå 5·¹ÄÚµå 4·¹ÄÚµå 3·¹ÄÚµå 2

·¹ÄÚµå 1È ÀÏ ·¹ÄÚµå 6·¹ÄÚµå 5·¹ÄÚµå 4·¹ÄÚµå 3·¹ÄÚµå 2

·¹ÄÚµå 1 ·¹ÄÚµå 3·¹ÄÚµå 2

·¹ÄÚµå 1 ·¹ÄÚµå 3·¹ÄÚµå 2

ÇÁ·Î±×·¥

ù¹ø° ¹°¸®Àû Àб⠵ιø° ¹°¸®Àû Àбâºí·Ï

ºí·Ï

ÁÖ±â¾ï ÀåÄ¡

¹°¸®Àû ¾²±â

ÀÔ·Â ¹öÆÛ

Ãâ·Â ¹öÆÛ

Page 21: File Structures  강의

비블럭킹 루틴- 비블럭킹 루틴은 컴퓨터 입출력 채널에 의해 실행

- CPU 는 입출력 채널에게 지정된 장치를 액세스하게 하고 , 자신은 데이타를 처리 수행

- 프로그램에 의한 입력 명령은 버퍼가 빌 때까지 논리적 읽기를 하며 , n 의 배수 번째 (n

은 블럭킹 인수 ) 입력 명령시 물리적 읽기로 변환된다 .

- 비블럭킹 루틴의 처리 단계 1. 버퍼가 비어있지 않으면 6 으로 간다 .

2. CPU 가 입력 요구를 한다 .

3. 입출력 채널은 장치 제어기가 입력 요구에 의해 지정된 장치를 가리키도록 지시한다 .

4. 장치 제어기는 입력이 요구된 정보의 위치를 찾아서 지정된 장치로부터 정보를 읽어들여 주 기억장치에 있는 버퍼로 보낸다 .

5. 입출력 채널은 버퍼가 찰 때까지 기다렸다가 입력이 끝났음을 CPU 에 알린다 . 이 때 버퍼의 위치 지정자는 1 로 한다 .

6. 위치 지정자가 가리키는 구성요소를 프로그램으로 보낸다 .

7. 위치 지정자를 증가시킨다 .

8. CPU 는 프로그램을 계속 실행한다 .

Page 22: File Structures  강의

버퍼링 입력 예제 ( 화일의 브럭킹 인수가 10 이라고 가정 )

1) 프로그램의 첫 번째 입력시에 버퍼를 논리적으로 접근한다 .

2) 버퍼가 비어 있으므로 파일로부터 하나의 블록을 주기억장치의 버

퍼로 읽어 들인후 , 버퍼의 첫 레코드를 프로그램에 입력한다 .

·¹ÄÚµå 1 ·¹ÄÚµå 1 ºí·° 1·¹ÄÚµå 2·¹ÄÚµå 3·¹ÄÚµå 4·¹ÄÚµå 5·¹ÄÚµå 6·¹ÄÚµå 7·¹ÄÚµå 8·¹ÄÚµå 9

·¹ÄÚµå 10

ºí·° 2ºí·° 3

::

ºí·° n

ÇÁ·Î±×·¥ÀÇ ÀÚ·á ÀúÀå¼Ò2´Ü°è

¾×¼¼½ºµÉ´ÙÀ½ ·¹ÄÚµå

¹öÆÛ1´Ü°è

¾×¼¼½ºµÉ´ÙÀ½ ºí·°

±×¸² 3.1 ºí·°Å· È ÀÏ¿¡¼ ÀÇ Ã¹¹ø° ³í¸®Àû ÀбâÀÇ °á°ú

ºí·°Å· È ÀÏ

Page 23: File Structures  강의

3) 나머지 9 개의 입력 명령은 주기억장치 버퍼를 논리적으로 읽음으로써 처리한다 .

·¹ÄÚµå 1·¹ÄÚµå 1 ºí·° 1·¹ÄÚµå 2·¹ÄÚµå 3·¹ÄÚµå 4·¹ÄÚµå 5·¹ÄÚµå 6·¹ÄÚµå 7·¹ÄÚµå 8·¹ÄÚµå 9

·¹ÄÚµå 10

ºí·° 2ºí·° 3

::

ºí·° n

ÇÁ·Î±×·¥ÀÇ ÀÚ·á ÀúÀå¼Ò

¹öÆÛ

¾×¼¼½ºµÉ´ÙÀ½ ºí·°

±×¸² 3.2 ºí·°Å· È ÀÏ¿¡¼ ÀÇ ³ª¸ÓÁö ¾ÆÈ©°³ÀÇ ³í¸®Àû Àбâ

ºí·°Å· È ÀÏ

Get # 2

Get # 3

Get # 4

Get # 5

Get # 6

Get # 7

Get # 8

Get # 9

Get # 10

Page 24: File Structures  강의

4) 11번째 입력시 버퍼를 논리적으로 접근하여 버퍼가 해당 레코드가 없음을 ( 버퍼가 비어있음을 ) 확인한다 . 파일로부터 다음 블록을 버퍼로 가져온후 11번째 레코드를 프로그램에 입력한다 .

·¹ÄÚµå 11 ·¹ÄÚµå 11 ºí·° 1·¹ÄÚµå 12·¹ÄÚµå 13·¹ÄÚµå 14·¹ÄÚµå 15·¹ÄÚµå 16·¹ÄÚµå 17·¹ÄÚµå 18·¹ÄÚµå 19·¹ÄÚµå 20

ºí·° 2ºí·° 3

::

ºí·° n

ÇÁ·Î±×·¥ÀÇ ÀÚ·á ÀúÀå¼Ò2´Ü°è

¹öÆÛ

1´Ü°è

±×¸² 3.3 ºí·°Å· È ÀÏ¿¡¼ ÀÇ ¿ Çѹø° ³í¸®Àû ÀбâÀÇ °á°ú

ºí·°Å· È ÀÏ

Page 25: File Structures  강의

블럭킹 루틴

- 입출력 채널에 의해 비 블록킹 루틴과 비슷하게 실행됨- 블럭킹 루틴의 처리 단계 1. 버퍼가 가득 차지 않았으면 6 번으로 간다 .

2. CPU 가 출력 요구를 한다 .

3. 입출력 채널은 장치 제어기가 출력 요구에 의해 지정된 장치를 가리키도록 지시한다 .

4. 장치 제어기는 버퍼에서부터 지정된 장치에 블럭을 쓴다 .

5. 입출력 채널은 버퍼 전체가 그 장치에 쓰여질 때까지 기다려서 출력 명령이 끝났음을 CPU 에 알린다 .

6. 다음 구성요소 프로그램으로부터 위치 지시자가 가리키는 버퍼 의 공간에 저장된다 .

7. 위치 지시자를 증가시킨다 .

8. CPU 는 그 프로그램을 계속 실행한다 .

Page 26: File Structures  강의

버퍼링 출력 예제 ( 화일의 브럭킹 인수가 10 이라고 가정 )

1) 프로그램의 처음 9개의 출력 명령은 주기억장치 버퍼에 논리적 쓰기를 이용해 처리한다 .

·¹ÄÚµå i ·¹ÄÚµå 1·¹ÄÚµå 2·¹ÄÚµå 3·¹ÄÚµå 4·¹ÄÚµå 5·¹ÄÚµå 6·¹ÄÚµå 7·¹ÄÚµå 8·¹ÄÚµå 9

ÇÁ·Î±×·¥ÀÇ ÀÚ·á ÀúÀå¼ÒPut #1

¹öÆÛ

±×¸² 3.4 óÀ½ ¾ÆÈ©°³ÀÇ ³í¸®Àû ¾²±âÀÇ °á°ú

Put #2

Put #3

Put #4

Put #5

Put #6

Put #7

Put #8

Put #9

Page 27: File Structures  강의

2) 10번째 출력 명령은 10 개의 논리적 레코드로 구성된 블록을 물리적으로 보조 기억장치에 출력한다 .

·¹ÄÚµå 10 ·¹ÄÚµå 1 ºí·° 1·¹ÄÚµå 2·¹ÄÚµå 3·¹ÄÚµå 4·¹ÄÚµå 5·¹ÄÚµå 6·¹ÄÚµå 7·¹ÄÚµå 8·¹ÄÚµå 9

·¹ÄÚµå 10

<eof>

ÇÁ·Î±×·¥ÀÇ ÀÚ·á ÀúÀå¼Ò ¹öÆÛ2´Ü°è

´ÙÀ½ ºí·°ÀÌÀúÀåµÉ À§Ä¡

±×¸² 3.5 ¿ ¹ø° ³í¸®Àû ¾²±âÀÇ °á°ú

ºí·°Å· È ÀÏ

1´Ü°è

Put#10

Page 28: File Structures  강의

3) 11번째 출력 명령은 새로운 버퍼에 논리적 쓰기를 이용해서 위와 동일한 방법으로 처리한다 .

·¹ÄÚµå 11 ·¹ÄÚµå 11 ºí·° 1<eof>

ÇÁ·Î±×·¥ÀÇ ÀÚ·á ÀúÀå¼Ò ¹öÆÛ

´ÙÀ½ ºí·°ÀÌÀúÀåµÉ À§Ä¡

±×¸² 3.6 ºí·°Å· È ÀÏ¿¡¼ ÀÇ ¿ Çѹø° ³í¸®Àû ¾²±âÀÇ °á°ú

ºí·°Å· È ÀÏ

Page 29: File Structures  강의

Page 29

블로킹 블로킹 (Blocking) (3/7)(Blocking) (3/7)

블로킹 인수에 대한 영향

블록킹 인수가 클수록 물리적 액세스 수가 적어진다 .

블록킹 인수는 논리적 레코드의 길이와 물리적 블록의 크기에 종속됨

블록이 클수록 한 블록을 접근하는데 드는 시간이 많이 소요된다 .

블록 크기에 대한 고려 사항1) 주기억장치의 크기- 큰 주기억장치 공간이 필요하다 . 한 블록의 크기는 사용할 수 있는 주기억장치의 크기보다 클 수 없다 .

2) 주기억장치를 가장 많이 사용하는 프로그램의 크기- 프로그램은 블록 공간 뿐만 아니라 내부 데이터와 내부 명령을 위한 주기억장치 공간도 필요하다 . 사용할 프로그램이 차지할 공간이 크면 블록을 위한 공간이 줄어든다 .

Page 30: File Structures  강의

Page 30

블로킹 블로킹 (Blocking) (3/7)(Blocking) (3/7)

3) 파일에 대한 액세스 형태

- 한 블록내의 레코드들을 가능한한 전부 사용해야 블록킹 효과를 얻을 수 있다 . 큰 블록은 순차 접근시 효율적이다 .

- 블록내의 일부분을 수정시 전체 블록을 접근한다 . 따라서 큰 블록은 수정 시간이 길어지는 부담 (overhead) 초래

- 블록이 클수록 다음 레코드를 접근할 확률이 적어진다 . : 임의 접근시 레코드를 연속적으로 접근하지 않는다 . : 프로그램 파일의 경우 순차적만 접근되지는 않는다 . : swapping 발생 가능

4) 외부 기억 장치의 특성 - 실린더 - 트랙 구조에서는 한 트랙 크기를 블록으로 지정 - 섹터 어드레싱 방식에서는 한 섹터를 블록으로 지정

Page 31: File Structures  강의

Page 31

블로킹 블로킹 (Blocking) (2/7)(Blocking) (2/7)File Structures

블록 크기• 과거 : 512 bytes, 1024 bytes, 2048 bytes

• 현재 : 4096 bytes, 8192 bytes, more …

• 단 , 너무 크면 불필요한 데이터 전송 및 메모리 효율성 저하가 발생

• 예를 들어 , 블록 크기가 8KB 이면 , 1 byte 를 저장하려 해도 8KB가 필요할 수 있고 , 1 byte 만 전송하려 해도 8KB 를 전송해야 한다 .

Page 32: File Structures  강의

Page 32

블로킹 블로킹 (Blocking) (4/7)(Blocking) (4/7)File Structures

블로킹 방법• 고정 길이 블로킹 (for fixed length records)

• 신장된 (spanning) 가변 길이 블로킹 :가변 길이 레코드를 지원하되 , 한 레코드가 인접한 블록에 걸쳐 저장될 수 있음

• 비신장된 가변 길이 블로킹 :가변 길이 레코드를 지원하되 , 한 레코드는 반드시 하나의 블록에 저장되어야 함

Page 33: File Structures  강의

Page 33

블로킹 블로킹 (Blocking) (5/7)(Blocking) (5/7)File Structures

R1 R2 R3 R4

R5 R6 R7 R8

R1 R3 R4R2 R4 R6R5

R6 R9R7 R10R11R12R13

R1 R3R2 R4 R5

R6 R7 R8 R9 R10

R9

고정 길이 블로킹

신장된 가변 길이 블로킹

비신장 가변 길이 블로킹

트랙 1

트랙 2

트랙 1

트랙 2

트랙 1

트랙 2

Page 34: File Structures  강의

Page 34

블로킹 블로킹 (Blocking) (6/7)(Blocking) (6/7)File Structures

레코드와 블록• 고정 길이 블로킹 : 길이만 알면 레코드 구분이 가능함

(n 번째 레코드 시작 = n x R or (n-1) x R)

• 가변 길이 블로킹

- 분리 표시 : 레코드 끝 마크 (end-of-record marker) 삽입

- 각 레코드 앞에 길이 지시자 (length indicator) 관리

- 위치 테이블 (position table) 관리

저장 시스템에서는 attribute 에 대해서는 길이 지시자를 관리하고 ,record 에 대해서는 위치 테이블을 관리하는 hybrid 방법을 주로 사용함

레코드 설계 시 고려 사항• 메모리 바이트 주소 특성

(4-byte 단위 , 8-byte 단위 )

• 레코드 헤더의 관리

이름 주소 성별 생년월일

0 32 288 292 304

(a) 학생 레코드 레이아웃

이름 주소 성별 생년월일

12 44 300 304 316

레코드헤더

0

(b) 레코드 헤더가 추가된 학생 레코드 레이아웃

Page 35: File Structures  강의

Page 35

블로킹 블로킹 (Blocking) (7/7)(Blocking) (7/7)File Structures

블로킹의 고려 사항• 적재 밀도 (loading density) 설계 과정의 관점

- 갱신을 위한 자유 공간 (free space) 할당 ( 레코드의 삽입 및 크기 증가를 고려하여 일정 비율의 dummy space 를 파일 생성 초기에 유지함 )

- 실제 데이터 저장 공간에 대한 ( 자유 공간을 포함한 ) 총 공간과의 비율

• 균형 밀도 (equilibrium density) 운용 과정의 관점- 레코드 자체의 확장과 축소에 따른 레코드의 이동 빈도 , 단편화 등의 척도

- 상당히 긴 기간 동안 시스템을 운용하고 안정시킨 뒤에 예상되는 저장 밀도

• 집약성 (locality)

- 논리적으로 연관된 레코드들이 물리적으로 가깝게 위치하는 정도

- 예 : 학번이 유사한 학생의 레코드는 동일 블록 내에 있거나 근접한 블록에 존재하는 경우 , 집약성이 강하다 (strong) 고 이야기함

Page 36: File Structures  강의

Page 36

기타 저장 장치 기타 저장 장치 (1/2)(1/2)File Structures

자기 테이프 (magnetic tape)

• 카세트 테이프를 생각하면 되며 , 대표적인 순차 접근 장치로서 , 주로 백업 장치로서 많이 활용됨

• QIC (Quarter-Inch Cartridge)

- 가장 오래된 형태

- 용량 : 7 ~ 70 GB, 전송률 : 4 ~ 6 MBps

• DAT (Digital Audio Tape) 가장 많이 쓰이는 유형

- ( 초기에 ) 음향 기기용으로 개발

- 폭 : 4 mm, 용량 : 4 ~ 40 GB, 전송률 : 4 ~ 6 Mbps

• DLT (Digital Linear Tape)

- 고용량 : 10 ~ 80 GB, 고전송률 : 12 MBps

Page 37: File Structures  강의

Page 37

기타 저장 장치 기타 저장 장치 (1/2)(1/2)File Structures

자기 테이프 (magnetic tape)

순차 액세스 기억장치

플라스틱에 산화제 2 철 (ferric-oxide) 코팅 : Mylar

두께 : 0.002″

길이 : 1,200 ft, 2,400 ft

폭 : 0.15″, 0.25″, 0.5″

릴 (reel) : 10 ½″

123456789

1 ¹®ÀÚ

Æ®·¢

±×¸² 4.1 ÀÚ±â Å×ÀÌÇÁÀÇ ÀϺκÐ

Page 38: File Structures  강의

자기 테이프 저장 장치 구조– 테이프 구동기 , 판독 / 기록 헤드– 속도 : 75 ~ 225 inches/sec (forward, backward)

¸±

Áø°øÄ®·³

ÀÔÃâ·ÂÇìµå

±×¸² 4.2 Å×ÀÌÇÁ ±¸µ¿±âÀÇ ±¸Á¶µµ

Page 39: File Structures  강의

Page 39

기타 저장 장치 기타 저장 장치 (2/2)(2/2)File Structures

광 디스크 (optical disk)

• 레이저를 사용하여 금속성 표면에 정보를 저장함

• CD-ROM

- 장점 : 가격이 저렴하고 , 대량 생산이 가능하며 , 보존성이 뛰어남

- 단점 : 디스크보다는 느리며 , 임의 액세스가 신속하지 못함

• CD-R: CD Recordable ( 한번 기록한 후에는 CD-ROM 과 동일함 )

• CD-RW: CD Read/Write ( 여러 번 기록이 가능함 )

• DVD: Digital Video Disk

- 양면 사용 , 밀도와 저장 방식 개선

- CD(~700 MB) 의 7 배 이상의 용량 : 4.7 ~ 17 GB

Page 40: File Structures  강의

Page 40

RAID (1/11)RAID (1/11)File Structures

RAID (Redundant Arrays of Inexpensive Disks)

• RAID 개념의 근원은 1988 년 SIGMOD 에 발표된 Patterson, Gibson, Katz 의 논문이다 .

• 사용하는 디스크 개수가 증가하면 이로 인한 장애 발생 빈도가 증가할 수 있는데 , RAID 는 이러한 문제를 해결하여 신뢰성을 높인다 .

• 또한 , 작은 용량의 디스크 여러 개를 묶어 하나의 논리적 디스크를 제공하여 경제성을 높이며 , 입출력을 분산시켜 성능을 향상시킨다 .

Page 41: File Structures  강의

Page 41

RAID (2/11)RAID (2/11)File Structures

중복을 통한 신뢰성 개선• 디스크 장애율 (MTTF: Mean Time To Failure)

- 단일 디스크 = 100,000 시간 (11.4 년 )

- 100 개의 디스크 어레이 ( 한 개라도 장애가 날 확률 )= 100,000/100 = 1,000 시간 (41.66 일 )

• 신뢰성 문제 해결을 위하여 디스크 ( 혹은 데이터 ) 의 중복을 수행- 일반적으로 Mirroring( 이중화 , Shadowing) 을 적용

- Mirroring 된 디스크 어레이의 MTTF (106)2 시간 57,000 년

- 실제로는 ( 자연재해 , 전원 중단 등으로 인하여 ) Mirroring 된 두 디스크에동시에 장애가 발생하는 경우가 종종 있음

Page 42: File Structures  강의

Page 42

RAID (3/11)RAID (3/11)File Structures

병렬성을 통한 성능의 개선

• Data Striping 을 통해서 전송률을 개선 ( 예 : 동일 파일을 여러 디스크에 분산 저장 )

• Bit-level Striping: 각 Byte 의 Bit 를 여러 디스크 상에 분할 저장

- 8개의 디스크로 구성된 어레이의 경우 : i번째 Bit 는 i 번째 디스크에 저장 (i = 0~7)

최대 8 배의 액세스 속도 향상

- 4개의 디스크로 구성된 어레이의 경우 : i번째 및 (i+4)번째 Bit 를 i 번째 디스크에 저장 (i =

0~3)

최대 4 배의 액세스 속도 향상

• Block-level Striping: 한 파일의 블록들이 여러 디스크 상에 분할 저장

- n 개의 디스크 어레이인 경우 : 한 파일의 i 번째 블록이 (i%n)번째 디스크에 저장 (i = 0~(n-

1))

K W A O N N G !Physical Disks

Logical Disk

KANGWON!

Page 43: File Structures  강의

Page 43

RAID (4/11)RAID (4/11)File Structures

RAID 의 레벨• 많은 수의 소형 디스크를 사용하여 성능과 신뢰성을 높이고자 하는

목적에서 여러 종류의 레벨을 사용한다 .

• RAID 는 0, 1, 2, 3, 4, 5 의 여섯 레벨로 크게 나누어진다 .

• 레벨은 어떤 척도의 높고 낮음을 의미하기 보다는 각 레벨이 서로 다른 용도를 위하여 최적화된 시스템이라 볼 수 있다 .

• 즉 , 응용에 따라서 , 사용 용도에 따라서 적당한 레벨을 선택해야 하는 것이다 .

Page 44: File Structures  강의

Page 44

RAID (9/11)RAID (9/11)File Structures

RAID 레벨에 따른 디스크 형성의 예제

(a) RAID 0 : 비중복 스트리핑

(b) RAID 1 : 미러 디스크

(c) RAID 2 : 메모리 스타일 오류 수정 코드

(d) RAID 3 : 비트 - 인터리브된 패러티 (e) RAID 4 : 블록 인터리브된 패러티

P

(f) RAID 5 : 블록 인터리브된 분산 패리티

C C C C

P P P

P P P P

PP

Page 45: File Structures  강의

Page 45

RAID (5/11)RAID (5/11)File Structures

RAID 0 ( 비중복 스트라이핑 )

• 장애 대비를 위하여 여분의 공간을 가지지 않는다 . 신뢰성이 떨어진다 .

• 데이터의 빠른 입출력을 위하여 데이터를 여러 디스크에 분산하여 저장하는 Striping 방법을 사용한다 . 성능이 매우 뛰어나다 .

• 결과적으로 , RAID 0 는 신뢰성은 별로 중요치 않더라도 , 매우 뛰어난 성능이 필요한 경우에 사용된다 .

Page 46: File Structures  강의

Page 46

RAID (6/11)RAID (6/11)File Structures

RAID 1 ( 디스크 미러링 )

• 두 개의 디스크에 동일한 데이터를 저장하는 Mirroring 기법을 사용하는 구조이다 .

• 읽을 때 빠르나 , 쓸 때는 약간 느리다 당연한 결과 ! (두 디스크에 동시에 쓰거나 , 하나에 먼저 쓰고 다른 하나를 나중에 쓰는 방법 사용 )

• 신뢰성은 높으나 저장 용량 당 단가가 비싸다 .

RAID 2 ( 메모리 스타일 오류 정정 코드 )

• Bit-level striping 을 수행하되 오류 정정을 위하여 여분의 디스크를 관리한다 .

• 에러 검출 능력이 없는 디스크를 위해 Hamming 오류정정코드를 사용한다 .

• 그러나 , 실제로 SCSI 드라이브는 에러 검출 능력을 제공하므로 , 이 레벨은 별로 쓰이지 않는다 .

Page 47: File Structures  강의

Page 47

RAID (7/11)RAID (7/11)File Structures

RAID 3 (bit-interleaved parity),RAID 4 (block-interleaved parity)

• Disk Array 가 N+1 구조를 가지며 , N 은 데이터용으로 1 은 패리티용으로 사용된다 .

• 데이터는 N 개의 디스크에 분산 (striping) 되어 저장되고 , 이들에 대한 패리티가 한 개의 디스크에 저장된다 .

• 한 개의 디스크에 오류가 생기면 나머지 디스크들과 패리티용 디스크를 사용하여 데이터 복구가 가능하다 .

• 데이터를 바이트 단위로 분산하여 저장하는 방법이 RAID 3 이고 ,

블록 단위로 분산하여 저장하는 방법이 RAID 4 이다 .

• 읽을 때는 RAID 0 에 해당하는 빠른 속도이나 ,패리티 갱신으로 인하여 쓸 때는 RAID 0 보다 느리다 .

Page 48: File Structures  강의

Page 48

RAID (8/11)RAID (8/11)File Structures

RAID 5 (block-interleaved distributed parity)

• 패리티 정보를 모든 드라이브에 분산하여 저장한다 .

• 이는 패리티 디스크가 병목을 일으키는 현상을 방지하기 위해서다 .

• 쓸 때는 RAID 3 이나 4에 비하여 빠르나 , 읽을 때는 느리다 .

Page 49: File Structures  강의

Page 49

RAID (10/11)RAID (10/11)File Structures

RAID 사용 시 장애 대처 및 디스크 교체• RAID 1~5 는 시스템 운용 중에 디스크의 교체가 가능하다 .

• 교체 중간에 ( 혹은 고장난 디스크가 있는 동안에 ) 는 RAID 1 의 경우 미러된 디스크로 , RAID 2~5 의 경우 여러 디스크의 도움을 받아 서비스를 진행할 수 있다 .

• 또한 , 교체를 하면 다른 디스크들의 도움으로 원래의 데이터를 자동 복구할 수 있다 .

• 결국 , RAID 1~5 의 경우 하나의 디스크 장애에 대해서는 서비스 중단이 발생하지 않는다고 볼 수 있다 .

Page 50: File Structures  강의

Page 50

RAID (11/11)RAID (11/11)File Structures

RAID 레벨의 선택 기준• RAID 0: 데이터 손실이 중요치 않은 고성능 응용에서 사용

• RAID 1: 높은 신뢰성 및 장애 시 빠른 복구가 필요한 경우에 사용

• RAID 2, 4: 레벨 3, 5 에 포함됨 (RAID 2 RAID 3, RAID 4 RAID 5)

• RAID 3, 5: 고성능을 요하는 동시에 , 적정 수준의 신뢰성도 요구되는 경우

• 지금까지 설명한 바와 같이 RAID 는 응용의 목적에 맞도록 레벨을 선택한다 .

• RAID 1 을 사용하는 경우 , I/O 속도 향상을 위하여 데이터를 여러 디스크에 적절히 분배하여 저장하는 strategy 가 필요하다 .

• 아니면 , RAID 0+1(or RAID 10, 레이드 일영 ), 즉 striping & mirroring을 사용하여 신뢰성과 성능을 높일 수도 있다 .( 통신 분야에서 많이 사용하는 방법 )