-
프로세스(Process)와 쓰레드(Thread)Today I Learned 2021. 3. 10. 20:56
프로그램
- 컴퓨터에서 실행될 때 특정 작업을 수행하는 일련의 명령어들의 모음
- 어떤 작업을 위해 실행할 수 있는 파일
프로세스
- 컴퓨터에서 연속적으로 실행되고 있는 프로그램(음악 재생 프로그램, 문서 작성 프로그램 등)
- 프로그램을 구동하여 프로그램의 상태가 메모리 상에서 실행되는 작업 단위를 지칭
- 운영체제로부터 시스템의 자원을 할당받는 작업의 단위
- 운영체제 위에서 독립적으로 실행되고 있는 프로그램
- Code, Data, Stack, Heap 으로 구성된다
프로세스의 구성
- Code: 프로그램을 실행하기 위해 작성된 코드
- Stack: 프로세스 안에서 함수들의 실행 순서에 대한 정보를 저장
- Heap: 동적으로 할당된 변수들을 저장
- Data: 전역 변수, 스태틱 변수들을 저장
쓰레드
- 프로세스에서 실행되는 여러 흐름의 단위 ("프로세스 안에서 동작하는 일꾼들")
- 한 프로세스 안에서 여러 개의 쓰레드를 실행할 수 있다
- 쓰레드는 각각 할 일을 배정받아 각자의 작업을 수행한다
- 쓰레드마다 각자의 일을 수행하기 위해 각자의 Stack이 할당된다
- 쓰레드들은 프로세스에 지정된 Code, Data, Heap에 공통적으로 접근할 수 있다
두 개의 스레드를 실행하고 있는 하나의 프로세스. (출처 : 위키백과) 'Today I Learned' 카테고리의 다른 글
함수형 프로그래밍 입문 (0) 2021.03.22 WEB APIs (0) 2021.02.18 Redux (0) 2020.10.28 브라우저의 렌더링 과정 (0) 2020.10.21 리액트에서 여러 input 태그 다루기 (0) 2020.10.14