운영체제의 개요

hyojeong_sss·2021년 3월 11일
0

운영체제

목록 보기
1/2
post-thumbnail

소개

운영체제 (OS, Operating System)

  • 일반 컴퓨터, 스마트폰의 전원을 켜면 가장 먼저 만나게 되는 소프트웨어
    ex) PC 운영체제 (Window, Mac OS, UNIX, LINUX 등), 모바일 운영체제 (iOS, Android 등)

  • 임베디드 운영체제 : CPU의 성능이 낮고 메모리 크기도 작은 시스템에 내장하도록 만든 OS
    ex) 스마트 시계, 스마트 TV

정의

  • 응용 프로그램이나 사용자에게 컴퓨터 자원을 사용할 수 있는 인터페이스를 제공하고 그 결과를 돌려주는 시스템 소프트웨어
  • 응용 프로그램이나 사용자에게 모든 컴퓨터 자원을 숨기고 정해진 방법으로만 컴퓨터 자원을 사용할 수 있도록 제한

역할

  1. 자원 관리

    • 자원을 요청한 프로그램이 여러 개라면 적당한 순서로 자원을 배분
      ex) 돌아가는 프로그램 메모리 적절히 분배, CPU가 쉬지 않도록 여러 프로그램 돌림
  2. 자원 보호

    • 비정상적인 작업으로부터 컴퓨터 자원 보호
      ex) 커널 같은 운영체제의 중요한 영역에 사용자가 함부로 접근하지 못하게 함
  3. 하드웨어 인터페이스 제공

    • 사용자가 복잡한 과정 없이 다양한 장치를 사용할 수 있도록 함 (일관된 방법으로 사용할 수 있도록 지원)
  4. 사용자 인터페이스 제공

    • 사용자가 운영체제를 편리하게 사용하도록 지원
      ex) GUI

목표

  1. 효율성

    • 자원 효율적 관리
    • 같은 자원으로 더 많은 작업량 처리, 같은 작업량으로 적은 자원 사용
  2. 안정성

    • 작업 안정적 처리
    • 사용자와 응용 프로그램의 안전 문제, 하드웨어적인 보안 문제 처리
    • 시스템에 문제가 발생시 이전으로 복구하는 fault-tolerance 기능
  3. 확장성

    • 다양한 시스템 자원을 컴퓨터에 추가, 제거를 편리하게 하는 것
    • 새로운 기능의 효과적인 개발을 허용
  4. 편리성

    • 사용자가 편리하게 작업할 수 있는 환경 제공


역사

발달 순서

일괄처리(batch processing) -> 다중 프로그래밍(multi programming) -> 온라인 (online processing) -> 시분할 처리(time-sharing processing) -> 실시간 처리 (real time processing) -> 다중 모드처리(multi mode processing) -> 분산 처리(distributed processing) -> 병렬 처리(parallel processing)

초창기 컴퓨터 (1940)

에니악

  • 진공관 소자 사용, 켜지면 1, 꺼지면 0
  • 전선 연결 '하드와이어링' 방식 -> 여러 프로그램 동시에 돌리기 힘듦
  • 운영체제가 없음

일괄 작업(처리) 시스템 (1950)

천공카드 시스템

  • 입력장치 : 천공카드, 출력장치 : 라인 프린터
  • 프로그램 구성 후 카드에 구멍 뚫어 입력하면 프로그램 실행
  • 프로그램이 10줄이면 천공카드 10장 필요. 이때, 10장 말고도 맨 앞에 제어카드가 한 장 더 붙음
    제어카드 : 내가 뒤에 요청하는 일들이 무엇인지 알려주는 기능을 하는 control 카드

일괄 처리 시스템

  • 작업 준비 시간을 줄이기 위해 요구 사항이 비슷한 여러 개의 작업을 모아 한꺼번에 처리

  • 모든 작업을 한꺼번에 처리하고 프로그램 실행 중간에 사용자가 데이터를 입력하거나 수정하는 것 불가능한 시스템 (= 중간에 사용자 인터렉션 없이 컴퓨터가 한번에 실행)

  • 상주 모니터 (Resident Monitor) : 자동 작업 순서에서 하나의 작업에서 다른 작업으로의 진행을 자동으로 제어하는 프로그램으로 운영체제의 시초
    즉, 메모리 중 시작하는 부분 일부를 프로그램을 제어하는 용도로 프로그램을 짜놓음 (메모리 안에 계속 상주)

결과까지 며칠씩 기다려야 하고, 오류가 나면 결과도 주지 않는 천공카드의 불편함 존재
👇🏻 새로운 시스템 등장! 👇🏻	

