1/103
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced | Call with Kai |
|---|
No analytics yet
Send a link to your students to track their progress
사용자 (프로그램) 관점
논리적 구조의 파일
운영체제 관점
물리적 구조의 파
데이터 필드 (Field), 속성 (attribute), 데이터 항목 (item)
논리적 데이터의 최소 단위
레코드 타입 (Record Type)
논리적으로 연관된 데이터 필드들의 집합
레코드 인스턴스 (Record Instance)
레코드 타입의 각 필드에 따라 실제 값이 들어가는 객체
파일 (File)
같은 종류의 레코드 집합이 저장된 보조 기억장치의 데이터 구조
마스터 파일 (Master File)
조직체의 업무에 관한 정적인 면을 나타내는 데이터의 집합
트랜잭션 파일 (Transaction File)
마스터 파일을 변경하기 위한 데이터 파일
작업 파일 (Work File)
한 프로그램에서 생성한 데이터를 다른 프로그램의 입력 데이터로 사용하기 위한 임시 파일
프로그램 파일 (Program File)
데이터를 처리하기 위한 명령어들을 저장하고 있는 파일
입력 파일 (input file)
프로그램의 입력으로 사용되는 파일 로서, 일반적으로 프로그램이 읽기(read)만을 하는 파일
출력 파일 (output file)
프로그램이 출력에 사용하는 파일 로서, 일반적으로 프로그램이 쓰기(write)만을 하는 파일
입출력 파일(input & output file)
프로그램에서 입력 및 출력의 두 목적으로 사용하는 파일로서, 읽기 연산 및 쓰기 연산이 모두 적용되는 파일
가변성 (volatility)
파일의 성격을 나타내는 요소로, 내용이 변하지 않는 정적 파일과 내용이 자주 변하는 동적 파일로 구분됨
활동성 (activity)
파일의 액세스 비율을 나타내는 요소로, 활동성이 높으면 순차 파일 구조가 유리함
사용 빈도수 (frequency of use)
파일의 사용 빈도수를 나타내는 요소로, 빈도수가 낮으면 순차 파일 구조가 유리하고, 빈도수가 높으면 임의 접근 구조가 유리함
응답 시간 (response time)
파일의 검색이나 갱신에 대해 요구하는 지연 시간을 나타내는 요소로, 응답 시간이 strict하지 않은 경우에는 순차 파일 구조를 선택함
파일 크기 (file size)
파일의 레코드 수와 각 레코드 길이에 따라 결정되는 요소로, 성장을 유연하게 수용할 수 있는 구조의 채택이 필요함
캐시 메모리(cache memory)
주기억 장치의 성능을 향상시키기 위해 CPU Chipset 내에 구현되는 메모리로, 주기억 장치보다 빠른 액세스 속도를 가짐
2차 저장장치(secondary storage)
자기 디스크, 광디스크, 자기 테이프 등으로 구성되는 저장 장치로, 데이터 액세스 시간이 주기억 장치에 비해 느림
자기 디스크(magnetic disk)
데이터(파일) 저장에 사용되는 저장 매체로, 용량이 크고 주기억 장치를 거쳐 CPU에 의해 처리됨
캐시 메모리(cache memory)
가장 빠르고 비싼 저장 장치로, SRAM을 주로 사용하며 CPU Chipset 내에 구현되어 고성능을 보장함
주기억 장치(main memory)
프로그램 실행과 데이터 유지를 위한 공간으로, 프로그램이 로딩되는 공간이며 데이터가 로딩되는 공간이기도 함
플래시 메모리(flash memory)
고밀도, 고성능 메모리로서 비소멸성의 특성을 가지며 주기억 장치와 비슷한 액세스 속도를 보임
광 디스크(optical disk)
광학적으로 저장되고 레이저로 판독되는 저장 매체로, 용량이 크고 보존 기간이 긴 특성을 가짐
자기 테이프(magnetic tape)
데이터의 백업과 보존을 위한 저장 매체로, 순차 접근이 적용되는 대표적인 저장 장치
플로피 디스크 (Floppy Disk)
유연한 디스크 저장 장치로, 1970년경 IBM에서 개발되었으며 직경은 5¼ inch와 3½ inch이다.
블로킹 (Blocking)
데이터 전송의 단위인 블록(block)을 의미하며, 블록 크기는 트랙 길이보다 작거나 같아야 한다.
블록 크기 (Block Size)
과거에는 512 bytes, 1024 bytes, 2048 bytes였으나 현재는 4096 bytes, 8192 bytes 등이 사용된다.
블로킹 인수 (Blocking Factor)
블록 크기와 레코드 크기에 따라 블로킹을 결정하는 인수로, I/O 시간을 감소시키는 장점과 저장 공간이 감소하는 단점이 있다.
고정 길이 블로킹 (Fixed Length Blocking)
고정 길이 레코드를 블록에 저장하는 방법이다.
신장된 가변 길이 블로킹 (Spanning Variable Length Blocking)
가변 길이 레코드를 지원하며, 한 레코드가 인접한 블록에 걸쳐서 저장된다.
비신장된 가변 길이 블로킹 (Non-Spanning Variable Length Blocking)
가변 길이 레코드를 지원하며, 한 레코드는 하나의 블록에 저장된다.
레코드와 블록
고정 길이 블로킹에서는 길이만 알면 레코드를 구분할 수 있으며, 가변 길이 블로킹에서는 레코드 끝 마크와 길이 지시자를 사용하여 레코드를 관리한다.
적재 밀도 (Loading Density)
블로킹에서 갱신을 위한 자유 공간 할당을 위해 일정 비율의 dummy space를 유지하는 것을 의미한다.
균형 밀도 (Equilibrium Density)
레코드의 확장과 축소에 따른 레코드의 이동 빈도와 단편화 등을 고려하여 예상되는 저장 밀도를 의미한다.
집약성 (Locality)
논리적으로 연관된 레코드들이 물리적으로 가깝게 위치하는 정도를 나타내며, 집약성이 강할수록 성능이 향상된다.
파일의 입출력 제어 환경
파일을 사용하고 관리하는 환경
사용자 (프로그램) 관점
파일을 논리적 구조로 사용함
운영체제(with 파일 관리자) 관점
파일을 물리적 구조로 사용함
운영체제
다수 사용자를 위해 컴퓨터 자원을 관리하는 소프트웨어
파일 조직 기법
파일을 블로킹이나 분산 저장 등의 방법으로 조직화함
파일 기술자 (file descriptor)
파일에 접근하기 위한 식별자로서 정수로 표현됨
표준 입력(키보드)
파일 기술자 0으로 표현됨
표준 출력(출력 화면)
파일 기술자 1으로 표현됨
표준 에러
파일 기술자 2으로 표현됨
프로세��
동시에 실행 가능한 프로그램
커널(kernel)
프로세스 이하의 모든 계층을 통합하는 소프트웨어
파일 기술자 테이블
각 프로세스가 사용하는 파일 기록 테이블
개방 파일 테이블
현재 시스템이 사용 중인 개방된 파일에 대한 엔트리 저장
인덱스 노드 (index node)
파일의 저장 위치, 크기, 소유자 등의 정보를 관리
파일 입출력 절차
파일을 읽거나 쓰는 과정
디렉토리
파일을 식별하는 Inode 번호와 파일 이름을 저장한 파일
파일 이름과 Inode
여러 파일 이름이 같은 Inode를 가리킴
순차 파일 (Sequence File)
레코드들을 저장하는 가장 기본적인 방법으로서, 레코드들을 (지정된 순서에 따라) 연속적으로 저장하는 파일
입력 순차 파일 (entry-sequenced file)
레코드가 입력되는 순서대로 저장함 (즉, 입력 순서가 레코드의 저장 순서를 결정함)
키 순차 파일 (key-sequenced file)
레코드의 특정 필드 값(키 값) 순서에 따라 저장
스트림 파일 (Stream File)
연속적인 판독(read) 연산을 통해 레코드가 파일�� 저장되어 있는 순서에 따라 데이터�� 액세스하는 파일
순차 접근 스트림 파일 (sequential access stream file)
순차 접근만을 허용함
임의 접근 스트림 파일 (random access stream file)
임의 접근이 허용됨
접근 모드 (access mode)
파일에서 수행하려는 연산에 따라 판독(read), 기록(write), 갱신 (read/write), 첨��(append) 등을 파일 개방(open) 시에 명시하여야 함
판독(read) 연산
기본 스트림 파일을 ��독(read) 모드로 열면 판독 포인터는 파일의 첫 번째 바이트를 가리킴
기록(write) 연산
파일을 기록(write) 모드로 열면 기록 포인터는 파일의 첫 번째 바이트가 기록될 위치를 가리킴
C 언어를 이용한 스트림 파일의 생성
streamfile = fopen("stream.txt", "w");
fputc(ch, streamfile)
스트림 파일에 한 글자(character)를 기록함
fclose(streamfile)
앞서 개방한 스트림 파일 streamfile을 닫���
순차 접근 스트림 파일
연���적으로 파일을 접근하고, 파일에 있는 모든 바이트를 처리하는 경우에 유용
임의 접근 스트림 파일
이원 탐색법 (binary search)을 파일에 적용하여 임의로 액세스할 수 있음
오프셋(offset)
파일에서 판독 또는 기록 포인터의 위치를 변경하는 데 사용되는 값
fseek() 함수
파일 스트림에서 판독 또는 기록 포인터의 위치를 변경하는 데 사용되는 함수
ftell() 함수
파일 스트림에서 판독 또는 기록 포인터의 인덱스 값을 반환하는 데 사용되는 함수
임의 접근 스트림 파일
파일을 판독 모드로 개방하여 사용하는 파일
판독 모드
파일을 읽기 위해 개방하는 모드
streamfile
"stream.txt" 파일을 판독 모드로 개방한 스트림 파일
판독 포인터
파일에서 현재 읽고 있는 위치를 가리키는 포인터
offset
현재 판독 포인터의 위치를 반환하는 함수
SEEK_SET
파일의 시작 위치를 나타내는 상수
SEEK_END
파일의 끝 위치를 나타내는 상수
SEEK_CUR
현재 판독 포인터의 위치를 나타내는 상수
입력 순차 파일
레코드가 순서대로 쌓여 있는 파일
heap file
레코드가 순서대로 쌓여 있는 입력 순차 파일의 다른 이름
레코드
파일에서 하나의 데이터 단위를 나타내는 정보
필드
레코드를 구성하는 데이터의 하나의 단위
레코드 삽입
기존 파일의 끝에 새로운 레코드를 추가하는 작업
레코드 삭제
파일에서 기존의 레코드를 제거하는 작업
레코드 변경
파일에서 기존의 레코드를 수정하�� 작업
검색 작업
주어진 필드 값에 대응하는 레코드를 찾는 작업
키 필드
검색을 수행하는 데 있어서 레코드에서 비교 대상이 되는 필드
탐색 키 필드
검색을 수행하는 데 있어서 비교 대상으로 주어진 필드
키 순차 파일
저장 장치의 레코드 순서와 파일에 저장된 레코드들의 논리적 순서가 같은 파일
정렬된 파일
특정 키 필드 값에 따라 정렬된 파일
정렬 키
정렬 순서 결정에 사용된 값의 필드
오름차순
값이 작은 것부터 큰 순서로 정렬되는 순서
내림차순
값이 큰 것부터 작은 순서로 정렬되는 순서
일괄 처리
한 번에 여러 작업을 처리하는 방식
순차 파일 설계 (Sequential file design)
데이터를 순차적으로 저장하고 액세스하는 파일 구조의 설계 방법
레코드 (Record)
데이터의 단위로 구성된 정보의 묶음
필드 (Field)
레코드 내에서 하나의 데이터 항목을 나타내는 부분
활동 파일 (Active file)
주로 액세스되는 데이터를 저장하는 파일
비활동 파일 (Inactive file)
주로 액세스되지 않는 데이터를 저장하는 파일