본문 바로가기
IT Basic/Operating System

[OS] 2장 운영체제 개요

by HouseDust 2021. 12. 15.
반응형

2장, 운영체제 개요

 

운영체제(Operating System)

  • 컴퓨터 하드웨어 바로 윗단에 설치되는 소프트웨어
  • 사용자 및 다른 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층

컴퓨터에 운영체제가 없다면, 컴퓨터는 고철덩어리에 불과하다. 고철 덩어리를 동작시키기 위해서 필요한 기본적인 소프트웨어가 바로 운영체제다. 사용자가 하드웨어를 다루는 것이 어려우므로, 사용자 입장에서 손쉽게 사용할 수 있도록 기본적으로 운영체제를 탑재한다.

 

커널(kernel)

  • 운영체제 코드 중에서도 핵심적인 부분
  • 좁은 의미의 운영체제

규모가 큰 운영체제를 모두 메모리에 올려놓고 사용할 수는 없다. 항상 필요한 부분을 메모리에 올려두고 그 외에는 필요한 순간에만 메모리에 올려서 사용한다. 이때 항상 메모리에 상주하는 부분을 커널(kernel)이라 한다.

 

유틸리티(Utility)

  • 항상 메모리에 올라가 있는 것이 아닌, 별도의 프로그램
  • 넓은 의미의 운영체제 : 커널 + 유틸리티(Utility)

사실상 운영체제의 일부라고 보긴 어렵지만, 시스템을 위한 유틸리티로 운영체제에 함께 설치되기 때문에 넓은 의미의 운영체제에 포함된다.

 

운영체제의 기능

  • 하드웨어를 위한 역할 : 사용자가 직접 다루기 어려운 각종 하드웨어를 관리
    컴퓨터 시스템 내의 자원을 효율적으로 관리하는 것
    자원 관리자(resource manager)
    여기서 자원(resource)이란? CPU, 메모리, 하드디스크 등의 하드웨어 자원 + 소프트웨어 자원
    자원이 형평성 있게 분배되도록 균형자 역할도 수행해야 함 
  • 사용자를 위한 역할 : 편리한 인터페이스 제공
    컴퓨터 시스템을 편리하게 사용할 수 있는 환경을 제공하는 것
  • 사용자와 운영체제 자신을 보호하는 역할
    보안 및 보호 기능 수행

 

운영체제의 분류

  • 단일 작업(Single Tasking)용 운영체제
    예) 도스(Disk Operating System: DOS)
    한 번에 하나의 작업만 실행

  • 다중작업(Multi Tasking)용 운영체제
    예) MS 윈도우, 유닉스 등
    동시에 2개 이상의 프로그램 처리 가능

 

▶ 다중작업의 종류

  • 시분할 시스템(time sharing system)
    CPU의 작업시간을 여러 프로그램들이 조금씩 나누어 쓰는 시스템
  • 다중 프로그래밍 시스템(multi-programming system)
    메모리 공간을 분할해 여러 프로그램들을 동시에 메모리에 올려놓고 처리하는 시스템

대화형 시스템(interactive system)

사용자의 요청에 대한 결과를 곧바로 얻을 수 있는 시스템

 

다중 처리기 시스템(multi-processor system)

  • 하나의 컴퓨터 안에 여러 개의 CPU
  • 처리는 빨라지지만, 여러 개의 CPU를 관리해야 하므로 운영체제는 더욱 복잡한 메커니즘을 가진다.

 

분류 기준 : 다중 사용자에 대한 동시 지원

  • 단일 사용자용 운영체제
    한 번에 한 명의 사용자만 사용하도록 허용
  • 다중 사용자용 운영체제
    여러 사용자가 동시 접속하여 사용
    서버 컴퓨터

 

분류 기준 : 작업을 처리하는 방식

  • 일괄처리(batch processing) 방식
    요청된 작업을 일정량씩 모아서 한꺼번에 처리하는 방식
    응답 시간이 길다
    예) 펀치 카드(Punch Card) 처리 시스템
  • 시분할 방식
    여러 작업을 수행할 때 컴퓨터의 처리 능력을 일정한 시간 단위로 분할해 사용하는 방식
    현대 범용 컴퓨터에 적용된 방식
    짧은 응답 시간
    대화형 시스템
  • 실시간(real time) 운영체제
    정해진 시간 안에 어떠한 일이 반드시 처리됨을 보장해야 하는 시스템에 사용
    예) 미사일 제어 시스템, 공장 제어 시스템 등
    세부 분류 
    • 경성 실시간 시스템(hanrd realtime system)
      주어진 시간을 지키지 못할 경우 매우 위험한 시스템
      예) 로켓, 원자로 제어 시스템
    • 연성 실시간 시스템(soft realtime system)
      데이터가 정해진 시간 단위로 전달되어야 올바른 기능을 수행할 수 있는 시스템
      예) 멀티미디어 스트리밍 시스템

 

