본문 바로가기
Computer Science

프로세스 구조

by nahkim 2023. 5. 19.

프로세스란?

컴퓨터에서 실행되고 있는 프로그램 = CPU 스케줄링의 대상이 되는 작업(Task)

프로그램이 메모리에 올라가면 인스턴스화가 일어나 프로세스가 되고, CPU 스케줄러에 따라 CPU가 프로세스를 실행함

 

프로세스 구성 요소

  • Stack
  • Heap
  • Data (BSS segment, Data segment)
  • Code

 

 

힙과 스택 사이의 공간을 비워놓는 이유

스택과 힙의 메모리 영역이 겹치면 안되기 때문에

ex) 만약 함수가 함수를 재귀적으로 호출할 경우 동적으로 크기가 늘어날 수 있어 스택과 힙의 사이 공간을 비워놓는다

 

Stack : 지역변수, 매개변수, 함수가 저장 동적인 특징을 갖음

Heap : 코드에서 동적으로 만들어지는 데이터 저장

Data : 전역 변수, 정적 변수가 저장되고 프로그램이 종료되면 사라지는 변수

    BSS segment : 초기화가 되지 않은 변수

    Data segment : 초기값이 할당된 변수

Code : 컴파일된 코드, 프로그램에 내장되어 있는 소스코드 -> 수정 불가능한 기계어로 저장되어 있음, 정적인 특징을 갖음

 

 

ex) C의 경우 malloc()으로 동적 메모리 할당을 할 경우 heap에 생성된다.

'Computer Science' 카테고리의 다른 글

웹사이트 보안 공격 (CSRF, XSS)  (0) 2023.05.21
데이터 모델  (0) 2023.03.10