운영체제(1)-개요

업데이트:

<운영체제와 정보기술의 원리>, 반효경 을 읽고 정리한 내용입니다

1. 운영 체제의 정의

운영체제의 위상

운영 체제(operating system)란 컴퓨터 하드웨어 바로 윗단에 설치되는 소프트웨어를 말한다.

메모리 낭비를 줄이기 위해 운영체제 중 항상 필요한 부분만을 전원이 켜짐과 동시에 메모리에 올려놓고 그렇지 않은 부분은 필요할 때 메모리로 올려서 사용하게 된다.

이 때, 메모리에 상주하는 운영 체제의 부분을 커널(kernel)이라고 하며. 좁은 의미의 운영체제라고도 한다.

2. 운영 체제의 기능

  1. 컴퓨터 시스템 내의 자원을 효율적으로 관리한다.(자원 관리자)
  2. 컴퓨터 시스템을 편리하게 사용할 수 있는 환경을 제공한다. 동시 사용자 및 프로그램들에게 각각 독자적으로 컴퓨터를 사용하는 것과 같게끔 제공한다

자원이란?

  • CPU, 메모리, 하드 디스크 등 하드웨어 자원과 스프트웨어 자원을 통칭해서 부르는 말

3. 운영 체제의 분류

동시 작업을 지원하는가?

  • 단일 작업용 운영체제(single tasking)
  • 다중 작업용 운영체제(multi tasking)
    • 여러 프로그램이 CPU와 메모리를 공유하게 된다
    • 짧은 시간 규모로 여러 프로그램들이 CPU에서 번갈아 수행된다
      • 사용자는 동시에 여러 프로그램이 수행되는 것처럼 보인다.(대화형 시스템)
      • 시분할 시스템 : CPU의 작업 시간을 여러 프로그램들이 나누어 쓰는 시스템
    • 메모리의 경우 여러 프로그램들이 메모리 공간을 보유하며 동시에 올라가 있을 수 있다.
      • multi-programming system : 메모리 공간을 분할해 여러 프로그램들을 동시에 메모리에 올려놓고 처리하는 시스템
  • multi-processor system
    • 하나의 컴퓨터 안에 CPU가 여러개 설치된 경우
    • 서로 다른 CPU에서 여러 프로그램이 동시에 수행될 수 있다.

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

  • 단일 사용자용 운영 체제
    • DOS
  • 다중 사용자용 운영 체제
    • 이메일 서버, 웹 서버

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

  • 일괄 처리(batch processing) 방식
    • 작업 요청의 일정량을 모아서 한꺼번에 처리하는 방식
  • 시분할 방식(time sharing)
    • 컴퓨터의 처리 능력을 일정한 시간 단위로 분할해 사용하는 방식
    • 배치 프로세싱에 비해 짧은 응답 시간
  • 실시간 운영체제(real-time)
    • 정해진 시간 안에 작업이 반드시 종료됨이 보장되어야 하는 시스템
    • hard realtime system
    • soft realtime system

4. 운영 체제의 예

  • MS windows
    • 개인용 컴퓨터를 위한 운영 체제
  • UNIX
    • 오픈소스
    • 이식성이 좋다

5. 운영 체제의 자원 관리 기능

운영체제의기능

CPU 스케줄링

매 시점 어떠한 프로세스에게 CPU를 할당해 작업을 처리할 것인지 결정한다.

CPU를 가장 효율적으로 사용하면서, 특정 프로세스가 불이익을 당하지 않도록 한다.

대표적 스케줄링 기법

  • 선입선출(FCFS)
  • round robin
  • 우선순위(priority)

선입선출

CPU를 사용하기 위해 도착한 프로세스를 먼저 처리한다.

  • 장점
    • CPU 자체는 효율적인 사용이 가능하다.
  • 단점
    • 장시간 CPU를 사용해야 하는 프로세스가 먼저 도착하는 경우, 나중에 도착한 단시간 CPU를 사용하는 프로세스는 이전 작업이 완료될 때까지 기다려야 한다.

Round-Robin

라운드로빈

