Home [파이썬 프로그래밍 기초] 2강 - 컴퓨터의 구성
Post
Cancel

[파이썬 프로그래밍 기초] 2강 - 컴퓨터의 구성

💡해당 게시글은 방송통신대학교 정재화 교수님의 '파이썬 프로그래밍 기초' 강의를 개인 공부 목적으로 메모하였습니다.



학습 개요


  • 사람이 정보를 처리하는 과정과 매우 유사하게 컴퓨터는 데이터를 장치의 내부로 받아들이고 이를 처리하여 장치의 내부로 출력하는 과정을 위해 입력 장치, 연산 장치, 기억 장치, 저장 장치 및 출력 장치라는 다섯 종류의 하드웨어로 구성됨
  • 하드웨어만으로는 정보 처리 역할이 불가능하기 때문에 각 하드웨어가 사용자의 문제해결을 위해 특정 시점에 작동할 수 있도록 지시하고 제어하는 운영 체제 및 응용 소프트웨어와 같은 여러 소프트웨어가 사용됨
  • 각 장치의 개념과 역할에 대해서 구체적으로 살펴보고 소프트웨어의 종류와 역할에 대하여 학습함



학습 목표


  • 하드웨어와 소프트웨어의 차이점을 설명할 수 있음
  • 컴퓨터를 구성하는 각 장치에 포함된 기기를 나열할 수 있음
  • 운영 체제의 역할과 기능에 대하여 설명할 수 있음



주요 용어


  • 폰 노이만 구조
    • CPU, 메모리, 프로그램 구조를 갖는 범용 컴퓨터 구조
  • 하드웨어
    • 컴퓨터를 구성하고 있는 물리적으로 존재하는 부품
  • 소프트웨어
    • 다양한 장치들을 동작 시켜 특정 작업을 해결하는 프로그램



강의록


하드웨어와 소프트웨어

컴퓨터의 구성 요소

  • 하드웨어
    • 컴퓨터를 구성하고 있는 물리적 부품
  • 소프트웨어
    • 다양한 장치들을 동작 시켜 특정 작업을 해결하는 프로그램
    • 알고리즘을 프로그래밍 언어로 구현한 결과물

사람의 문제 해결 과정

image.png

  • 어떤 계산을 먼저하고 나중에 해야 하는지 정함
  • 문제 푸는 과정을 먼저 찾고 이후에 문제 풀기 시작

하드웨어

  • 기능에 따라 입력 장치, 기억∙저장장치, 제어 장치, 연산장치, 출력 장치로 구분

    image.png

소프트웨어

  • 각각의 고유한 기능을 수행하는 하드웨어가 언제 어떻게 동작하여 문제를 해결할 수 있는지 지시하는 명령어 집합
  • 응용 소프트웨어
    • 사용자의 업무나 목적에 맞게 문제 해결을 위한 처리 절차를 표현한 명령어 집합
    • 사용자가 특정한 목적을 가지고 컴퓨터를 쓸 때 사용
  • 시스템 소프트웨어
    • 하드웨어를 제어 · 관리하여 응용 소프트웨어를 실행할 수 있는 환경을 제공
    • 실제 애플리케이션 또는 응용 소프트웨어들처럼 사용하는 것은 아니지만 응용 소프트웨어가 실행될 수 있도록 실제 하드웨어 장치를 제어하는 보조적인 기능을 수행

하드웨어의 이해

입력 장치

  • 명령과 데이터를 컴퓨터에 전달하는 장치

    image.png

  • 컴퓨터가 처리할 수 있는 2진수 형태로 변환

입력 장치의 종류

  • 키보드
  • 마우스
  • 스캐너
  • 터치 스크린

특수 입력 장치

  • 마이오(myo)
  • 립 모션(leap motion)

출력 장치

  • 정보 처리 결과를 인간이 인식 가능한 형태의 데이터로 내보내는 장치

    image.png

    • 2진수 형태의 데이터를 문자, 숫자, 도형, 음성, 영상 등의 형태로 변환

출력 장치의 종류

  • 모니터
  • 스피커
  • 프린터
  • 초 지향성 스피커
  • 3D 프린터

