[kocw] 운영체제 정의

seilk·2022년 3월 22일
0

운영체제

목록 보기
1/1

운영체제 정의

운영체제 설계자 입장에서 운영체제를 공부하는 수업

운영체제는 하드웨어를 관리하면서 사용자나 소프트웨어가 하드웨어를 몰라도 사용할 수 있도록 도와줌

하드웨어를 직접 다루는 복잡한 부분을 운영체제가 대행

컴퓨터 시스템을 편리하게 사용할 수 있는 환경을 제공

운영체제는 동시 사용자/프로그램들이 각각 독자적 컴퓨터에서 수행되는 것 같은 환상을 제공

컴퓨터 시스템의 자원을 효율적으로 관리

  • 주어진 자원으로 최대한의 성능을 내도록 = 효율성
  • 특정 사용자/프로그램의 지나친 불이익이 발생하지 않도록 = 형평성

운영체제는 실행중인 프로그램들에게 짧은 시간씩 CPU를 번갈아 할당

컴퓨터 시스템의 구조

CPU의 작업공간은 메모리이다.

매 클럭마다 CPU는 메모리의 어딘가에 있는 기계어를 읽고 그것을 연산한다. 

CPU는 I/O 디바이스에 직접 접근할 수 없다.

이를 돕는것이 I/O 디바이스이다.

운영체제는 이러한 CPU의 작업에 있어서 어떤 프로그램에게 CPU 사용권을 줄지 결정하는 CPU 스케쥴링을 한다.

CPU는 하드웨어에 불과하다.

모든 하드웨어적인 관리는 운영체제의 대행을 통해서 이루어진다. (하드웨어와 협조해서 처리한다.)

디스크는 CPU보다 수백배 느리다.

프로그램에서 I/O 장치에 보내는 요청이 있을 수 있다.

이때 운영체제가 디스크 스케쥴링을 통해 효율적으로 작업을 수행할 수 있도록 도운다.

운영체제는 자원의 효율성을 추구한다. 엘리베이터 스케쥴링과 유사하다. (1층에서 모두 태워서 각 층에 내려주는 것이 효율적)

캐싱

같은 데이터를 다시 요청받을 때를 대비해 메모리에 복제해 두고 사용한다.

인터럽트

CPU는 I/O 컨트롤러에게 명령을 보내고 마냥 기다리지 않는다.

그 시간에서 수행할 수 있는 다른일을 찾아서 수행한다.

CPU는 계속해서 쉼없이 일을 처리할 수 있도록 스케쥴링 해야한다.

다른 일을 수행하다가 앞서 보낸 명령이 완료 되면 인터럽트를 걸어서 CPU에게 알려준다.

인터럽트가 CPU에게 들어오면 자동적으로 운영체제로 넘어가서 운영체제는 그 인터럽트를 분석하고 CPU 스케쥴링을 한다.

인터럽트는 결국 I/O 디바이스 같은 일꾼(?)들이 CPU에게 연락하는 방법

CPU는 할 일을 하고 느린 장치들이 작업 수행의 결과를 CPU에게 연락하여 처리 사실을 알려준다.

CPU의 제어권이 인터럽트에 의해서 자동으로 운영체제로 넘어가서 인터럽트가 걸린 이유에 해당하는 일을 운영체제의 기계어를 통해서 작업을 수행한다.

프로세스의 상태

운영체제는 큐(Queue)를 만들어서 프로그램을 줄세워서 CPU 스케쥴링을 한다.

큐의 상황은 CPU 스케쥴링 상황에 따라 매번 바뀐다. 먼저 끝날 수 있는 프로그램이 있으면 큐에서 꺼내서 먼저 끝내고 다음 프로그램을 수행한다.

디스크에 있는 파일을 읽어오는 작업은 CPU에 할당되지 않고 디스크 입출력 큐에 들어간다.

여러가지 큐에 프로세스들이 차곡차곡 쌓이게 된다.

디스크 입출력 큐에서 프로그램이 끝나게 되면 인터럽트를 통해 CPU에 전달되고 이것은 바로 운영체제로 전달된다. 

이런 과정을 통해서 운영체제는 CPU와 I/O 디바이스를 스케쥴링을 한다.

CPU와 I/O를 번갈아서 반복하는 작업으로 이루어지는 프로그램이 사람과 interaction 하는 프로그램이다.

반면에 I/O 작업 없이 CPU만 굉장히 오래 사용하는 프로그램이 있다. (ex. 유전자 분석 프로그램, 큰 행렬 계산)

profile
seilk

0개의 댓글