Dev/Others

기본 공부 - 프로세스, 스레드, 메모리

대부류 healthyryu 2021. 3. 10. 18:51
반응형

1. 기본적인 프로세스 와 스레드 정리 참고

프로세스와 스레드 차이 참고할 글

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

 

프로세스와 스레드의 차이

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

velog.io

간단하게 정리하자면,

- 프로세스 : OS 에서 어플리케이션을 동작할 수 있게 메모리를 할당 받은 작업의 단위. 즉, 어플리케이션이 실행중인 상태와 동일.

- 스레드 : 프로세스가 할당받은 자원을 이용하는 흐름의 단위. 즉, 어플리케이션에서 어떤 동작을 실행하는 역할.

 

추가적으로 하나의 프로세스에서 멀티 스레드를 통해서 여러 작업을 동시에 진행할 수 있다. 다만, 사용할때 동기화를 신경써야하며, 하나의 스레드로 인해서 프로세스 자체가 죽을 수도 있으니 잘(?) 써야 한다.

 

프로세스의 Code / Data / Stack / Heap 으로 구성된 메모리 형태이다.

 

2. 메모리 구조

메모리 구조 참고 :

www.tcpschool.com/c/c_memory_structure

 

코딩교육 티씨피스쿨

4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등

tcpschool.com

메모리 구조

간단하게 메모리 구조를 정리하자면,

- 코드 영역(Code) : 프로그램을 실행시키는 코드가 저장

- 데이터 영역(Data) : 프로그램의 전역 변수와 정적 변수가 저장 되는 영역

- 스택 영역(Stack) : 함수 호출과 관련된 지역 변수, 매개변수가 저장 되는 영역

- 힙 영역(Heap) : 객체 생성을 통해서 사용자가 직접 관리하는 동적 영역

반응형