관리 메뉴

Kim's Programming

운영체제란? (2/2) 본문

Computer Theory/Operating System

운영체제란? (2/2)

Programmer. 2017. 6. 21. 12:45

2. 운영체제의 유형


운영체제 유형

 1. 일괄 처리 시스템

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

 3. 다중 처리 시스템

 4. 시분할 시스템

 5. 실시간 처리 시스템

 6. 분산 처리 시스템


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

다중프로그래밍은 프로세[서가 유휴 상태일 때 실행 중인 둘 이상의 작업이 프로세스를 전환(인터리빙)하여 사용할 수 있도록 동작한다.


다중 프로그래밍 시스템의 구조



다중 프로그래밍에서의 작업 처리 방법


잠정 : 높고 효율적인 프로세서 사용률(효율적인 운영)이 증가하여 마치 많은 사용자의 프로그램이 거의 동시에 프로세서를 할당 받는 듯한 느낌을 준다.


단점: 다중프로그래밍 운영체제는 아주 복잡하다.



2. 시분할 시스템

시분할 시스템은 다중프로그래밍을 논리적으로 확장한 개념으로, 프로세서가 다중 작업을 교대로 수행한다. 프로세서에 적재된 여러 프로그램을 교대로 실행하지만, 각 프로그램에 일정한 프로세서 사용시간(Time Slice)또는 Quantum을 할당하여 사용자가 주어진 시간 동안 컴퓨터와 대화하는 형식으로 실행한다.

시분할 시스템의 처리 방법의 예


다중프로그램 시스템이 프로세서의 사용을 최대화하는 것이 목표라면, 시분할 시스템은 응답시간을 최소화하는 것이 목표라는 차이가 있다.


장점

          • 빠른 응답 제공
          • 소프트웨어의 중복 회피 기능
          • 프로세서 유휴시간 감소
단점
          • 신뢰성 문제
          • 보안 의문 및 사용자 프로그램과 데이터의 무결성
          • 데이터 통신의 문제

3. 다중 처리 시스템
다중처리 시스템은 단일 컴퓨터 시스템 내에서 둘 이상의 프로세서를 사용하여 동시에 둘 이상의 프로세스(프로그램)을 지원한다.



다중 처리 시스템


다중 처리 시스템은 프로세서가 여러 개 이므로 프로세서 간의 연결, 상호작용, 역할 분담 등을 고려하여야한다.


4. 실시간 처리 시스템


          • 경성 실시간 처리 시스템(hard real time processing system)
            작업의 실행이나 완료에 대한 시간 제약 조건을 지키지 못할 때 시스템에 치명적인 영향을 주는 시스템이다. 무기제어, 발전소 제어, 미사일 자동 조준등이 이에 해당한다.

          • 연성 실시간 처리 시스템(soft real time processing system)
            작업 실행에서 시간 제약 조건은 있으나 이를 지키지 못해도 전체 시스템에 치명적인 영향을 미치지 않는 시스템

5. 분산 처리 시스템

분산처리 시스템은 시스템마다 독립적인 운영체제와 메모리로 운영하며, 필요할 때 통신하는 시스템이다.



4. 운영체제의 서비스



운영체제별로 차이는 있지만, 보통은 다음 네가지로 제공한다.


  • 부팅 서비스 : 컴퓨터 하드웨어를 관리하고 프로그램을 실행할 수 있도록 컴퓨터에 시동을 건다.
    • 운영체제를 메인 메모리에 적재하는 과정을  부팅(booting)또는 부트스트래핑(bootstrapping)이라고 한다. 부트 로더는 부트스트랩 로더(bootstrap
          loader)를 줄인 말로 ROM에 고정시킨 소규모 프로그램이다
  • 사용자 서비스 : 프로그래머가 프로그래밍 작업을 쉽게 수행할 수 있도록 한다.
    • 사용자 인터페이스 제공 : 사용자 인터페이스는 사용자와 컴퓨터 간의 상호작용이 발생하는 공간으로 CLI, 메뉴, GUI등 형태로 구현할 수 있다.
    • 프로그램 실행 : 프로그램을 실행하려면 먼저 메모리에 적재해야 하고, 프로세서 시간을 할당해야 한다.
    • 오류탐지 : 프로세서, 메모리 하드웨어와 관련된 오류, 입출력장치 오류, 사용자 프로그램 오류
  • 시스템 서비스 : 시스템의 효율적인 동작을 보장한다.
  • 시스템 호출 : 프로그램이 운영체제의 기능을 서비스받을 수 있는 프로그램과 운영체제 간의 인터페이스를 제공한다.
    • 시스템 호출은 실행중인 프로그램과 운영체제 간의 인터페이스로, API(Application Programming Interface)라고도 한다. 일반적인 시스템 호출에는 프로세스 제어, 파일 조작, 장치 관리, 정보 유지 등이 있다.

5. 운영체제의 구조

1. 단일 구조 운영체제

단일 구조 운영체제는 초기에 생겨난 가장 보편적인 형태이다. 운영체제의 모든 기능을 커널과 동일한 메모리 공간에 적재한 후 시스템 호출만으로 사용할 수 있다.


이런 단일 구조 운영체제는 대부분의 기능을 커널에 그룹화해서 구현하므로 운영체제와 하드웨어가 직접 통신하여 시스템 자원을 효율적으로 관리할 수 있다는 장점 있다. 그러나 커널의 크기가 상대적으로 커지면서 버그의 원인이나 기타 오류를 구분하기 어렵고, 새 기능을 추가하는 수정과 유지 보수가 매우 어렵다. 또 동일한 메모리에서 실행하므로 한 부분에서 발생한 문제 떄문에 시스템 전체에 심각한 영향을 줄 수 있다는 단점이 있다.




2. 계층 구조 운영체제



비슷한 기능을 수행하는 요소를 그룹화하여 계층적으로 구성한다. 이때 각 계층을 인접한 상위나 하위에 있는 계층과 상호작용한다.

      • 장점
        • 단일 구조 운영체제보다 모듈화가 잘 되어 있다.
        • 계층 구조에서는 시스템 검증과 오류 수정을 쉽게 할 수 있다.

      • 단점
        • 계층 구조 운영체제에서는 계층을 정의하기가 어렵다.
        • 모든 계층이 시스템에 제한 없이 접근할 수 있어 오류나 악성 코드에 민감하게 반응할 수 있다.


3. 마이크로 커널 구조 운영체제


커널에는 최소 기능만 포함시켜 크기를 대폭 줄이고 기타 기능은 사용자 공간으로 옮겨 사용자 영역에서 수행하는 서버 구현 방법이다.


      • 장점
        • 커널이 가볍다
        • 운영체제 서비스를 사용자 영역의 독립적인 서버에서 수행하기 떄문에 서버에서 잘못 수행하더라도 다른 서버와 커널에 치명적인 영향을 주지 않는다.
        • 서버 개발이 용이하고, 운영체제의 기능을 쉽게 변경할 수 있다.
        • 모듈화의 정도가 높아 확장성, 이식성이 높다.

      • 단점
        • 모듈 간에 통신이 빈번하게 발생하여 성능이 떨어질 수 있다.
        • 커널을 출입하는 문맥 교환 떄문에 속도가 느리다.


'Computer Theory > Operating System' 카테고리의 다른 글

병행 프로세스와 상호배제(2/2)  (0) 2017.06.24
병행 프로세스와 상호배제(1/2)  (0) 2017.06.23
스레드(Thread)  (0) 2017.06.22
프로세스(Process)  (0) 2017.06.22
운영체제란? (1/2)  (0) 2017.06.21