Block = auxiliary storage 와 Main memory 사이의 데이터 전송 단위 (1~4KB)
Word = Main memory 와 register 사이의 데이터 전송의 단위 (16~64bits) , 이것은 64bit 컴퓨터 할떄의 64bit라는 의미이와 동일하다.
Address Binding
프로그램의 논리주소를 실제 메모리의 물리 주소로 매핑 하는 작업
Compile time binding
프로세스가 메모리에 적재될 위치를 컴파일러가 완벽히 알고 있어야하고 한번 메모리가 지정되면 변경할 수 없음 , 프로그램 전체가 메모리에 올라가야함
Load time Binding
메모리 적재 위치를 컴파일 시점에서 모르면 , 대체 가능한 상대 주소를 생성
적재 시점에 시작 주소를 반영하여 사용자 코드 상의 주소를 재설정
처음에 0이라 하고 가정하고 배치한다음 ,실제로 메모리에 올라가서 부여받은 첫번째 주소의 값만 큼 다 더해준다.
Run time binding
Address Binding 을 수행시간까지 연기 = 프로세스가 수행 도중 다른 메모리 위치로 이동할 수 있음
HW의 도움이 필요 , Memory Mangement Unit 이 도와줌
대부분의 OS가 사용중
Dynamic Loading = 모든 루틴을 교체 가능한 형태로 디스크에 저장 , 실제 호출 전까지 루틴을 적재하지 않음
메모리 공간의 효율적인 사용
Swapping = 프로세서 할당이 끝나고 수행 완료된 프로세는 swap-device 로 보내고 (Swap-out) 새롭게 시작하는 프로세스는 메모리에 적재 (Swap-in)
Continuous Memory Allocation
프로세스를 하나의 연속된 메모리 공간에 할당하는 정책 , 프로그램, 데이터 , 스택 등
Uni programming = 하나의 프로세스만 메모리 상에 존재
문제점
- 프로그램의 크기 > 메모리 크기 인 경우에 사용자, 개발자가 프로그램의 크기를 잘라서 필요한 영역만 적재해야하는데 매우 어렵고 복잡하다.
- kernel 영역을 건드리지 못하게 해야한다. = 경계 레지스터를 사용한다.
- 프로그램의 크기 < 메모리 크기 인 경우 resource 낭비가 일어난다.
multi progmming = 여러 프로세스가 메모리에 올라갈 수 있음
Fixed Partition Multiprogramming = 메모리 공간을 고정된 크기로 분할 , 각 프로세스는 하나의 partition 에 적재 , mutiprogramming dgree = 분할된 파티션의 갯수
Internal fragmentation = 파티션의 크기 > Process 크기 인 경우 남는 공간이 생기면서 메모리가 낭비된다.
external fragmentation = 파티션의 크기 < Process 크기 이 경우는 연속된 공간이 아닌 남는 공간들의 합이다. 충분히 넣을 수 있지만 연속되지 않아서 넣을 수 없다.
Variable Partition Mutiprogramming = 초기에는 전체가 하나의 영역 , 프로세를 처리하는 과정에서 메모리 공간이 동적으로 분할 , internal fragmentation 이 발생하지 않는다.
배치전략
- First fit = 최초로 충분한 크기를 가진 파티션을 선택한다. 공간 활용률이 떨어질 수 있음
- Best fit = 모든 파티션을 보기에 탐색 시간이 오래걸린다. 크기가 큰 파티션을 유지 할 수 있지만 대신 활용하기에 너무 작은 파티션들이 많이 발생할 수 있음
- Worst fit = 들어갈수 있는 파티션중 가장 큰곳을 선택 , 오래걸림 , 큰 크기의 파티션 확보가 어려운 대신 작은 크기의 파티션 발생을 줄일 수 있음
- Next fit = 마지막으로 탐색한 위치부터 탐색 , 메모리 영역의 사용빈도 균등화
Coalescing holes (공간 통합) = 인접한 빈영역을 하나의 partition 으로 통합.
Storage Compaction (메모리 압축) = High overhead 남은 공간을 밑에 싹 모아두는과정에서 기존에 작업하고 있는 프로세스들도 멈춰야함.
'Operating System > O.S(Neso Academy, HPC Lab. KOREATECH)' 카테고리의 다른 글
HPC Lab) Virtual Memory Management (0) | 2021.05.31 |
---|---|
HPC Lab) Virtual Memory (0) | 2021.05.22 |
HPC Lab) Deadlock (0) | 2021.05.19 |
HPC Lab) Semaphore + event count , Monitor (0) | 2021.05.18 |
12)FCFS Scheduling , Shortest Job First , Priority (0) | 2021.05.14 |