본문 바로가기

3-1 학기/File Structures5

[파일처리] Ch9 Multilevel Indexing and B-Trees Binary Search Trees장점1) 데이터가 물리적으로 정렬되지 않는다2) 트리가 balanced 상태일 때 성능이 좋다3) 삽입비용과 검색비용이 같다 단점1) 트리가 unbalanced 상태일 때는 더 많은 탐색이 필요하다 예를 들어 아래와 같이 정렬된 key들이 있다고 가정하자AX, CL, DE, FB, FT, HN, JD, KF, NR, PA, RF, SD, TK, WS, YJ 그럼 balanced 이진 탐색 트리는 아래와 같을 것이다. 그러나, 이진 탐색 트리가 비대칭적으로 형성된다면 아래와 같이 탐색 효율은 급격히 감소하는 것을 볼 수 있다. Paged Binary Tree  이진 트리를 페이지로 나눈 다음 각 페이지를 디스크의 연속 위치 블록에 저장하는 이진 트리를 칭한다.위와 같은 p.. 2024. 6. 5.
[파일처리] Ch7 Indexing Index우선 아래의 그림은 기본 인덱스 구조이다. 데이터 파일은 입력 순서에 따라 기록이 파일에 입력되는 순서에 따라 발생하는 것을 의미한다. 인덱스 파일은 고정 길이 레코드로 구성되며 데이터 파일보다 훨씬 작다. 그러나 이런 구조는 다음과 같은 문제를 야기한다. 단점1) 인덱스를 이진 탐색하려면 여러 디스크 검색이 필요하지만 성능이 좋지 않다.2) 레코드 추가 또는 삭제로 인한 인덱스 재배치는 secondary storage의 레코드를 이동하거나 정렬해야 하므로 비용이 많이 든다.  이런 문제를 해결하기 위한 방법으로 인덱스의 계층 구조를 형성하는 것이 있다. 이때 secondary key는 primary key와 다르게 중복을 허용한다.결합 중인 목록이 정렬된 순서대로 있으면 일치가 훨씬 쉬워진다... 2024. 6. 5.
[파일처리] NAND Flash Memory Overview NAND Flash Memory 구조 소블록 플래시 메모리 각 블록은 32개의 페이지로 구성 각 페이지는 (512 + 16) byte로 구성 대블록 플래시 메모리 각 블록은 64개의 페이지로 구성 각 페이지는 (2048 + 64) byte로 구성 특징 seek와 rotation 시간이 없다. 즉, 플래시메모리가 하드디스크보다 빠른 것이다. 그래서 플래시메모리는 어느 곳에 접근하든지 똑같은 비용이 발생한다. Asymmetric read/write write cost가 read 보다 10배 비싸다 no in-place update(덮어쓰기) 한 번 바뀌면 다시 write를 하지 못한다. 즉, 데이터가 차있으면 다시 overwrite를 하지 못한다는 특징을 가지고 있다. 그래서 이를 해결하기 위해 빈 페이지로.. 2024. 4. 16.
[파일처리] Ch3 Secondary Storage and System Software 위의 사진은 위에서 바라본 원반(platter)의 모습이다. 원반은 트랙(track)으로 구성되고, 트랙은 섹터로(sector)로 구성된다. 섹터의 크기는 512byte로 정해지며 가장 작은 단위이다. 섹터로 레코드를 구성하는 방법은 두 가지가 있다. 섹터당 하나의 레코드만 저장 (시간 효율성을 위해) 레코드를 섹터에 걸쳐 허용 (스토리지 효율성을 위해) 이번엔 입체적인 모습의 원반인데, 7개의 실린더(Cylinder)가 있는 것을 확인할 수 있다. 실린더란, 섹터보다 큰 단위로 전체 원반에서 같은 트랙의 부분을 의미한다. 다른 용어들도 같이 정리하자면 클러스터(Cluster) 일정한 수의 연속된 섹터를 의미한다. 파일에 할당할 수 있는 최소 공간 단위이다. 더 큰 클러스터는 검색하지 않고도 더 많은 섹.. 2024. 4. 16.
[파일처리] Ch2 Fundamental File Processing Operations Physical File 저장소에 실제로 존재하는 파일 OS에서 관리하는 파일 디렉토리에 있는 파일 Logical File 프로그램에서 볼 수 있는 파일 프로그램이 어떤 물리적 파일을 사용할지 모르는 상태에서 파일에서 수행할 작업을 허용한다.즉, 자신이 행하는 연산이 정확히 디스크의 어떤 위치에 적용되는지 알 필요가 없다 Opening Files 응용프로그램에서 물리적 파일에 접근하기 위해 논리적 파일을 생성해하는 과정이다. 파일을 여는 작업 파일이 존재하지 않으면 파일 생성 후, 파일을 연결한다. 파일 열기의 예시이다. fd = open(filename, flags [, pmode]); Closing Files 논리적 파일 이름 또는 파일 설명을 다른 파일과 함께 사용할 수 있도록 한다. 모든 것이 파.. 2024. 4. 16.