운영체제

|


‘운영체제와 정보기술의 원리’ 2장을 학습한 내용을 정리한 포스팅입니다


운영 체제


운영체제란

​ 컴퓨터 하드웨어 바로 윗단에 설치되는 소프트웨어

img




커널

​ 컴퓨터 전원을 켜면 운영체제는 이와 동시에 수행된다. 한편 소프트웨어가 컴퓨터 시스템에서 수행되기 위해서는 메모리에 그 프로그램이 올라가 있어야 한다. 운영체제 자체도 하나의 소프트웨어로서 전원이 켜짐과 동시에 메모리에 올라간다. 하지만, 운 영체제처럼 규모가 큰 포로그램이 모두 메모리에 올라가면 한정된 메모리 공간의 낭비가 심할 것이다. 따라서 운영체제 중 항상 필요한 부분만을 전원이 켜짐과 동시에 메모리에 올려놓고 그렇지 않은 부분은 필요할 때에 메모리에 올려서 사용하게 된다. 이 때, 메모리에 상주하는 운영체제 부분을 커널이라고 부른다.


운영체제의 기능

컴퓨터 시스템 내의 자원을 효율적으로 관리하는 역활

  • 자원이란 CPU, 메모리, 하드 디스크 등 하드웨어 자원 뿐만 아니라 소프트웨어 자원까지 통칭하는 말
  • 효율성이 가장 큰 목표이지만 이로 인해 일부가 지나치게 희생되지 않게하는 형평성 역시 운영체제가 고려해야할 목표
  • 사용자와 운영체제 자신을 보호하는 역활도 담당

img


컴퓨터 시스템을 편리하게 사용할 수 있는 환경을 제공하는 역활

​ 하드웨어를 직접 다루는 복잡한 부분은 운영체제가 대행해주고, 각 사용자 및 프로그램은 그에 대한 자세한 내용을 알지 못해도 프로그램을 수행할 수 있도록 해주는 기능을 뜻한다




운영체제의 분류

1. 동시 작업을 지원하는지의 여부

  • 단일 작업용 운영체제
    • MS DOS - 하나의 프로그램이 수행되는 동안 다른 프로그램 실행 x
  • 다중 작업용 운영체제
    • MS 윈도우즈, 유닉스


다중 작업용 운영체제를 또 다시 분류하면

시분할 시스템 (N명의 사용자 기준)

  • 다중 작업용 운영체제라 하더라도 CPU에서는 매 순간 하나의 프로그램만이 수행될 수 있다. 여러 프로그램들이 짧은 시간 규모로 CPU에서 번갈아 수행되기 때문에 사용자 입장에서는 여러 프로그램이 동시에 수행되는 것처럼 보인다. 이와 같이 CPU의 작업시간을 여러 프로그램들이 조금씩 나눠 쓰는 시스템을 시분할 시스템이라 한다

멀티 프로그래밍 시스템 (1명의 사용자 기준)

  • CPU와 달리 메모리의 경우 여러 프로그램들이 조금씩 메모리 공간을 보유하며 동시에 메모리에 올라가 있을 수 있다. 이처럼 메모리 공간을 분할해 여러 프로그램들을 동시에 메모리에 올려놓고 처리하는 시스템을 다중 프로그래밍 시스템이라고 부른다

멀티 프로세서 시스템

  • 하나의 컴퓨터안에 CPU가 여러개 설치된 경우를 뜻하므로 위의 용어들과는 의미가 다르다. CPU가 여럿 있는 컴퓨터는 서로 다른 CPU안에서 여러 프로그램이 동시에 수행될 수 있어 처리가 더욱 빨라지지만, 운영체제 입장에서는 여러 CPU를 관리하기 위해 더욱 복잡한 매커니즘을 사용해야한다


2. 작업을 처리하는 방식

  • 일괄 처리 방식
    • 처리해야할 여러 작업을 모아 일정량이 쌓이면 일괄적으로 처리한다
    • 사용자 입장에서는 응답 시간이 길다
  • 시분할 방식
    • 여러 작업을 수행할 때 컴퓨터 처리능력을 일정한 시간단위로 분할해 사용하는 방식
    • 일괄처리 방식에 비해 짧은 응답시간을 가진다
  • 실시간 방식
    • 정해진 시간안에 어떠한 일이 반드시 종료됨이 보장되어야 하는 시스템에서 사용한다
    • 원자로, 공장, 미사일 제어 시스템 등에 사용한다




운영체제의 자원 관리 기능

​ 운영체제의 가장 핵심적인 기능은 자원을 효율적으로 관리하는 것이다. 자원은 크게 하드웨어와 소프트웨어로 나뉜다


하드웨어 - CPU, 메모리, 주변 장치 및 입출력 장치 등등