운영체제의 자원 관리 기능 - 자원 종류별

  1. CPU 관리 방법
    여러 프로세스들이 CPU를 효율적으로 나누어 사용할 수 있도록 관리
    CPU 스케줄링(CPU Scheduling), CPU를 효율적으로 사용하면서 특정 프로세스가 불이익을 당하지 않는 것이 목표
    • 선입선출(First Come First Served: FCFS)
      먼저 도착한 프로세스들 중 먼저 온 것을 먼저 처리
      먼저 얻은 프로세스가 끝날 때까지 다른 프로세스는 기다려야 함
    • 라운드 로빈(Round Robin)
      한 번 할당받아 사용할 수 있는 시간을 일정하게 고정된 시간으로 제한
      긴 작업을 가진 프로세스를 마냥 기다려야 하는 문제는 해결
    • 우선순위(Priority)
      대기 중인 프로세스에 우선순위를 부여하여 우선순위대로 처리하는 방식
      대기 시간이 길 경우, 우선순위를 높이는 방식으로 장기간 대기를 막을 수 있음
  2. 메모리 관리 방법
    다수의 프로세스들이 나누어 쓸 수 있도록 관리
    메모리는 주소(address)를 통해 관리
    전체 메모리 공간이 효율적으로 사용될 수 있도록 관리
    각 프로세스가 다른 프로세스의 영역을 침범하지 않도록 관리
    • 고정 분할(fixed partition)
      물리적 메모리를 몇 개의 분할로 미리 나누어 관리
      최대 적재 프로그램 개수가 한정됨
      분할 크기보다 큰 프로그램은 적재가 불가능함
      분할 크기보다 작은 프로그램을 적재할 시, 남은 영역이 발생 - 내부 조각(internal fragmentation)
    • 가변 분할(variable partition)
      매 시점 프로그램의 크기에 맞게 메모리 분할
      물리적 메모리보다 큰 프로그램의 실행은 불가능
      메모리의 분할을 동적으로 변경하기 위해 기술적 관리 기법이 필요
      프로그램에 할당되지 않았지만, 크기가 작아 활용되지 못하는 영역 - 외부 조각(external fragmentation)
    • 가상 메모리(virtual memory)
      현대 범용 컴퓨터에서 가장 많이 사용되는 방식
      물리적 메모리보다 더 큰 프로그램의 실행 지원
      모든 프로그램은 물리적 메모리와는 독립적으로 0번지부터 시작하는 독립적인 가상 메모리 주소를 가짐
      운영체제는 가상 메모리 주소를 물리적 메모리 주소로 매핑(mapping)하는 기술로 주소를 변환시킨다
      물리적 메모리보다 큰 프로그램을 실행할 경우, 사용 중인 부분만 메모리에 올리고 다른 부분은 보조기억장치에 적재하는데, 이 영역을 스왑 영역(swap area)이라 부른다
      페이지(page)라는 동일한 크기의 작은 단위로 나누어 메모리와 스왑 역역에 일부분씩 저장한다 : 페이징 기법
  3. 입출력 장치 관리 방법
    전원이 꺼질 때에도 기억해야 하는 정보를 파일 형태로 보조기억장치에 저장
    인터럽트(interrupt) 메커니즘
    • 인터럽트 직전의 작업 상태를 저장해두었다가, 인터럽트를 처리한 후 이어서 작업을 처리하는 것
      다양한 인터럽트 처리 루틴이 존재한다
      주변 장치들은, 각 장치마다 그 장치에서 일어나는 업무를 관리하기 위한 일종의 작은 CPU를 가지고 있다
      → 컨트롤러(Controller)
  4. 파일 관리 방법
    파일이 저장되는 방식, 접근 권한 관리

 

 


참고 자료

반효경, 『운영체제와 정보기술의 원리』, 이화여자대학교출판문화원(2020), p45-p65

 

 

반응형

댓글