Scribbling

컴퓨터의 구조 - 5 본문

Computer Science/Computer Knowledge

컴퓨터의 구조 - 5

focalpoint 2021. 9. 1. 16:06

 

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

< 출처 - commons.wikimedia.org >

2.3. 데이터 베이스

데이터베이스 (Database)는 정해진 방식으로 조직화된 데이터 모음이다. 데이터베이스 관리 시스템 (DBMS)는 데이터베이스에 정보를 저장하고 읽어올 수 있게 해주는 프로그램이다. 데이터베이스는 일반적으로 B+트리의 구조를 사용한다.

2.3.1. B트리

- 이진트리에서 발전된 형태로, 자동으로 균형을 맞추어준다. 

참고할만한 사이트: https://velog.io/@emplam27/%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0-%EA%B7%B8%EB%A6%BC%EC%9C%BC%EB%A1%9C-%EC%95%8C%EC%95%84%EB%B3%B4%EB%8A%94-B-Tree

2.3.2. B+트리

- B트리를 개선한 형태로, 리프 노드가 연결 리스트 형태로 되어있다. 따라서 선형 검색이 가능하다.

참고할만한 사이트: https://velog.io/@emplam27/%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0-%EA%B7%B8%EB%A6%BC%EC%9C%BC%EB%A1%9C-%EC%95%8C%EC%95%84%EB%B3%B4%EB%8A%94-B-Plus-Tree

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