1. 동적 적재(Dynamic Loading)
적재란 실행 파일을 메모리에 올리는 것을 말한다.(O/S를 메모리에 올리는 것은 부팅)
동적 적재란 프로그램 실행에 반드시 필요한 루틴/데이터만 적재하는 것을 말한다.
동적 적재를 사용하는 이유
- 모든 루틴(routine)이 전부 사용되는 것은 아니다. (예: 오류처리, 오류가 발생할 때만 메모리로 올린다.)
- 모든 데이터(data)가 전부 사용되는 것은 아니다. (예: 배열, char[] buffer = new char[1000])
- 자바 : 모든 클래스가 전부 사용되는 것은 아니다.
=> 실행 시 필요하면 그때 해당 부분을 메모리에 올린다.
2. 동적 연결(Dynamic Linking)
여러 프로그램에서 공통으로 사용되는 라이브러리를 공통 라이브러리라고 한다.
동적 연결이란 오직 하나의 라이브러리 루틴만 메모리에 적재하고, 다른 애플리케이션 실행 시 이 루틴관 연결(Link)하는 방법이다.
동적 연결의 경우 라이브러리 루틴 연결을 애플리케이션 실행시까지 미룬다. 즉, 원래는 실행파일(.exe)을 만들기 전에 링크를 했으나, 프로세스가 실행될 때 해당 라이브러리가 없는 경우에만 링크를 한다.
=> 메모리 절약 효과
Linux 운영체제의 경우 공유 라이브러리(Shared libray)Windows 운영체제의 경우 동적 연결 라이브러리(Dynamic Linking library)
동적 연결을 사용하는 이유
- 공통 라이브러리 루틴(library routine)을 메모리에 중복으로 올리는 것은 메모리 낭비이다.
3. 스와핑(Swapping)
메모리에 적재되어 있으나 현재는 사용되지 않고 있는 프로세스가 있을 경우, 해당 프로세스를 메모리 활용도를 높이기 위해 Backing store(=swap device)로 몰아낸다.
Relocation register를 사용하기 때문에 적재 위치가 변경되는 것은 무관하다.프로세스의 크기가 크면 backing store 입출력에 따른 부담이 커진다.Backing store의 크기는 보통 메인메모리의 크기로 한다.
'Programming > 운영체제' 카테고리의 다른 글
페이징(Paging) (0) | 2021.09.25 |
---|---|
연속 메모리 할당 - 메모리단편화, 최초적합, 최적적합, 최악적합 (0) | 2021.09.16 |
주기억장치관리 - MMU (0) | 2021.09.15 |
주기억장치관리 개요 (Main Memory Management) (0) | 2021.09.04 |
프로세스 동기화 도구 - 모니터(Monitor) (0) | 2021.09.04 |