Related to: Operating Systems
프로세스와 스레드의 차이
CS 첫 포스팅으로는 프로세스와 스레드의 차이에 대해 설명하는 글을 쓰기로 결정했다. https://velog.io/@raejoonee/%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4%EC%99%80-%EC%8A%A4%EB%A0%88%EB%93%9C%EC%9D%98-%EC%B0%A8%EC%9D%B4
개요
프로그램, 프로세스, 스레드는 실행 단위를 설명하는 핵심 개념으로, 실행 상태와 메모리 할당 방식에서 차이가 있습니다.
핵심 개념
설명
-
Program

- 파일이 저장 장치에 저장되어 있지만 메모리에는 올라가 있지 않은 정적인 상태
- 윈도우의 *.exe 파일이나 MacOS의 *.dmg 파일 등등 사용자가 눌러서 실행하기 전의 파일
-
Process

- 메모리 상에서 실행중인 프로그램
- 모든 Process는 메모리에 독립적인 공간을 할당받고, 안정성을 위해 프로세스는 다른 프로세스의 변수나 자료에 접근할 수 없음
-
Thread


- 프로세스 안에서 실행되는 흐름 단위
- Process는 최소 1개 이상의 Thread를 보유하고 있음
- 프로세스 소속의 스레드끼리는 메모리를 공유
관련 개념
- Multi-process vs Multi-thread — 멀티프로세스/멀티스레드 비교
- 교착상태 — 여러 프로세스/스레드 간 자원 경합으로 발생하는 교착상태
- 메모리 관리 전략은 무엇일까 — 프로세스에 메모리를 할당하는 전략
- Virtual Memory(가상 메모리) — 가상 메모리와 프로세스 주소 공간
- Operating Systems — 운영체제 전반 개요