IT/👨‍💻Computer Science

운영체제(Operating System, OS)란?

지식모아이령 2023. 2. 15. 14:11

운영체제의 역할

운영체제는 컴퓨터 하드웨어 자원을 관리하여 컴퓨터 하드웨어와 응용 프로그램 사이에서 중재자 역할을 합니다.

즉, 사용자가 컴퓨터를 보다 쉽게 사용할 수 있도록 인터페이스를 제공해 주는 소프트웨어입니다.

*운영체제가 없던 시절에는, 사용자가 직접 컴퓨터 시스템의 제어해야 했고 여간 쉬운 일이 아니었다.

 

운영체제는 컴퓨터 시스템의 자원을 제어 및 관리하여 컴퓨터 시스템을 효율적으로 운영하는 역할을 합니다.

  • 하드웨어 자원: CPU, 메모리, 키보드, 마우스, 나트웨커 카드 등
  • 소프트웨어 자원: 각종 프로그램, 데이터 등

커널(Kernel)

커널에 대한 사람과의 비교도

커널(Kernel)은 운영체제의 핵심적인 부분으로, 하드웨어와 프로그램을 관리하고 서로 연결시켜주는 역할을 합니다.

커널을 비유하자면, 운영체제의 뇌와 같다고 할 수 있습니다. 뇌가 우리 몸의 모든 기능을 제어하듯이, 커널은 운영체제의 모든 기능을 제어합니다. 뇌가 인지, 판단, 조작 등을 수행하듯이, 커널은 시스템의 자원을 할당하고, 프로세스를 관리하며, 입출력 장치와 네트워크 등과의 상호작용을 담당합니다.

또한 뇌가 인간이나 동물의 생명을 유지하듯이, 커널은 시스템의 안전과 안정성을 보장합니다. 즉, 커널은 운영체제가 제대로 동작하도록 중요한 역할을 하며, 운영체제의 안정성과 성능을 결정짓는 중요한 요소입니다.

운영체제의 구성

운영체제를(전체시스템) 구성하는데 필요한 여러 하위 시스템들이 있지만, 크게  다음과 같은 4가지의 서브시스템으로 구성됩니다.

  1. 프로세스 관리자 (Process Manager): 운영체제는 프로세스와 스레드의 실행을 관리하고 CPU 자원을 할당하는 책임이 있습니다.
  2. 메모리 관리자 (Memory Manager): 운영체제는 메모리 할당 및 관리를 담당합니다. 이는 가상 메모리, 페이지 교체 알고리즘, 메모리 보호 및 메모리 누수 방지 등을 포함합니다.
  3. 파일 관리자 (File Manager): 운영체제는 파일 및 디렉토리를 관리합니다. 이를 위해서는 파일 시스템을 관리하고 파일 보안, 권한 및 액세스 제어를 관리해야합니다.
  4. 장치 관리자 (Device Manager): 운영체제는 하드웨어 장치와 상호 작용하며 입출력 관리자, 디스크 관리자, 네트워크 관리자 등과 같은 서브시스템이 있습니다.

운영체제의 유형

운영체제는 사용자가 직접 제어할 수 없기 때문에 컴퓨터 시스템에 필수적인 역할을 수행합니다. 따라서, 사용되는 시스템의 용도와 특성에 따라 다양한 유형의 운영체제가 존재합니다. 크게 다음과 같은 4가지 유형으로 분류됩니다.

  1. 일괄 처리 (Batch processing) : 대량의 작업을 한 번에 처리하고, 일괄적으로 출력하는 방식으로 대량의 데이터를 처리하는데 적합합니다. 주로 급여 계산, 세금 계산, 통계 등의 업무에 사용됩니다.
  2. 대화형 (Interactive) : 사용자와 컴퓨터가 실시간으로 대화하며 처리하는 방식으로, 대화형 입력 방식을 사용하여 컴퓨터를 제어합니다. 주로 개인용 컴퓨터, 스마트폰 등 사용자와 상호작용이 필요한 시스템에 사용됩니다.
  3. 실시간 (Real-time) : 작업 처리시간이 미리 정해진 시간 안에 완료되어야 하는 시스템에 사용됩니다. 대표적으로 군사, 항공, 철도 등의 제어 시스템에서 사용됩니다.
  4. 하이브리드 (Hybrid) : 여러 가지 유형의 운영체제 기술을 결합하여 사용하는 방식으로, 실시간과 대화형 운영체제의 기술을 결합하여 사용합니다. 대표적으로 자동차, 비행기 등의 제어 시스템에서 사용됩니다.

운영체제의 기능

제어 프로그램은 시스템의 모든 것을 관리하며, 처리 프로그램은 사용자가 시스템과 상호작용할 수 있는 인터페이스 역할을 합니다.

제어 프로그램(Control Program)

제어 프로그램은 운영체제의 핵심 기능으로, 전체 시스템을 제어하고 관리합니다. 이는 프로세스, 메모리, 파일 등의 자원을 관리하며, 시스템의 안정성과 보안을 유지하며 사용자와 하드웨어 간의 상호작용을 조정합니다.
제어 프로그램은 다음과 같은 3가지 종류가 있습니다.

  1. 감시 프로그램(Monitor Program) : 하드웨어 및 소프트웨어의 동작을 모니터링하여 시스템의 안정성 및 보안성을 유지하는 역할을 합니다.
  2. 작업 제어 프로그램(Job Control Program) : 여러 개의 프로그램이 동시에 실행될 때, 이를 효율적으로 관리하기 위한 역할을 합니다. 예를 들어, 여러 개의 프로그램 중 어떤 프로그램을 먼저 실행할 것인지, 어떤 프로그램이 언제 종료될 것인지 등을 결정합니다.
  3. 데이터 관리 프로그램(Data Management Program) : 파일 시스템, 데이터베이스 등의 데이터 관리를 담당하는 역할을 합니다. 데이터의 저장, 수정, 검색, 삭제 등을 수행합니다.

처리 프로그램(Processing Program)

반면 처리 프로그램은 운영체제의 일반적인 작업, 즉 사용자가 입력한 명령을 처리하고 결과를 출력하는 등의 기능을 수행합니다. 이는 운영체제의 인터페이스로 작동하며, 사용자가 운영체제와 상호작용할 때 필요한 기능을 제공합니다.

  1. 번역 프로그램: 사용자가 작성한 프로그램을 기계어로 변환하여 처리 프로그램에 전달합니다. 이때, 번역하는 과정에서 오류가 발생할 수 있으며, 이를 해결하기 위해 디버깅 도구도 함께 제공됩니다.
  2. 서비스 프로그램: 운영체제에서 제공하는 여러 기능들을 사용자가 쉽게 이용할 수 있도록 도와줍니다. 예를 들어, 파일 관리, 인터넷 연결 등의 서비스를 제공합니다.
  3. 문제 프로그램: 컴퓨터에서 발생할 수 있는 오류나 문제를 해결하기 위한 프로그램으로, 오류 해결을 위한 자료를 수집하고 분석하여 사용자에게 제공합니다.