CPU를 관리하는 방법

  • 일반적인 컴퓨터에는 CPU가 하나밖에 없지만 프로세스는 여러 개가 동시에 실행된다. 그러므로 매 시점 어떠한 프로세스에게 CPU를 할당해 작업을 처리할 것인지를 결정하는 일이 필요하다. 이러한 일을 CPU 스케줄링이라고 한다.
  • CPU 스케줄링 기법에는 선입선출, 라운드 로빈, 우선순위 기법이 있다
    • 선입선출 기법
      • 먼저 CPU를 사용하기 위해 도착한 프로세스를 먼저 처리해 주는 방식
      • 작업 시간이 긴 프로세스가 앞에 있고, 작업 시간이 짧은 프로세스가 뒤에 있다면 비효율이 발생
    • 라운드 로빈 기법
      • CPU를 한 번 할당받아 사용할 수 있는 시간을 일정한 고정된 시간으로 제한하여 선입선출 기법의 비효율성을 해결할 수 있다.
    • 우선순위 스케줄링
      • 수행 대기중인 프로세스들에게 우선순위를 부여하고 우선순위가 높은 프로세스에게 CPU를 먼저 할당하게 하는 방식
      • 지나치게 오래 기다리는 프로세스가 발생하지 않도록 기다린 시간이 늘어날수록 우선순위를 높여주는 방안도 활용될 수 있다


메모리를 관리하는 방법

  • 메모리는 CPU가 직접 접근할 수 있는 컴퓨터 내부의 기억장치다. 메모리 관리를 위해 운영체제는 주소라는 개념을 사용한다. 또한 다수의 사용자 프로그램이 동시에 메모리에 올라간 경우 서로 다른 프로세스의 영역을 침범하지 않도록 보안을 유지하는 역활도 운영 체제의 몫이라고 할 수 있다.
  • 물리적 메모리를 관리하는 방식에는 고정 분할 방식, 가변 분할 방식, 가상 메모리 방식이 있다
    • 고정 분할 방식
      • 물리적 메모리를 몇 개의 영구적인 분할로 나눈다. 나뉜 각각의 분할에는 하나의 프로그램이 적재된다. 고정 분할 방식은 융통성이 없는 단점이 있다
      • 내부 단편화가 발생할 수 있다.
    • 가변 분할 방식
      • 매 시점 프로그램의 크기가 맞게 메모리를 분할해서 사용하는 방식을 말한다
      • 고정 분할 방식에서 발생하는 내부 단편화는 발생하지 않지만 외부 단편화가 발생할 수 있다
    • 가상 메모리 방식
      • 최근 거의 모든 컴퓨터 시스템에서 사용하는 메모리관리 기법
      • 가상 메모리 기법에서는 물리적 메모리보다 더 큰 프로그램이 실행되는 것을 지원한다. 이때 실행될 수 있는프로그램의 크기는 가상 메모리 크기에 의해 결정된다. 운영체제는 가상메모리의 주소를 물리적 메모리 주소로 매핑하는 기술을 이용해 프로그램을 물리적 메모리에 올리게 된다
      • 프로그램의 전체 크기가 1GB라 하더라도 전체가 항상 동시에 사용되는 것은 아니다. 그러므로 현재 사용되고 있는 부분만 메모리에 올리고, 나머지는 하드 디스크와 같은 보조 기억장치에 저장해 두었다가 필요할 때 적재하는 방식을 취한다. 이때 사용되는 보조 기억장치의 영역을 스왑 영역이라고 부른다. 프로그램을 구성하는 주소공간은 페이지라는 동일한 크기의 작은 단위로 나뉘어 물리적 메모리와 스왑 영역에 일부분씩 저장된다. 이렇게 동일한 단위로 메모리를 나누는 기법을 페이징 기법이라고 한다.


주변 장치 및 입출력 장치를 관리하는 기법

  • CPU나 메모리와 달리 인터럽트라는 메커니즘을 통해 관리한다. 주변 장치들은 CPU의 서비스가 필요한 경우에 신호를 발생시켜 서비스를 요청하게되는데 이 때 발생시키는 신호를 인터럽트라고 한다. CPU는 평소에 CPU 스케줄링에 따라 자신에게 주어진 작업을 수행하고 있다가 인터럽트가 발생하면 하던일을 잠시 멈추고 인터럽트에 의한 요청 서비스를 수행하게 된다.
  • 주변 장치들은 각 장치마다 그 장치에서 일어나는 업무에대한 관리를 위한 일종의 작은 CPU를 가진다. 이를 컨트롤러라고하는데 이컨트롤러를 바탕으로 무언가 입력이되면 CPU 에게 인터럽트를 발생시켜 보고하는 역할을 한다. 그러면 CPU는 하던일을 잠시 멈추고 인터럽트에 대한 처리를 하기 위해 운영체제로 할당이 넘어간다.

ref. 운영체제와 정보기술의 원리