CS/운영체제

프로세스와 스레드의 차이

혀니리리 2023. 10. 1. 17:48
728x90

프로세스와 스레드의 차이 (velog.io)

 

프로세스와 스레드의 차이

프로세스와 스레드의 차이는 프로세스와 스레드, 그리고 프로그램이 작동하는 방식에 대해서 잘 이해하고 있는지 확인하기 위해 기술면접에서 단골 질문 사항으로 나온다.

velog.io

걍 다름.

프로그램: 파일이 저장장치에 저장되어있지만 메모리에는 올라가 있지 않은 정적인 상태

프로세스: 프로그램을 실행하여 컴퓨터 메모리에 올라가 있는 동적인 상태 (실행되고 있는 컴퓨터 프로그램)

쓰레드는 프로세스 안에 포함된 개념임

하나의 프로세스는 하나 이상의 스레드를 가진다.

프로그램 하나가 단순히 한가지 작업만을 수행할 수 없기 때문에 등장한 개념이 스레드

 

프로세스 스레드
 프로그램을 실행하여 컴퓨터 메모리에 올라가 있는 동적인 상태 스레드끼리 프로세스의 자원을 공유하면서 프로세스 실행 흐름의 일부
운영체제가 Code/Data/Stack/Heap 메모리 영역을 할당해주고 최소 작업 단위로 삼음. 다른 프로세스의 변수나 자료에 접근 불가 프로세스 내에서 Stack메모리 영역을 제외한 다른 메모리 영역을 같은 프로세스 내 다른 스레드와 공유
다른 프로세스와 정보를 공유하려면 IPC를 사용하는 등의 번거로운 과정을 거쳐야 함 기본 구조 자체가 메모리를 공유하는 구조이기 때문에 다른 스레드와 정보 공유 쉬움 
멀티태스킹: 하나의 운영체제 안에서 여러 프로세스 실행되는 것 멀티스레드 - 장점: 자원 아끼기 쉬움
단점: 운영체제가 스케쥴링 처리하지 않기 때문에 프로그래머가 직접 동기화 문제에 대응할 수 있어야 함

 

 

728x90