소프트웨어의 발전

황희윤·2023년 11월 3일

컴퓨터의 구성요소

컴퓨터는 크게 하드웨어(실체가 있는 요소)와 소프트웨어(형태가 없는 추상적 요소)로 구성된다.

프로그램(Program) : 컴퓨터를 구성하는 장치(CPU, 메모리, 입출력 장치, 하드디스크 등)를 조작하여, 원하는 결과를 얻도록 작업 순서를 나열해 놓은 명령어들의 집합으로 소프트웨어에 해당한다.

운영체제의 탄생

초기 소프트웨어의 문제점

처음에는 컴퓨터의 구조가 소프트웨어와 하드웨어(CPU, 메모리, 디스크 등)의 두 개 계층으로 단순한 구조로 만들어졌다.
소프트웨어의 초기 모델은 하드웨어의 명령어로 작성되었다.

  1. 하드웨어에 종속되어 다른 하드웨어에서는 정상적으로 실행되지 않는다.
  2. 소프트웨어 개발자는 하드웨어에 대해 해박한 지식을 갖춰야 했다.

운영체제의 도입

운영체제가 나오면서 Application(응용 소프트웨어), 운영체제, 하드웨어로 3계층의 구조가 되었다.
기존 하드웨어는 운영체제에 의해 자동으로 동작하도록 구조화된다.
프로그램은 운영체제를 거쳐 실행되도록 구조가 계층화되었다. 그러면서 프로그램이 하드웨어에 독립적으로 바뀌게 되었다.

운영체제는 하드웨어와 상호 작용하는 역할을 맡게 되었고, Application(응용 소프트웨어)은 특정 작업을 보다 편리하게 처리할 목적으로 프로그램을 다루는 역할을 수행하게 되었다.

운영체제의 또 다른 문제

소프트웨어 개발자들은 프로그램이 하드웨어에 종속되는 문제를 피하게 되었지만, 이제는 운영체제에 프로그램이 종속되는 문제를 만나게 되었다.


프로그램

  • 프로그램은 명령어들의 집합인데, 명령은 반드시 CPU에 의해 실행되어야 한다.
  • 명령이 CPU에 의해 실행되려면 반드시 명령이 메모리에 들어가 있어야 한다.
  • 명령은 메모리에 들어가기 전에는 하드디스크파일 형태로 저장된다. 이걸 프로그램이라고 한다.
  • 프로그램이 메모리에 들어가서 실행되는 걸 프로세스라고 한다.

CPU

  • 메모리에 들어간 명령들의 집합을 실행하는 주체는 CPU다.
  • CPU가 실행하는 명령어들을 나열한 것이 프로그램이다.
  • CPU는 제어 장치와 연산 장치로 구성되어 있다.
  • 제어 장치 : CPU가 실행하는 명령어
  • 연산 장치 : 사칙 연산과 같은 연산 기능 수행하는데 주변 장치와의 상호 작용은 제어 장치를 통해 이루어진다.

프로그래밍 : CPU의 관점에서 각 주변 장치(하드웨어)를 어떠한 순서로 어떻게 제어할지를 생각하면서 명령어들을 나열하는 과정

프로그래밍 예시
1. CPU에서 메모리에 100을 저장하도록 명령을 내린다.
2. CPU는 메모리에 저장된 100을 읽어서 출력하도록 출력 장치에 명령을 내린다.

profile
HeeYun's programming study

0개의 댓글