본문 바로가기
프로그래밍 놀이터/Script(Python)

[python3] 뇌를 자극하는 파이썬 - 코딩을 배우기 전에 읽는 컴퓨터 구조론

by 돼지왕 왕돼지 2016. 9. 27.
반응형

 [python3] 뇌를 자극하는 파이썬 - 코딩을 배우기 전에 읽는 컴퓨터 구조론



-

책을 읽으며 Remind 하는 내용, 핵심 내용, 모르던 내용을 정리한 것입니다. 예문 및 자세한 설명은 책을 구매하여 보세요~



2.1. 폰 노이만 구조


-

최초 컴퓨터는 애니악(ENIAC, Electronic Numerical Integrator and Computer) 였는데, 애니악은 명령어를 기억하고 있지 않기 때문에 프로그램을 변경할 때마다 수많은 케이블을 뽑아 다른 위치에 꽂고 스위치를 내리고 올리는 작업을 해야 했다.


그래서 폰 노이만은 에드박(EDVAC, Electronic Discrete Variable Automatic Computer) 를 개발했다.

에드박은 명령어를 기억 장치에 내장하고 있기 때문에 프로그램을 수정하는 일이 훨씬 수월했다.



-

에드박은 I/O Device, Memory, CPU 로 구성되는 컴퓨터의 구조를 최초로 정의했다.

에드박 이후의 컴퓨터는 거의 모두 이 프로그램 내장식 컴퓨터 구조를 채택하고 있다.




* 2.1.1. 중앙 처리 장치


-

CPU 는 크게 두 가지 요소로 이루어진다.

산술 논리 장치(ALU, Arithmetic Logic Unit), 그리고 제어 장치(CU, Control Unit) 이다.



-

ALU 는 덧셈, 뺄셈, 곱셈, 나눗셈 등의 산술 연산과, 참과 거짓을 다루는 논리 연산을 하는 회로를 갖고 있다.



-

CU 는 Memory 로부터 명령어를 가져온다.(Fetch)

그리고 가져온 명령어를 해독(Decode)한다.

해독한 명령어에 따라 산술 논리 장치에 데이터를 옮기고 연산 수행을 지시한다.

ALU 는 계산을 수행(Execute)한 결과를 Memory 에 다시 저장(Store) 한다.



-

기억 장치로부터 명령어를 불러오고, 해독하고, 실행하는 주기를 일컬어 “명령 주기(Instruction Cycle)” 이라고 한다.

CPU 는 클럭(Clock)을 가지고 있는데, 이 클럭이 움직일 때마다 신호를 보내 명령 주기를 반복한다.




* 2.1.2. 기억 장치




* 2.1.3. 입력/출력 장치


-

입출력 장치들은 버스를 통해 통신을 한다.

고전적인 입출력 버스는 편도 1차선 도로와 같기 때문에, 하나의 I/O 가 점유하여 사용하면 다른 I/O 는 통신하기 어렵다.

이 문제를 해결하기 위해 CPU 와 기억 장치는 System Bus 로 묶고, 그 외의 입출력 장치(주변기기)는 I/O Bus 로 묶어서 CPU 의 입출력 모듈에 연결했다.



-

입출력 버스의 표준은 주변기기의 성능이 진화하며 함께 진화했다.

USB(Universal Serial Bus), PCI(Peripheral Component Interconnect), ISA(Industry Standard Architecture) 등이 그 예이다.

PCI 는 계속 개선되어 현재는 PCI-Express 라는 향상된 버전으로 널리 사용되고 있고, ISA 는 거의 사용되지 않고 있다.




2.2. 운영체제와 앱




2.3. 소프트웨어는 무엇으로 만드는가


-

애니악은 전기 배선을 바꾸는 작업이 프로그래밍이었다. 출력은 천공기(Punching Machine)을 통해 종이에 구멍이 뚫려 나왔다.

애니악은 당시로써는 뛰어난 계산 능력을 갖고 있었지만, 뜨거운 진공관을 식히기 위해 거의 매일 반나절은 운영을 멈춰야 했다.

그리고 프로그램을 변경하려면 약 6000개에 이르는 배선을 재조합해야만 했다.




2.4. 파이썬 프로그래밍 언어

-

귀도 반 로섬(Guido van Rossum) 이 만든 언어



-

메모리가 허용하는 한 무한대의 정수를 다룰 수 있는 등 수치 처리에 강점을 보이고,

다른 언어에 비해 생산성이 높고,

다른 언어로 작성된 코드와 결합하는 능력도 탁월하다.


그래서 과학계, 산업계에서 많이 이용한다.



-

파이썬은 라이브러리가 많은 것으로도 유명하다.



-

파이썬 3는 하위 호환성을 제공하지 않는다.

파이썬 2 코드를 파이썬 3 에서 사용할 수 없다는 이야기이다.



-

파이썬 3가 최신 언어이기는 하지만, 아직 많은 프로그래머들이 파이썬 2를 사용하고 있다.

파이썬 2를 사용하는 환경에 있다면 2를 공부해야 하고,

새로운 프로젝트를 하거나 새롭게 공부한다면 파이썬 3로 시작하면 된다.





반응형

댓글