2021. 6. 13. 18:38ㆍIT
1. 메모리 관리 정책
1. 적재 정책(Fetch Policy)
: 디스크에서 메모리로 프로세스를 언제 가져와야 할지를 정하는 것 (반입 시기 결정)
1. 요구 적재 : 운영체제나 시스템 프로그램, 사용자 프로그램 등 참조 요청에 따라 메모리를 적재하는 방법
2. 예상 적재 : 시스템의 요청을 미리 예측하여 메모리에 적재하는 방법
2. 배치 정책(Placement Policy)
: 디스크에서 메모리로 가져온 프로세스를 어느 위치에 저장할 것인지 정하는 것
3. 대치 정책(Replacement Policy)
: 메모리가 충분하지 않을 때, 현재 메모리에 적재된 프로세스 중 제거할 프로세스를 결정 및 교체하는 방법
2. 메모리의 구조와 매핑
메모리의 주소
1. 논리적 주소
- 프로그래머가 프로그래밍에 사용하는 공간
2. 물리적 주소
- 실제 데이터나 프로그램을 저장하는 공간
프로세서(CPU) ---------------> MMU(고정 분할, 동적 분할, 페이징, 세그멘테이션) ----------------> 메모리
논리적 주소 물리적 주소
동적 적재
- 바인딩을 최대한 늦춰 실행 직전에 주소 확정하여 메모리 효율적으로 운영 방법
- 메인 프로그램만 먼저 메모리에 적재하여 수행
중첩(오버레이)
- 실행하려는 프로그램이 메모리보다 클 때는, 당장 필요하지 않은 프로그램의 일부는 중첩으로 설정
내부 단편화
- 50MB에 30MB 프로세스를 넣고, 20MB 공간이 남았는데 남은 공간은 사용하지 못함
외부 단편화
- 메모리에 남아 있는 공간 100MB(50MB + 50MB)
- C라는 작업이 70MB일때, 일어나는 경우
- 작업보다 많은 공간이 남아 있더라도 실제로 그 작업을 받아 들이지 못하는 경우
3. 메모리 할당 방법
1. 연속 메모리 할당
: 프로그램을 메모리 공간 한 곳에 연속적으로 할당하는 방법
- 고정 분할 기법
- 메모리 영역을 여러 개의 고정된 크기로 분할하여 프로세스에 제공하는 기법
- 내부/외부 단편화 초래
- 가변 분할 기법
- 고정된 경계를 없애고 각 프로세스가 필요한 만큼 메모리 할당
- 운영체제가 메모리의 어느 부분을 사용하고 사용할 수 있는지 알 수 없기 때문에 메모리 분할 테이블 필요함
2. 분산(불연속) 메모리 적재 방법
- 페이징
- 작업을 크기가 동일한 페이지로 나눠 처리하는 방법
- 프로세스를 크기가 동일한 페이지로 나눔
- 메인 메모리를 프레임 이라는 고정 크기로 나눠서 프레임에 페이지를 적재함
- 세그멘테이션
- 프로세스 관점을 지원하여 메모리를 크기가 변할 수 있는 세그먼트로 나누는 것
4. 사용 가능 공간 메모리 배치 방법
- 최초 적합 방법
- 프로세스를 사용 가능 공간 중 충분히 큰 첫번째 공간에 할당
- 공간 활용률 떨어질 수 있는 단점, 공간 빨리 찾기 가능
- 최적 적합 방법
- 프로세스를 사용 가능 공간 중에서 들어갈 수 있는 가장 작은 공간에 할당함
- 사용 공간 이용률은 좋으나 할당 과정에 많은 시간 소요할 수 있음
- 최악 적합 방법
- 프로세스를 가장 큰 사용 가능 공간에 할당함
- 전체 검색해야 함.
'IT' 카테고리의 다른 글
[OS] Monitor (모니터) / synchronized 이용 은행 계좌 문제 (0) | 2021.06.13 |
---|---|
[OS] Semaphore, Ordering, Mutex (은행 계좌 자바 예제) (0) | 2021.06.13 |
[OS] 프로세스 동기화 (Process Synchronization)) (0) | 2021.06.13 |
[OS] 자식 프로세스 2개 생성 , kill 명령어 실행하기 (0) | 2021.05.17 |
해밍코드 (Hamming Code) (0) | 2021.05.11 |