반응형

파일처리 8

[파일처리] Organizing Files for Performance

데이터 압축 (Data Compression) ※ 데이터 압축의 장점 - 파일 크기를 작게 만들어 저장 공간을 절약함 - 전송 속도를 빠르게 함 - 순차 탐색 속도를 빠르게 함 ※ 데이터 압축의 단점 - 압축된 파일은 읽을 수 없음 - 인코딩, 디코딩 비용이 필요 ※ 데이터 압축 방식 다른 표기법의 사용(Using a Different Notation) - redundancy reduction : 간결한 표기법으로 - ex) 미국의 50개 state : 2byte(16bit) -> 6bit로 표현 가능 각 state를 0 ~ 49로 맵핑하면 49(110001)를 표현하기 위해 6bit만 필요함 반복되는 열의 삭제 (Suppressing Repeating Sequences) - Run-length enco..

파일처리 2022.04.25

[파일처리] 레코드 파일 관리 (Managing Files of Records)

레코드 키 (Record Keys) 파일에서 임의의 레코드에 접근하기 위해서 키(key)를 사용하는 것이 편리하다. 키는 정규 형태 (Canonical form)가 필요하고 특성에 따라 다음과 같이 분류된다. Primary key - 유일하고 바뀌지 않는 키 값 ex) 학번, 주민등록번호 Secondary key - 중복이 있을 수 있는 키 값 ex) 이름, 학과 레코드 검색 방법 순차 탐색 (Sequential Search) - 레코드를 검색할 때 차례대로 탐색을 수행 - n개의 레코드를 갖고 있는 파일에서 최악의 경우 n번의 read가 실행됨 (O(N)) - 성능 향상을 위해 블록화(Record Blocking) 기법을 이용함 ※ Record Blocking - 여러 개의 record를 한 번에 읽어..

파일처리 2022.04.25

[파일처리] Record Structure 보충 / 활용

※ 길이 지시자(Length Indicator)를 이용한 레코드 구조 예시 필드 구분 방법 : 구분자 방식(Separate Fields with Delimiters) 레코드 구분 방법 : 길이 지시자 방식(Records with a Length Indicator) ※ WritePerson()의 과정 1. 각 레코드를 기록하기 전에 해당 레코드의 필드 길이의 합을 알아야만 함 2. 버퍼에 레코드의 전체 내용을 저장 (필드 사이에 구분자를 추가) 3. 버퍼의 길이를 통해 레코드의 길이를 구함 4. 파일에 레코드의 길이를 write 5. 파일에 버퍼 내용을 write ※ 레코드 길이 표현 방법 2byte binary form - 문자형태로 변환할 필요 없음 - ASCII 형태로 저장할 때보다 메모리를 절약할 ..

파일처리 2022.04.24

[파일처리] 파일 구조 - Field Structure / Record Structure

Stream 스트림(stream)이란 데이터, 패킷, 비트 등의 일련의 연속성을 갖는 흐름을 의미한다. 파일은 stream of bytes로 구성되며 스트림을 통해서 입출력 작업을 수행할 수 있다. 하지만 파일에 저장될 때 데이터가 구분이 되지 않는다는 문제가 있고 이를 해결하기 위해서는 필드와 레코드라는 단위로 나누어 데이터를 파일에 저장해야 한다. Class Person{ public: char LastName[11]; char FirstName[11]; char address[16]; char city[16]; char state[3]; char zip[10]; }; Field 필드(field)는 파일을 구성하는 요소 중에서 의미를 갖는 가장 작은 논리적 단위이다. 즉, 파일을 읽고 쓴다는 것은 필..

파일처리 2022.04.24

[파일처리] SSD - 플래시 메모리(Flash memory)

최근 하드디스크보다 많이 쓰이는 SSD(Solid State Drive)는 NAND Flash memory이다. 플래시 메모리의 장점은 다음과 같다. 빠르다 전력 소비가 적다 내구성이 높다 크기가 작다 무게가 가볍다 소리가 안 난다 NAND Flash Memory의 구조 플래시 메모리는 여러 개의 블록으로 구성되어 있고 각 블록은 여러개의 페이지로 구성되어 있다. 또한 페이지는 주 저장소인 섹터와 페이지 관리용 meta data를 저장하는 스페어로 구성되어 있다. 플래시 메모리는 소블록 플래시 메모리와 대블록 플래시 메모리로 나뉘는데 소블록 플래시는 거의 단종되어 주로 대블록 플래시를 사용한다. 소블록 플래시 메모리 - 16KB 크기의 블록들로 구성 - 각 블록은 32개의 페이지로 구성 - 각 페이지는 ..

파일처리 2022.04.13

[파일처리] 하드디스크의 구조 - 디스크 액세스 비용

하드디스크에 데이터를 읽거나 쓰는 행위를 디스크 액세스(Disk Access)라고 한다. 디스크 액세스 비용 Seek time - Arm이 데이터가 있는 실린더로 이동하는 시간 Rotational Delay - Head 밑에 데이터가 있는 섹터가 위치하도록 Platter가 회전하는 시간 Transfer time - 데이터의 총 길이만큼 Platter가 회전하면서 데이터를 읽고 쓰는 시간 - Transfer time = (총 전송 데이터 크기) / (한 트랙의 크기) * rotation time 디스크 액세스 비용 = Seek time + Rotational Delay + Transfer time 디스크 액세스 시간 계산 아래와 같은 스펙을 가진 하드디스크가 있을 때 256바이트 짜리 레코드 34000개가..

파일처리 2022.04.13

[파일처리] 하드디스크(Hard Disk)의 구조

하드디스크의 구조 (위에서 본 모습) (옆에서 본 모습) Platter - 데이터가 저장되는 곳, 즉 디스크를 말한다. - platter 여러 개가 겹쳐져있는 구조를 가진다. Spindle - 플래터를 회전시키는 역할을 한다. Arm - head가 원하는 곳을 읽을 수 있도록 이동시켜주는 역할을 한다. Head - arm 끝에 달려있는 장치로 플래터에 데이터를 읽거나 쓰는 역할을 한다. 플래터의 구체적인 단위 Sector - 트랙을 구성하는 최소 단위 = 가장 작은 저장 단위(보통 512byte) Track - 트랙은 섹터로 구성되며 섹터가 쭉 나열되어 있는 것 Cylinder - 같은 위치에 존재하는 트랙들의 모음(논리적 단위) Cluster - 연속된 섹터의 모음(논리적 단위) - 파일에 할당하는 최..

파일처리 2022.04.11

[파일처리] 파일처리 개요

파일이란 secondary memory(HDD, SSD 등)에 저장된 같은 형식을 가진 record들의 집합이다. 파일의 종류 Physical Files - 물리적 파일로 실제 디스크에 저장되며 OS가 관리하는 물리적인 파일 Logical Files - 논리적 파일로 프로그램 상에서 접근하는 파일 - file open 시 OS가 Physical file과 맵핑된 Logical file을 넘겨주어, 이 파일을 읽거나 쓰게 된다. 파일 구조(File Structure) 파일 구조란 데이터를 표현하는 representation과 그 데이터를 접근하는 operation의 조합이다. representation의 예시로는 C언어의 구조체 등이 있고 operation은 삽입, 삭제, 검색 등이 있다. 좋은 파일 구조..

파일처리 2022.04.11
반응형