Heap 영역 메모리 동적 할당 내부 로직
·
Interview/OS
Heap 영역 메모리 동적 할당 내부 로직힙(Heap) 영역에서 메모리 동적 할당이 이루어지는 내부 로직은 복잡하지만,기본적인 과정은 다음과 같은 단계로 이루어집니다.주로 malloc()과 같은 함수를 호출할 때의 동작을 설명하겠습니다.1. 프로그램 시작 시 힙 영역 설정프로그램이 시작되면, 운영체제는 프로세스에 힙 영역을 할당합니다. 힙은 일반적으로 메모리 주소 공간의 낮은 주소에서 시작하고, 동적 할당 요청에 따라 힙의 크기가 커질 수 있습니다.운영체제는 sbrk() 또는 mmap() 같은 시스템 호출을 사용하여 힙 영역의 크기를 늘릴 수 있습니다.sbrksbrk는 힙 영역의 끝을 조정하여 메모리를 할당하는 시스템 호출입니다. 이 함수는 주로 동적 메모리 할당(예: malloc)에 사용됩니다.sbrk..
OS 프로세스 데이터 영역
·
Interview/OS
OS 프로세스 데이터 영역코드(Code) 영역:프로그램의 기계어 명령어가 저장되는 영역입니다. 소스 코드를 컴파일하여 기계어로 변환한 후 이 영역에 저장됩니다.프로그램 실행 동안 CPU가 이 영역에서 명령어를 가져와 실행하게 됩니다.읽기 전용으로 설정되어 있으며, 프로그램이 끝날 때까지 메모리에 상주합니다.데이터(Data) 영역:초기화된 전역 변수와 정적(static) 변수가 저장됩니다.전역 변수와 static 변수는 프로그램 시작 시 할당되며, 프로그램이 종료될 때까지 유지됩니다.이 영역의 데이터는 프로그램이 시작할 때 값이 초기화되며, 메모리의 해당 위치는 프로그램 전체에서 참조 가능합니다.BSS 영역:초기화되지 않은 전역 변수 및 정적 변수들이 저장되는 영역입니다.이 변수들은 프로그램 시작 시 자동..
Memory 단편화 Fragmentation 과 병합 Coalescing
·
Interview/OS
Memory Fragmentation메모리 단편화(Fragmentation)는 동적 메모리 할당 시스템에서 발생하는 문제로, 메모리가 사용 가능한 작은 조각들로 나뉘어져 큰 메모리 블록을 할당하지 못하는 상황을 의미합니다. 단편화는 크게 두 가지로 나뉩니다:외부 단편화(External Fragmentation): 사용 가능한 메모리 공간이 여러 작은 조각으로 나뉘어져 있어, 비록 전체적으로는 충분한 공간이 있지만 요청된 크기의 연속적인 공간을 제공할 수 없는 경우.내부 단편화(Internal Fragmentation): 할당된 메모리 블록이 실제 필요한 크기보다 더 커서, 블록 내의 일부 공간이 낭비되는 경우.Memory Coalescing메모리 병합(Coalescing)은 주로 외부 단편화를 해결하기 ..
김 정출
'Interview/OS' 카테고리의 글 목록 (3 Page)