하드웨어 => 시스템 소프트웨어 => 응용 소프트웨어(시스템 소프트웨어에 비해 매우 다양함)

소프트웨어란?

  • 프로그램(좁은 의미의 SW)은 컴퓨터가 일을 처리하기 위해, 컴퓨터가 이해할 수 있는 언어로 작성한 명령어들의 집합

시스템 소프트웨어

  • 컴퓨터 하드웨어를 움직이는 소프트웨어
  • 응용소프트웨어를 실행하기 위한 플랫폼 역할을 하는 소프트웨어

하드웨어

  • 정보/데이터의 전송 및 처리가 실제 일어나는 물리적인 실체들

컴퓨터 시스템의 개념적 구성 요소 (기능)

  • 기억할 수 있는 장치가 있음.(RAM(주 기억 장치), 하드디스크(보조 기억 장치))

컴퓨터 HW의 기본 구성요소(1)

  • 중앙처리장치(Central Processing Unit: CPU)

    • 프로세서(processor)라고도 불림.(멀리 프로세서 머신도 존재, cpu가 여러개)
    • 컴퓨터 시스템에 부착된 모든 장치(HardWare)의 동작을 제어하고 명령을 실행('뇌'같은 존재)
    • 기본적인 구성요소: 제어장치 + 연산장치 + 레지스터 + CPU 내부버스
    • 레지스터: CPU의 메모리? CPU의 저장소 => CPU 가까이에 위치(내부에 존재)
    • CPU 내부버스 : 구성 요소들이 왔다갔다 하는 길을 제공
    • 메모리에서 명령어를 갖고 와서 명령어대로 실행하는 작업을 빠르게 반복(Fetch + Execution)
  • CPU의 명령어 사이클

    • CPU가 한 개의 명령어를 실행하는 데 필요한 전체 처리 과정 => 프로그램을 실행하는 순간부터 전원을 끄거나, 회복 불가능한 오류가 발생하여 중단될 때까지 반복

    • 인출 사이클(Fetch cycle): CPU가 기억장치로부터 명령어를 읽어오는 단계

    • 실행 사이클(execution cycle)

      • 명령어를 해독하고 실행하는 단계
      • 인출 사이클때보다 작업량이 더 많아서, 오늘날 컴퓨터는 실행 사이클을 다수의 단계로 분할
      • 전송 연상: CPU내 레지스터와 메모리 사이에 데이터를 교환
      • 처리 연산: 산술논리장치를 사용하여 데이터를 조작
      • 제어 연산: 프로그램의 실행 순서를 제어
      • 입출력 연산: CPU 내 레지스터와 I/O장치 간에 데이터를 이동

  • 기억장치 1) 주기억장치(main memory)

    • CPU 가까이에 위치하여, CPU가 처리할 프로그램과 데이터를 '일시적으로' 저장.

    • 반도체 기억장치 칩들로 구성

    • 가격이 높고, 저장할 때 면적을 많이 차지

      • Random Access Memory: 고속 액세스 가능
      • 전원공급이 중단되면 기억된 내용이 지워지므로, 일시적 저장만 가능(휘발성 메모리)

    1. 보조저장장치(auciliary storage devic)
    • 2차 기억장치(secondary memory) 로 읽기
    • 용량: 보조기억장치 > 메인 메모리 > 캐시 메모리 > 레지스터
    • 속도 & 가격: 보조기억장치 < 메인 메모리 < 캐시 메모리 < 레지스터

  • 입.출력 장치(I/O device)

    • 사용자와 컴퓨터간의 대화를 위한 입력 및 출력장치
    • 유.무선 통신 네트워크 인터페이스 장치

  • 시스템 버스 (System Bus)

    • CPU와 시스템 내의 다른 요소들 사이에 정보를 교환하는 통로(CPU내에도 있음)

      • 버스는 실세계의 차량 도로에 비유 가능
      • 버스의 전기신호 선의 수 = 차선 수
    • 기본 구성

      • 주소 버스(address bus): CPU가 외부로 발생하는 주소 정보를 전송하는 신호 선들의 집합, 주소 선의 수는 CPU와 접속될 수 있는 최대 기억장치 용량을 결정.(CPU -> 기억장치 일방향으로감. 이때 파라미터로 위치를 줌.)
      • 데이터 버스(data bus): CPU가 기억장치 혹은 I/O 장치와의 사이에 데이터를 전송하기 위한 신호선들의 집합, 데이터 선의 수는 CPU가 한 번에 전송할 수 있는 비트 수를 결정(CPU <-> 기억장치 쌍방향으로 감.)
      • 제어 버스(control bus): CPU가 시스템 내의 각종 요소들의 동작 제어를 위한 신호 선들의 집합
  • ROM(Read-Only Memory): 데이터를 읽을 수만 있는 '비휘발성' 메모리

    • 전원이 끊어져도 기록된 내용이 보관(<-> RAM과 반대)되며, 수정 불가
    • 전원이 꺼졌을 때 없어지면 안되는 시스템 프로그램(예시: Booting)을 전자회로에 기록
  • Booting: 보조기억장치에 저장된 OS(SW)를 주메모리에 올리는 과정

    • 전원을 켰을 때, CPU가 수행할 명령어가 저장되어있어야 할 주메모리인 RAM은 비어있음
    • ROM에 Bootloader (Bootstrap loader)이란 프로그램을 저장해놓음 (Firmware)

