[운영체제 01] 운영체제 개요와 구성

목차

  1. 운영체제의 개요
  2. 운영체제의 구성
  3. 운영체제의 운영

운영체제의 개요

운영체제의 역할

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

분류 내용
하드웨어 자원 CPU, 메모리, 키보드, 마우스, 네트워크 카드
소프트웨어 자원 각종 프로그램, 데이터

2. 사용자 지원 사용자가 내린 명령을 해석하여 실행하고 사용자와 하드웨어 사이의 매개체 역할을 한다.

컴퓨터 시스템과 운영체제

운영체제를 통해 컴퓨터 시스템은 안정적이고 효율적으로 동작이 가능하다. 이처럼 안정적이고 효율적인 동작 환경을 위해서는 응용프로그램이 직접 하드웨어에 접근하는 것 막아야 한다. 이를 위해 슈퍼바이저 모드와 보호모드가 사용된다.

1. 슈퍼바이저 모드(커널 모드) CPU 명령어를 사용해 하드웨어를 직접 제어할 수 있는 모드로 운영체제의 커널이 동작되는 모드이다.

2. 보호모드(사용자 모드) CPU 명령어를 사용할 수 없는 모드로, 응용 프로그램이 동작되는 모드이다. 보호 모드에서 응용 프로그램이 하드웨어에 대한 제어가 필요한 경우에 운영체제에 서비스를 요청하는 호출이라는 매커니즘 실행한다. 호출은 간단하게 말해서 응용 프로그램이 하드웨어에 대한 제어를 운영체제에 요청하고, 보홈 모드에서 슈퍼바이저 모드로 변경되어 운영에체의 커널이 동작하여 하드웨어를 제어하는 것이다.

커널(Kernal)

커널 설명

응용프로그램과 하드웨어 수준의 처리 사이의 가교 역할을 하는 핵심 요소이다.

  • 보안 : 커널은 컴퓨터 하드웨어와 프로세스의 보안을 책임진다.
  • 자원관리 : 한정된 시스템 자원을 효율적으로 관리하여 프로그램의 실행을 원활하게 한다.
  • 추상화 : 특정 플랫폼의 구체적인 부분과 하드웨어의 자원을 직접 접근을 흉내내는 소프트웨어들의 집합이다.

커널 설명

1. 일체형 커널(monolithic kernel)

  • 간단하게 운영체제의 모든 서비스가 커널 내에 포함된 커널이다.
  • 장점은 커널 내부에 모든 서비스가 포함되어 있기 때문에 존재하는 서비스들간의 효율적인 상호작용 가능하다.
  • 단점은 서비스의 하나의 요소에서라도 오류가 발생하면 시스템 전체에 장애 일으킬 수 있다는 점이다.
  • 대표적으로 UNIX와 Linux가 일체형 커널이다.

2. 마이크로 커널(microkernel)

  • 운영체제의 대부분의 요소들을 커널 외부로 분리하여 커널 내부에는 메모리 관리, 멀티태스킹, 프로세스 간 통신(IPC) 등의 최소한의 요소들만 남겨 놓은 커널이다. 즉, 파일 시스템, 장치 드라이버, 네트워크 프로토콜 등은 슈퍼바이저 모드가 아닌 보호 모드에서 동작하도록 분리해 놓은 것이다.
  • 마이크로 커널의 장점은 새로운 서비스를 추가하는 운영체제 확장성이 좋은 편이다. 또한, 커널 외부 문제 요인이 발생해도 커널 자체에는 큰 영향 없어 유지보수가 편하고 안정성이 높은 것이 특징이다.
  • 단점은 커널 외부에 존재하는 운영체제 요소들 간에 데이터 전달해야 할 경우, 프로세스 간 통신을 통해야 하기에 성능 저하가 발생한다는 것이다.

운영체제의 구성

운영체제를 구성하는 요소는 다양하지만 컴퓨터 시스템의 자원의 성격에 따라 크게 네 가지의 서브시스템으로 나누어 볼 수 있다. 이들은 프로세스 관리자, 메모리 관리자, 장치 관리자, 파일 관리자이다.

운영체제의 구성

일반적으로 각각의 서브시스템은 자신의 자원을 계속해서 모니터링하고 누가, 무엇을, 언제, 어떻게, 얼마나 가질 것인가를 결정하는 원칙 준수하며 동작하게 된다. 또한, 적절한 곳에 자원을 분배하거나 필요한 경우 자원을 반환하고 회수한다.

운영체제의 구성

1. 프로세스 관리자

  • 프로세스 관리자는 프로세스(실행 중인 프로그램 또는 작업으로 정의) 들을 생성하고 삭제하며 CPU에 할당하기 위한 스케줄을 결정한다.
  • 각 프로세스의 상태(준비, 실행, 대기 등)를 관리하며 상태 전이를 처리한다. 즉, CPU가 프로세스를 실행 중인지 아니면 실행을 마치기 위해 READ나 WRITE 명령어를 기다리고 있는지 검사하며 상황에 따라 프로세스 상태를 다른 상태로 변환하는 역할을 한다.

2. 메모리 관리자

  • 주기억 장치에 대한 각각의 요구가 유효한지를 체크, 적법한 요구라면 메모리 관리자가 아직 사용중이지 않은 부분 할당한다.
  • 다중 사용자 환경에서는 누가 주기억장치의 어느 부분을 이용하고 있는지 수시로 체크하기 위해 테이블을 만든다. 그리고 주기억장치를 반환할 시간이 되면, 그것을 회수한다.
  • 운영체제 자신이 점유하고 있는 주기억장치의 공간을 지키는 역할한다.

3. 장치 관리자

  • 컴퓨터 시스템의 모든 장치의 할당, 작동 시작, 장치 반환까지 전 과정을 관리한다.
  • 시스템 설계자에 의해 결정된 스케줄링 기법을 기반으로 비디오 디스플레이, 키보드, 프린터, 디스크 드라이브, 네트워크 장치와 같은 시스템의 모든 장치 효율적으로 할당하는 역할을 한다.

4. 파일 관리자

  • 관리자는 컴파일러, 인터프리터, 어셈블러, 유틸리티 프로그램, 데이터 파일과 응용 프로그램을 포함하는 시스템의 모든 파일을 관리한다.
  • 파일의 접근 제한을 관리하거나 파일을 열어 자원을 할당하거나 파일을 닫아 자원을 회수하는 일 등을 수행한다.

운영체제의 운영

1. 일괄처리 운영체제

  • 초창기 컴퓨터에 사용되던 유형으로 작업을 모아서 처리한다.
  • 천공 카드나 자기 테이프를 입력장치로 사용했다
  • 데크(deck)에 카드를 조합하여 넣으면 작업이 시작되고 그룹으로 카드 리더를 지나가면서 카드의 데크가 실행된다.
  • 이 운영체제의 효율성은 처리량과 반환시간에 의해 평가된다.

2. 대화형 운영체제(시분할 운영체제)

  • 이용자가 자신의 프로그램을 디버깅할 때 좀 더 빠른 처리시간을 요구하는 욕구를 만족시키기 위해 개발되었다.
  • 각 이용자가 터미널을 통하여 직접 컴퓨터에 명령할 수 있도록 해주는 시분할 소프트웨어가 개발되었다.

3. 하이브리드 운영체제

  • 일괄처리 + 대화형 운영체제의 결합한 방식이다.
  • 현재 대형 컴퓨터 시스템이 하이브리드 운영체제에 해당된다.

댓글남기기