프로세스와 스레드


CPU가 연산하는 것을 실행이라고 할 수 있을 텐데, 이 때 이 연산의 흐름을 쓰레드라고 표현할 수 있겠다.

image.png

보통 프로세스 단위로 가상 메모리 공간이 OS 로부터 제공되니까 프로세스 내부에 N개의 Thread는 프로세스의 메모리 공간을 공유해서 쓸 수 있다. → 근데 그러다보면 쓰레드끼리 공유하는 자원에 대한 순서 조정이 필요하고 이를 동기화라고 한다.

OS는 보통 Process를 기준으로 메모리도 할당하고, 접근 권한들을 통제한다.

image.png

image.png

image.png

이런 구조에서 현재 운영체제 (Linux, Window) 같은 경우에 커널 스케줄러는 플랫폼 스레드(JVM 스레드 아님)를 스케줄링 단위로 삼는다. → 프로세스 단위로 CPU 할당 받는 줄 알았는데 아니였구나..

컴퓨터 구조에 대한 상식

image.png

하드웨어 수준의 구조를 말한다.