Uncategorized

1 4 0 운영 체제의 개념 및 역할

Written by

🚀 **이 문서는 보다 쉽게 이해할 수 있도록 정리되었습니다.**

운영체제
폰노이만이 제시한 컴퓨터 모델에 따르면 컴퓨터 시스템은 크게 CPU, 메모리, 디스크로 구성되어 있다고 볼 수 있다. 이 각각의 하드웨어를 연결했다고 해서 우리가 원하는 프로그램을 수행할 수 있는 것은 아니다. 하드웨어는 단지 그 하드웨어의 특정 기능을 수행 할 뿐이다. 예를 들면 CPU는 연산을 메모리는 순간 기억을 디스크는 저장하는 역할을 물리적으로 하게 된다.
이 컴퓨터라는 하드웨어 상에 어플리케이션들이 동작되려면 이 하드웨어들과 적절하게 데이터틀 주고 받으며 논리적인 일들을 해야 하는데, 이러한 응용 프로그램들을 수행하기 위해서 하드웨어와 인터페이스 하는 기본 프로그램을 ‘운영체제’라고 한다.
운영체제는 CPU의 수행 시간을 나누는 ‘프로세스 관리’와 서로 다른 어플리케이션이 메모리를 사용하는데 있어서 문제가 없도록 해주는 ‘메모리 관리’ 그리고 파일이 저장되어 있는 ‘디스크 관리’를 해준다. 이렇게 운영체제는 3대 기능이 가지고 있다.

운영 체제의 기능 ‘CPU 관리’
스레드는 각 프로세스에 한 개 이상 존재하고 그 프로세스가 포함하고 있는 수행부를 한 개씩 수행하는 역할을 한다. 운영체제 상에서 스레드의 개수는 프로세스가 개수 이상이 된다. 여러 개의 스레드가 동시에 CPU를 사용하려고 요청하는데, 이를 정리하고 효율적으로 CPU를 사용할 필요가 있다. 이를 프로세스/스레드 관리 혹은 CPU관리라 한다.
멀티 태스크 운영체제일 경우에 여러 개의 어플리케이션이 마치 동시에 동작되는 것처럼 보이게 하는 원리가 무엇일까? 그것은 프로세스/스레드라 불리는 것에 의해 수행되고 있는 것을 시분할로 조금씩 번갈아 가며 CPU가 수행을 해주기 때문이다. 이것을 관리하는 것이 운영체제이다.
프로그램이 수행된다는 의미는 디스크에 있는 파일이 메모리 상으로 로드가 되고 CPU가 그 명령어를 수행하는 것을 의미한다. 컴퓨터에서는 기본적으로 여러 개의 프로세스가 실행되고 있다. 프로세스가 실행이 된다는 의미는 해당 명령어가 CPU에 의해서 수행이 된다는 것인데, 이를 수행해주는 역할을 하는 객체가 ‘스레드’이다.
여러 개의 스레드가 동시에 수행이 되는데 엄밀히 말하면 동시가 아니라 순차적으로 수행이 되는데, 기존에 수행되고 있던 것은 수행을 멈추고 다음 스레드에게 CPU사용권을 넘겨줘야 한다. 이를 위해서 현재 수행되고 있는 레지스트리나 CPU내의 값의 정보를 남겨둬야 하는데, 이 상태를 ‘컨텍스트’라고 하고 이것을 남기고 다음 환경으로 복원하는 과정을 ‘문맥 교환 (Context Switching)’이라고 한다.

동시 수행을 위한 멀티 스레드
멀티 스레드 프로그램은 스레드를 2개 이상 가지며 동시에 기능을 처리 할 수 있다. 동시 수행이라는 용어를 사용했지만, 여전히 엄밀히 말하면 멀티 스레드라고 해서 동시 수행은 아니다. 물론 최근 듀얼 코어라고 하면 동시에 명령어를 2개 수행할 수 있기 때문에 동시라는 말이 성립이 된다. 하지만 현재 멀티스레드를 말하는 개념은 여러 개의 스레드를 하나의 프로세스 내에서 수행한다는 의미이다.
프로세스는 반드시 하나의 이상의 스레드를 가지고 동작을 수행한다. 이 때 2개 이상도 갖게 되는데 그 목적은 프로그램내에 동시에 수행이 되어야 할 필요가 있거나 그러한 목적으로 사용하게 된다.

우선순위 스케쥴링
여러 개의 어플리케이션이 동시에 수행을 요구하고 CPU의 사용을 요구할 때 어떻게 할 것인지를 반영하여 적절하게 CPU사용을 할 수 있도록 시간을 배분해주는 것이 ‘스케쥴링’이다.
이때 중요한 개념이 두 가지가 있다. 어떤 어플리케이션을 먼저 수행할 것인가? 그리고 어떻게 효율적으로 적은 노력과 시간으로 수행중인 어플리케이션을 중지 시키고 다음 어플리케이션을 수행할 수 있을 것이다.

운영체제 3대 기능 중 ‘디스크 관리’
하드 디스크는 외부 기억장치로써 시스템을 구성하는 요소 중 하나가 된다. CPU와 메모리 디스크로 구성이 될 때 메모리는 수행 상태에서의 데이터 저장 및 사용이라면 디스크는 전원이 꺼진 상태에도 내용이 유지되는 저장장치이다.

Leave a Comment