[쉽게 배우는 운영체제] 1-2. 운영체제의 역사

2021. 8. 30. 20:0003. Resources/Operating System

728x90
반응형

개요

  • 주변장치의 개발과 연관지어 설명 예정

초창기 컴퓨터(1940년대)

  • 최초의 컴퓨터 - 에니악
    • 펜실베니아 대학의 존 모클리와 존 에커트가 만듬
    • 미사일 탄도를 계산하기 위해 제작
    • 진공관이라는 소자를 전선을 연결하여 이용함
      • 켜지면 1, 꺼지면 0 → 2진법의 계기가 됨
    • 하드 와이어링
      • 전선을 연결하여 논리회로 구성
      • 다른 계산이나 수식을 사용하려면 전선을 다시 연결해야함
  • 모니터, 키보드, 마우스와 같은 주변장치 없음

일괄 작업 시스템(1950년대)

  • IC(Integrated Circuit) 칩 - 진공관과 전선으로 만들어진 논리회로를 아주 작은 크기로 구현
  • 이 시기의 컴퓨터에는 CPU, 메인 메모리는 존재, 키보드와 같은 입력장치와 모니터와 같은 출력장치는 존재하지 않았음
  • 대신 천공카드 리더(punch card reader)를 입력장치로, 라인 프린터(line printer)를 출력장치로 사용
    • 천공카드 리더
      • OMR(Optical Mark Reader)의 원조
      • 카드에 구멍을 뚫어 문자나 숫자를 표현
      • 현대적인 프로그래밍을 가능하게 해줌
        • 하드 와이어링 시스템은 프로그램을 바꾸기 어려움
        • 천공카드 리더 시스템은 카드만 바꾸면 됨
    • 라인 프린터
      • 문자만 출력하는 프린터
      • 한 번에 한 줄씩 출력
  • 일괄 작업 시스템 / 일괄 처리 시스템 (batch job system / batch processing system)
    • 모든 작업을 한꺼번에 처리해야 하고 프로그램 실행 중에 사용자가 데이터를 입력하거나 수정하는 것이 불가능
    • 운영체제가 사용되었기 때문에 메인 메모리가 운영체제의 상주 영역과 사용자의 사용 영역으로 나뉨

대화형 시스템(1960년대 초반)

  • 키보드와 모니터 등장 → 비효율적인 일괄 작업 시스템의 방식을 획기적으로 바꿈
    • 키보드 - 타자기의 쿼티 자판에 다양한 키를 추가하여 만듦
    • 모니터 - 초록색 또는 오렌지색의 화면
  • 일괄 작업 시스템
    • 프로그램과 데이터를 같이 입력하여 작업의 최종 결과만 얻을 수 있음
  • 대화형 시스템(interactive system)
    • 키보드와 모니터를 통해 작업 중간에 사용자가 입력하거나 중간 결과를 볼 수 있게됨
    • 입력값에 따라 작업의 흐름 바꾸기 가능
    • 대신 중간에 흐름이 변경될 수 있기 때문에 작업 시간 예측이 어려움

시분할 시스템(1960년대 후반)

시분할 시스템의 개념

  • 컴퓨터 크기가 작아지고 계산 능력이 향샹 → 효율적인 자원 사용에 대한 고민 시작
  • 다중 프로그래밍(multiprogramming)의 대두
    • 하나의 CPU로 여러 작업을 동시에 실행하는 기술
  • 다중 프로그래밍의 구현
    • 시분할 시스템 (time sharing system) = 다중 작업(multitasking) 시스템
      • CPU 사용 시간을 아주 잘게 쪼개어 여러 작업에 나눠줌 → 작업이 동시에 이루어지는 것처럼 보이게함
      • 잘게 나뉜 시간 한 조각 = 타임 슬라이스(time slice) = 타임 퀀텀(time quantum)
    • 단점
      • 많은 양의 작업이 공존할 경우, 중요한 작업이 일정 시간 안에 끝나는 것을 보장하지 못함 → 이런 경우 실시간 시스템(real-time system)을 사용

다중 사용자 시스템

  • 멀티 프로그래밍 수준(level of multiprogramming) = 멀티 프로그래밍 정도(degree of multiprogramming)
    • 시분할 시스템에서 동시에 실행되는 작업의 개수
  • 여러 작업을 동시에 실행할 수 있다 = 여러 사람이 동시에 작업할 수 있다(= 다중 사용자 시스템, multi-user system)