특수 출력 장치

  • 동작 인식 장치
    • HUD (Head-Up Display)
      • 현실에 대한 정보가 가상에 대한 정보와 같이 들어옴
      • AR
      • 애플리케이션을 동작하기 위한 장치
    • HMD (Head-Mounted Display
      • 현실에 대한 정보는 전혀 들어오지 않음
      • VR
      • 버츄얼 리얼리티 애플리케이션을 활용할 때 사용하는 장치

기억(저장) 장치

  • 명령과 데이터를 기억(저장)하는 하드웨어
  • 역할에 따라 주 기억 장치 보조 기억 장치로 구분

    항목기억장치(주 기억 장치)저장장치(보조 기억 장치)
    접근 속도빠름느림
    제조 단가높음낮음
    용량작음
    전원 차단 시ROM: 기억 내용 보존, RAM: 모든 내용 초기화기억 내용 보존

기억(저장) 장치의 종류

  • 주 기억 장치
    • ROM
      • 데이터를 한번 저장하면 바꿀 수 없음
      • 일반적으로 컴퓨터가 부팅하면서 각각의 장치에 명령을 할 때 들어가야 하는 가장 기본적인 데이터만 저장 시킴
      • 바이오스를 저장하기 위한 기억 장치
    • RAM
      • random access memory
      • 임의로 아무 곳에나 곧바로 접근 가능한 저장 장치
      • 임시적으로 데이터를 저장시켜놓는 기억 장치
      • 컴퓨터 전원이 소실되면 데이터도 같이 소실됨
  • 보조 기억 장치
    • 플로피 디스크
    • 자기 디스크
    • 광학 디스크
    • 플래시 드라이브
    • 플래시 드라이브 제외하고 전기가 차단되어도 정보가 남아있음
      • 전기를 사용하지 않고 다른 방법으로 데이터를 저장

특수 기억(저장) 장치

  • SSD(Solid State Drvie)
    • RAM을 이용한 저장 장치
    • 빠른 속도, 외부 충격에 강함, 적은 전력 소모가 강점
    • 최근 하드디스크를 대체할 저장 장치로 각광

제어와 연산 장치

  • 현대의 컴퓨터는 제어 장치와 연산 장치가 별도로 구분되어 있지 않음
    • cpu 내부에 제어와 연산 기능을 모두 수행하는 회로를 가지고 있음
  • 명령어와 데이터를 읽고 데이터를 연산 또는 처리하는 장치

    image.png

    • 레지스터에서 명령을 읽고 제어 유닛이 ALU에 명령을 내리면 ALU가 레지스터에서 데이터를 가지고 와서 처리 후 다시 레지스터에 저장을 하는 구조
    • 세개의 서브 유닛을 갖추고 있음
      • 레지스터(register)
        • 고속으로 동작하는 메모리 저장 장치
        • cpu 내부에서 초고속으로 데이터를 저장하거나 읽어냄
        • cpu 내부에 메모리보다 더 고속으로 동작하면서 두 개의 유닛을 옆에 둠으로써 초고속으로 데이터를 저장하거나 읽을 수 있음
      • 연산 논리 유닛(ALU)
      • 제어 유닛(control unit)

소프트웨어의 이해

소프트웨어

  • 고유한 기능을 수행하는 하드웨어가 언제 어떻게 동작하여 문제를 해결할 수 있는지 절차를 지시하는 명령어 집합
    • 응용 소프트웨어
    • 시스템 소프트웨어

시스템 소프트웨어

  • 다양한 장치들을 서로 유기적으로 동작 시켜 특정 작업을 수행할 수 있는 환경을 조성하는 프로그램
  • 운영 체제(커널)
    • 사용자가 컴퓨터를 효율적으로 운영∙관리∙사용할 수 있도록 하드웨어를 제어하는 소프트웨어
  • 컴파일러
    • 소스 코드를 컴퓨터가 이해할 수 있는 기계어로 번역하는 소프트웨어
  • 유틸리티
    • 부가적인 기능을 제공하여 사용자가 컴퓨터를 효율적이고 편리하게 관리할 수 있도록 지원해주는 소프트웨어
    • ex) 하드 디스크 검사기

운영 체제의 개념

  • 응용 소프트웨어가 효과적으로 작동할 수 있는 환경을 조성

    image.png

    image.png

    • 하나의 소프트웨어가 기능하기 위해 함께 작동해야 하는 것들
      • 사용자 작업 A 처리 명령어
      • 시스템 관리 명령어
      • 장치 제어 명령어
    • 공통된 기능 즉 시스템 환경을 관리해주는 역항을 수행하는 소프트웨어
  • 운영 체제

    • 운영 체제 내부 핵심은 커널

운영 체제의 역할

  • 컴퓨터의 자원(하드웨어)을 효율적으로 관리하고 응용 프로그램에 자원을 할당
    • 사용자 인터페이스
    • 프로세스 관리
    • 네트워크 관리
    • 기억 장치 관리
    • 입출력 장치 관리

