[OS] 운영체제의 역사

Suyeon·2022년 2월 12일
0

Operating System

목록 보기
1/10

1. 역사 흐름

1940년

  • 최초의 컴퓨터 에니악 등장
    • 미사일 탄도를 계산하기 위해서 제작
  • 18000개의 진공관을 전선으로 연결하여 논리회로 구성 — hard writing
    • 다른 작업을 위해서 전선을 일일히 다시 연결해야함

1950년

  • 천공 카드리더 사용
    • OMR(Optical Mark Reader)의 원조
    • 일괄 처리 시스템(batch processing system)
      • 한번에 한작업만 할 수 있다. 작업에 필요한 프로그램과 데이터를 동시에 입력해야한다.
      • 모든 작업을 한꺼번에 처리해야하고 프로그램 실행 중간에 사용자가 데이터를 입력하거나 수정할 수 없다.
      • 단순 계산 위주의 작업만 가능
  • 라인 프린터 사용

1960년

  • 키보드, 모니터 등장
    • 대화형 시스템(Interactive System)
    • 작업 중간에 사용자가 입력을 하거나 사용자에게 중간 결과값을 보여줄 수 있었으며 결과값을 출력하여 프로그램에 이상이 있는지 확인할 수 있게 되었다.
    • 입출력 때문에 작업 시간을 예측하기 어렵다는 단점이 있다.
  • 유닉스 운영체제 등장

1960년대 후반

  • 다중 프로그래밍 (Multiprogramming)
    • 컴퓨터의 크기가 작아지고 계산 능력이 향상되었지만, 고가였다. 따라서 고가인 컴퓨터를 효율적으로 사용하기 위해서 등장했다.
    • 하나의 CPU로 여러 작업을 동시에 실행

Q. 다중 프로그래밍은 어떻게 구현되는걸까?

💡 CPU 사용시간을 아주 잘게 쪼개어 여러작업에 나누어준다. A,B,C 작업을 동시에 진행한다면, A에 0.1초, B에 0.1초, C에 0.1초를 돌아가며 배정한다. A작업은 0.3초후에 다시 CPU를 얻어 작업할 수 있다.

시간분배가 매우 빠른 속도로 반복되면 영화 필름과 마찬가지로 A,B,C 작업이 동시에 실행되는 것처럼 보인다.

여러 작업을 조금씩 처리하여 작업이 동시에 이루어지는 것처럼 보이게 하는 것은 아래와 같이 불린다.

  • 시분할 시스템(time sharing system)
  • 다중 작업 시스템 (multitasking)

Q. 멀티프로그래밍 수준(level of multiprogramming)이란?

  • 시분할 시스템 에서 동시에 실행되는 작업의 개수
    • 동시에 실행되는 작업이 3개라면 멀티프로그래밍 수준은 3이다.

Q. 실시간 시스템(real-time system)은 언제 사용될까?

  • 시분할 시스템: 시스템 내에 작업이 공존할 경우 특정 작업이 일정 시간내에 끝나는 것을 보장하지 못한다.
  • 실시간 시스템: 원자력, 미사일 제어등 특정 시스템에서 일정 시간안에 작업이 처리되도록 보장한다.

1970년대

  • 1977년 스티브잡스가 최초의 개인용 컴퓨터인 애플 II 출시
    • 운영체제로 매킨토시, MS의 MS-DOS가 주로 사용되었다.
  • 1970년 후반 인터넷 등장
    • ARPA(Advanced Research Project Agency)는 서로 호횐되지 않는 LAN(Local Area Network)를 하나로 묶기 시작한 연구를 진행했는데 그 결과로 ARPAnet이 만들어졌다.
    • ARPAnet은 TCP/IP 프로토콜을 정의했다.
  • 분산 시스템(distributed system) 등장
    • 분산시스템은 시스템의 모든 컴퓨터가 동일한 지위엿머 컴퓨터가 고장나거나 추가되면 작업을 분배하고 결과를 모으기 쉽지않다는 단점이 있다.

1990년대~현재

  • 클라이언트/서버 시스템 등장

    • 분산 시스템의 단점을 해결하는 기술이다.
    • 요청하는 클라이언트와 응답하여 요청받은 작업을 처리하는 서버의 이중 구조로 나뉜다.
    • 웹 시스템은 전형적인 클라이언트/서버 구조이다.
    • 서버 과부하가 될 수 있는 단점이 있다.

    Q. 데몬(demon)이란?

  • 클라이언트/서버 시스템이서는 서버가 멈추지 않고 계속 작동하여 클라이언트의 요청을 처리해야하는데 이렇게 멈추지 않고 작동하는 프로그램을 데몬이라고 한다.

  • 데몬을 가진 컴퓨터를 서버라고 부르며, 웹 데몬(e.g. 아파치 톰캣)이 설치된 컴퓨터는 웹서버라고 한다.

2000년대 초반~현재

  • P2P(Peer-to-Peer system) 시스템 등장
    • 1990년대 전세계의 MP3 음악 파일을 공유하려는 시도가 있었으나 클라이언트/서버 시스템의 서버 과부화로 실패했다. (MP3 파일은 수 메가바이트)
    • 서버의 부하를 줄일수 있는 시스템이다. 서버를 거치지 않고 사용자와 사용자를 직접 연결한다. 서버가 검파일 검색만 맡고 사용자간에 파일 전송이 이루어지기 때문에 서버의 부하가 적다.
    • 메신저, MP3파일 공유 프로그램, 대용량 파일 공유

Q. 서버가 없는 P2P시스템 vs 서버가 있는 P2P 시스템

  • 서버가 있는 P2P 시스템: 메신저는 사용자 인증과 출석 정보, 과거 데이터 보관등을 위해 서버가 존재한다.

  • 서버가 없는 P2P시스템: 블록체인 (e.g. 거래 장부 관리)

  • 그리드 컴퓨팅(grid computing) 등장

    • 필요한 컴퓨팅 자원을 구매하여 사용하는 컴퓨팅 환경
  • SaaS(Software as a service) 등장

    • 사용자가 필요할 때 소프트웨어 기능을 사용하고 그만큼만 비용을 지불한다.
    • 필요한 기능을 모아 서버에서 실행하고 사용자는 인터넷을 통해 서비스를 제공받는다. 프로그램을 깔거나 업데이트를 할 필요가 없이 인터넷에 접속하면 누구나 이용할 수 있다.
  • 클라우드 컴퓨팅(cloud computing) 등장

    • 언제 어디서나 응용 프로그램과 데이터를 자유롭게 사용할 수 있는 컴퓨터 환경
    • 그리드 컴퓨팅과 SaaS를 합친 형태
    • 과거에는 회사에 서버를 설치하거나 IDC에 서버를 뒀지만, 클라우드 컴퓨팅 환경에서는 클라우드 서버에 서비스를 올려놓고 사용한 만큼만 비용을 지불하며 서버, 네트워크 관리는 클라우드 서버 제공자가 알아서 해줘서 편리하다.
    • AWS, Google Cloud, Google photo, 스마트폰의 클라우드 백업
  • 사물 인터넷(Internet of Things) 등장

    • 사물에 센서와 통신 기능을 내장하여 인터넷에 연결하는 기술
    • 인공지능, 로봇 공학, 무인 운송수단, 3D인쇄, 나노 기술
profile
Hello World.

0개의 댓글