운영 체제란?

시스템 하드웨어를 관리할뿐 아니라 응용 소프트웨어를 실행하기 위하여 서비스를 제공하는 시스템 소프트웨어이다. -출처: 위키백과


운영 체제의 주요 기능

복잡하고 다루기 어려운 하드웨어를 은폐시켜 이들을 편리하게 사용할 수 있는 창구(interface)를 제공하는 것이다. 이 외에도 아래와 같은 목적이 있다.

  1. 편리성
  2. 효율성
  3. 보안성

운영 체제의 실체

운영체제의 실체는 하나의 거대한 프로그램으로 메모리에 상주한다.


운영 체제와 대화

사용자가 운영체제에게 서비스를 요청하는 방법은 시스템에 탑재된 프로그래밍 언어를 사용해서 부 프로그램 형태로 주어진 운영체제 진입 전용 라이브러리를 호출하는 프로그램을 작성하여 실행시키는 것인데, 이때 호출되는 라이브러리를 시스템 콜 혹은 운영체제 인터페이스 라 부른다.


단일 프로그래밍 일괄 처리 시스템(single-stream batch processing System)

사용자들의 프로그램을 일괄적으로 일시에 모은 후, 차례차례 실행 시켜주는 운영체제 환경을 말한다.

  • 단점

    적재된 프로그램이 오직 하나 밖에 없었으므로, 사용자 프로그램이 입출력을 요구했을 때 운영체제는 입출력이 완료될 때까지 프로세서를 대기 시켜야 했으므로 허비하는 시간이 많았다.


다중 프로그래밍 일괄 처리 시스템(Multiprogramming Batch Processing)

하나의 프로그램이 입출력을 요청하면 운영체제는 그 프로그램의 입출력을 하드웨어에 설정한 후, 프로세서로 하여금 입출력을 하지 않는 다른 프로그램을 실행 하도록 한다.

  • 단점

    프로그램이 언제 끝날지를 예측하기 어렵다. 동시에 적재된 프로그램들 각각의 처리완료 시간이 이웃 프로그램들의 입출력 빈도에 따라 크게 달라진다.


시분할 시스템 (Time-sharing Systems)

하나의 프로그램을 1회에 최대 타임 퀀텀만큼의 시간 동안만 처리하고, 처리기회를 다음 프로그램에게 넘기며, 이 과정을 끊임 없이 반복한다. 만약 현재 처리 중인 프로그램이 타임퀀텀을 모두 소진하지 못하고 입출력 등의 대기 상황이 발생하면 처리 기회는 즉시 다음 프로그램에게 돌아간다.

  • 특징

    • 사용자에게 시스템을 독차지하고 있다는 느낌을 준다.
    • 다수의 사용자들이 단말기를 통해서 컴퓨터에 동시 접속하는 대화적 처리 환경에 적합하다.

병렬 처리 시스템(Parallel Processing Systems)

하드웨어가 발전 하면서 기존의 단일 처리기 시스템(=병행 처리) 의 성능을 향상 시키기 위해 다중 처리기 시스템(=병렬 처리) 이 출현하였다. CPU가 여러 개 이므로 CPU개수만큼의 프로그램들이 병렬로 처리 될 수 있다. 병렬 처리 시스템의 목적은 다음과 같다.

  • 성능 향상(처리량, Throughput)
  • 결함 허용(신뢰성 향상, Reliability)

    하나의 처리기가 고장 났을 때 성능은 약간 저하되더라도 처리 기능은 여전히 유지

병렬 처리 는 어느 시점을 기준으로 보았을 때 2 개 이상의 프로그램을 처리하는 것을 말하고 병행 처리(=단일 처리기) 는 오직 하나의 프로그램만이 처리 된다.