사용자 인터페이스

  • 컴퓨터와 사용자를 매개하여 상호 작용하는 방법을 제공
    • CLI(Command Line Interface)
    • GUI(Graphic User Interface)

프로세스 관리

  • 실행되고 있는 상태의 프로그램
  • 여러 프로그램 실행이 요청되면 한정된 자원(기억 장치 등)을 효과적으로 사용하도록 조율
  • 전체적인 프로그램에 효용성을 높여주는 기능
  • 프로세스
    • 보조 기억 장치가 아니라 주 기억 장치로 올라와 곧바로 실행 가능하도록 되어있는 상태의 프로그램
    • 실행되고 있는 상태의 프로그램
  • 프로그램
    • 보조 기억 장치에 저장되어있는 형태
    • 사용자가 프로그램을 시작하려면 입력 장치를 통해 주 기억 장치로 올려야함 → 메모리, 램에 상주해야함

네트워크 인터페이스

  • 컴퓨터는 네트워크를 통해 상호 데이터 교환
  • 응용 프로그램이 통신할 수 있는 환경 제공 및 통신 장치(하드웨어) 관리
    • Windows - 네트워크 및 인터넷
    • MacOS - Network

기억∙저장 장치 관리

  • 보조 기억 장치에 저장된 컴퓨터의 프로그램은 실행되기 위해서 주 기억 장치에 적재

    image.png

  • 주 기억 장치의 크기는 보조 기억 장치의 크기보다 매우 작기 때문에 효율적 관리가 요구



연습 문제


  1. 폰 노이만 구조에 기반한 컴퓨터의 구성 요소에 포함되지 않는 것은?

    a. 판단장치

    • 폰노이만 구조에 기반한 컴퓨터 구성 요소
      • 입력 장치
      • 출력 장치
      • 기억 장치
  2. 안경 또는 헬멧과 같은 장치를 머리에 착용하여 현실 세계와는 차단된 가상 현실을 제공하는 장치는?

    a. HMD

  3. 부가적인 기능을 제공하여 사용자가 컴퓨터를 효율적이고 편리하게 관리할 수 있도록 지원해주는 소프트웨어는?

    a. 유틸리티



학습 정리


  • 컴퓨터는 물리적 장치인 하드웨어와 논리적 장치인 소프트웨어로 구성
  • 일반적으로 하드웨어는 사람이 정보 처리를 하는 역할과 유사하게 입력 장치, 연산 장치, 기억 장치, 출력 장치, 제어 장치로 구분됨
  • 현대의 컴퓨터는 정보와 정보 처리를 위한 프로그램을 내부의 메모리에 저장하고 이를 처리하는 폰 노이만 구조에 기반함
  • 입력 장치외부 데이터를 컴퓨터로 전달하는 장치
  • 출력 장치입력 장치를 통해 중앙 처리 장치로 들어온 데이터를 처리하고, 그 결과를 표시해 주는 장치
  • 중앙 처리 장치연산, 비교, 판단을 수행하는 연산 장치명령어를 해석하고 실행하는 제어 장치로 구성됨
  • 주 기억 장치컴퓨터에서 처리할 데이터와 프로그램을 기억하고, 처리 결과를 기억하는 장치
  • 보조 기억 장치주 기억 장치를 보완하여 컴퓨터 전원이 차단 되었다가 다시 컴퓨터를 켰을 때, 주 기억 장치에 데이터를 불러 올 수 있도록 영구적으로 저장하는 역할을 함
  • 시스템 소프트웨어응용 소프트웨어를 실행하기 위한 환경을 제공하고 하드웨어를 제어 · 관리할 수 있도록 설계된 컴퓨터 소프트웨어
  • 시스템 소프트웨어 종류에는 운영 체제는 사용자가 컴퓨터를 효율적으로 운영 · 관리 · 사용할 수 있도록 하드웨어를 제어하는 운영 체제, 고급 언어로 작성된 프로그램을 컴퓨터가 이해할 수 있는 기계어로 번역해 주는 컴파일러, 그리고 사용자가 컴퓨터를 효율적이고 편리하게 사용할 수 있도록 지원해 유틸리티 등이 있음
  • 운영 체제는 중앙 처리 장치, 주 기억 장치, 보조 기억 장치와 같은 장치로 구성되는 컴퓨터의 하드웨어를 작동 시켜 사용자가 원하는 작업을 처리할 수 있는 환경을 제공하고 컴퓨터와 사용자 사이에 중계 역할을 함

[데이터베이스 시스템] 1강 - 데이터의 이해

[데이터베이스 시스템] 2강 - 데이터베이스 모델링