프로세스란?
컴퓨터에서 실행되고 있는 프로그램 = 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 |