(운영체제) 운영체제의 개요

2022. 7. 7. 02:36컴퓨터 공학/운영체제

반응형

운영체제는 프로그래밍의 기본이 되는 것이라고 할 수 있다.

 

운영체제를 통해서 메모리 구조나 프로그램이 실행되는 방식을 이해하게 되면

 

코드를 작성할 때, 좀 더 유연한 사고방식으로 코드를 작성할 수 있다.

 

 

이 글을 쓰는 이유는 본질적으로 컴퓨터의 구조가 궁금해서 작성하는 것과 동시에

 

내가 공부한 내용을 정리하고, 면접에 조금이나마 도움이 되기 위해서 작성한다.

 

🏴󠁩󠁤󠁪󠁷󠁿 운영체제는 뭘까?


1960년대의 운영체제는 '하드웨어를 제어하는 소프트웨어' 정도에 지나지 않았다.

하지만 지금은 그 이상의 역할을 하고 있는 것이 사실이다.

 

그럼에도 불구하고 변하지 않는 진실이 있다.

진실은 오직 하나!

 

바로 운영체제가 사용자와 하드웨어 사이에 중개자 역할을 한다는 것이다.

 

그럼 운영체제가 하드웨어에게 어떤 것을 제공할 수 있는지, 사용자에게는 어떤 것을 재공할 수 있는지를 중점으로 알아보면 좋을 것 같다.

 

 

🏴󠁩󠁤󠁪󠁷󠁿 운영체제의 목적


위에서 언급한 것처럼 운영체제의 목적을 두 가지 측면에서 볼 수 있다.

 

하나는 사용자의 측면, 하나는 하드웨어적인 측면에서.

 

사용자는 운영체제를 통해 컴퓨터를 편리하게 사용할 수 있고,

 

컴퓨터는 하드웨어가 효율적으로 사용될 수 있다.

 

여기서 효율적이라는 것이 뭔지 매우 중요하다.

 

대체 뭐가 어떻게 효율적인 것일까?

 

여기에 대해서 이해를 하려면 아래의 컴퓨터 구조를 알필요가 있다.

 

🏴󠁩󠁤󠁪󠁷󠁿 컴퓨터 구조


source from wikipedia

위 사진은 폰 노이만 구조이다.

 

수십년이 지났지만 여전히 폰 노이만의 구조를 토대로 컴퓨터가 구성되어 있다.

 

위 사진에서 우리는 컴퓨터가 I/O 디바이스, 메모리, CPU로 구성되어 있다는 것을 알 수 있다.

 

 

현대의 컴퓨터는 이 3가지 각기 다른 장치들이 마더보드에 장착되어 버스로 연결되어 있다.

 

당연히 버스로 연결되어 있기 때문에 모두 상호작용을 할 것이다.

 

 

이때 상호작용에서 손실이 적은 것이 효율적인 것이라고 할 수 있다.

 

보조기억장치에 저장된 프로그램을 메인 메모리에 적재하고 CPU가 이를 실행시킬 때, 메모리간, CPU와 메모리간 속도차이가

존재해서 손실이 발생한다.

 

그 뿐인가?

 

 CPU의 코어가 하나이고, 멀티 프로그래밍이 없다면 한번에 하나의 일만 처리할 수 밖에 없다.

 

특히 CPU가 쉬고 있다면, 일할 수 있는데 안 하는 것과 같다.

 

이런 많은 문제들을 해결한 것이 바로 효율적인 운영체제이다.

 

 

🏴󠁩󠁤󠁪󠁷󠁿 다중 프로그래밍


다중 프로그래밍(흔히 멀티 프로그래밍)에 대해 이해하기 위해서는 다중 프로그래밍 이전의 단일 스트림 일괄처리 방식에 대해 알아야 한다.

 

흔히 Batch 처리라고 하는데, 이는 비슷한 작업을 모아 한번에 처리하는 방식을 말한다.

 

일괄처리는 프로그램과 데이터를 순서대로 테이프나 디스크에 로드해서 그룹 혹은 일괄로 처리한다.

 

일괄로 처리한다는 것은, 즉시 작업이 완료 될 수도, 안 될 수도 있는 것이다.

 

그럼 작업을 처리하지 않을 때는 CPU는 idle한 상태가 된다.

 

앞에서 잠깐 언급한 것처럼 CPU가 노는 상태가 되는 것이다.

 

CPU가 놀기 때문에 비효율이 발생하게 된다.

 

 

이를 극복하기 위해서 탄생한 것이 바로 다중 프로그래밍 시스템이다.

 

다중 프로그래밍 시스템은 간단하게 CPU가 수행할 작업을 항상 가지도록 하는 방식이다.

 

이 다중 프로그래밍 시스템이 빛을 본 것은 시분할 시스템이 개발되면서이다.

 

시분할 시스템은 작업간의 전환을 매우 빠르게 함으로써, 마치 동시에 작업이 이루어지고 있는 것처럼 하는 것이다.

 

 

이 시분할 시스템 덕분에, 프로그램에서 카드를 읽거나, 프린터를 쓰는 등의 시간에도 CPU를 계속해서 사용할 수 있는 것이다.

 

 

다중 프로그래밍은 주로 다중 스레드(멀티 스레드)와 많이 비교되는데, 이는 따로 적도록 하겠다.

 

 

 

 

 

 

 

 

 

반응형