코딩/+

컴퓨터 공학

Hun die 2022. 4. 21. 14:56

컴퓨터는 크게 메모리, 입출력장치, CPU 3가지로 나눌수있고 장치들은 버스를 통해 연결된다.

 

메모리

 

우리의 데이터가 저장되는 공간으로 메모리의 각 바이트에는 주소(ADDRESS)가 있는데 이를통해 우리가 데이터를 쓰고 읽게된다.

 

비트에 저장하는 방식을 엔디안(endian)이라고 하고, 한 시스템으로 데이터를 전송할 때에는 이를 염두에 두어야한다.

엔디안을 무시하면 데이터의 순서가 뒤섞일 수 있다.

첫 번째 바이트가 LSB에서 리틀 엔디안(Little endian)이고 MSB쪽에 위치하면 빅엔디안(Big endian)이다.

 

리틀 엔디안 VS 빅 엔디안

 

리틀 엔디안 VS 빅 엔디안

먼저 둘을 비교하기에 앞서 엔디언이란 무엇인가? 엔디언(Endianness)은 컴퓨터의 메모리와 같은 1차원의 공간에 여러 개의 연속된 대상을 배열하는 방법을 뜻하며, 바이트를 배열하는 방법을 특히

genesis8.tistory.com

 

 

메모리는 종류

 

메모리는 여러 종류가 있고 이에따른 계층도가 있다.

위로 올라갈수록 접근 빈도수가 높으며 속도가 빨라진다. 하지만, 그만큼 가격이 비싸지고 용량은 작아진다.

CPU는 데이터가 적어 용량이 크면 하드디스크에 저장이 필요한데, 이를 잘 다루

 

입력과 출력

컴퓨터를 하기 위해선 컴퓨터와 사람이 정보를 주고 받아야 하는데 이를 입력(input)과 출력(output)이라고 하며 줄여서 I/O라고 한다. I/O에 연결되는 장치를 I/O 연결장치라고 하며 이들은 컴퓨터의 주변에 의치하기에 주변장치라고도 한다.

 

입력 : 사람에 컴퓨터에게 데이터를 보내는 것 (키보드, 마우스)

출력 : 컴퓨터가 사람에게 데이터를 보이는 것 (모니터)

 

 

중앙 처리 장치

중앙 처리 장치는 실제 계산을 처리하는 컴퓨터 부품으로 산술 논리 장치(ALU, arithmetic logic unit)와 레지스터(register) 및 제어 장치(control unit)로 구성되어있다.

산술 논리 장치 : CPU의 핵심 부품이며 산술계산, 불리언 대수, 기타 연산 등을 수행한다.

어떠한 연산도 가능한 산술논리장치를 설계하는건 가능하지만, 문제는 연산이 복잡해지면 복잡해질수록 회로도 복잡해지고 가격과 전력소모, 장치의 크기 등 여러 면에서 실용성이 떨어진다.

그래서 산술논리장치는 간단한 연산은 매우 빠르게 처리할 수 있기에 복잡한 연산을 간단한 산술논리연산의 조합으로 나누어 처리하도록 외부 처리 장치를 동시에 사용하는 경우가 많다.

 

레지스터 :  CPU의 요청을 처리하는데 필요한 데이터를 일시적으로 저장하는 기억장치다.

기존 임시적으로 데이터를 저장하는 장소는 램(RAM)이지만, 램과는 다르게 연산결과를 메모리로 보내고 영구적으로 저장할 데이터를 하드디스크로 보내는 등의 명령을 처리한다.

이를 위해선 따로 저장하는 임시 기억공간에서 명령을 수행하는데 레지스터는 공간이 작은 대신에 CPU와 직접 연결되어 있어 연산 속도가 메모리에 비해 압도적으로 빨라 메모리보다 훨씬 빠르게 명령에 따라 데이터를 보낼 수 있다.

추가로 CPU는 데이터를 저장할 방법이 없기에 메모리로 직접 데이터를 전송 할 수가 없어 반드시 레지스터를 거쳐야한다.

 

제어 장치 : 프로세서의 조작을 지시하는 CPU의 부품이다.

입출력 장치 사이의 통신을 조율하며, 명령어를 읽고 해석하며 데이터 처리를 위한 방법을 결정한다.

모든 컴퓨터의 자원은 제어장치의 관리를 받으며 중앙 처리 장치와 다른 장치들 사이의 데이터 흐름을 제어한다.

 

 

컴퓨터 아키텍처

 

컴퓨터 아키텍처는 컴퓨터의 여러가지 구성요소들을 배치하는 방법을 말한다.

가장 흔한 구조는 혼 노이만 구조와 하버드 구조 두가지가 있는데 두 구조는 메모리 배열 외에는 모두 동일한 구조다.

하지만, 하버드 구조는 명령어와 데이터를 동시에 가져올 수 있어 좀 더 빠르지만, 두번째 메모리를 처리하기위한 버스가 더 필요하다.

하버드 구조와 폰 노이만 구조

 

폰 노이만 구조와 하버드 구조 

 

폰 노이만 구조와 하버드 구조

Von Neumann architecture. 존 폰노이만이 제시한 컴퓨터 구조. 프로그램 내장 방식이라고도 불립니다. 그 이전의 컴퓨터들은 스위치를 설치하고 전선을 연결하여 데이터를 전송하고 신호를 처리하는

velog.io

 

 

 

프로세스 어드레드 스페이스

프로그램을 더블클릭해서 실핼하면 프로세스로 바뀌며 프로세스는 4가지로 구분해 관리받는다.

이는 코드 데이터 힙 스택이 있는데

코드는 명령어

데이터는 정적 데이터

힙은 동적 데이터 할당 영역이고

스택은 정적 데이터 할당 영역이다.

스레드는 프로세시의 작업 단위

 

스레드끼리 코드 힙 데이터 공유 스택은 각자의 공간이있음

코어가 여럿 되면서 여러 프로그램이 동시 실행이 가능해졌다.(시분할 시스템)

 

 

같은 메모리에는 하나만 접속하게 함

 

응용 : 데이터 활용

표현 : 데이터를 어떻게 암호화 할건가

세션 : 통신 장치간 동기화 및 에러잡기

전송 : 전송방법

네트워크 : 인터넷 식별

데이터 링크 : 오류, 흐름 제어 

물리 : 실제 데이터 전송

 

'코딩 > +' 카테고리의 다른 글

C 검색용  (0) 2022.05.09
Git  (0) 2022.04.19
버전관리, Git 명령어  (0) 2022.04.18