코딩 테스트 치고 나오면서 C++에 대한 기초가 부족한거같아서 C++을 한번 완전 기초부터 다시 해보려고 합니다. 그리고 테스트 준비하면서 공부한걸 다시 정리해서 올릴 생각입니다. 공부도 먼저 책으로 공부 한다고 포스팅은 공부를 다하고 정리하면서 적습니다. 너무 포스팅을 미뤘네요.

C++ 기초전에 C 부분과 기초이론부분을 좀 더 공부하고 왔습니다.

계산적 사고 Computational Thinking

입력 - > 알고리즘 - > 출력 (와 같은 형식은 다 알고리즘이라고 할 수 있지만)

자신이 원하는 답을 도출해낼 수 있는 알고리즘을 만들어야합니다. 문제를 해결 할 수 있는 단계를 찾는 행위

컴퓨터의 작동원리

컴퓨터 (정보화기기) - 하드, 소프트

구성 요소(참고)

중앙 기억 장치 CPU

주 기억 장치 RAM - 전원을 끄면 데이터가 사라짐 'Random' - Aceess Memory (RAM) 임의 접근이 가능한 메모리

그래픽카드 GPU

보조기억장치 - HDD, SSD

컴퓨터를 켤때 일어나는 일 (자료)

운영체제가 해주는 일 (참고)

UNIX, Linux

iOS, 안드로이드

MacOS

Windows

등이 해주는 일 

시스템 프로그램 ( 바탕화면 보호기, 바꿔주는 기능 등)

원래 하드웨어를 어떻게 사용할 것인지 운영체제에 커널(핵심)에서 담당을 한다.

커널 - 운영체제에서 하드웨어를 관리, 중계해주는 핵심 역할

리소스 관리도 운영체제

이후 영상은 전에 한번 정리한적 있어서 스킵하겠습니다. (참고)

영상의 핵심은 CPU, 메모리가, 입출력이 분리가 되어있고 System bus에서 입출력을 받아 나눠주는 일을 한다.

그중 Address bus는 데이터값이 아닌 데이터값의 주소 포인터가 존재하는 이유입니다

CPU 구성 요소 (참고)

제어 장치 Control Unit , 산술 논리 장치(ALU) Arithmetic Logic Unit , 그리고 갖가지 레지스터로 구성 되어 있습니다.

레지스터 Registers는 CPU에 책상역할을 할 수 있다고 볼 수 있습니다. 여러 값을 올려놓는 역할을 합니다.

시각적으로 표현하면 이렇습니다.

포인터는 정확히 주소 값을 가르키는 것입니다. 메모리 값이 아닌 이점을 유의해야합니다.

CPU가 작동하는 원리는 영상에 잘 설명되어있지만 한번 제가 따로 순서를 적은걸 말로 풀어보겠습니다.

1. 프로그램 카운터에 주소값이 들어옵니다. (시작점) 5. 다음 카운터 주소값이 들어옵니다.

2. 메모리 주소 레지스터로 주소값을 넘겨주고 3. 메모리 데이터 레지스터에 주소에 입력되어 있는 값이 들어옵니다.

4. 값이 명령어 일 시 명령어 레지스터로 들어갑니다. 6. 명령어 레지스터에 있는 값이 제어장치로 들어갑니다.

7. 디코드를 실행해서 명령어를 해독해서 실행합니다. (주소 10에 있는 주소를 로드해라) 8. 메모리 주소 레지스터에 10을 넣어줍니다. 9. 3을 메모리 데이터로 가져옵니다.  10. 연산에 사용되는 값은 어큐뮬레이터에 저장된다. 산술 연산 장치를 보조해주는 레지스터 11. 다음 카운터 주소값을 실행합니다. ( 명령이 끝날 때까지 반복하며 명령어를 실행해서 산술 논리 장치에 넣어줍니다. ALU에서 계산된 값을 102 주소에 명령에 따라 12주소에 저장해서 끝납니다.

정보의 기본 단위 Bit 비트

바이트 ( 8개의 비트 ) 메모리 주소의 기본 단위

16, 32 비트 CPU가 데이터를 다루는 기본 단위 - word 워드 - 레지스터의 크기 (고정은 아님)

 

+ Recent posts