computer science

[OS] 운영체제 OS Overview

yjs3819 2021. 7. 14. 13:33
728x90

운영체제의 역할

  1. User Interface(편리성)
    • CUI, GUI, EUCI
  2. Resource management(효율성)
    • HW자원, SW자원 관리
  3. Process and Thread management
    • 프로세스와 쓰레드 관리
  4. System management
    • 시스템 보호

컴퓨터 시스템의 구성

  • 컴퓨터시스템의 전체 구성도
  • 크게 사용자가 사용하는 어플리케이션, OS(System call interface, Kernel), 하드웨어 자원들로 이루어져있다.
  • OS는 컴퓨터 하드웨어자원을 효율적으로 관리해서 사용자에게 서비스를 제공하는 소프트웨어이다.
  • 사용자가 하드웨어의 자원을 관리하는 OS의 핵심인 Kernel에 직접 요청하는 것을 제한하고 막기위해서 중간에 System Call Interface라는 사용자와 Kernel간의 통로가 존재한다.
  • System Call Interface를 사용자가 사용할수있는 OS의 기능들의 모음이라고 봐도 된다.

운영체제의 구분

동시 사용자 수에 따라서

  • Single-user System
    • 동시에 한명의 사용자만이 사용할수있는 시스템
    • 동시에 여러명의 사용자가 사용하는 multi-user System보단 간단하게 구성되어있다.
    • windows, android, IOS, ..
  • Multi-user System
    • 동시에 여러명의 사용자가 사용할수 있는 시스템
    • single-user system보다는 복잡하다. 여러명의 사용자에 대한 권한도 부여해야하는둥 할일이 더 많기 때문이다.
    • 서버나 슈퍼컴퓨터에 사용됨
    • Unix, Linux, Windows-Server

동시 실행 프로세스의 수에 따라서

  • single-tasking system
    • 단일 작업
    • 시스템 내에 하나의 프로세스만이 존재할수 있는 시스템
    • MS-DOS
  • Multi-tasking system
    • 다중 작업
    • 동시에 여러 프로세서의 수행이 가능한 시스템
    • Unix/Linux, Window

작업 수행 방식에 따라서

  • 순차처리 방식
    OS개념이 존재하지않고, 사용자가 기계어로 프로그램을 작성하는 방식이다. OS가 따로 없으니 사용자가 명령어를 저장하고, 메모리 어디에 데이터를 저장할지도 지정하며, 출력시점이나 위치등도 모두 사용자가 관리하여야 했다. 그러니 복잡한 방식이다.
    그리고 실행하는 작업별 순차 처리를 하였기에, 각각 작업에 대한 준비 시간이 긴 단점이 있는 방식이다.

  • Batch Systems
    순차처리방식은 순차적으로 작업을 수행하기에 작업에대한 준비시간이 긴 단점이있다. 이러한 단점을 해소하고자 Batch Systems에서는 모든 시스템을 중앙에서 일정시간 모았다가 한번에 처리하는 방식을 이용하였다. 각 작업에대한 준비시간은 줄일수있으나 사용자에 대한 응답성이 좋지않은 단점이있다.

  • Time sharing Systems
    Batch Systems는 일정시간 작업을 모았다가 어느정도 작업이 모이면 한번에 처리하기 때문에 개인 사용자의 응답시간이 긴 단점이 있었다. 반면 Time Sharing System에서는 각 작업들을 일정시간 분할하여 작업하는 방식을 이용한다. 프로그램 A 일부 작업 -> 프로그램 B 일부 작업 -> 프로그램 C일부 작업 -> 프로그램 A 일부 작업 ... 이러한 방식으로 동작하는 시스템이다. 이렇게 되면 사용자 입장에서는 반응하는 응답시간이 짧기 때문에 사용자 지향적인 시스템이다.

  • Personal Computing
    시분할 시스템에선 하나의 시스템에대해서 여러 사용자가 시분할로 작업하는 형태를 갖추는 반면 Personal Computing은 현재 많은사람이 사용하는 것과 같이 개인이 시스템 전체를 독점할수 있는 시스템이다. 개인이 시스템을 사용하기에 OS는 시분할 시스템에 비해 단순하다.

  • Parallel Processing System
    Personal Computing보다 성능을 높이기 위해 하나의 시스템에 둘이상의 프로세서(cpu)를 사용하는 시스템이다. 여러 프로세서가 하드웨어 시스템 자원을 밀접하게 공유하기에 Tightly-coupled system이라고도 한다. 하나의 시스템에 여러개의 프로세서가 존재하면 그만큼 성능도 오를것이며, 하나의 프로세서가 고장나더라도 여분의 프로세서가 존재하기에 신뢰성도 높다. 그러나 하나의 시스템에 여러 프로세서가 존재하기에 그만큼 프로세서간의 관계와 역할을 관리해야하는 필요가 존재한다.

  • Distributed Processing Systems
    병렬 처리 시스템은 하나의 시스템 내에 여러 프로세서가 존재하는 형태의 시스템이지만 분산처리시스템은 네트워크를 기반으로 구축된 병렬처리 시스템이다. 하나의 시스템내에 존재하는게 아니기에 Parallel Processing System보다 더 느슨하게 연결되어있으므로 Loosely-coupled System이라고도 한다. Parallel Processing System보다 더 많은 자원을 공유할수 있고 훨씬 더 많은 프로세서가 존재하기에 더 높은 성능을 보이며, 그만큼 신뢰성도 더 높다. 그러나 네트워크를 기반으로 크게 존재하는 시스템이므로 구축및 관리가 어려운 단점이 있다.

  • Real-time System
    작업처리에 제한시간을 갖는 시스템이다. 제한시간내에 서비스를 제공하는 것이 자원 효율성보다 중요한 시스템이다. 유튜브 영상을 볼때 제한시간 내에 영상 서비스를 제공하지 못하면 화질이 낮아지며 잘 보이지 않는 것을 볼수 있다. 이러한 시스템이며 제한시간내에 서비스를 제공해야하는 필요성 정도에 따라 약하게난 동영상 재생 부터 세개는 발전소나 무기를 제어하는 시스템에서 사용된다.

