Skip to content

Commit

Permalink
[운영체제/워크북 제출] 프로세스 주소 공간 (#5)
Browse files Browse the repository at this point in the history
  • Loading branch information
janghoosa committed Sep 28, 2022
1 parent e97d455 commit 4907e1e
Showing 1 changed file with 18 additions and 0 deletions.
18 changes: 18 additions & 0 deletions Operating System/프로세스 주소 공간/Workbook/태준.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# 프로세스 주소 공간

- 프로세스 메모리 모델에서 스택 영역이 하는 일을 말해보세요
->스택 영역은 함수의 매개 변수, 지역 변수, 리턴 주소등이 저장되는 공간입니다. 함수가 호출되면 새로운 스택 프레임이 생성되고 함수의 데이터들이 생기며 스택으로 쌓인다.
- 프로세스 메모리 모델에서 힙 영역이 하는 일을 말해보세요
-> 힙 영역은 동적으로 할당되는 메모리 공간입니다. 객체와 같은 레퍼런스 타입의 변수들이 저장됩니다. 힙 영역에 저장된 데이터의 주소값 자체는 스택 영역에 저장됩니다.
- 메모리 구조 중 쓰레드간에 공유하는 공간과 공유하지 않는 공간을 말해보세요
-> 각 스레드별 힙과 스태틱, 코드 영역은 공유하지만 스택 영역과 레지스터 영역은 각 스레드별로 할당됩니다.
- 힙 메모리에 데이터를 자주 생성하고 해제를 반복하다보면 fragmentation이 생길 수 있습니다. malloc() 자체가 실패할 수 있는데 어떻게 해결할 수 있을까요?
-> 단편화는 내부와 외부가 있는데 내부 단편화는 프로세스가 필요한 양보다 더 많은 메모리가 할당되어 낭비되는 경우입니다.
외부 단편화는 프로세스들이 메모리를 할당받고 남은 조각들이 생겨 사용할 수 없는 작은 조각들이 생기는 경우입니다.

페이징 기법과 세그멘테이션 방법은 가상메모리를 사용하여 각각 외부 단편화와 내부 단편화를 해결했으며 메모리 풀 방식은 필요한 공간을 직접 지정하여 사용하고 반납하는 방식입니다.

- 32 bit 운영체제에서 각 프로세스는 얼만큼의 Virtual Address Space를 가질까요?
-> 32비트에서는 4기가 바이트의 공간을 가집니다.
- 그중 대부분의 공간은 Unused 상태로 남아있을텐데 어떻게 효율적으로 관리할 수 있을까요?
-> 페이징을 통해 필요한 부분만 사용한다.?

0 comments on commit 4907e1e

Please sign in to comment.