Skip to main content

[OS] Chapter 2. 운영체제 개요

운영체제와 정보기술의 원리 강의를 듣고 공부한 노트입니다.




운영체제의 정의 #

  • 운영체제란?

    • 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어이다.
  • 운영체제도 하나의 소프트웨어이기 때문에 컴퓨터 전원이 켜짐과 동시에 메모리에 올라간다.

    • 모두 다 올라가면 메모리 공간의 낭비가 심하기 때문에 항상 필요한 부분만을 올리고, 나머지는 필요할 때 메모리로 올린다.
    • 여기서 항상 필요한 부분을 커널(kernel) 이라고 한다.



운영체제의 기능 #

  • (1) 컴퓨터 시스템 내의 자원(resource)을 효율적으로 관리하는 것
    • 여기서 자원이란, 하드웨어인 CPU, 메모리, 하드디스크 등과 소프트웨어 자원까지를 통칭하는 것이다.
  • (2) 컴퓨터 시스템을 편리하게 사용할 수 있는 환경을 제공하는 것
    • 편리한 인터페이스 제공
  • (3) 사용자와 운영체제 자신을 보호하는 것
    • 악의성 프로그램이 사용자의 사적인 파일에 접근하는 것을 막는 등의 일을 한다.



운영체제의 분류 #

동시 작업을 지원하는가? #

  • (1) 단일작업(single tasking) 용 운영체제
    • 한 번에 하나의 프로그램만 실행시킬 수 있다.
  • (2) 다중작업(multi tasking) 용 운영체제
    • 동시에 2개 이상의 프로그램을 처리할 수 있다. 즉, 인터넷과 문서작성을 동시에 띄워놓고 할 수 있다.

  • 다중작업과 유사한 의미의 용어들…
    • 시분할 시스템(time sharing system)
      • CPU의 작업 시간을 여러프로그램이 나누어서 쓰는 것이다.
      • 짧은 시간 규모로 여러 프로그램들이 CPU에서 번갈아 실핼되면 사용자는 동시에 실행되는 것처럼 보인다.
    • 다중 프로그래밍 시스템(multi-programming system)
      • 메모리 공간을 분할해서 여러 프로그램들을 동시에 메모리에 올려놓고 처리하는 시스템이다.
    • 대화형 시스템(interactive system)
      • 사용자의 키보드 입력 결과를 곧바로 화면에 보여주는 시스템이다.

  • 다중작업과 비교되는 용어…
    • 다중 처리기 시스템(multi-processor system)
      • 하나의 컴퓨터 안에 CPU가 여러개 설치된 경우이다.

다중 사용자를 지원하는가? #

  • (1) 단일 사용자용 운영체제
    • 한 번에 한 명의 사용자만이 사용하도록 허용하는 운영체제이다.
    • 예: Windows
  • (2) 다중 사용자용 운영체제
    • 여러 사용자가 동시에 접속해 사용할 수 있도록 하는 운영체제이다.
    • 예: 서버

작업을 처리하는 방식에 따라 #

  • (1) 일괄처리(batch processing)
    • 작업을 모아서 일정량이 쌓이면 한꺼번에 처리한다.
    • 예: 초창기 컴퓨터의 펀치 카드(punch card)
  • (2) 시분할(time sharing) 방식
    • 작업을 짧은 시간 단위로 번갈아가며 처리한다.
  • (3) 실시간(real time) 운영체제
    • 정해진 시간 안에 어떠한 일이 반드시 처리됨을 보장해야 하는 시스템에서 사용한다.
    • 경성(hard) 실시간 시스템
      • 주어진 시간을 지키지 못할 경우 매우 위험한 결과를 초래할 가능성이 있는 경우.
      • 예: 로켓, 원자로 제어.
    • 연성(soft) 실시간 시스템
      • 정해진 시간 단위로 전달되어야 올바른 기능을 수행할 수 있는 경우.
      • 예: 멀티미디어 스트리밍 시스템.



운영체제의 예 #

  • MS Windows
    • GUI 기반
    • 플러그 앤 플레이(plug and play)
      • 새로운 하드웨어를 시스템에 장착하면 운영체제가 자동으로 하드웨어를 감지하여 그에 맞게 설정한다.

  • 유닉스
    • 대부분의 코드가 C언어로 작성되었다. 이식성(portability)이 좋다.
    • 운영체제 커널의 크기가 작다.
    • 소스 코드가 공개된다. 그래서 여러 집단에서 개발한 다양한 종류가 있다.



운영체제의 자원 관리 기능 #

  • CPU 자원 관리 : CPU 스케줄링(CPU scheduling)
    • 매 시점 어떤 프로세스에게 CPU를 할당할 것인가?
    • 선입선출, 라운드 로빈, 우선순위 스케줄링…
    • CPU 스케줄링 알고리즘
  • 메모리 자원 관리
  • 파일 관리
  • 주변장치 및 입출력 장치 자원 관리
    • 인터럽트(interrupt) 를 통해 관리가 이루어진다.
    • 주변장치들은 CPU의 서비스가 필요해지면 신호(인터럽트)를 발생시켜서 서비스를 요청한다. 그러면 CPU가 잠시 하던 일을 멈추고 인터럽트에 의한 요청 서비스를 수행한다.
    • 인터럽트