본문 바로가기
교재 리뷰/뇌를 자극하는 파이썬3

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

by 펄서까투리 2019. 10. 15.

# 세줄요약 #

1. 폰 노이만 구조: 1945년 과학자 폰 노이만이 논문 'EDVAC에 관한 보고서'를 통해 데이터를 주고 받는 '입출력 장치', 데이터와 명령어를 보관하는 '기억장치', 데이터의 가공을 담당하는 '중앙 처리 장치'로 구성된 현대 컴퓨터의 구조를 최초로 정의.

  • 중앙 처리 장치(CPU, Central Processing Unit): 산술연산(+, -, *, /)과 논리연산(True False)을 수행하는 '산술 논리 장치'와 명령어를 해독하고 데이터를 산술 논리 장치로 보내고 받아들이는 '제어장치'로 이루어짐.
    • 이렇게 명령어를 불러오고 해독하여 실행하는 주기를 명령주기(Instruction Cycle)라고 부른다.
    • 예시) 1GHz CPU: 1초에 10억회의 명령 주기를 수행하는 성능을 가진 CPU
  • 기억장치(Memory): 데이터와 함께 명령어를 저장하는 역할.
    • 캐시(Cache): CPU와 가장 가까이에 있는 메모리(가장 성능이 좋고 가장 비싼 메모리)
    • 램(RAM): 주기억 장치
    • 보조기억장치: 하드디스크(HDD or SSD). 용량은 가장 크지만 성능은 가장 떨어짐.
  • 입출력 장치(Input/Output Device): 입출력 버스(I/O BUS)를 통해 중앙 처리 장치, 기억장치와 정보를 주고 받음.
    • 직렬로 구성할 시 정보가 가장 느린 입출력 장치 때문에 밀리는 현상을 막기 위해,  CPU와 기억장치는 시스템 버스(System Bus)로 묶고 그외의 입출력 장치들도 각각의 버스로 묶어 병렬로 구성한다.

폰 노이만 구조. [https://codingisgame.tistory.com/7]

2. 운영체제는 애플리케이션에게 API(Application Programming Interface)를 제공하여 운영체제가 제어하고 있는 하드웨어를 이용할 수 있도록 해주고, 프로그래머들은 프로그래밍 언어를 통해 애플리케이션 소프트웨어를 개발한다.

- 애플리케이션: 우리가 컴퓨터에서 사용하는 소프트웨어 프로그램(게임, 오피스365, 카카오톡 메신저 등등)

- 운영체제(OS, Operating System): 애플리케이션이 다양한 하드웨어 위에서 동작할 수 있도록 하는 시스템 소프트웨어.

 

3. 프로그래밍 언어는 소스코드를 컴파일하여 실행파일을 만다는 컴파일 방식과 소스코드를 실시간으로 기계어로 해석하여 실행시키는 인터프리터 방식으로 나뉜다.

 

구분 언어 실행속도 이식성
컴파일 방식(Compiler) C, C++, 파스칼, 에이다 CPU가 실행할 수 있는 기계속도로 컴파일되므로 실행속도도 빠름 원래 애플리케이션이 개발된 CPU/운영체제와 다른 CPU/운영체제용으로 옮기는 경우, 대체로 코드를 그대로 사용할 수 없음. 이식성이 낮음(단 C#, 자바 등의 가상머신 기반의 언어는 이식성 높음).
인터프리트 방식(Interpreter) 파이썬, 루비, 베이직, PHP 애플리케이션을 실행할 때마다 인터프리터가 소스코드를 기계코드로 번역하는 절차를 거치므로 실행속도 느림. 인터프리터만 대상 CPU/운영체제를 지원한다면 애플리케이션 코드는 변경할 필요없이 어떤 환경에서나 실행 가능. 이식성 높음

 

* 출처: 뇌를 자극하는 파이썬3 / 박상현 / 한빛미디어

728x90
728x90

댓글