운영체제의 구조

OS는 크게 OS의 핵심부분인 커널과 커널 나머지 부분인 유틸리티 두개로 구성된다.

커널(Kernel)

OS의 핵심 부분으로 가장 빈번하게 사용되는 기능들을 담당한다. 프로세서, 프로세스, 메모리 관리등의 기능들을 담당한다. 빈번하게 사용되는 기능들을 담당하기 때문에 메모리에 상주한다.

유틸리티(Utility)

커널이외의 부분을 유틸리티라하며 빈번하게 사용되지 않는 기능들을 담당하므로 비상주 프로그램이라고도한다. 예를들면 UI등의 서비스 프로그램이 있다.

그림으로 한번더 운영체제의 구조를 살펴보자.

커널이 어떤식으로 존재하느냐에 따라서 여러 구조가 존재할수있다.

단일 구조

커널 내 모든 기능들이 함께 존재하는 구조를 의미한다.
한 커널내 모든 모듈이 존재하기에 직접 모듈끼리의 통신은 빨라서 효율적이지만 유지보수가 좋지못하다.

계층 구조

커널내 모듈들이 계층적으로 존재하기에 유지보수가 좋지만 단일구조와 다르게 한 커널내에 모든 모듈이 존재하는게 아니므로 모듈간 통신이 느리기 때문에 단일구조 대비 성능이 좋지못하다.

마이크로 커널 구조

커널의 크기를 최소화하기 위한 구조로 커널 외 나머지 OS기능들은 사용자 영역에서 수행하는 구조이다.

운영체제의 기능

SW던, HW던 시스테의 자원들을 관리하는 기능을 한다.

프로세스 관리(SW Resource)

프로세스란 실행중인 프로그램으로 커널에 등록된 실행 단위를 의미한다. 사용자 요청/프로그램의 사용 주체이다.
OS는 이 프로세스를 생성/삭제등의 상태관리를 하거나 자원을 프로세스에게 어떻게 할당할지, 그리고 프로세스 간 통신및 동기화, 그리고 프로세스들의 교착상태들을 해결하는 프로세스 관리기능을 한다. 프로세스의 정보를 관리하는 PCB도 존재한다.

프로세서 관리(HW Resource)

cpu를 관리하는 것이고 프로세스의 처리 순서를 결정하는 프로세스 스케줄링을 OS가 하고, 여러 프로세스들에 대해서 프로세서를 어떻게 할당할지에 대한 프로세서 할당관리도 OS가 한다.

메모리 관리(HW Resource)

메모리를 말하는 것은 주기억장치를 말하는 것으로 메모리를 여러 프로세스에게 어떤식으로 할당하고 회수할지등에 대한 관리를 OS가 한다.

파일 관리(SW Resource)

파일에 대한 관리도 OS가 한다.

입출력 관리(HW Resource)

입출력은 프로세서가 직접 관리하는게 아니라 OS를 거쳐서 통신해야하는데 이때, OS가 입출력을 관리한다.

OS는 위에서 말한 자원들 외에도 디스크, 네트워킹, 등 여러 자원에 대해서 관리를 한다.

OS가 역할이 무엇인지, 그리고 어떻게 구분될수있는지 OS의 구조인 커널과 유틸리티에 대해서 간단하게 알아보았고 OS가 우리의 컴퓨터 내에서 실제로 하는 일이 무엇인지에 대해서 전체적으로 알아보았다.

김덕수교수님의 운영체제 유튜브 강의 - Lecture2-1 OS Overview

728x90