컴퓨터 정보의 표현과 저장

  • 컴퓨터 정보는 2진수 비트(bit)들로 표현

  • 진범: 유한한 심볼로 큰 숫자를 표현하는 방법

    • 10진법: 0~9, 10개의 심볼로 숫자를 표현
    • 2진법: 0과 1로 숫자 표현
  • 고급 언어(high-level language)

    • 영문자/숫자로 구성되어 사람이 이해하기 쉬운 언어
    • 고급언어 프로그램을 어셈블리어 또는 기계어 프로그램으로 번역하는 SW
  • 어셈블리 언어(assembly language)

    • 고급 언어와 기계어 사이의 중간 언어
    • 어센블러(assembler)로 번역시, 기계어와 일대일 대응
  • 기계어(machine language)

    • 컴퓨터 하드웨어가 이해할 수 있는 언어
    • 2진 비트들로 구성
  • 시스템 소프트웨어

    • 컴퓨터 하드웨어와 응용 소프트웨어 사이에서 플랫폼 역할을 하는 소프트웨어
    • 운영체제(OS): 컴퓨터 자원을 관리하고 응용 프로그램의 실행 환경을 제공하는 SW
    • 디바이스 드라이버(Device Driver): 컴퓨터에 연결된 주변 기기를 제어하는 모듈(SW)
    • 컴파일러, 인터프리터: 고급언어로 작성된 프로그램을 컴퓨터가 이해할 수 있는 저급언어로 변환하는 SW
    • 링커(linker): 여러 개로 분할, 작성된(목적) 프로그램 또는 라이브러리 루틴을 결합하여, 실행 가능한 하나의 프로그램으로 연결하는 SW
    • 로더(loader): 디스크와 같은 저장장치에 보관된 프로그램을 읽어 메일 메모리에 적재한 후 실행 가능한 상태로 만드는 SW
  • 어셈블리(기계어) 명령어 형식(instruction format)

    • 연산 코드(op code)

      • CPU가 수행할 연산을 지정해 주는 비트들
      • 연산 코드의 비트 수는 가능한 연산의 수 (bit=3이면 연산의 최대 수는 2의3승인 8개 이다.)
    • 피연산자(오퍼랜드, operand)

      • 연산에 쓰일 데이터 혹은 데이터가 저장되어 있는 기억장치 주소
      • 오퍼랜드의 비트 수는 기억장소의 크기

컴퓨터의 기본적 기능

  • 프로그램 실행(load & execute)

    • CPU가 주기억장치로부터 프로그램 코드를 읽어들여 실행
  • 데이터 저장(store)

    • 프로그램 실행 결과로서 얻어진 데이터를 주기억장치에 저장
  • 데이터 이동 (move)

    • 디스크/CD-ROM에 저장되어 있는 프로그램과 데이터 블록을 기억장치로 이동
  • 데이터 입력/출력 (with I/O device)

    • 사용자가 키보드를 통하여 보내는 명령이나 데이터를 읽어들임(입력)
    • CPU가 처리한 결과값이나 기억장치의 내용을 프린터로 출력
  • 제어 (contorl by signal)

    • 프로그램이 순서대로 실행되도록 또는 필요에 따라 실행 순서를 변경하도록 조정하며, 각종 제어 신호들을 발생

컴퓨터의 발전과 성능

  • 최초의 컴퓨터: 파스칼의 계산기(덧셈, 뺄셈 가능)

  • Leibniz의 기계: 덧셈과 뺄셈 및 곱셈, 나눗셈 가능

  • Difference Engine(미분기관)

    • 19세기 초, Charles Babbage
  • Analytical Engine

    • 19세기 초, 어떤 수학 연산도 자동적으로 수행할 수 있는 일반목적용 계산기계

    • 에이다 러브레이스: 최초의 프로그래머

    • 프로그램의 실행 순서 변경 가능

    • 논리적 설계 및 초기 제작으로 끝

profile
일단 배우는거만 정리해보자 차근차근,,

0개의 댓글