📚운영체제란 무엇인가?

📄운영체제의 정의

소프트웨어는 응용 소프트웨어와 시스템 소프트웨어로 나뉜다. 응용 소프트웨어는 일반적으로 사용하는 프로그램으로 웹브라우저, 워드프로세서, 게임 등이 있다. 시스템 소프트웨어는 응용 소프트웨어와 하드웨어 사이의 매개체 역할을 담당하는 소프트웨어로 운영체제, 컴파일러 등이 있다.

시스템 소프트웨어인 운영체제는 컴퓨터 시스템의 자원을 관리하고 프로그램이 동작하기 위한 서비스를 제공하는 프로그램들의 모음이다.



📄운영체제의 역할

  1. 자원관리
    컴퓨터 시스템의 자원을 제어 및 관리하여 컴퓨터 시스템을 효율적으로 운영하는 것이 목적이다.

  2. 사용자 지원
    사용자가 내린 명령을 해석하여 실행하며, 사용자와 하드웨어 사이의 매개체 역할을 한다. 사용자에게 편의성을 제공하는 것이 목적이다.



📄컴퓨터 시스템과 운영체제

운영체제가 없던 초기 컴퓨터 시스템에서는 응용 프로그램이 직접 컴퓨터 시스템의 자원을 제어해야하는 문제와 여러 사용자가 자원을 효율적으로 공유해서 사용하기 어려운 문제가 있었다.

이런 문제들을 해결하기 위해 응용 프로그램과 하드웨어 사이에 운영체제라는 소프트웨어를 두고 하드웨어 제어는 운영체제만 하도록 하였다.

응용 프로그램은 하드웨어에 대한 자세한 정보를 모르더라도 운영체제가 대신 하드웨어를 제어하고 그 결과를 응용 프로그램에 제공해 주게 되었다. 또한 여러 응용 프로그램들이 동시에 실행되더라도 운영체제가 중간에서 자원을 효율적으로 나눠 줌으로써 시스템이 안정적으로 동작할 수 있게 되었다.



📄커널 모드와 사용자 모드

응용 프로그램이 하드웨어를 직접 제어할 수 있는 방법이 여전히 존재한다면 시스템의 안정성을 보장할 수 없기 때문에 커널 모드와 사용자 모드가 사용된다.

  1. 커널 모드
    슈퍼바이저 모드라고도 하며 하드웨어를 직접 제어할 수 있는 CPU의 명령어를 사용할 수 있는 모드이다. 커널 모드에서는 운영체제만 동작되도록 하여 응용 프로그램이 하드웨어에 직접 접근하는 것을 막는다.

    운영체제의 핵심 요소를 커널이라고 한다. 운영체제마다 커널의 구성 방식이 다르다.

    • 일체형 커널
      모놀리식 커널이라고도 하며 운영체제의 모든 서비스가 커널 내에 포함된 커널이다.

    • 마이크로 커널
      운영체제 요소의 대부분을 커널 외부로 분리하여 커널 내부에는 메모리 관리, 프로세스 간 통신 등 최소한의 요소만 남겨 놓은 커널이다.

  2. 사용자 모드
    CPU 명령어를 사용할 수 없는 모드이고 응용 프로그램들은 사용자 모드에서만 동작되도록 하였다.




📚운영체제의 구성

📄프로세스 관리자

프로세스는 실행 중인 프로그램을 의미한다. 프로세스 관리자는 프로세스를 생성하고 삭제하고 프로세스에 CPU를 할당하기 위해 스케줄을 결정한다. 또 프로세스의 상태를 관리하며 상태 전이를 처리한다.

📄메모리 관리자

메모리 공간에 대한 요구가 발생하면 유효성을 확인하고 메모리를 할당 및 회수한다. 또 메모리 공간을 보호하는데 다른 프로세스가 이미 프로세스가 할당된 메모리 공간에 접근하지 못하도록 관리한다.


📄장치 관리자

컴퓨터 시스템의 모든 장치를 관리한다. 입출력 장치, 네트워크, 저장 장치 등의 모든 장치를 할당하고 작동시키고 반환한다.


📄파일 관리자

컴퓨터 시스템의 모든 파일을 관리한다. 파일 생성 및 삭제, 파일 열고 닫기 등을 가능하게 한다. 그리고 저장장치의 공간도 관리한다.




📚운영체제의 유형

📄일괄처리 운영체제

작업을 모아서 순서대로 처리하는 방식의 운영체제이다. 한번에 한 프로그램씩만 수행되기에 컴퓨터 시스템의 자원이 충분히 활용되지 못했다.


📄시분할 운영체제

대화형 운영체제라고도 하며 사용자의 프로그램을 한 번에 조금씩 수행함으로써 여러 프로그램이 동시에 실행되는 것과 같은 효과를 내는 방식의 운영체제이다. 프로세스의 개념도 이때 등장했다.


📄실시간 운영체제

특수 목적의 컴퓨터 시스템을 위한 것으로 원하는 시간 내에 프로그램의 결과를 얻을 수 있는 운영체제이다. 증권거래 시스템, 항공 시스템 등 처리결과가 현재의 결정에 영향을 주는 환경에서 사용되는 운영체제이다.


📄분산 운영체제

2개 이상의 컴퓨터 시스템이 네트워크로 연결되어 서로의 자원을 이용하는 분산 시스템을 관리하기 위한 운영체제이다.


Leave a comment