메모리 관리
프로세스에게 메모리를 줄 때
연속된 메모리를 줄 수도 있고 불연속 메모리를 줄 수도 있다.
메모리 관리란?
- 프로세스에게 메모리 공간을 주는 것, 회수하는 것
- 메모리 안에 여러가지 프로세스들이 있을 텐데 서로 나눠지게 하는 것
메모리 관리 장치(MMU)는 하드웨어 장치 입니다.
프로그램 짜는 입장에서 자기가 짜는 메모리가 보호되어야 합니다.
노는 메모리가 없이 활용을 해야 합니다. (=메모리 이용률)
메모리 관리 정책
적재 정책 - 디스크에서 메모리로 언제 들여올지 결정하는 정책
- 요구 정책 - 요구하면 줌
- 예상 적재 - 미리 퍼다둠
배치 정책 - 메모리의 어느 위치에 저장할지 결정하는 정책
- 딱 맞는 용량을 가져올지
- 그냥 널찍한 것을 가져올지
교체 정책
- 내쫓겨 나는데 누구를 내보내고 누구를 들여올지
답 없음
전부 관리 목표입니다.
배치 정책입니다.
적재 - 언제 가져올지
적재 정책
메모리의 구조
프로그래머가 프로그래밍에 사용하는 공간과 실제 메모리는 다릅니다.
논리적 주소와 물리적 주소가 다를 수 도 있습니다. 1:1 매핑되는 게 아닙니다.
메모리 주소 변환
논리적 주소를 물리적 주소로 변환합니다
obj 파일에는 라이브러리 파일이 없습니다.
링커가 라이브러리 파일을 링킹 해야지 실행할 수 있습니다.
로더가 메모리에 올립니다.
이러한 과정으로 실행할 수 있습니다.
이런 과정을 거쳐야지 프로세스가 됩니다.
주소 바인딩이 컴파일 시간에 되느냐 적재 시간에 되느냐 실행시간에 되느냐로 나눌 수 있습니다.
우리가 사용하는 것은 실행시간에 적재가 됩니다.
컴파일 시간에 적재하는 것은 메모리가 바뀌면 다시 컴파일해야 합니다.
적재 시간은 로더가 절대 주소를 생성합니다.
메모리를 다시 적재하려면 재적재 해야 합니다.
실행시간은
실행시간에 적재 위치도 이동이 가능합니다.
하드웨어의 지원이 필요합니다!
OS 영역이 커널이 들어있고
Process에는 유저 영역이 들어가 있습니다.
프로세스당 기본 Base주소 하고 limit주소를 가지고 있습니다.
limit 값은 한계를 넘어가지 말라고 정해두는 값입니다.
Memory-Management Unit (MMU) = 논리주소를 물리 주소로 바꾸는 하드웨어 장치
Memory-Management Unit (MMU) = 논리주소를 물리 주소로 바꾸는 하드웨어 장치
346이 있다고 하면 base register(14000)을 더해서 14346이 됩니다.
프로세스의 논리적 주소를 물리적 주소에 매핑하는 작업입니다.
실행시간에 주소 바인딩됩니다.
메모리 관련 용어
동적 적재
실행할 때는 적재돼서 가만히 있다가 호출이 되면
프로그램 실행 중간에 적재가 됩니다.됩니다.
dll은 디스크에 있다가 실행될 때 메모리로 올라옵니다.
라이브러리에 한에서 호출 시 메모리에 올라오는 것입니다.
'Computer Science > OS' 카테고리의 다른 글
페이징에서 보호, 세그먼테이션 개념, 세그멘트 공유, 페이징과 세그멘테이션 비교, 페이지화된 세그멘테이션 (0) | 2021.12.07 |
---|---|
중첩, 연속/불연속 메모리 할당(내부/외부 단편화), 고정분할(같은크기, 다른크기), 가변분할(최적, 최악, 최적적합), 페이징의 개념 (0) | 2021.12.06 |
실제로 os에서 사용되는 스케쥴링, 다중프로세서에서 강결합된 공유 메모리 주소 2가지 비교, 다중 프로세서 스레드 스케줄링 (0) | 2021.11.30 |
SJF, FIFO, 라운드로빈(RR), 다단계 큐(MQL), 다단계 피드백 큐(MLFQ), 응답비율(HRN) (0) | 2021.11.29 |
스케쥴링 큐, 장기,단기,중기 스케줄링/ 선입선처리, 최소작업, 우선순위 스케줄링 (0) | 2021.11.23 |