본문 바로가기
Computer Science/Operating System

History of Computers and OS

by Gofo 2021. 3. 18.

Computer의 역사

컴퓨터의 역사를 통해서 operation system의 개념을 알 수 있고, 어떻게 동작하는지 이해할 수 있다.

최초의 기계식 컴퓨터 : 주판

주판은 기원전 4000전부터 사용되었고 최초의 기계식 컴퓨터로도 볼 수도 있다.

 

주판은 input, output, memory, processor 등을 갖추고 있는 device이다.

주판을 움직이는 행동을 input으로, 그 결과를 output으로 볼 수 있다. 사람 손의 물리적인 움직임을 통해 input되고, 사람의 눈에 의해 그 결과가 읽어진다.

주판은 충격으로 인해 memory가 사라지므로 volatile memory(휘발성 메모리)를 가지고 있다고 볼 수 있다.

 

programming이 필요 없고 특별한 I/O device가 없다.

전기 에너지로 구동되는 컴퓨터와는 달리 기계적 운동에너지로 주판은 작동한다. 때문에 매우 느리게 작동한다.

주판 (출처 : https://m.blog.daum.net/kksoon100/2096280)

 

최초의 전자 컴퓨터 : ENIAC

우리가 현재 사용하는 electricity computer의 시초로 볼 수 있다.

  • 핵심 기술 : Vaccum tubes(진공관)
  • Floor space : 1000 square feet
  • 무게 : 30t
  • Input/Output
    • Cards, lights, switches
    • Human operatiors
  • 속도 : 초당 5,000 operation 이하

 


컴퓨터의 발전

컴퓨터는 크게 3가지 단계를 통해 발전을 이루었다.

  1. Phase 1 : 50년대 초 ~ 60년대 후반
    • 기술배경 : transistor(트랜지스터)
    • Mainframe computers
    • Monitor + human operators
  2. Phase 2 : 60년대 후반 ~ 90년대 후반
    • 기술배경 : microporcessor 
    • Minicomputers, Personal computers
    • UNIX : 현재 OS의 토대가 되었다.
  3. Phase 3 : 90년대 후반 ~ 현재
    • 기술배경 : 반도체 직접 기술, 초고속 인터넷, 무선 통신 등
    • mobile, cloud, multicore

Phase 1

Mainframe Computers

  • 핵심기술 : Transistor
  • Input devices
    • panel switches, paper tape, punched cards
    • card readers, magnetic tape
  • Output devices
    • display ligghts on the console
    • line printer

트랜지스터는 진공관을 대체하였고, 이로 인해 컴퓨터의 무게/크기를 크게 줄일 수 있었다.

 

Human Operators

컴퓨터는 인건비에 비해서도 매우 비싼 가격이었기 때문에 사람들이 수작업으로 많은 부분을 작동시켰다.

프로그램, 컴파일(setup), debug 등이 수작업으로 진행되었다. 때문에 특히 setup에 많은 시간이 소요되었다.

 

여러 개의 프로그램을 동시에 실행시키지 못하고, 하나의 프로그램 실행이 끝나면 card를 교체해서 다른 프로그램을 실행시키는 작업을 반복할 뿐이었다. 매우 비싼 가격의 기계가 하루에 고작 몇분밖에 돌아가지 못하는 것이었다.

 

Resident Monitor

Software의 개념을 hardware로부터 분리시킬 수 있었다. 지금의 operating system의 시초로 볼 수 있다.

 

원래는 사람이 card를 교체함으로써 프로그램을 전환/실행 시키던 작업을 프로그램에게 맡겼다.

여러 개의 프로그램을 컴퓨터에 올리고, 실행하는 순서, 프로그램 실행 등을 Resident monitor가 담당하였다.

 

그러나 resident monitor 만으로는 한번에 하나의 프로그램만 돌릴 수 있었다.

Resident monitor

 

Batch System

Batch system으로 인해 동시에 여러 개의 프로그램을 실행시킬 수 있었다.

 

여러 개의 작업들이 메인메모리에서 동시에("like-same time") 수행된다.

CPU는 여러 개의 작업들을 번갈아가면서 작업을 수행한다.

 

CPU utilization을 증가시키고, CPU idle time을 줄일 수 있다.

CPU idle time이란 컴퓨터의 입출력 대기와 오퍼레이터의 조작대기 같은 시간을 말한다.

 

Job scheduling이 필요해졌고 이를 위해 resident monitor의 기술이 사용된다.

그러나 I/O operation과 같은 작업 중에는 CPU가 다른 작업을 못하고 해당 작업이 완료될 때 까지 기다려야했다.

Batch system

 

Spooling (Simultaneous Peripheral Operation On-Line)

기존에는 "Card reader → CPU → Line printer"와 같은 동작 순서로 매우 느린 slow mechanical device을 가지고 있었다.

읽고 쓰는 중간 과정에 CPU가 있었기 때문에 I/O operation 동안 CPU는 다른 동작을 할 수 없었다.

 

읽고 쓰는 과정 중에 tape drive(magnatic device)을 추가함으로써 CPU는 읽고 쓰는 동안 다른 작업을 할 수 있게 되었다.

"Card reader → Tape drives → CPU → tape drives → line printer"의 과정이 된 것이다.

 

Spooling을 통해 CPU 작업과 입출력 작업이 동시에 진행될 수 있게 되었고, 컴퓨터의 활용과 성능을 크게 높일 수 있었다.

Spooling

 


Phase 2

Modern Computers

1960년대 후반부터 microprocessor chips(초소형 CPU)의 발전으로 현대의 컴퓨터가 등장하였다.

Minicomputers, workstation, personal computer가 개발되었다.

 

90년대 후반부터 현대의 personal computer의 모습이 나타났다.

Mordern computers

 

UNIX

UNIX 이전에는 Multics라는 운영체제를 이용해서 컴퓨터가 동작하였다.

Multics는 많은 혁신을 이루어냈지만, 크기, 복잡성 등의 많은 문제를 가지고도 하였다.

 

UNIX는 1970년대 Bell labs에서 개발되었다.

C언어의 개발자이기도 한 Ken Thompson, Dennis Ritchie 등도 연구진으로 함께하였다.

 

UNIX는 multitasking, multiuser computer operating system의 특징을 가졌다.

사실상 현대의 operating system의 특징을 대부분 가지고 있었다.

  • Multi-programming and multi-tasking
    • Batch system의 발전으로, 몇개의 프로그램이 메인 메모리 안에서 유지된다.
    • 이 프로그램들은 동시에(time-sharing) 작업을 수행한다.
  • Interactive and on-line system
    • 사용자들은 키보드와 마우스를 통해서 command, system 실행 등 실시간으로 control을 할 수 있게 되었다.
  • Multi-user environment
    • 한 컴퓨터에 여러 계정을 통해 여러 사용자들이 사용할 수 있다.

 

Mouse and GUI

1973년 만들어진 Xerox Alto가 마우스, desktop의 형태, GUI(Graphic User Interface)를 사용하는 최초의 컴퓨터이다.

Mouse and GUI

 

Internet and WWW

처음에 미국의 일부 지역에서 군사용으로 사용되던 ARPANET이 NFS의 투자를 통해 전역으로 넓혀졌다.

현재 World Wide Web이 primary web application이다.

 

 

Personal Computer

컴퓨터가 개인의 영역으로 넘어오게 되었다.

 


Phase 3

Mobile, Cloud, and Multicore

PDA, 스마트폰과 같은 Handheld PC가 등장하였다. 이에 따라 소형 기기에 적합한 OS가 필요하기 시작했다.

또한 multicore의 등장에 따라 기존에 단일 체계를 위한 OS에서 multicore system을 위한 OS가 개발되었다.

이외에도 아마존으로 유명한 cloud computing(분산형 computing)의 등장으로 이에 대한 OS도 발전하였다.

 

이렇듯 여러 시스템과 hardware의 발전으로 OS가 변화하고 있다.

그러나 현재의 OS의 대부분 특징은 UNIX와 크게 다르지 않다.

 

 

'Computer Science > Operating System' 카테고리의 다른 글

Process, PCB(Process Control Block)  (0) 2021.06.16
User Mode, Kernel Mode  (0) 2021.06.16
Interrupt, I/O Device  (0) 2021.04.05
컴퓨터 구조와 프로그램 실행  (0) 2021.04.03
Fundamental Concepts of OS  (0) 2021.03.24

댓글