컴퓨터 구조#
폰 노이만 구조#

- 초기 컴퓨터 과학자 폰 노이만이 고안한 아키텍처예요.
- 연산, 제어, 저장의 세 가지 핵심 기능으로 이루어져 있어요.
- 주요 구성 요소로 CPU와 메모리, BUS를 사용해요.
중앙 처리 장치#
- 프로그램의 연산을 처리하고 시스템을 관리하는 컴퓨터의 두뇌 역할을 해요.
- 산술 및 논리 연산을 처리하는 ALU, 전체를 제어하는 제어장치, 데이터를 임시로 저장하는 레지스터 등으로 구성해요.
기억 장치#
- 컴퓨터가 동작하는 데 필요한 여러 데이터를 저장하는 공간이에요.
주 기억 장치#
- RAM 등이 해당하며, 실행 중인 프로그램과 데이터를 빠르게 접근할 수 있도록 임시로 저장해요.
보조 기억 장치#
- HDD, SSD 등이 해당하며, 데이터를 전원 공급과 관계없이 영구적으로 보관해요.
- 컴퓨터 부품 사이 또는 컴퓨터 간에 데이터와 신호를 전송하는 통로에요.
- 용도에 따라 데이터 버스, 주소 버스, 제어 버스 등으로 나뉘어요
명령어 집합 구조 (ISA)#
- CPU가 해석하고 실행할 수 있는 기계어 명령어의 집합과 그 형식을 의미해요.
CISC#

- Complex Instruction Set Computer의 약자로, 복잡하고 다양한 명령어를 제공해요.
- 가변 길이 명령어를 주로 사용하며, 한정된 메모리 자원을 효율적으로 사용하기 위해 고안되었어요.
RISC#

- Reduced Instruction Set Computer의 약자로, 핵심적이고 자주 쓰이는 단순한 명령어만을 사용해요.
- 고정 길이 명령어를 사용하며, 빠른 명령어 디코딩과 전력 효율 향상에 유리해요.
x86_64#

- 인텔에서 설계한 대표적인 CISC 아키텍처로, 현재 PC와 서버 시장의 주류를 이루고 있어요.
- 다양한 명령어와 레지스터를 제공하며, 하위 호환성을 유지하면서 성능을 개선해왔어요.
메모리 구조#
메모리 레이아웃#

- 프로그램이 실행되어 프로세스가 될 때 운영체제로부터 할당받는 메모리의 공간 구조예요.
코드 세그먼트#
- 실행할 프로그램의 기계어 코드가 저장되는 영역으로, 주로 읽기 및 실행 권한이 부여돼요.
데이터 세그먼트#
- 초기화된 전역 변수와 상수가 위치하는 영역이에요.
BSS 세그먼트#
- 초기화되지 않은 전역 변수가 저장되는 영역으로, 프로그램 시작 시 자동으로 0으로 초기화돼요.
스택 세그먼트#
- 함수의 매개변수나 지역 변수 등이 저장되는 영역으로, 함수가 호출될 때 생성되고 반환될 때 해제돼요.
힙 세그먼트#
- 프로그램 실행 중
malloc() 등과 같이 동적으로 메모리를 할당받아 사용하는 영역이에요.
Byte-Ordering#
- 2바이트 이상의 데이터를 메모리에 연속적으로 저장할 때 바이트를 배열하는 순서 방식이에요.
Big-Edian#
- 최상위 바이트부터 메모리의 낮은 주소에 먼저 저장하는 방식이에요.
Litte-Endian#
- 최하위 바이트부터 메모리의 낮은 주소에 먼저 저장하는 방식이에요. x86_64 아키텍처 등에서 기본적으로 사용돼요.
-----BEGIN SSH SIGNATURE-----
U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAg4c/dn4BitGH1/xNjKoKEp97I2b
eU57QXvkDBEdNNrEMAAAATYmxvZy5pbW55YS5uZy9wb3N0cwAAAAAAAAAGc2hhNTEyAAAA
UwAAAAtzc2gtZWQyNTUxOQAAAEBjB9ZNVdn+axtoypRarlYCjkJP2YibE5wx87BQxoF4u9
CzVj9i0tcMNj+CJP85O62Nr/77NXTfvRwr7J1fVLUF
-----END SSH SIGNATURE-----