CPU를 한 번 할당받아 사용할 수 있는 시간을 고정된 시간으로 제한한다.

짧은 작업의 프로세스가 오래 기다려야 하는 상황을 막을 수 있다.

우선순위 스케줄링

대기중인 프로세스에 우선순위를 부여하고 우선순위가 높은 프로세스에게 CPU를 먼저 할당한다.

기다린 시간이 늘어날수록 우선순위를 높이는 방안도 활용될 수 있다.

메모리 관리

메모리는 CPU가 직접 접근 가능한 기억장치

프로그램이 CPU에서 수행되려면 메모리에 올라가 있어야 한다.

고정가변분할방식

고정 분할 방식

물리적 메모리를 몇 개의 영구적인 분할로 나눈다.

동시에 메모리에 적재되는 최대 프로그램 분할 개수로 한정된다.

  • 문제점
    • 분할의 크기보다 큰 프로그램은 적재가 불가능하다. 외부 단편화 발생
    • 분할의 크기보다 작은 프로그램이 적재되는 경우 내부 단편화 발생
      • 다른 프로세스에게도 할당될 수 없다.
    • 메모리가 효율적으로 사용되기 어렵다.

가변 분할 방식

매 시점 프로그램의 크기에 맞게 메모리를 분할해서 사용하는 방식

  • 분할의 크기 때문에 큰 프로그램의 실행이 제한되는 문제 없다.
  • 내부 단편화 일어나지 않는다.

  • 문제점
    • 외부 단편화 발생
    • 빈 메모리 공간이 있음에도 할당 불가능하다

가상 메모리 방식

물리적 메모리보다 더 큰 프로그램이 실행 가능하다.

  • 모든 프로그램은 물리적 메모리와는 독립적으로 주소가 0부터 시작하는 가상 메모리를 갖는다
  • 운영체제는 가상 메모리의 주소를 물리적 메모리 주소로 매핑하여 주소를 변환 후 프로그램을 물리적 메모리에 올리게 된다.
  • 물리적 메모리의 크기가 프로그램의 크기보다 작더라도 실행할 수 있다.
    • 현재 사용되고 있는 부분만 메모리에 올리고
    • 나머지는 보조 기억장치에 저장해 두었다가(스왑 영역)
    • 필요할때 물리 메모리에 올린다

페이징세그멘테이션

  • 프로그램을 구성하는 주소 공간은 페이지라는 동일한 크기의 단위로 나위어 물리적 메모리와 스왑 영역에 일부분씩 저장된다.(페이징 기법)
    • 외부 단편화는 발생하지 않는다
    • 내부 단편화는 존재한다(마지막에 자투리 주소 공간이 있을 수 있다.)
  • 프로그램의 주소 공간을 동일한 크기의 단위로 나누는 것이 아니라 의미를 기준으로 자른다.(segmentation)
    • 일반적으로 code, data, stack 단위로 자른다.
    • 장점 : 의미 단위의 작업을 쉽게 처리 가능하다
    • 단점 : 외부 단편화가 발생한다.

입출력 관리

인터럽트(interupt)를 통해 관리하게 된다.

  • 주변 장치들은 CPU의 서비스가 필요한 경우 신호(인터럽트)를 발생시켜 서비스를 요청한다.
  • CPU는 주어진 작업을 실행하다가 인터럽트가 발생하면 하던 일을 멈추고 인터럽트에 의한 요청 서비스를 수행하게 된다.
  • 인터럽트 서비스가 끝나면 원래 하던 일을 계속 수행한다.
    • 이를 위해 수행중이던 작업의 상태를 저장해 둔다

운영 체제는 인터럽트 종류마다 다른 인터럽트 처리 루틴을 가지고 있다.

  • 인터럽트 처리 루틴
    • 인터럽트가 발생했을 때 해야 할 작업이 정의된 프로그램 코드
    • 운영체제 커널 내에 존재한다

주변 장치들은 장치마다 작은 CPU를 가지고 있다(컨트롤러)

  • 해당 장치의 업무를 처리하고, 메인 CPU에 인터럽트를 발생시킨다

댓글남기기