운영체제

From CS Wiki


Operating System
컴퓨터의 시스템 자원을 관리 및 운영함으로써 사용자 지향적인 환경을 제공하는 시스템 소프트웨어

역할[edit | edit source]

  • 사용자 인터페이스 제공
  • 사용자 프로그램 제어 및 관리
  • 입ㆍ출력에 대한 보조역할 수행
  • 사용자들 간 하드웨어 자원의 공동 사용을 위한 자원 분배 및 관리

발달 과정[edit | edit source]

  1. 일괄 처리 시스템(1950년대)
    • 필요한 정보를 모아 한꺼번에 처리하는 초기 정보처리 시스템
    • 현대에서도 배치 프로그램은 사용된다. 은행의 이자 정산, 학교의 성적 처리 등
  2. 실시간 처리 시스템(1960년대)
    • 입출력 장치의 개선으로 대화식으로 실시간 정보 처리 수행
    • 사용자가 필요한 연산을 바로바로 입력하고 결과를 받아본다.
  3. 시분할 시스템(1960년대)
    • 다중 프로그래밍 시스템이라고도 한다.
    • 짧은 주기로 여러 프로그램을 번갈아가면서 실행하여 여러 사용자가, 여러 프로그램을 동시에 사용할 수 있게 함
    • 현대의 멀티 프로세싱, 멀티 스레드도 시분할 처리다.
  4. 다중처리 시스템(1980년대)
    • 하나의 메모리에 복수의 연산장치를 이용하여 작업을 처리하는 방식
    • 2코어, 4코어 등의 멀티 프로세서 시스템을 말한다.
  5. 분산 처리 시스템(1980년대)
    • 여러 컴퓨터를 네트워크로 묶어 높은 성능을 구현하는 방식
    • 클러스터링이 분산 처리 시스템에 해당된다.

유형[edit | edit source]

  • 싱글 태스킹 시스템: 컴퓨터가 한 번에 하나의 작업만을 처리
  • 멀티 스위칭 시스템 : 다수의 작업이 동시 실행되나 포그라운드 프로그램만 동작하는 형태
  • 멀티 태스킹 시스템: 여러개의 작업을 동시에 처리가능한 시스템
  • 멀티 유저 시스템: 단일 시스템에서 여러 사용자가 동시에 프로그램을 이용가능한 시스템
  • 일괄처리 시스템: 여러 개의 작업을 묶어 한꺼번에 처리하는 시스템
  • 대화형 처리 시스템: 사용자와 컴퓨터가 명령과 결과 응답을 주고 받으며 구동되는 시스템

기능적 구분[edit | edit source]

  • 제어 프로그램(Control Program)
    • 감시 프로그램(Supervisor Program)
    • 작업 관리 프로그램(Job Management Program)
    • 데이터 관리 프로그램(Data Management Program)
  • 처리 프로그램(Process Program)

자원 관리 5계층[edit | edit source]

  1. 프로세서 관리(1계층): 동기화 및 프로세서 스케줄링
  2. 메모리 관리(2계층): 메모리 할당 및 회수
  3. 프로세스 관리(3계층): 프로세스 생성,제거
  4. 주변장치 관리(4계층): 주변장치 상태파악
  5. 파일 관리(5계층): 파일의 생성과 소멸, 파일의 열기와 닫기

성능평가 기준[edit | edit source]

  • 처리능력(Throughput)
    • 일정 시간 내에 시스템이 처리하는 일의 양
  • 반환 시간(Turn Around Time)
    • 시스템에 작업을 의뢰한 시간부터 처리가 완료될 때까지 걸린 시간
  • 사용 가능도(Availability)
    • 시스템을 사용할 필요가 있을때 즉시 사용 가능한 정도
  • 신뢰도(Reliability)
    • 시스템이 주어진 문제를 정확하게 해결하는 정도

대표적 운영체제[edit | edit source]

  • 아래 운영체제에 공통적인 사항
    • 다중 사용자(Multi-User), 다중 작업(Multi-Tasking)을 지원한다.
    • 백그라운드에서 작업을 수행할 수 있다.
    • 다양한 유틸리티 프로그램이 존재한다.

윈도우(Windows)[edit | edit source]

  • Microsoft사의 운영체제
  • GUI기반 운영체제이다.
  • 트리 디렉터리 구조를 가진다.
  • 선점형 멀티태스킹 방식을 사용한다.

유닉스(UNIX)[edit | edit source]

  • 시분할 시스템을 위해 설계된 대화식 운영체제
  • 소스가 공개된 개방형(Open) 시스템
  • 대부분 C언어로 작성되어 있어 이식성이 높다.

리눅스(Linux)[edit | edit source]

  • 유닉스로부터 파생된 운영체제
  • 소스가 공개된 개방형(Open) 시스템