다중 처리기 시스템에서 처리기, 메모리 주변장치 등을 연결하는 버스의 구성 형태가 다양하다.

  • 단일 공유 버스(Single-shared Bus), 다중 접근 버스(Multi- access Bus)

    single-shared bus

    Source:researchgate

    처리기들이 하나의 버스를 공유하여 메모리에 접근하는 구조

    • 단점

      어느 한 순간에 오직 하나의 처리기만 사용 할 수 있으므로 버스가 병목이 되고, 이로 인해 처리기 수가 너무 많으면 성능이 오히려 저하된다.

  • 다중 버스(Multiple Bus) Multiple Bus

    Source:[http://wiki.expertiza.ncsu.edu] 메모리 모듈(메모리 뱅크)과 버스를 여러개 두어, 처리기들이 서로 다른 메모리 모듈에 동시에 접근할 수 있도록 한다. 서로 다른 메모리에 접근 할 때는 충돌이 없다.

  • 크로스바 스위치 버스(Crossbar Switch Bus) crossbar switch bus

    Source:slideShare 처리기와 메모리가 만나는 모든 지점에 스위치를 배치한다. 서로 다른 메모리에 접근 할때는 충돌이 없다.

  • 계층적 버스(Hierachical Bus) Hierachical bus

    버스를 로컬 버스와 시스템 버스로 이원화시켜 처리기들이 로컬 메모리와 로컬 주변 장치는 로컬 버스로 접근하고, 공유 메모리만 시스템 버스를 통하여 접근하게 함으로써 버스 병목을 최소화 시킨다.

  • 다중 포트 메모리 버스(Multi-Port Memory Bus)

    Multi-Port Memory Bus

    Source:kbench.com

    메모리에 접근포트를 여러개 두고, 각각 독립적으로 접근 가능

다중 처리기 시스템은 처리기들의 역할 분담 방식에 따라 크게 CPU의 우위가 없는 대칭형 다중 처리기 시스템(SMP: Symmetric Multi-Processor System)과 CPU의 우위가 있는 비대칭 다중 처리기 시스템(AMP: Asymmetric Multi-Processor System) 으로 분류할 수 있다.

  • 분산 처리 시스템

    여러 개의 독립된 시스템을 네트워크로 연결하여 주어진 일을 분담하여 처리함으로써 병렬 처리 그 이상의 효과를 얻고자 하는 경우를 분산 처리라 한다. 클러스터 시스템(Clustered System)이라 부르기도 한다. 목적 및 효과는 아래와 같다.

    • 큰 문제를 여러개의 독립된 시스템에 분할 배분하여 병렬로 처리함으로써 처리 속도 및 전체적인 처리량 향상
    • 독립된 시스템들을 연결함으로써 각 시스템에 산재해 있는 자원의 활용도 향상
    • 연결된 일부 시스템이 다운되더라도 전체 시스템의 기능을 유지함으로써 신뢰성 향상
    • 전체적인 시스템 처리 성능이 필요한 경우 새로운 시스템을 간편하게 추가 연결 함으로써 점진적 시스템 확장

    이를 위해 아래와 같은 기능이 제공되어야 한다.

    • 위치 투명성

      시스템 사용자는 자원들이 물리적으로 어느 시스템에 존재하는지 인식할 필요가 없음

    • 접근 투명성

      어느 시스템을 통해서라도 동일한 뷰로 접근 가능

    • 중복 및 이동 투명성

      자원을 여러 시스템에 중복 배치하거나 이동 배치 하더라도 사용자들은 그 내용을 인식할 필요가 없음

    • 고장 투명성

      일부 시스템의 고장에도 불구하고 사용자는 그 내용을 인식할 필요가 없음

    다중 처리기 시스템을 넓게 보면 분산 처리 시스템의 일종으로 볼 수 있는데, 처리기들이 시스템 버스를 통해서 메모리, 주변장치, 클록등을 공유하므로 강결합 시스템 이라 부르고, 이와 반대로 독립된 시스템들이 네트워크를 통해서 처리를 분담하는 경우를 약결합 시스템 이라 부른다.

    분산 처리 환경에서 시스템 간 병렬 처리 및 자원 공유를 위해 다양한 네트워크 연결 방식들이 활용된다.

    • 하이퍼 큐브

      노드수 = 2^(인접 노드) 노드간의 평균적인 거리가 짧고 경로 배정이 비교적 간단하다.

    • 완전 연결

      모든 노드들이 1:1통신을 할 수 있도록 연결

      • 장점

        사이트간 통신 속도가 빠르고 연결 경로가 많으므로 통신 신뢰성이 높다.

      • 단점

        초기 설치 비용과 확장 비용이 크다.

    • 성형

      임이의 두 노드가 가운데 중계 시스템을 거쳐 통신 한다.

      • 장점

        설치 비용과 확장 비용 절감

      • 단점

        중계 시스템이 다운되면 전체 통신이 마비된다.

    • 링형

      • 장점

        두 노드 사이의 연결 반경이 비교적 좁고 새로운 노드의 추가가 용이하다.

      • 단점

        두 개 이상의 노드가 다운되면 전체 네트워크가 양분된다.


실시간 시스템

실시간 시스템(real-time system)이란 사용할 수 있는 자원이 한정되어 있는 상황에서 작업 수행이 요청되었을 때, 이를 제한된 시간안에 처리해 결과를 내주는 것을 말한다. 즉, 작업의 요청에서 수행결과를 얻기까지의 시간적인 제약이 존재하는 시스템으로 그 제약의 엄격함에 따라서 경성 실시간 시스템과 연성 실시간 시스템으로 나뉜다.

  • 경성 실시간 시스템

    작업의 실행 시작이나 완료에 대한 시간 제약조건을 지키지 못하는 경우 시스템에 치명적인 영향을 주는 경우를 가리킨다. 예로 무기제어, 발전소제어, 철도자동제어, 미사일 자동조준 등을 들수 있다. 보장되는 컴퓨팅과 시간의 정확성과 컴퓨팅에 대한 예측성을 가지게 해주어야 한다.

  • 연성 실시간 시스템

    작업실행에 대한 시간 제약이 있지만, 이를 지키지 못하더라도 전체 시스템에 큰 영향을 끼치지 않는 시스템을 말한다. 그 예로 동영상을 들 수 있다. 초당 일정한 프레임(Frame)이상의 영상을 재생해야 한다는 제약이 있으나, 통신부하나 시스템의 다른 작업으로 인하여 프레임(Frame)이 건너뛰어져도 동영상을 재생하고 있던 시스템에는 큰 영향을 끼치지 않는다.-출처: 위키백과