1 자료처리 자료처리 (Advanced Data Structures) (Advanced Data Structures) File Structures File Structures 2006 2006년 봄학기 봄학기 문양세 문양세 강원대학교 강원대학교 컴퓨터과학과 컴퓨터과학과 Page 2 Advanced Data Structures by Yang-Sae Moon File Structures File Structures 강의 강의 강의 내용 • 파일의 기본 개념 (Ch. 1 in “화일 구조”) • 파일 저장 장치 (Ch. 2 in “화일 구조”) • 파일의 입출력 제어 (Ch. 3 in “화일 구조”) • 순차 파일 (Ch. 4 in “화일 구조”) • 파일 구조와 관련해서는, 기본 concept 위주로 강의를 진행할 예정임 (O/S나 Device에 깊게 Dependent한 내용은 생략함) File Structures
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
1
자료처리자료처리 (Advanced Data Structures)(Advanced Data Structures)
File StructuresFile Structures
20062006년년 봄학기봄학기
문양세문양세
강원대학교강원대학교 컴퓨터과학과컴퓨터과학과
Page 2Advanced Data Structuresby Yang-Sae Moon
File Structures File Structures 강의강의
강의 내용
• 파일의 기본 개념 (Ch. 1 in “화일 구조”)
• 파일 저장 장치 (Ch. 2 in “화일 구조”)
• 파일의 입출력 제어 (Ch. 3 in “화일 구조”)
• 순차 파일 (Ch. 4 in “화일 구조”)
• 파일 구조와 관련해서는, 기본 concept 위주로 강의를 진행할 예정임
(O/S나 Device에 깊게 Dependent한 내용은 생략함)
File Structures
2
Page 3Advanced Data Structuresby Yang-Sae Moon
파일의파일의 종류종류
정보(Information) ≠ 데이타(Data)
File Structures
데이타(data)
처리(processing)
정보(information)
(Computer)(in disk, tape, …)
D I
I = P(D)
P
Object = Variables(Attributes or Data) +Methods(Processing Mechanism)
Page 4Advanced Data Structuresby Yang-Sae Moon
주요주요 용어용어 (1/2)(1/2)
데이타 필드(field), 속성 (attribute), 데이타 항목 (item)
• 이름을 가진 논리적 데이타의 최소 단위 (예: 나이 필드, 이름 속성)
• 특정 객체(object, entity)의 한 성질의 값
• 테이블(table)의 attribute로 이해할 수 있음
레코드 타입 (record type)
• 논리적으로 서로 연관된 하나 이상의 데이타 필드(항목)들의 집합
• 엔티티 타입 (예: 학생 = {이름 필드, 학번 필드, 성별 필드, …})
레코드 인스턴스 (record instance)
• 레코드 타입의 각 필드에 따라 실제 값이 들어가 어떤 특정 객체를 나타내는 것
• 일반적으로 레코드(record)라고 함 (예: {홍길동, 2005012345, 남, …})
• “화일 구조”에서는 record occurrence라 정의하였음
File Structures
3
Page 5Advanced Data Structuresby Yang-Sae Moon
주요주요 용어용어 (2/2)(2/2)
파일 (file)
• (보조)기억장치에 저장된 같은 종류의 레코드 집합 (set of records)
• 하나의 응용 목적을 위해 함께 저장된 레코드 (예 : 급여, 인사, 재고, 재무, 회계 등)
데이타의 집합을 (일반적으로는) 왜 파일로 구성하는가?
• 주기억 장치(main memory)에 전부 적재하기에는 데이타 양이 너무 많다.
• 프로그램은 특정 시간에 데이타 집합의 일부만을 접근한다.
• 자원 이용의 효율성을 위하여, 데이타 전부를 주기억 장치에 한꺼번에 저장시킬 필요가
없다.
• 데이타를 특정 프로그램의 수행과 독립적으로 보관시켜 데이타의 독립성
(independency) 유지하기 위함이다. ( 여러 응용 프로그램이 공용하기 쉽다.)
File Structures
Page 6Advanced Data Structuresby Yang-Sae Moon
기능에기능에 따른따른 파일의파일의 분류분류 (1/3)(1/3)
기능에 따른 파일의 종류
• 마스터 파일 (master file)
• 트랜잭션 파일 (transaction file)
• 작업 파일 (work file)
• 프로그램 파일 (program file)
• 기타: 보고서 파일(report file), 텍스트 파일(text file)
마스터 파일 (mater file)
• 어느 한 시점에서 조직체의 업무에 관한 정적인 면을 나타내는 데이타의 집합
− 제조 회사의 예: 급여 마스터 파일, 고객 마스터 파일, 인사 마스터 파일, 재고 마스터 파일, 자재
요청 마스터 파일
• 현재 시점의 정보를 표현하는 파일(레코드의 집합)로 볼 수 있음
• 비교적 영구적(permanent)인 데이타를 포함하기도 함 (특수 예: 사전)
File Structures
4
Page 7Advanced Data Structuresby Yang-Sae Moon
트랜잭션 파일 (transaction file)
• 마스터 파일의 변경 내용을 모아 둔 파일 혹은
마스터 파일을 변경(update)하기 위한 데이타 파일
− 새로운 레코드의 삽입(insert)
− 기존 레코드의 삭제(delete)
− 기존 레코드의 내용 수정 (modify, replace)
• 트랜잭션 이란?
− 논리적인 작업 단위 (예: 입학 처리 트랜잭션, 이자율 계산 트랜잭션)일련의 조회 및 변경 연산으로 구성됨
− 하나의 건수로 처리되어야 하며 분리될 수 없는 단일 작업 (All done or not done)
File Structures기능에기능에 따른따른 파일의파일의 분류분류 (2/3)(2/3)
Page 8Advanced Data Structuresby Yang-Sae Moon
작업 파일 (work file)
• 한 프로그램에서 생성한 (출력) 데이타를 다른 프로그램의 (입력) 데이타로 사용하기 위
하여 임시로 만든 파일
• 임시 파일(temporary file)이라고 하며, 프로그래밍 과정에서 자연스럽게 자주 사용하는
기법임
• 작업 파일의 예
− 시스템이 자동으로 만드는 작업 파일: Merge Sort 등의 정렬을 위한 파일
− 프로그램이 만드는 작업 파일: 수강 신청 변경 파일
프로그램 파일 (program file)
• 데이타를 처리하기 위한 명령어들을 저장하고 있는 파일
• 고급 언어(C, Java), 어셈블리어, 데이타베이스 질의어 (SQL 언어) 등
File Structures기능에기능에 따른따른 파일의파일의 분류분류 (3/3)(3/3)
5
Page 9Advanced Data Structuresby Yang-Sae Moon
사용사용 목적에목적에 따른따른 파일의파일의 분류분류
입력 파일 (input file):프로그램의 입력으로 사용되는 파일로서, 일반적으로 프로그램이 읽기(read)만을 하는 파일
출력 파일 (output file):프로그램이 출력에 사용하는 파일로서, 일반적으로 프로그램이 쓰기(write)만을
하는 파일
입출력 파일(input & output file):프로그램에서 입력 및 출력의 두 목적으로 사용하는 파일로서, 읽기 연산 및 쓰기
연산이 모두 적용되는 파일
File Structures
programinput file output file
input & output file
Page 10Advanced Data Structuresby Yang-Sae Moon
파일의파일의 기본기본 연산연산
생성 fopen(…, O_CREAT)
기록 write(…), fprintf(…), …
• 레코드 내용의 갱신 (update)
• 새로운 레코드 삽입 (insert)
• 기존 레코드 삭제 (delete)
판독 read(…), fscanf(…), …
삭제 unlink(…)
개방과 폐쇄 fopen(…), fclose(…), open(…), close(…), …
• 버퍼의 할당과 반환
File Structures
6
Page 11Advanced Data Structuresby Yang-Sae Moon
파일파일 구조구조 선정선정 요소요소 (1/4)(1/4)
파일 구조 선정의 주요 자원 비교
• 주기억 장치 (main memory)
- 특정 데이타를 찾기 위한 최대 비교 연산 횟수 등으로 평가
- 데이타 접근 시간은 모두 일정한 것으로 가정 (random access)
• 보조 저장 장치 (secondary storage) ( 파일 구조 선정의 주요 고려 자원)
- 데이타 액세스 시간이 주기억 장치에 비해 매우 긴 특성을 가짐
- 일반적으로 보조 저장 장치의 접근 횟수가 프로그램 성능의 평가 요소가 됨
파일 구조 선정의 주요 요소
• 가변성 (volatility)
• 활동성 (activity)
• 사용 빈도수 (frequency of use)
• 응답 시간 (response time)
• 파일 크기 (file size)
• 파일 접근 유형
File Structures
Page 12Advanced Data Structuresby Yang-Sae Moon
파일파일 구조구조 선정선정 요소요소 (2/4)(2/4)
가변성 (volatility)
• 파일의 성격
- 내용이 변하지 않는 정적 파일 (주로 보관 및 검색이 목적인 과거의 기록)
- 내용이 자주 변하는 동적 파일 (잦은 변경이 있는 현재의 상황 데이타)
• 가변성
- 전체 레코드 수에 대해 추가 혹은 삭제되는 레코드 수
- 가변성이 높은(추가 및 삭제가 많은) 동적 파일은 빠른 접근과 갱신이 필요
활동성 (activity)
• 주어진 기간 동안에 파일의 총 레코드 수에 대해 액세스가 일어난 레코드 수의 비율
• 가변성이 Update 비율인 반면, 활동성은 액세스 비율을 나타냄
• 활동성이 높으면 (대부분의 레코드가 액세스 된다면) 순차 파일 구조가 유리
File Structures
7
Page 13Advanced Data Structuresby Yang-Sae Moon
파일파일 구조구조 선정선정 요소요소 (3/4)(3/4)
사용 빈도수 (frequency of use)
• 파일의 사용 빈도수
- 일정 기간 동안의 파일 사용 빈도수 (파일이 얼마나 사용되는지를 나타냄)
- 가변성과 활동성에 밀접히 관련 (가변성/활동성이 높으면 일반적으로 빈도수가 높음)
• 사용 빈도수와 파일 구조
- 빈도수가 낮으면 순차 파일 구조가 유리 (sequential access)
- 빈도수가 높으면 임의 접근 구조가 유리 (random access)
응답 시간 (response time)
• 검색이나 갱신에 대해 요구하는 지연 시간
• 빠른 응답 시간의 요구 조건에는 임의 접근 구조를 선택
• 응답 시간이 strict하지 않은 경우에는 순차 파일 구조를 선택
• 실시간(real-time) 조건이 주어지는 경우, 응답 시간은 매우 중요한 설계 요소가 됨
File Structures
Page 14Advanced Data Structuresby Yang-Sae Moon
파일파일 구조구조 선정선정 요소요소 (4/4)(4/4)
파일 크기 (file size)
• 레코드 수와 각 레코드 길이가 파일의 크기를 결정 (trivial)
• 시간이 지남에 따라 파일 크기가 성장 (레코드 길이 확장, 레코드 개수 증가)
• 성장을 유연하게 수용할 수 있는 구조의 채택이 필요 (free space 유지 등)
파일 접근 유형
• 파일에 적용되는 연산의 유형과 접근 형식에 따라 파일 구조를 결정
• 접근 유형의 예제
- 판독 위주 접근 vs. 갱신 위주 접근
- 순차 접근 위주 vs. 임의 접근 위주
File Structures
8
Page 15Advanced Data Structuresby Yang-Sae Moon
File Structures File Structures 강의강의
강의 내용
• 파일의 기본 개념 (Ch. 1 in “화일 구조”)
• 파일 저장 장치 (Ch. 2 in “화일 구조”)
• 파일의 입출력 제어 (Ch. 3 in “화일 구조”)
• 순차 파일 (Ch. 4 in “화일 구조”)
File Structures
Page 16Advanced Data Structuresby Yang-Sae Moon
파일파일 저장저장 장치의장치의 특성특성
저장 장치 (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
9
Page 17Advanced Data Structuresby Yang-Sae Moon
저장저장 장치장치 (memory & storage)(memory & storage)
1차 저장 장치 (primary storage)
• 주기억 장치 (main memory)
- 데이타 액세스 시간이 일정하고 (디스크 등에 비해) 매우 빠름
- 프로그램/데이타 처리를 위한 작업 공간
• 캐시 메모리 (cache memory)
- 주기억 장치의 성능을 향상 시키기 위한 목적으로, CPU Chipset 내에 구현되기도 함
- 주기억 장치 보다 빠른 액세스 속도를 가지며, 최근에는 캐시 메모리 자체도 Primary(L1 Cache), Secondary(L2 Cache)로 구분되기도 함
2차 저장 장치 (secondary storage)
• 자기 디스크 (magnetic disk)
- 데이타 액세스 시간일 일정하지 않고 (메모리에 비해) 액세스 시간이 느림
- 용량이 크고 싸서 주로 파일의 저장에 사용됨
- 저장된 데이타는 주기억 장치를 거쳐(메모리에 올라 와) CPU에 의해 처리됨
• 광 디스크(optical disk), 자기 테이프(magnetic tape) 등
File Structures
Page 18Advanced Data Structuresby Yang-Sae Moon
저장저장 장치의장치의 유형유형 (1/3)(1/3)
캐시 메모리 (cache memory)
• 가장 빠르고 가장 비싼 저장 장치
• SRAM(Static Random Access Memory)을 주로 사용함
• 일부 캐시의 경우는 CPU Chipset 내에 구현되어 고성능을 보장함
• 현재 수십 KB ~ 수 MB 수준의 용량이 제공됨
주기억 장치 (main memory)
• 프로그램 실행과 이에 필요한 데이타 유지 공간 (프로그램이 로딩되는 공간이며, 프로
그램이 사용하는 데이타가 로딩되는 공간이기도 함)
• DRAM(Dynamic Random Access Memory)을 주로 사용함
• 저용량, 소멸성(데이타 저장에는 부적함)
• 현재 수백 MB ~ 수십 GB 수준의 용량이 제공됨
File Structures
10
Page 19Advanced Data Structuresby Yang-Sae Moon
저장저장 장치의장치의 유형유형 (2/3)(2/3)
플래시 메모리 (flash memory)
• 고밀도, 고성능 메모리로서 비소멸성(nonvolatile)의 특성을 가짐
• 주기억 장치와 비슷한 액세스 속도를 보임
• 핸드폰, MP3 Player, PDA 등에서 디스크/메모리 역할을 수행함
• 현재 수 MB ~ 수 GB 수준의 용량이 제공됨
자기 디스크 (magnetic disk)
• 데이타(파일) 저장 장치의 주된 매체로 사용되고 있음
• 데이타 처리와 기록을 위해서는 주기억 장치를 거쳐야 함 (버퍼를 통해서 이루어짐)
• 고용량이며, 비소멸성의 특징을 가짐
• 현재 수십 GB ~ 수십 TB 수준의 용량이 제공됨 (disk array를 구성하여 사용)
File Structures
Page 20Advanced Data Structuresby Yang-Sae Moon
저장저장 장치의장치의 유형유형 (3/3)(3/3)
광 디스크 (optical disk)
• 광학적으로 저장, 레이저로 판독
• 용량이 크고, 보존 기간이 긴 특성을 가짐
• CD-ROM, CD-R, CD-RW, DVD(digital video disk), DVD-ROM