hmk run dev

Process와 Thread 본문

cs

Process와 Thread

hmk run dev 2024. 2. 27. 00:02

Process

 

OS가 관리하는 단위, 프로그램 실행의 단위 

프로세스라는 것은 기본적으로 연산할 작업을 뜻하기도 한다.

 

동시에 여러개의 프로세스가 실행된다면 이를 멀티프로세싱이라고 한다.


Thread

 

프로세스가 하나가 있다면 그안에 스레드는 최소 1개 이상이 있다.

스레드는 프로세스 내의 하나의 실행 흐름, 코드 실행의 흐름이라고 봐도 무방하다.

 

한 프로세스 내부에 스레드는 N개가 될 수 있다.

이를 멀티 스레딩 이라고 하는데

 

스레드들은 동시에 그리고 각자 작동한다.

 


Virtual Memory

 

하드웨어 수준에서 CPU 같은 전산자원이 존재하고

CPU에 코어가 4개가 있다고  가정해보자,

 

연산들은 주로 CPU와 RAM(1차 메모리)을 사용해서 처리된다.

 

어떤 프로세스가 존재한다면,

프로세스 내부엔 여러 연산 코드들이 잔뜩있다.

 

연산을 수행하기 위해선 첫번째로 CPU가 필요하고

OS는 프로세스를 관리하고 잘 작동하도록 지원한다,

 

쉽게 말해, "프로세스에게 CPU 0번써" 명령한다.

연산과정에서 CPU는 연습장이 필요한데, 이것이 RAM이다.

 

OS는 메모리를 일정량으로 페이징해 프로세스에게 메모리를 할당한다.

 

 

실제로 모든 프로세스는 메모리(RAM)를 직접사용하지 않고, 메모리를 다른 형태로 추상화해서 사용하는데

이것을 Virtual Memory(가상 메모리)라고합니다.

 

 

OS는 프로세스에 할당할 수 있는 가상 메모리를 지정해준다.

그리고 RAM 같은 1차 메모리 이외에 2차 메모리인 HDD까지 합쳐서 하나의 연속된 메모리로 추상화한다.

그리고 프로세스 내부의 스레드의 작동할 수 있는 범위는 프로세스가 할당 받은 가상메모리로 제한된다.

 



Reference

 

https://www.youtube.com/watch?v=x-Lp-h_pf9Q

'cs' 카테고리의 다른 글

컴퓨터 구조의 큰 그림  (0) 2024.03.01
컴퓨터 구조를 알아야 하는 이유  (0) 2024.03.01
컴퓨터 구조와 운영체제  (0) 2022.02.19
정처기 오답노트  (0) 2022.02.09
OSI 7계층  (0) 2022.01.21
Comments