본문 바로가기
개발공부 개발새발/OS

OS ) 운영체제의 발전

by 휴일이 2023. 10. 22.

초창기 컴퓨터

→ 최초의 컴퓨터 에니악.

  • 미사일 탄도 계산을 위해 제작.
  • 진공관을 사용.
    • 진공관이 켜지면 1, 꺼지면 0
    • 컴퓨터가 2진법을 사용하는 계기
  • 전선을 연결하여 논리 회로를 구성하는 하드와이어링 방식을 이용.
    • 전선으로 논리회로를 구성해 원하는 결과만 얻는 방식
    • 다른 계산이나 수식을 사용하려면 전선을 다시 연결해야 함.

일괄 작업 시스템

모든 작업을 한꺼번에 처리하는 시스템

  • IC칩과 CPU, 메인 메모리가 생김.
    • IC칩 : 진공관과 전선으로 만들어진 논리회로를 아주 작은 크기로 구현.
  • 천공카드 리더와 라인 프린터를 입력, 출력 장치로 이용.
    • 천공카드 리더 : 카드에 구멍을 뚫어 문자를 입력, OMR 카드 원조.
    • 라인 프린터 : 문자만 출력하는 프린터, 한 번에 한 줄씩 출력.
  • 카드에 프로그램만 바꾸면 다른 작업이 가능.
  • 단, 필요한 프로그램과 데이터를 동시에 입력해야 함. → 프로그램 실행 중간에 데이터 입력, 수정 불가능.
  • 일괄 작업 시스템은 운영체제가 처음 사용되었다.
    • 메인메모리는 운영체제 영역, 사용자 영역으로 나뉜다.

대화형 시스템

컴퓨터와 사용자가 대화를 통해 작업이 이루어지는 시스템

  • 키보드와 모니터의 개발로 작업 중간에 데이터를 입력하거나 중간 값을 볼 수 있게 되었다.
  • 프로그램이 진행되는 동안 입출력이 얼마만에 완료 될지 예측이 어렵다.
    • 작업 시간 예측이 어렵다.

시분할 시스템

→ 여러 작업을 조금씩 처리하여 작업이 동시에 이루어지는 것처럼 보이게 하는 것

  • CPU 사용 시간을 아주 잘게 쪼개어 여러 작업에 나눠 준다.
  • 시간 분배가 매우 빠른 속도로 반복되면 A,B,C 작업이 동시에 실행되는 것처럼 보인다.

멀티 프로그래밍

→ 하나의 CPU 로 여러 작업을 동시에 실행하는 기술.

  • 시분할 시스템으로 멀티 프로그래밍을 구현한다.

타임 슬라이스

잘게 나뉜 시간 한 조각

멀티프로그래밍 수준

시분할 시스템에서 동시에 실행되는 작업의 개수

다중 사용자 시스템

하나의 컴퓨터에서 여러 명이 작업할 수 있는 시스템

시분할 시스템 단점

  • 여러 작업을 동시 처리하기 위한 추가 작업이 필요하다.
    • 사용자 메모리를 정리하는 작업.
  • 많은 양의 작업이 공존하면 중요 작업이 일정 시간 안에 끝나는 것을 보장하지 못함.

단점을 보완하기 위해…?

실시간 시스템

특정 시스템에서 일정 시간 안에 작업이 처리되도록 보장하는 시스템

  • 원자력이나 미사일을 제어하는 일정 시간 안에 반드시 끝나야하는 작업에 사용한다.

시분할 시스템을 통해 값비싼 컴퓨터를 한 사람이나 한 작업이 독점하지 않고 여러 사람이 동시에 사용할 수 있는 환경이 만들어졌다.

그리고, 이 시기에 현대 운영체제의 원형인 유닉스가 C 언어로 개발된다.
유닉스는 멀티 프로그래밍과 다중 사용자를 지원하는 운영체제로, 작고 안정적인 운영체제이다.

 

분산 시스템

→ 값이 싸고 크기가 작은 컴퓨터를 하나로 묶어 대형 컴퓨터에 버금가는 시스템. 네트워크상에 분산된 여러 컴퓨터로 작업을 처리하고 그 결과를 상호 교환하도록 구성.

