[운영체제] 프로세스와 스레드

https://youtu.be/2i3dInwVeUM?si=O1xfoCB3dDkDiEqg

 

14:00 분까지의 요약본 


컴퓨터 자원의 이해


컴퓨터에서 자원이라고 하는 부분은 시스템이 운영될 때 필수적인 요소를 의미한다. 특히 전산 자원은 CPU와 메모리로 대표되며, 이 글에서는 컴퓨터 자원의 주요 개념과 운영체제에서 이를 어떻게 관리하는지에 대해 살펴본다.

1. 전산 자원의 종류: CPU와 메모리


전산 자원은 크게 두 가지가 있다.

- CPU: 연산의 주체로서 여러 코어(Core)를 가지고 있으며, 실제 계산 작업을 수행한다.
- 메모리 (Virtual Memory): RAM과 HDD를 조합하여 운영체제가 관리하는 가상 메모리 공간으로, 프로세스 단위로 할당된다.

Windows 운영체제에서는 스레드를 기준으로 CPU를 분배하고, 프로세스 단위로 가상 메모리를 할당하여 자원을 관리한다.

 

2. PCB와 프로세스 관리


운영체제가 프로세스를 관리하기 위해 사용하는 것이 **PCB (Process Control Block)**다. PCB는 프로세스가 운영되기 위해 필요한 정보들을 담고 있으며, 이 정보를 바탕으로 프로세스 안에 스레드들이 속하게 된다. 스레드들은 프로세스에 할당된 가상 메모리 공간을 자유롭게 접근할 수 있으며, 프로세스 간의 메모리 접근은 가상 메모리 수준에서 통제된다.

운영체제는 프로세스를 PCB로, 스레드를 TCB(Thread Control Block) 개념으로 관리한다.

 

3. CPU 자원의 분할: 시분할 시스템


CPU는 여러 프로세스가 동시에 사용하는 자원이기 때문에, 운영체제는 프로세스를 줄 세워 관리한다. 예를 들어 8개의 코어(Core)를 가진 CPU가 2000개의 프로세스 요청을 처리한다고 하면, 효율적이지 않다. 그래서 프로세스들은 CPU라는 자원을 시간 간격으로 나눠서 사용하게 되며, 이를 **시분할 시스템**이라 부른다. 이 시간 간격은 매우 짧아, 우리가 동시에 일어나는 것처럼 착각하게 만든다.

 


4. PID (Process ID)


모든 프로세스는 고유한 **PID (Process ID)**를 가진다. 예를 들어 9000번 프로세스라 하면, 작업 관리자를 열어 PID를 확인할 수 있다.

 

5. 가상 메모리와 메모리 영역

가상 메모리는 여러 영역으로 구성되어 있다. 그중 **Code**와 **Text** 영역에는 기계어가 저장된다. 이 기계어는 가상 메모리에 순차적으로 저장되며, 명령을 실행할 때 실행 명령이 저장된 메모리 주소가 PCB에 담긴다.

또한 Static 영역에는 읽기(R)읽고 쓰기(RW) 영역이 있다. 예를 들어 "Hello World"와 같은 상수를 출력할 때는 Static 영역의 읽기 영역이 사용된다.

 

 6. 프로그램과 프로세스의 차이

프로그램은 단순히 HDD에 설치되어 있는 상태로는 실행되지 않는다. 예를 들어 MS Word를 설치했다고 해서 바로 문서를 볼 수 있는 것이 아니다. 프로그램은 RAM에 올리고, 인스턴스화하여 실행해야 한다. 이때 운영체제는 프로그램을 읽어 메모리에 적재하고, TCB를 생성하여 어디서부터 무엇을 읽어야 할지 분석 후 연산을 수행한다. 이처럼 프로그램이 인스턴스화된 것을 **프로세스**라고 부른다.