운영체제 개요

운영체제가 하는 일

컴퓨터 시스템은 대개 하드웨어, 운영체제, 응용프로그램  사용자의 네 가지 구성요소로 구분된다.

운영체제는 사용자와 다양한 응용프로그램 간의 하드웨어 사용을 제어하고 조정한다.

즉, 실행중인 응용 프로그램들이 작업 수행에 필요한 CPU, 메모리, 입출력 장치 등의 하드웨어 자원을 할당하는 것을 제어한다.

 

컴퓨터에 대한 사용자의 관점은 사용되는 인터페이스에 따라 달라진다.

이러한 시스템은 한 사용자가 자원을 독점하도록 설계되었으며 목표는 사용자가 수행하는 작업을 최대화하는 것이다.

사용자 관점에서 운영체제는 대부분 사용의 편의성을 위해 설계된다.

그러나 일부 컴퓨터는 사용자의 개입 없이 작동하도록 설계되기도 한다.

 

시스템 관점에서 운영체제는 하드웨어와 가장 밀접하게 연관된 프로그램으로 자원 할당자로 볼 수 있다.

자원에 대해 서로 상충될 수도 있는 많은 요청이 있기 때문에 운영체제는 컴퓨터 시스템을 효율적이고 공정하게 운영할 수 있도록 어느 요청에 자원을 할당할지 결정해야 한다. 또한 오류와 컴퓨터의 부적절한 사용을 방지하기 위해 사용자 프로그램의 실행을 제어한다.

컴퓨터 시스템 연산

현대의 범용 컴퓨터 시스템은 하나 이상의 CPU와 다수의 장치 제어들로 구성되며 이들은 공용 버스로 연결된다.

CPU와 장치 제어기들은 이 버스를 통해 공유 메모리에 접근할 수 있다.

각 제어기는 특정 장치(디스크 드라이브, 오디오 장치, 비디오 디스플레이)를 관리한다.

CPU와 장치 제어기는 메모리 사이클을 얻기 위해 병렬 실행될 수 있다.

메모리 제어기는 공유 메모리에 대한 질서 있는 접근을 보장하기 위해 메모리 접근을 동기화 시킨다.

 

컴퓨터 구동

컴퓨터 구동을 시작하기 위해 실행시킬 초기 프로그램(부트스트랩 프로그램)을 갖는다.

전형적으로 컴퓨터 내의 읽기 전용 메모리(ROM)나 EEPROM에 저장되는 펌웨어이다.

부트스트랩 프로그램은 CPU 레지스터를 시작으로 장치 제어기, 메모리 내용 등을 포함한 시스템의 모든 측면을 초기화한다.

또한 운영체제 커널을 찾아 메모리에 적재한다.

> 커널: 운영체제의 핵심 역할을 하는 소프트웨어로 컨텍스트 스위칭, 스케줄링, 메모리 관리 등을 담당한다.

 

커널이 적재되고 실행되면 시스템과 사용자에게 서비스를 제공할 수 있다.

일부 서비스는 커널이 아닌 시스템 프로그램에 의해 제공된다.

이들은 부트 시에 메모리에 적재되어 커널이 실행되는 동안 계속 실행되는 시스템 프로세스나 시스템 데몬이 된다.

이 단계가 끝나면 시스템이 완전히 부트된 상태이며 시스템은 이벤트가 발생하기를 기다린다.

 

인터럽트

인터럽트란 CPU가 프로그램을 실행하고 있을 때,

입출력 하드웨어 등의 장치나 예외상황이 발생하여 CPU에 알려 처리하도록 하는 것을 말한다.

인터럽트는 하드웨어 또는 소프트웨어(시스템 호출)로부터 발생한다.

 

인터럽트가 요청되면 CPU는 하던 일을 중단하고 즉시 지정된 위치로 실행 위치를 옮긴다.

여기서 인터럽트 소스가 어디인지 알기 위한 절차가 실행된다.

CPU는 벡터라는 숫자를 얻어 인터럽트 서비스 루틴의 주소를 얻어 처리한다.

인터럽트 서비스 루틴이 실행되고 완료되면 중단되었던 명령을 재개한다.

 

참고자료

댓글