분산 시스템(1970년대 후반)

  • 개인용 컴퓨터의 출현으로 인한 운영체제 시장의 성장
    • 1977년 스티브 잡스가 최초의 개인용 컴퓨터인 '애플 II' 발표
    • 애플 - 매킨토시
    • 마이크로소프트 - MS-DOS
  • 인터넷의 등장
    • 미국의 ARPAnet이 대중에게 개방되면서 TCP/IP 통신 규약 정의
      • TCP/IP : Transmission Control Protocol/Internet Protocol
  • 분산 시스템(distributed system)
    • 위의 두 가지 이유에 의해 고가의 컴퓨터 한 대를 쓰는 대신, 싸고 작은 컴퓨터를 네트워크로 묶어서 시스템 구축

클라이언트/서버 시스템(1990년대~현재)

  • 분산 시스템의 단점
    • 시스템에 포함된 모든 컴퓨터가 동일한 지위 = 컴퓨터가 고장나거나 추가되면 작업 분배 및 결과 수집에 어려움이 있음
  • 클라이언트/서버 시스템(client/server system)
    • 클라이언트 : 작업을 요청
    • 서버 : 요청받은 작업을 처리
    • 사례: 웹 시스템 기반 다양한 응용 서비스
    • 단점: 서버 과부하
      • 모든 요청이 서버로 집중되기 때문

P2P 시스템(2000년대 초반~현재)

P2P 시스템의 개념

  • 사이즈가 큰 파일 공유를 클라이언트/서버 시스템으로 진행하는 경우, 서버 과부하가 일어나기 쉬움
  • P2P 시스템(Peer-to-Peer system)
    • 과부하를 줄이기 위한 방법
    • 서버를 거치지 않고 사용자와 사용자 직접 연결
    • 서버: 파일 검색만 진행 → 부하가 적음

P2P 시스템의 예: 메신저

  • 수만 명이 동시에 채팅을 하고 파일을 주고 받기 때문에 클라이언트/서버 시스템이 맞지 않음 → P2P 기술을 이용하여 서버 부하 없이 구현

P2P 시스템의 예: 파일 공유

  • 대용량 파일 공유 → 같은 파일을 가진 여러 사람으로부터 데이터 나눠 받는 방법 적용

기타 컴퓨팅 환경(2000년대 초반~현재)

그리드 컴퓨팅

  • Grid computing
  • 컴퓨팅 자원을 구매하여 사용하는 컴퓨팅 환경
    • 컴퓨터 성능이 급속도로 발전하는 경우
  • 대용량 컴퓨터 풀(computer pool)을 구성 → 원격지와 연결하여 대용량 연산을 수행하는 환경
    • 하드웨어적인 컴퓨팅 환경의 통합
    • ↔ SaaS(Software as a Service)
      • 사용자가 소프트웨어 기능을 필요할 때 필요한 만큼만 이용하고 비용 지불
  • 예시 - 웹하드
    • 그리드 딜리버리(grid delivery)
      • 이전에 해당 파일을 받은 컴퓨터로부터 몰래 데이터를 빼와서 전달하는 기술
      • 사용자의 컴퓨터를 느리게 하는 주범

클라우드 컴퓨팅

  • Cloud computing
  • 그리드 컴퓨팅 + SaaS
    • 언제 어디서나 응용 프로그램과 데이터를 자유롭게 사용할 수 있는 컴퓨팅 환경
  • 2006년 구글의 크리스토프 비시글리아(Christophe Bisciglia)가 처음 제안
  • 특히 회사차원의 유지보수 측면에서 강점
    • 과거
      • 회사에 서버 설치, IDC(Internet Data Center)에 서버를 두고 서비스
      • 이 경우 서버 관리, 네트워크 관리, 보안 관리 등을 사내 인력으로 해결해야 함
    • 클라우드 컴퓨팅 환경
      • 클라우드 서버 제공자가 위의 내용을 알아서 해줌

사물 인터넷

  • IOT(Internet of Things)
  • 사물에 센서와 통신 기능을 내장하여 인터넷에 연결하는 기술
반응형