데이터베이스 인덱스
·
CS/데이터베이스
인덱스를 사용해야하는 근본적인 이유인덱스를 사용하는 이유는 무엇일까? 효율적으로 조회하기 위해서 일 것이다. 그럼 왜 풀텍스트 스캔을 하면 시간이 오래 걸리고, 인덱스를 사용하는 것이 더 효율적일까?데이터베이스의 스토리지 엔진은 컴퓨터와 마찬가지로 하드디스크에 정보를 저장하고 읽어온다. 디스크는 아래 그림과 같이 구성되어 있다. 여기서 섹터는 하드 드라이브의 최소 기억 단위로 트랙의 일부이다. 만약 정보를 읽으라는 명령이 떨어지면 헤드와 암을 열심히 움직여 섹터를 탐색한다. 내용을 읽으려면 암과 헤드가 원하는 track으로 이동해야하고 (빙글빙글 돌고 있는 플래터의) 타이밍이 맞아 헤드와 섹터가 맞닿아야 한다. 이 과정 자체가 굉장히 느리기 때문에 효율적으로 디스크를 조회하려면 최소한의 섹터 범위 안에서..
[운영체제 OS] 디스크 관리 및 스케줄링 Disk
·
CS/운영체제 OS
Github Repo: pythonstrup 1. Disk 1-1. Disk Structure Logical Block 디스크의 외부에서 바라보는 디스크의 단위 정보 저장 공간들 주소를 가진 1차원 배열처럼 취급 정보를 전송하는 최소 단위 Sector Logical Block이 물리적 디스크에 매핑된 위치 디스크를 관리하는 최소의 단위 Sector 0은 최외곽 실린더의 첫 트랙에 있는 첫 번째 섹터이다. 부팅과 관련된 정보가 저장되어 있다. Sector에서 데이터를 읽고 쓰는 요청은 Disk Controller가 직접 조작 1-2. Disk Management Physical Formatting (Low-level Formatting) 디스크를 컨트롤러가 읽고 쓸 수 있도록 sector들로 나누는 과정 ..
[운영체제 OS] 파일 시스템 구현 File System Implementations
·
CS/운영체제 OS
Github Repo: pythonstrup 11 파일 시스템 구현 File System Implementations 목차 Allocation of File Data in Disk 1-1. 연속 할당 Contiguous Allocation 1-2. 링크 연결 할당 Linked Allocation 1-3. 인덱스 할당 Indexed Allocation Allocation의 구현 2-1. Unix 파일 시스템 2-2. Fat 파일 시스템 구조 Free Space Management 3-1. Bit Map (Bit Vector) 3-2. 연결 리스트 Linked List 3-3. Grouping 3-4. Counting 디렉토리 구현 Directory Implementation 디렉토리 구조 Directory..
[운영체제 OS] 파일 시스템 File System
·
CS/운영체제 OS
Github Repo: pythonstrup 10 파일 시스템 File System 목차 파일 시스템의 개념 1-1. 파일과 파일 시스템 1-2. 디렉토리와 파티션 1-3. 파일 보호 File Protection 1-4. Mounting Access Method 2-1. 순차 접근 Sequential Access 2-2. 직접 접근 Direct Access (Random Access) 2-3. 색인 접근 Index Access 1. 파일 시스템의 개념 1-1. 파일과 파일 시스템 A named collection of related information 파일(File)은 저장 단위이며, 관련된 정보 자료들의 집합에 이름을 붙인 것이다. 일반적으로 레코드(Record) 혹은 블록(Block) 단위로 비휘발..
[운영체제 OS] 가상 메모리 Virtual Memory
·
CS/운영체제 OS
Github 주소: pythonstrup 09 가상 메모리 Virtual Memory 목차 가상 메모리의 개념 1-1. 가상 메모리란 1-2. Demand Paging Page Replacement 2-1. Optimal Algorithm 2-2. FIFO Algorithm 2-3. LRU Algorithm 2-4. LFU Algorithm 2-5. Clock Algorithm(Second Chance Algorithm) Page Frame Allocation 3-1. Allocation Problem 3-2. Frame 그룹에 따른 Replacement Thrashing 4-1. Thrashing이란 4-2. Thrashing Prevention Page Size 결정 1. 가상 메모리의 개념 1-1...
[운영체제 OS] 메모리 관리 Memory Management
·
CS/운영체제 OS
Github Repo: pythonstrup 08 메모리 관리 Memory Management 목차 주소 Address 1-1. 주소의 종류 1-2. 주소 바인딩 address binding 메모리 관리와 관련한 용어 2-1. 동적 로딩 Dynamic Loading 2-2. 동적 연결 Dynamic Linking 2-3. 중첩 Overlays 2-4. Swapping 물리적 메모리의 관리 Allocation of Physical Memory 3-1. 물리적 메모리의 할당 방식 3-2. 연속 할당 Contiguous Allocation 3-3. 불연속 할당 Noncontiguous Allocation 불연속 할당의 기법 4-1. 페이징 Paging 4-2. 계층적 페이징 Multilevel Paging 4..