전공 지식/운영체제 (Operating System)

[운영체제] 0. 운영체제 기초

Thov 2023. 8. 7. 00:06

운영체제란?

- Operating System

- 컴퓨터의 경우 Linux, macOS, Windows 등이 있고 스마트폰의 경우 iOS나 안드로이드 등이 있음

 

모든 프로그램은 하드웨어 위에서 돌아간다. 즉, 하드웨어가 필요하다. 예를 들면 1+1을 연산하는 프로그램은 CPU를 필요로 하는 것이고,

이미지를 하드 디스크에 저장하는 프로그램은 하드 디스크를 필요로 한다.

 

이때 프로그램 실행에 마땅히 필요한 요소들을 가리켜 '시스템 자원', '자원'등으로 부른다.

다르게 말하면 모든 프로그램은 자원이 반드시 필요하다.

이 '자원'에는 CPU, 메모리, 보조기억장치, 입출력장치 등과 같은 컴퓨터 부품들이 포함된다.

이때, 실행할 프로그램에 필요한 자원을 할당하고 프로그램이 올바르게 실행되도록 돕는 프로그램이 운영체제인 것이다.

 

우선 운영체제도 앞에서 말했듯 '프로그램'이기 때문에 운영체제에도 자원이 필요하다.

다만 운영체제는 다른 프로그램과는 조금 다른 매우 특별한 프로그램이기 때문에, 항상 컴퓨터가 부팅될 때 메모리 내 '커널 영역(kernel space)'이라는 공간에 따로 적재돼 실행된다.

그리고 이 운영체제가 적재되어 있는 커널 영역을 제외한 나머지 영역을 사용자가 이용하는 응용프로그램들이 적재되게끔 사용하는데, 이 커널 영역이 아닌 부분을 '사용자 영역(user space)'라고 부른다.

그러면 운영체제의 역할을 [사용자 영역에 적재된 프로그램들에 자원을 할당한다]고 이야기할 수도 있을 것이다.

 

자세한 예시를 들어서 설명을 해보자면----

우선 상황을, 나는 지금 '스포티파이', '한글', 'VSCode'를 동시에 실행하고 있는 상황이라고 가정한다.

즉, 3가지의 응용 프로그램을 동시에 실행중인 것이다.

이렇게 3가지 응용 프로그램이 동시에 실행되고 있을 때 각각의 응용 프로그램들을 메모리 주소가 겹치지 않게 잘 배정해 주는 것이 운영체제의 역할인 것이다.

또, 만약 내가 어떤 응용 프로그램의 실행을 멈추면 운영체제가 메모리에서 이 응용 프로그램을 메모리에서 삭제하기도 한다.

 

그리고 이 세 개의 응용 프로그램이 실행되려면 CPU가 필요한데, 어떤 프로그램부터 CPU를 사용하게 할까? 그리고 얼마동안 CPU를 사용할 수 있게 할까? 이 스케줄링 작업을 해주는 것이 운영체제의 또 다른 역할인 것이다.

만약 한 프로그램이 CPU를 독점하고 있으면 다른 프로그램들이 실행될 수 없기 때문에 운영체제는 최대한 공정하게 여러 프로그램에 자원을 할당한다.