개인용 컴퓨터 보급

  • 스티브 잡스가 최초의 개인용 컴퓨터 “애플2” 발표. 이후 급속도로 보급.
  • 운영체제로는 애플의 매킨토시와 마이크로소프트의 MS-DOS 사용.

인터넷의 등장

  • 서로 호환되지 않는 LAN 을 하나로 묶기 위한 연구 진행.
    • 아르파넷 ARPAnet 개발.
    • 이 때, TCP/IP 프로토콜이 정의됨.

 

클라이언트/서버 시스템

→ 작업을 요청하는 클라이언트와 거기에 응답하여 요청받은 작업을 처리하는 서버의 이중 구조.

  • 분산 시스템은 모든 컴퓨터의 지위가 동일해 하나가 고장나거나 추가되면…
    • 작업 분배와 결과를 모으기가 쉽지 않음.
    • 그래서 요청과 응답을 하는 구조로 나눔.
  • 웹 시스템의 보급으로 일반인에게 알려지게 되었다.

문제점

→ 서버 과부하.

  • 모든 요청이 서버로 집중됨.
  • 서버 다운 위험…!!

데몬

멈추지 않고 작동하는 프로그램, (365일 켜져있어야 하는) 서버에 켜진 프로그램을 말한다.

 

P2P 시스템

→ 서버는 중계만 하고, 파일을 얻고자 하는 사용자는 파일을 가진 사용자로부터 직접 다운로드하는 시스템.

  • 서버는 사용자의 파일 목록만 가진다.
  • 사용자는 서버를 통해 누가 해당 파일을 가지고 있는지 위치 정보만 얻는다.
  • 파일을 다운로드 할 땐 서버를 거치는 게 아닌 파일 보유자에게 직접 받는다.
  • 서버 과부하를 줄이기 위해 만들었다.

예시

  • 소리바다, 프루나, 당나귀.
  • 메신저 → 카카오톡
    • 로그인하면 서버에 접속해 사용자 인증을 하고 정보를 받는다.
    • 대화할 땐 상대방과 P2P로 직접 연결되어 채팅한다.

블록체인

서버가 없는 완전한 P2P 시스템

  • P2P 시스템 전체에 거래 장부를 분산 시킴.
  • 전체 시스템의 50% 이상이 동의했을 때만 거래 장부 변경 가능.
    • 장부가 조작되거나 유실되더라도 거래에 영향을 미치지 않음.
  • 현재 기술로는 해킹이 불가능.
  • 디지털 자산의 유일성을 증명하는 곳에 사용되어, NFT 라고 부른다.

 

클라우드 컴퓨팅

→ 하드웨어와 소프트웨어를 클라우드라는 중앙 시스템에 숨기고 사용자는 필요한 서비스만 그때그때 이용하는 방식의 컴퓨팅 환경

  • 하드웨어 구현에서 그리드 기술을 사용해 그리드 컴퓨팅과 많은 부분이 겹칠 수 있음.
  • 그러나, 클라우드 컴퓨팅은 서비스 중심의 환경.
그리드 컴퓨팅  여러 곳에 분산된 컴퓨터를 하나로 묶어서 슈퍼 컴퓨터와 맞먹는 높은 수준의 컴퓨팅 파워 제공
클라우드 컴퓨팅 언제 어디서나 컴퓨팅 파워와 소프트웨어에 접근할 수 있는 유연한 컴퓨팅 환경

 

사물 인터넷 IoT

→ 냉장고, 세탁기와 같은 사물이 인터넷에 연결된 시스템

  • 다양한 사물이 센서와 통신 기능을 내장해 스스로 통신하며 지능적인 서비스 제공.
    • 스마트폰으로 에어컨틀거나 전등 끄기.
    • 버스 전광판으로 실시간 도착 정보 알기.
728x90

'개발공부 개발새발 > OS' 카테고리의 다른 글

OS ) 시스템콜, 코루틴, 그리고 이벤트 루프란?  (0) 2024.10.29
OS ) CPU와 메모리  (0) 2023.11.02
OS ) 컴퓨터의 기본 구성  (1) 2023.10.23
OS ) 운영체제의 구성  (2) 2023.10.23
OS ) 운영체제 소개  (0) 2023.10.21