imort 박뉴프

프로세스의 메모리 영역(Code, Data, Stack, Heap) 본문

Develop/Operating System

프로세스의 메모리 영역(Code, Data, Stack, Heap)

박뉴프 2022. 8. 26. 23:26

2022.07.04

프로세스의 메모리 영역

-코드, 데이터, 스택, 힙 세그먼트로 구성되어 있다.

-그 중 코드와 데이터는 정적 세그먼트, 스택과 힙은 동적 세그먼트로 분류된다.

 

정적 세그먼트

코드 영역

-코드와 명령어 같은 text(기계어 포함)를 저장한다.

-'read only' 영역이다.(write 시 오류 발생)

-프로세스 종료 시까지 유지된다.

 

데이터 영역

-정적(static)/전역(global)변수, 배열(array), 구조체(structure)를 저장한다.

-초기화 된 데이터는 data영역에 저장한다. (런타임 이전 초기화)

-초기화되지 않은 데이터는 bss영역에 저장한다. (런타임 이후 초기화해서 메모리상 효율적)

-프로그램 시작시 할당, 종료시 소멸한다.

 

동적 세그먼트

스택 영역

-함수 매개변수를 저장한다.

-push해서 데이터를 삽입하고 pop해서 데이터를 인출한다.

-후입선출로 늦게 들어간 데이터가 먼저 나온다.

-스택 영역이 커지면 힙 영역이 작아진다.

-함수 호출시 할당, 소멸한다.

 

힙 영역

-선입선출로 일찍 들어간 데이터가 먼저 나온다.

-힙 영역이 커지면 스택 영역이 작아진다.

-사용자가 변수를 동적으로 할당하고 해제한다. (malloc, free, new, delete ...)

 

 


🔍 블로그 https://parkmj236.tistory.com

🔍 Notion 이력서 https://branch-frog-b20.notion.site/Park-Minji-e4fa8aa44b8c48b582a9082515dbc15e

🔍 Github https://github.com/Park-New-project/Projects


참고

https://parkmj236.tistory.com/15

 

로깅(Loging)과 로그기반 회복기법

로그 데이터베이스의 모든 업데이트 활동을 기록하는 일련의 로그기록이다. 트랜잭션 식별자, 데이터 항목, 이전 값, 새 값 트랜잭션 Ti의 시작 정보 트랜잭션 Ti의 커밋 정보 트랜잭션 Ti의 중단

parkmj236.tistory.com

https://parkmj236.tistory.com/17

 

페이징(Paging) & 세그멘테이션(Segmentation)

페이징 - 가상 메모리의 주소공간을 페이지로 분할하고 물리 메모리 공간을 프레임으로 분할하여 매핑한다. - 각각의 페이지 크기가 같다. - 페이징의 경우 외부단편화가 생기지 않지만 내부 단

parkmj236.tistory.com

 

Comments