-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
18 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
# 프로세스 주소 공간 | ||
|
||
- 프로세스 메모리 모델에서 스택 영역이 하는 일을 말해보세요 | ||
->스택 영역은 함수의 매개 변수, 지역 변수, 리턴 주소등이 저장되는 공간입니다. 함수가 호출되면 새로운 스택 프레임이 생성되고 함수의 데이터들이 생기며 스택으로 쌓인다. | ||
- 프로세스 메모리 모델에서 힙 영역이 하는 일을 말해보세요 | ||
-> 힙 영역은 동적으로 할당되는 메모리 공간입니다. 객체와 같은 레퍼런스 타입의 변수들이 저장됩니다. 힙 영역에 저장된 데이터의 주소값 자체는 스택 영역에 저장됩니다. | ||
- 메모리 구조 중 쓰레드간에 공유하는 공간과 공유하지 않는 공간을 말해보세요 | ||
-> 각 스레드별 힙과 스태틱, 코드 영역은 공유하지만 스택 영역과 레지스터 영역은 각 스레드별로 할당됩니다. | ||
- 힙 메모리에 데이터를 자주 생성하고 해제를 반복하다보면 fragmentation이 생길 수 있습니다. malloc() 자체가 실패할 수 있는데 어떻게 해결할 수 있을까요? | ||
-> 단편화는 내부와 외부가 있는데 내부 단편화는 프로세스가 필요한 양보다 더 많은 메모리가 할당되어 낭비되는 경우입니다. | ||
외부 단편화는 프로세스들이 메모리를 할당받고 남은 조각들이 생겨 사용할 수 없는 작은 조각들이 생기는 경우입니다. | ||
|
||
페이징 기법과 세그멘테이션 방법은 가상메모리를 사용하여 각각 외부 단편화와 내부 단편화를 해결했으며 메모리 풀 방식은 필요한 공간을 직접 지정하여 사용하고 반납하는 방식입니다. | ||
|
||
- 32 bit 운영체제에서 각 프로세스는 얼만큼의 Virtual Address Space를 가질까요? | ||
-> 32비트에서는 4기가 바이트의 공간을 가집니다. | ||
- 그중 대부분의 공간은 Unused 상태로 남아있을텐데 어떻게 효율적으로 관리할 수 있을까요? | ||
-> 페이징을 통해 필요한 부분만 사용한다.? |