본문 바로가기

Learn/이론 정리

[IT 개념 정리] OS - 01. 운영체제 란

운영체제란?

사용자 입장에서 응용 소프트웨어를 사용을 용이하게 하는 환경을 제공하며, 시스템의 입장에서 하드웨어를 효율적으로 사용하기 위해 자원 할당과 제어를 해주는 시스템 소프트웨어다.

운영체제의 개요

User Interface - 유저 또는 사용자가 직접적으로 사용하는 인터페이스로 GUI, CUI, Batch로 나뉜다.

System calls - 운영체제의 각 서비스를 사용을 위해 시스템 콜을 받는다.

운영체제의 주요 목적과 역할

 - 사용자와 시스템의 편리성을 높여야 한다.

 - 시스템의 성능을 효율적으로 사용 해야한다 : 처리량, 지연/응답시간, 신뢰도, 사용가능도

 - 제어 서비스를 향상 시켜야 한다.

운영체제의 주 기능

학교 수업중에 운영체제 강의에서 들었던 기억으로 운영체제는 크게 프로세스관리, 메모리 관리, 스토리지 관리,  I/O 시스템 관리, 네트워킹, 보호 및 보안 등으로 크게 나뉘었다. 해당 부분을 크게 두개로 자원 관리 부분과 시스템 관리 부분으로 나눠볼 수 있다.

자원관리 : 프로세스 관리, 메모리관리, 주변장치(I/O) 관리, 파일(데이터-스토리지) 관리 기능을 지원
시스템 관리 : 시스템 보호 및 보안, 네트워킹 등의 기능을 지원

운영체제의 유형

  1. 일괄처리 시스템(Batch processing system)
    - 유사한 작업끼리 묶어 한번에 처리 ex) 윈도우즈 명령어
  2. 다중 프로그래밍 시스템(Multiprogramming system) 
    - 여러개의 프로그램을 동시에 메모리(RAM)에 올려 CPU를 나눠쓰게 하는 시스템
    - 일괄 처리 시스템의 단점인 프로세서가 작업을 처리중일때 입출력 작업이 안되는 점을 보완
  3. 시분할 시스템(time-sharing system)
    - 다중 프로그래밍 시스템의 변형 방식으로 여러 사용자가 프로세서를 사용함
    - 여러 사용자가 일정 시간별로 CPU를 나눠 사용하여 작업을 처리
  4. 다중 처리 시스템(Multi process system)
    - 2개 이상의 여러 프로세서가 동시에 동작하는 시스템
    - 하나의 CPU가 장애가 나도 다른 CPU가 작업을 처리할수 있어 신뢰도를 높일 수 있다.
  5. 실시간 처리 시스템(Real time processing system)
    - 제한 시간안에 작업을 처리하거나 응답하는 시스템
    - 제한 시간안에 작업의 처리의 제어에 엄격함의 정도에 따라 경성 / 연성 실시간 시스템으로 나뉜다
       ▶ 경성 실시간 시스템(hard real time processing system) : 시간의 제약 조건을 무조건 지켜야 한다.
           - 기능적인 면보다 시간적인 측면의 제약을 지키는것이 중요하다. ex) 무기제어 등
       ▶ 연성 실시간 시스템(soft real time processing system) : 시간을 지키지만 융통성이 있다.
           - 시간내에 처리하지 못하여도 시스템에 치명적이지 않는 시스템 ex) 동영상 재생 등
  6. 분산 처리 시스템(distributed processing system)
    - 각 시스템마다 독립적인 운영체제, 메모리, 프로세서를 가지고 운영되며 필요시 통신하는 시스템

시스템 콜(System Call)

시스템 콜을 설명하기 앞서 운영체제의 추상화에 대해서 먼저 알아보자.

운영체제의 추상화는 가상메모리를 사용해 프로세스를 실제 메모리 이상으로 프로그램을 메모리에 올리는 기능, 멀티테스킹, 동시성 등의 기능과 같은 일정한 물리적 자원을 효율적으로 사용 할 수 있게 만들어 준다.

앞서 보여준 운영체제의 개요의 그림에서 이런 추상화된 기능들은 시스템 콜(System call)을 통해서 사용자가 쉽게 사용 할 수 있게 된다.

 

운영체제는 유저 모드커널 모드로 나눠져 구동되고 있다. 운영체제를 구동하는데 있어 대부분의 기능들은 커널 모드에서 사용 되고 있는데 이떄 유저모드에서 커널모드의 기능을 사용하기 위해서 시스템 콜이 사용된다.

 

유저모드에서 시스템 콜이 호출되면 시스템 콜 인터페이스에 의해 커널 모드로 전환되며(모드 스위치) 커널모드에서 시스템 콜을 수행하여 유저모드로 응답해준다.

 

시스템 콜은 크게 5가지 유형으로 볼 수 있다. - 레퍼런스

  1. 프로세스 제어 : 시스템 복제(fork), 종료(exit), 대기(wait) 등
  2. 파일 관리 : 열기(open), 읽기(read), 쓰기(write), 닫기(close) 등
  3. 장치 관리 : 입출력 제어(ioctl), 장치 실행(open), 입력(write) 등
  4. 정보 유지 : 프로세스 ID 얻기(getpid), alarm 시그널(alarm) 등
  5. 통신 & 보안 : 내부 통신(pipe), 권한관리(chmod) 등

 

다음 포스팅에서는 OS - 02. 프로세스와 스케쥴링에 대해서 알아보려고 한다.

 

※ 각 이미지는 구글을 통해 검색 하였으며 이미지를 클릭하면 원본을 확인 할 수 있습니다.