Skip to content

Commit

Permalink
[운영체제/워크북 제출] 프로세스 주소 공간 (#5)
Browse files Browse the repository at this point in the history
  • Loading branch information
melonturtle committed Sep 20, 2022
1 parent 04882da commit 27d0261
Showing 1 changed file with 21 additions and 0 deletions.
21 changes: 21 additions & 0 deletions Operating System/프로세스 주소 공간/Workbook/현정.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# 질문지- 프로세스 메모리 모델

### 프로세스 메모리 모델에서 스택 영역이 하는 일을 말해보세요
-> 지역 변수, 현재 함수 콜 스택, 리턴 주소 등이 저장됩니다. 함수마다 스택 프레임이 생성돼서 지역 변수를 저장할 수 있고 종료되면 스택 프레임을 pop하면서 그 전 함수로 돌아갈 수 있습니다.
### 프로세스 메모리 모델에서 힙 영역이 하는 일을 말해보세요
-> 런타임에 동적 할당된 변수가 저장됩니다.

### 메모리 구조 중 쓰레드간에 공유하는 공간과 공유하지 않는 공간을 말해보세요
-> 스택 영역은 일종의 실행 흐름이므로 서로 다른 실행 흐름인 쓰레드 간에 스택 영역은 공유하지 않습니다. 그 외에 코드, 데이터, 힙 영역은 공유합니다.

### 힙 메모리에 데이터를 자주 생성하고 해제를 반복하다보면 fragmentation이 생길 수 있습니다. malloc() 자체가 실패할 수 있는데 어떻게 해결할 수 있을까요?
-> 힙 메모리에서 중간 중간 해제가 되다 보니, 전체적으로는 공간이 있는데 연속적으로 메모리 공간을 받지 못해서 malloc()이 실패할 수 있습니다. 운영체제가 메모리의 free space들을 잘 관리해서(free list), 새로 메모리를 할당해줘야할 때 최대한 적절한 메모리 영역(크기가 비슷한 영역이라든가)을 할당해준다면 이런 단편화 문제를 줄일 수 있습니다.
(아님.. 페이징..? 세그먼테이션..?)

### 32 bit 운영체제에서 각 프로세스는 얼만큼의 Virtual Address Space를 가질까요?
-> 2^32byte == 4GB
* 그중 대부분의 공간은 Unused 상태로 남아있을텐데 어떻게 효율적으로 관리할 수 있을까요?
-> 빈 공간을 free list를 통해 따로 저장해서 관리해야 합니다.


#CS 스터디/운영체제/프로세스 메모리 모델#

0 comments on commit 27d0261

Please sign in to comment.