[ 230331 TIL : Process ]

junjun·2023년 3월 31일
0

프로세스란 무엇인가?

프로세스는 RAM에 올라간, 실행중인 프로그램이다.
프로그램의 인스턴스라고 할 수 있다.
( 인스턴스 = 프로그램 실행에 필요한 내용이 컴퓨터 메모리에 적재된다는 뜻이다 )

OS는 CPU, I/O 장치, RAM 등등의
하드웨어 자원을 프로세스에 제공하고, 프로세스를 관리한다.
( ex. CPU Scheduling )

프로세스는 '프로세스 내에서 실행되는 흐름의 단위'인 쓰레드로 구성되어 있다.

이 쓰레드가, CPU Scheduling의 최소 단위가 된다.
( Multi-Process vs Multi-Thread )

프로세스가 차지하는 메모리의 종류는
Code, Data, Heap, Stack으로 나뉜다.

Code 영역

  • 실행할 프로그램의 코드가 저장된다.
  • CPU는 이 영역에서 명령어를 하나씩 가져와서 처리한다.

Data 영역

  • 전역변수와 정적변수가 저장된다.
  • 프로그램이 시작될 떄 할당되어, 프로그램 종료 시 소멸됨.

세부적으로
-> BSS영역 ( Block Stated Symbol )
초기화 되지 않은 전역변수

-> Data영역
초기화 된 전역변수, ROM에 저장.

Stack 영역

  • 지연변수, 매개변수, 리턴값 등
    잠시 사용되었다가 사라지는 데이터를 저장하는 영역

  • 함수 호출 시 할당되고, 함수 반환 시 소멸됨.

  • 로드 시 ( 컴파일 타임 )에 크기가 결정됨.

Code, Data, Stack 영역은
컴파일 타임 때 메모리 크기가 결정된다.

Heap 영역

  • 동적인 데이터 영역
  • 메모리 주소 값에 의해서만 참조되고, 사용되는 영역
  • 프로그램 동작 시 ( 런타임 ) 크기가 결정됨.
profile
새로운 것을 배우고, 기존의 것에 깊이를 더하는 걸 좋아합니다.

0개의 댓글