memory space :
- 각각의 메모리가 각각의 공간을 가지고 있다
- base register와 limit register두가지를 통해 주소공간을 결정한다.
Address Binding:
- 소스 코드에서 주소는 symbolic하다 ex : int a = 10;
- linker or loader가 binds한다 relocatable address를 absolute address로
Logical vs Physical Address space:
logical address :
-cpu에의해 만들어진 주소 (user level에서 사용하는..)
- generated by a user program
physical address :
- 메모리에있는 주소.
[mmu]
mmu가 logical주소를 physical주소로 만든다.
relocation register : a base register in mmu
[Dynamic Loading]
- a.exe파일을 메모리에 다 올릴까? 아니다
- 모든 것을 올리는 것이 아니라 필요할때만 올리면된다.
[Dynamic Linking and Shared Libraries]
DLLs : Dynamic Linking Libraries
- 프로그램들이 실행 중일 때 라이브러리가 동적으로 연결된다
- fork()는 내가 만든 .exe파일에 있나? 아니다 DLL파일으로부터온다.
[Contiguous Memory Allocation]
- hole이 생긴다 : a block of available memory
- 각 프로세스마다 빠지고 난 자리에 hole이 생김
Q? : How to satisfy a request of size n from a list of free hole?
- First - Fit : 차례대로
- Best - Fit : 들어갈 수 있는 공간 중 가장 작은 것부터.
..
- 위의 문제는 Fragmentation(단편화)문제가 발생한다..
external fragmentation
- 작업보다 많은 공간이 남아 있더라도 실제로 그 작업을
받아 들이지 못하는 경우를 말한다.
https://m.blog.naver.com/rbdi3222/220623825770
[Paging]
- 외부단편화를 회피할 수 있다.
- physical memory into fixed-sized blocks(frames)
- 논리적 메모리는 page라고한다.(block of the same size.,,)
- page table이 logical address를 physical address로 변환.
paging table 그림 추가..
- context switch할 때 page table도 같이 포함된다.
- 그럼 비용이 많이 드는데 해결방법이 PTBR(page-table base register)
- page table을 가리키는 포인터를 두는 것이다.
- 그럼 페이지 테이블은 메모리에둘 수 있다.
- faster context switch, but still slower memory access time
- 메모리 access를 두번해야한다.
- page table에 한번, 실제 data에 한번.
[Translation Look-aside Buffer (TLB)]
- PTBR을 써서 두번 access하는 것을 효율적으로 하기 위해서
TLB를 사용하면된다.
Q: in a system with 10ns to access memory,
- 80 hit ratio : eat = 0.8 * 10 + 0.2 * 20 = 12ns
[swapping]
'운영체제' 카테고리의 다른 글
Blocking vs Non-Blocking I / O (0) | 2022.06.22 |
---|---|
What Is Concurrency(동시성 vs 병렬성) (0) | 2022.06.22 |
자네 thread safe 한가? (0) | 2021.12.02 |
paging (0) | 2021.10.24 |
메모리관리, 가상메모리, 주소바인딩, (0) | 2021.10.24 |