대화형 시스템 (1960)

  • 모니터와 키보드 등장
  • 온라인 시스템 (모니터, 키보드가 컴퓨터 메인프레임에 직접 연결)
  • 다양한 종류의 응용 프로그램 만들 수 있게됨
  • 60년대 초반에 소개되었으나 기술의 보편화가 더뎌 우리나라에서는 80년대에 보편화됨

다중 프로그래밍 시스템 (1960)

  • CPU가 항상 수행할 작업을 가지도록 하여 프로세서 이용률을 극대화
  • 여러 개의 프로그램을 동시에 기억 장치에 적재시켜 한 프로그램이 입출력 작업을 하는 동안, CPU가 다른 프로그램을 수행할 수 있게 함으로써 CPU의 유휴 시간(idle time) 최소화 하고 처리량을 극대화
  • 기억 장치 관리 기법 (몇 개 프로그램까지 적재할 건지?) , CPU 스케줄링 기법 (CPU를 어떤 순서로 사용하게 할 건지?) 필요
  • 어떤 하나의 프로그램의 실행 성능을 향상시키지는 못하나 전반적인 시스템 성능은 향상
EX) A라는 프로그램 실행

메인 메모리에 A라는 프로그램이 적재되어 있어야 함. 
CPU가 한 줄씩 읽어다가 실행을 하는데, 프로그램을 하나만 적재해놓고 실행하다 보니 프로그램을 실행하다가 입출력이 있을 시, 
IO가 끝나기를 기다리면서 CPU가 유휴 상태가 됨

	👇 다른 프로그램들도 적재하자! 👇 

A가 IO를 하는 동안 B는 CPU를 사용함으로써 CPU의 유휴 상태를 최소화!

시분할 시스템 (1960)

  • CPU 사용 시간을 잘게 쪼개 작업들에 나누어줘 모든 작업이 동시에 처리 되는 것처럼 보임
  • 타임 슬라이스 (타임 퀀텀) : 잘게 나뉜 시간 한 조각
  • 목적 : 응답 시간 최소화, 각 사용자들이 자신이 컴퓨터 시스템을 독점한 것처럼 느끼게 만드는 것
  • 오늘날의 컴퓨터에 대부분 사용됨

A 작업 완료 후 B작업, B작업 완료 후 C 작업을 진행할 경우, C는 자신이 응답 받는 시간이 굉장히 느리다고 생각할 것
BUT, 시분할 시스템은 A -> B -> C -> A -> B -> C -> ... 형태로 처리되므로 
모든 사용자들이 반응시간이 빠르다고 느끼게 될 것

실시간 시스템 (1960)

  • 처리를 요구하는 자료가 발생할 때마다 즉시 처리

  • 특수 목적 (은행, 공장, 기차와 비행기의 좌석 예약 등), 멀티미디어 로봇 제어, 가상 현실 등의 제어 장치로 사용

  • 특징

    1. 자료가 발생한 지점에서 바로 입출력
    2. 효율적인 자원 사용보다 신속한 응답이 중요
    3. 무작위 자료 도착으로 인해 자료의 일시 저장과 대기 필요
    4. 특정 상태의 재현 불가
    5. 재실행 불가

분산 시스템 (1970 후반)

  • PC와 인터넷 보급
  • 네트워크상에 분산되어 있는 여러 컴퓨터로 작업을 처리, 그 결과를 상호 교환하도록 구성

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

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

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

  • 클라이언트/서버 구조의 단점인 서버 과부화 해결
  • 서버를 거치지 않고 사용자와 사용자 직접 연결
  • ex) 냅스터, 메신저, 토렌트 등
  • 메신저 프로그램에 도입되면서 큰 발전

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

그리드 컴퓨팅

  • 필요한 기간만큼만 컴퓨터 사용 후 사용한 금액만큼만 돈 지불
  • 클라우드의 하드웨어 버전이라고 생각하면 쉬움

클라우드 컴퓨팅

  • 그리드 컴퓨팅과 SaaS를 합쳐 놓은 형태

  • 언제 어디서나 응용 프로그램과 데이터를 자유롭게 사용할 수 있는 컴퓨팅 환경

  • IaaS (Infrastructure as a Service)
    : 제일 많이 사용되고 있는 클라우드 컴퓨팅 형태, 개발사에 제공되는 물리적 자원을 가상화

  • PaaS (Platform as a Service)
    : 개발사에 제공되는 플랫폼을 가상화

  • SaaS (Software as a Service)
    : 고객에게 제공되는 소프트웨어를 가상화

사물 인터넷 (IOT)

  • 사물에 센서와 통신 기능을 내장하여 인터넷에 연결하는 기술
profile
컴공생

0개의 댓글