ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 1. 운영체제와 커널이란?
    전공공부/운영체제 2019. 12. 17. 19:59
    728x90
    반응형
    반응형

    운영체제란?

    운영체제는 컴퓨터 시스템의 자원들을 효율적으로 관리하며, 사용자가 컴퓨터를 편리하고, 효과적으로 사용할 수 있도록 환경을 제공하는 여러 프로그램의 모임입니다. 운영체제는 컴퓨터 사용자와 컴퓨터 하드웨어 간의 인터페이스로서 동작하는 시스템 소프트웨어의 일종으로, 다른 응용프로그램이 유용한 작업을 할 수 있도록 환경을 제공해 줍니다.

     

    커널이란?

    컴퓨터와 전원을 켜면 운영체제는 이와 동시에 수행된다. 한편 소프트웨어가 컴퓨터 시스템에서 수행되기 위해서는 메모리에 그 프로그램이 올라가 있어야 한다. 마찬가지로 운영체제 자체도 소프트웨어로서 전원이 켜짐과 동시에 메모리에 올라가야 한다. 하지만, 운영체제처럼 규모가 큰 프로그램이 모두 메모리에 올라간다면 한정된 메모리 공간의 낭비가 심할것이다. 따라서 운영체제 중 항상 필요한 부분만을 전원이 켜짐과 동시에 메모리에 올려놓고 그렇지 않은 부분은 필요할 때 메모리에 올려서 사용하게 된다. 이 때 메모리에 상주하는 운영체제의 부분을 커널이라 한다. 또 이것을 좁은 의미의 운영체제라고도 한다. 즉 커널은 메모리에 상주하는 부분으로써 운영체제의 핵심적인 부분을 뜻한다. 이에 반에 넓은 의미의 운영체제는 커널뿐 아니라 각종 시스템을 위한 유틸리티들을 광범위하게 포함하는 개념이다. (보통은 운영체제라고 하면 커널을 말하게 된다.)

     

    운영체제의 목적

    운영체제의 목적에는 처리능력 향상, 사용 가능도 향상, 반환 시간 단축 등이 있다. 이 처리능력, 반환시간, 사용 가능도, 신뢰도는 운영체제의 성능을 평가하는 기준이 됩니다.

     

    처리능력(Throughput): 일정 시간 내에 시스템이 처리하는 일의 양

    반환시간(Turn Around Time): 시스템에 작업을 의뢰한 시간부터 처리가 완료될 때까지 걸린 시간

    사용가능도(Availability): 시스템을 사용할 필요가 있을 때 즉시 사용 가능한 정도

    신뢰도(Reliabilty): 시스템이 주어진 문제를 정확하게 해결하는 정도

     

    운영체제의 기능

    1. 프로세서, 기억장치, 입출력장치, 파일 및 정보 등의 자원을 관리합니다.

    2. 자원을 효율적으로 관리하기 위해 자원의 스케줄링 기능을 제공합니다.

    3. 사용자와 시스템간의 편리한 인터페이스를 제공합니다.

    4. 시스템의 각종 하드웨어와 네트워크를 관리, 제어합니다.

    5. 데이터를 관리하고, 데이터 및 자원의 공유 기능을 제공합니다.

    6. 시스템의 오류를 검사하고 복구합니다.

    7. 자원 보호 기능을 제공합니다.

    8. 입 출력에 대한 보조 기능을 제공합니다.

    9. 가상 계산기 능력을 제공합니다.

    기능 자원
    프로세스 관리 1. 프로세스 스케줄링 및 동기화 관리 담당
    2. 프로세스 생성과 제거, 시작과 정지, 메시지 전달 등의 기능 담당
    기억장치 관리 프로세스에게 메모리 할당 및 회수 관리 담당
    주변장치 관리 입 출력 장치 스케줄링 및 전반적인 관리 담당
    파일 관리 파일의 생성과 삭제, 변경, 유지 등의 관리 담당

     

    운영체제의 핵심은 자원을 어떻게 효율적으로 관리할 것인가이다. 자원은 하드웨어 자원과 소프트웨어 자원으로 나뉜다. CPU는 통상적으로 컴퓨터 한대에 하나가 장착되기 때문에 여러 프로세스들이 CPU를 효율적으로 나누어 사용할 수 있도록 관리해야한다. CPU와 메모리는 전원이 꺼지면 처리중이던 정보가 모두 사라지기 때문에 전원이 나가도 기억해야 하는 부분은 보조기억장치에 파일 형태로 저장된다. 이러한 파일들이 저장되는 방식 및 접근 권한등에 대해서도 운영체제가 관리를 해주어야 한다.

     

    먼저 CPU 관리방법부터 알아보자.

     

    CPU 스케줄링

    선입선출(First Come First Served)

    먼저 CPU를 사용하기 위해 도착한 프로세스를 먼저 처리해주는 방식을 말한다. 이는 일상생활에서 줄서기하는 것과 같다. 이 방법을 사용하면 먼저 CPU를 요청한 프로세스가 작업이 끝날 때까지 다른 프로세스들은 작업을 할 수 없다. 이 방법은 CPU는 효율적으로 계속 작업은 할 수 있으나 전체적인 프로세스를 처리하는 면에서는 비효율적인 방법이다.

     

    라운드 로빈(Round Robin)

     선입선출의 방법을 보안하고자 나온 방법이 라운드 로빈 스케줄링이다. 이 기법에서는 CPU를 한 번 할당받아 사용할 수 있는 시간을 일정한 고정된 시간으로 제한한다. 긴 작업이 필요한 프로세스가 CPU를 할당받더라도 정해진 시간이 지나면 CPU를 내어놓고 CPU의 서비스를 기다리는 줄의 제일 뒤에서 기다려야 한다. 이렇게 되면 뒤의 프로세스들이 무작정 오래 기다려야 하는 상황은 막을 수 있다.

     

    우선순위(Priority)

    이 기법은 수행 대기중인 프로세스들에게 프로그램에 따라 우선순위를 부여하고 우선순위가 높은 프로세스에게 CPU를 먼저 할당하게 된다. 또한 지나치게 오래 기다리는 프로세스가 발생하지 않도록, 기다린 시간이 늘어날수록 우선순위를 점차 높어주는 방안도 사용되어질 수 있다.

     

    메모리 관리

    고정 분할(fixed partion)

    물리적 메모리를 몇 개의 영구적인 분할로 나눈다. 나뉜 각각의 분할에는 하나의 프로그램이 적재된다. 이 방식은 단순해서 분할의 크기보다 큰 프로그램은 적재가 불가능하다. 이렇기 때문에 메모리의 효율적인 사용 측면에서도 바람직하지 않다.

     

    가번 분할(variable partion)

    매 시점 프로그램의 크기에 맞게 메모리를 분할해서 사용하는 방식이다. 따라서 분할의 큰 프로그램의 실행이 제한되는 문제는 발생하지 않는다. 그러나 물리적 메모리 크기보다 더 큰 프로그램의 실행은 여전히 불가능하다.

     

    가상 메모리(virtual memory)

    최근에 거의 모든 컴퓨터 시스템에서 사용하는 메모리 관리 기법이다. 가상 메모리 기법에서는 물리적 메모리보다 더 큰 프로그램이 실행되는 것을 지원한다. 이때 실행될 수 있는 프로그램의 크기는 가상 메모리의 크기에 의해 결정된다. 운영체제는 물리적인 주소와 가상 메모리에 주소를 매핑하여 관리한다. 실제 이렇게 가상 메모리를 할당할 수 있게 하는것은 실행되지 않는 부분의 프로그램은 보조디스크에 두었다가 필요할때 메모리에 적재하는 방식이다. 이때 그리고 보조 기억장치에서 사용되는 부분을 스왑 영역이라 한다.

     

    주변 장치 및 입출력 장치

    CPU나 메모리와 달리 인터럽트라는 메커니즘을 통해 관리한다. 주변 장치들은 CPU의 서비스가 필요한 경우에 신호를 발생시켜 서비스를 요청하게 되는데 이 때 발생시키는 신호를 인터럽트라고 한다. CPU는 평소에 CPU 스케줄링에 따라 자신에게 주어진 작업을 수행하고 있다가 인터럽트가 발생하면 하던 일을 잠시 멈추고 인터럽트에 의한 요청 서비스를 수행하게 된다.

    주변 장치들은 각 장치마다 그 장치에서 일어나는 업무에 대한 관리를 위한 일종의 작은 CPU를 가진다. 이를 컨트롤러라고 하는데 이 컨트롤러를 바탕으로 무언가 입력이 되면 CPU에게 인터럽트를 발생시켜 보고하는 역할을 한다. 그러면 CPU는 하던 일을 잠시 멈추고 인터럽트에 대한 처리를 하기 위해 운영체제로 할당이 넘어간다.

     

     

    운영체제의 여러가지 운용 기법

    1. 일괄처리 시스템

    일괄 처리 시스템은 초기의 컴퓨터 시스템에서 사용된 형태로, 일정량 또는 일정 기간 동안 데이터를 모아서 한꺼번에 처리하는 방식입니다.

    1. 일괄처리를 위해 적절한 작업 제어 언어(Job Control Language)를 제공해야 합니다.

    2. 컴퓨터 시스템을 효율적으로 사용할 수 있습니다.

    3. 반환시간(Turn Around Time)이 늦지만 하나의 작업이 모든 자원을 독점하므로 CPU 유휴 시간이 줄어듭니다.

     

    2. 다중 프로그래밍 시스템

    다중 프로그래밍 시스템 (Multi-Programming System)은 하나의 CPU와 주기억장치를 이용하여 여러개의 프로그램을 동시에 처리하는 방식입니다.

    1. 하나의 주기억장치에 두개 이상의 프로그램을 기억시켜 놓고, 하나의 CPU와 대화 하면서 동시에 처리합니다.

    2. CPU의 사용률과 처리량이 증가합니다.

     

    3. 시분할 시스템

    시분할 시스템(Time Sharing System)은 여러 명의 사용자가 사용하는 시스템에서 컴퓨터가 사용자들의 프로그램을 번갈아가며 처리해줌으로써 각 사용자에게 독립된 컴퓨터를 사용하는 느낌을 줍니다.

    1. 여러 사용자가 각자의 단말장치를 통하여 동시에 운영체제와 대화하면서 각자의 프로그램을 실행합니다.

    2. 하나의 CPU는 같은 시점에서 여러 개의 작업을 동시에 수행할 수 없기 때문에, CPU의 전체 사용시간을 작은 작업 시간량으로 쪼개어 그 시간량 동안만 번갈아가면서 CPU를 할당하여 각 작업을 처리합니다.

    3. 다중프로그래밍 방식과 결합하여 모든 작업이 동시에 진행되는 것처럼 대화식 처리가 가능합니다.

    4. 시스템의 전체 효율은 좋아지나 개인별 사용자 입장에서는 반응 속도가 느려질 수 있습니다.

    5. 각 작업에 대한 응답 시간을 최소한으로 줄이는 것을 목적으로 하며, 하드웨어를 보다 능률적으로 사용할 수 있습니다.

     

    4. 다중처리 시스템

    다중 처리 시스템(Multi-Processing System)은 여러개의 CPU와 하나의 주기억장치를 이용하여 여러 개의 프로그램을 동시에 처리하는 방식입니다.

    1. 하나의 CPU가 고장나더라도 다른 CPU를 이용하여 업무를 처리할 수 있으므로 시스템의 신뢰성과 안정성이 높습니다.

    2. 여러 CPU는 하나의 메모리를 공유하며 단일 운영체제에 의해 관리됩니다.

    3. 프로그램의 처리 속도는 빠르지만 기억장치, 입출력 장치 등의 자원 공유에 대한 문제점을 해결해야 한다.

     

    5. 실시간 처리 시스템

    실시간 처리 시스템(Real Time Processing System)은 데이터 발생 즉시, 또는 데이터 처리 요구가 있는 즉시 처리하여 결과를 산출하는 방식입니다. 처리 시간이 단축되고, 처리 비용이 절감됩니다. 교통제어, 레이더 추적기, 은행의 온라인 업무 등 시간에 제한을 두고 수행되어야 하는 작업에 주로 사용됩니다.

     

    6. 다중 모드 처리

    다중 모드 처리(Multi- Mode Processing)은 일괄 처리 시스템, 시분할 시스템, 다중 처리 시스템, 실시간 처리 시스템을 한 시스템에서 모두 제공하는 방식입니다.

     

    7. 분산 처리 시스템

    분산 처리 시스템(Distributed Processing System)은 여러개의 컴퓨터(프로세서)를 통신 회선으로 연결하여 하나의 작업을 처리하는 방식입니다. 각 단말장치나 컴퓨터 시스템은 고유의 운영체제와 CPU, 메모리를 가지고 있습니다.

     

    ※ 운영체제의 운용기법의 발달과정

    1세대 : 일괄처리 시스템

    2세대 : 다중프로그래밍 시스템, 다중 처리 시스템, 시분할 시스템, 실시간 처리 시스템

    3세대 : 다중모드

    4세대 분산 처리 시스템

     

    728x90
    반응형

    '전공공부 > 운영체제' 카테고리의 다른 글

    6. 교착상태 (데드락)  (0) 2019.12.24
    5. 세마포어, 뮤텍스  (0) 2019.12.24
    4. 프로세스 동기화  (0) 2019.12.24
    3. CPU 스케줄링  (1) 2019.12.19
    2. 프로세스와 스레드 (Process vs Tread)  (1) 2019.12.18

    댓글

Designed by Tistory.