일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- data science
- Python
- Python Implementation
- 30. Substring with Concatenation of All Words
- Generator
- 43. Multiply Strings
- Class
- kaggle
- Substring with Concatenation of All Words
- concurrency
- Decorator
- attribute
- Protocol
- iterator
- Convert Sorted List to Binary Search Tree
- 시바견
- 밴픽
- 715. Range Module
- 프로그래머스
- DWG
- 109. Convert Sorted List to Binary Search Tree
- t1
- shiba
- 컴퓨터의 구조
- 315. Count of Smaller Numbers After Self
- LeetCode
- Regular Expression
- Python Code
- 파이썬
- 운영체제
- Today
- Total
Scribbling
컴퓨터의 구조 - 5 본문
1. 데이터 구조와 처리
1.1. 기본 데이터 타입 (Primitive Data Type)
- 크기 및 해석이 포함된다.
1.2. 포인터 (Pointer)
- 부호가 없는 정수에 불과하나, 메모리 주소로 해석된다.
1.3 배열
1.4. 비트맵
1.5. 문자열
- C 문자열은 따로 길이를 저장하지 않고, 0을 문자열 터미네이터 (String Terminator)로 사용한다.
1.6. 복합 데이터 타입
- 구조체 (Structure): 메모리 정렬을 위해 패딩 (Padding)을 사용한다.
- 공용체 (Union): 공용체의 맴버들은 메모리를 공유할 수 있다.
1.7. 단일 연결 리스트 (Linked List)
- 데이터의 양이 정해져 있지 않은 경우 잘 작동한다.
- 리스트 원소는 메모리에서 아무 위치에나 있을 수 있다.
1.8. 동적 메모리 할당
- 힙 영역: 프로그램 런타임 라이브러리가 설정해주는 메모리 영역
1.9. 가비지 컬렉션 (Garbage Collection)
- 특정 언어에서는 런타임 환경이 변수 사용을 추적하여 더 이상 사용하지 않는 메모리를 자동으로 해제한다.
1.10. 이중 연결 리스트 (Doubly Linked List)
1.11. 2진 트리 (Binary Tree)
- 대표적인 계측정인 자료 구조로, 값을 서칭하는 측면에서 유리하다.
- 균형잡힌 트리를 만드는 것이 필요하다.
2. 기타
2.1. 대용량 저장장치
- 디스크의 기본 단위는 블록 (Block) 이고, 연속적인 블록을 클러스터 (Cluster) 라고 부른다.
- 데이터는 항상 연속적으로 저장되는 것이 아니라, 사용 가능한 섹터가 있으면 위치와 관계없이 저장된다.
- 대신 운영체제 혹은 장치 드라이버가 데이터가 연속적으로 저장된 것 처럼 다룬다.
- 저장 장치는 고정된 크기의 블록으로 나뉘어져 있으며, 핵심은 이와 같은 구조에서 데이터를 효율적으로 저장/읽는 방법이다.
- 저장장치는 흔히 파일 이름 시스템 (File Name)을 사용한다.
- 가용 공간 (Free Space)에 대한 추적은 비트맵을 사용한다.
2.2. 아이노드 (inode)
- 아이노드는 디스크 블록에 대한 인덱스 (Index)와 노드 (Node)를 합친 단어이다.
- 아이노드를 기반으로 우리가 흔히 사용하는 계층적 파일 시스템 (Hierarchical File System)이 생겨났다.
- 파일과 디렉토리 (Directory)는 고유의 아이노드를 가진다.
- 디렉토리 테이블에 저장된 아이노드 번호를 통해 파일 혹은 디렉토리에 엑세스한다.
- 심볼릭 링크 (Symbolic Link): 원본 파일의 inode를 가리키는 inode 파일
- 하드 링크 (Hard Link): 원본 파일의 inode를 가리킴
참고할만한 사이트: https://koromoon.blogspot.com/2018/05/inode-symbolic-link-hard-link.html
2.3. 데이터 베이스
데이터베이스 (Database)는 정해진 방식으로 조직화된 데이터 모음이다. 데이터베이스 관리 시스템 (DBMS)는 데이터베이스에 정보를 저장하고 읽어올 수 있게 해주는 프로그램이다. 데이터베이스는 일반적으로 B+트리의 구조를 사용한다.
2.3.1. B트리
- 이진트리에서 발전된 형태로, 자동으로 균형을 맞추어준다.
2.3.2. B+트리
- B트리를 개선한 형태로, 리프 노드가 연결 리스트 형태로 되어있다. 따라서 선형 검색이 가능하다.
2.4. 해시 (Hash)
- 해싱 (Hasing), 키 (Key), 해시 함수 (Hash Function), 해시 테이블 (Hash Table), 버킷 (Bucket), 해시 체인 (Hash Chain), 완전 해시 (Perfect Hash)
'Computer Science > Computer Knowledge' 카테고리의 다른 글
컴퓨터의 구조 - 7 (0) | 2021.09.06 |
---|---|
컴퓨터의 구조 - 6 (0) | 2021.09.05 |
컴퓨터의 구조 - 4 (0) | 2021.08.26 |
컴퓨터의 구조 - 3 (0) | 2021.08.25 |
컴퓨터의 구조 - 2 (0) | 2021.08.24 |