오늘도 삽질중

운영체제 공룡책을 읽고서 - Chater1. 서론, part - 운영체제의 작동 본문

운영체제

운영체제 공룡책을 읽고서 - Chater1. 서론, part - 운영체제의 작동

Choi3950 2023. 9. 12. 02:28
반응형

본 글은 운영체제 공룡책을 읽고 기억할만한 부분, 또는 개념정리 차원에서 중요하다고 생각되는 내용을 정리한 글입니다.

피드백은 환영합니다.

 

 

  • 운영체제는 프로그램이 실행되는 환경을 제공한다.
  • 컴퓨터의 전원을 키거나, 재부팅 할 때는 부트스트랩 프로그램(초기 프로그램) 을 실행해야 한다.
    • 부트스트랩 프로그램은 운영체제를 적재하는 방법 및 시스템 실행을 시작하는 방법을 알아야 하는데 이 목적을 달성하기 위해 운영체제 커널을 찾아 메모리에 적재해야 한다.
    • 커널이 적재되어 실행되면 시스템과 사용자에게 서비스를 제공할 수 있다.
    • 시스템이 완전히 부팅되면 어떤 이벤트(인터럽트) 가 발생할 때 까지 기다린다.

다중 프로그래밍과 다중 태스킹 (Multi programming and Multi tasking)

  • 다중 프로그래밍은 CPU가 항상 하나는 실행할 수 있도록 프로그램을 구성하여 CPU 이용률을 높인다. 다중 프로그램 시스템에서 실행 중인 프로그램을 프로세스 라고 한다.
    • (해당 파트에서는 프로세스를 프로그램으로 설명하고 있습니다. 이런 내용이 있구나 정도로 인지만 하시길 바랍니다. 책 뒷 내용에 프로그램 자체는 프로세스가 아니다 라고 명시가 되어 있습니다. 좀 더 첨언하면 프로그램은 수동적 개체이며, 프로세스는 다음에 수행할 명령을 지정하는 프로그램 카운터를 가진 능동적 개체라고 설명합니다.)
  • 운영체제는 여러 프로세스를 동시에 메모리에 유지하고, 이 중 하나를 선택하여 실행한다. 이 과정에서 프로세스는 I/O 작업이 완료되기를 기다려야 하는데, 이 때 다른 프로세스로 전환하여 작업을 실행한다. 즉, 하나 이상의 프로세스를 실행해야 하는 경우 CPU는 유휴 상태가 아니다.
  • 아래 이미지는 다중 프로그래밍 시스템을 위한 메모리 배치를 보여주고 있다.

 

  • 다중 태스킹은 다중 프로그래밍의 논리적 확장으로, CPU는 여러 프로세스를 전환하며 실행한다.
  • 프로세스 전환이 자주 발생하여 사용자에게 빠른 응답시간을 제공하게 한다.
  • 다중 태스킹 시스템에서 운영체제는 적절한 응답시간을 보장해야 하는데, 일반적인 기법으로 가상 메모리를 사용한다. 해당 기법은 물리 메모리보다 커도 된다는 이점을 가지고 있다.

이중 모드와 다중모드 운용(Dual mode and Multi mode operation)

  • 운영체제와 사용자는 시스템의 하드웨어 및 소프트웨어 자원을 공유하기 때문에 악의적인 프로그램으로 인해 다른 프로그램 및 운영체제 자체가 잘못 실행될 수 없도록 보장해야 한다.
  • 이러한 부분을 보장하기 위해 대부분의 컴퓨터 시스템은 실행모드를 차별화 하도록 하드웨어 자원을 제공한다.
  • 적어도 두개의 연산 모드 즉, 사용자 모드와 커널모드(수퍼바이저 모드, 시스템 모드, 특권 모드) 가 존재한다.
    • 하드웨어에 모드 비트(mode bit) 가 추가되어 사용자모드와 커널모드를 구분한다.
    • 모드 비트 0 => 커널모드 , 1 => 사용자 모드를 의미한다.
    • 모드비트의 사용으로 운영체제 작업과 사용자 시스템 작업을 구분 할 수 있다.
    • 사용자 프로그램이 사용자를 위한 작업이 실행 될 때 모드 비트는 1로 사용자 모드에 있게 되고, 작업 도중에 운영체제로부터 어떠한 작업을 요청할 경우 또는 인터럽트를 받게 되면 모드 비트는 0으로 바뀌며 커널 모드로 변경된다.
    • 즉, 운영체제가 컴퓨터의 제어를 얻을 때마다 항상 커널모드에 있게 되며, 시스템은 사용자 프로그램으로 제어를 넘기기 전에 항상 모드 비트를 1로 변경하여 사용자 모드로 전환한다.
    • 아래 이미지는 사용자 모드에서 커널모드로 스위칭되는 과정을 표현한 것이다.

 

그렇다면 여기서 궁금한 점은 사용자 모드일 때 커널모드에서 실행이 가능한 명령을 수행하면 어떤 일이 발생 할까?

  • 이러한 명령을 특권 명령으로 지정하여 보호를 한다. 하드웨어는 특권 명령이 커널 모드에서만 수행되도록 허용 되있다.
  • 사용자 모드에서 특권 명령을 실행할 경우 하드웨어는 불법적인 명령으로 간주하고 운영체제에 트랩(인터럽트) 을 건다.
  • 특권 명령의 예시로 커널 모드로 전환하려는 명령어 및 I/O 제어, 타이머, 인터럽트 관리 등이 있다.

 

정리하자면 초기 제어는 운영체제에 있으며 이 때는 커널 모드로 실행하게 된다.

사용자 프로그램에 제어가 넘어가면 사용자 모드로 설정된다.

인터럽트, 트랩 또는 시스템 콜을 통해 제어가 운영체제로 전환되며 커널 모드로 실행 된다.

반응형
Comments