- 프로그램이나 데이터를 실행시키기 위해 주기억장치에 어떻게 할당할 것인지
- ⭐ 연속 할당 기법
- 프로그램을 주기억장치에 연속으로 할당하는 기법
- 단일 분할 할당 기법 : 오버레이, 스와핑
- 다중 분할 할당 기법 : 고정 분할 할당 기법, 동적 분할 할당 기법
- ⭐ 분산 할당 기법
- 프로그램을 특정 단위의 조각으로 나누어 주기억장치 내에 분산하여 할당하는 기법
- 페이징 기법, 세그멘테이션 기법
1. ⭐ 단일 분할 할당 기법
- 주기억장치를 운영체제 영역과 사용자 영역으로 나누어 한 순간에는 오직 한 명의 사용자만이 주기억장치의 사용자 영역을 사용하는 기법
- 가장 단순한 기법
- 초기 운영체제에서 많이 사용하던 기법
- 운영체제를 보호하고, 프로그램이 사용자 영역만을 사용하기 위해 운영체제 영역과 사용자 영역을 구분하는 경계 레지스터(Boundary Register)가 사용
- 프로그램의 크기가 작은 경우 사용자 영역이 낭비
- 초기에는 주기억장치보다 큰 사용자 프로그램은 실행할 수 없었으나 오버레이 기법을 사용하면서 문제 해결됨
1) 오버레이 (Overlay) 기법
- 주기억장치보다 큰 사용자 프로그램을 실행하기 위한 기법
- 보조기억장치에 저장된 하나의 프로그램을 여러 개의 조각으로 분할한 후 필요한 조각을 차례로 주기억장치에 적재하여 프로그램을 실행
- 프로그램이 실행되면서 주기억장치의 공간이 부족하면 주기억장치에 적재된 프로그램의 조각 중 불필요한 조각이 위치한 장소에 새로운 프로그램의 조각을 중첩(Overlay)하여 적재
- 프로그램을 여러 조각으로 분할하는 작업은 프로그래머가 수행해야 하므로 시스템 구조나 프로그램 구조를 알아야 함

2) 스와핑 (Swapping) 기법
- 하나의 프로그램 전체를 주기억장치에 할당하여 사용하다 필요에 따라 다른 프로그램과 교체하는 기법
- 주기억장치 → 보조기억장치 : Swap Out
- 보고기억장치 → 주기억장치 : Swap In
- 하나의 사용자 프로그램이 완료될 때까지 교체 과정을 여러번 수행할 수 있음
- 가상기억장치의 페이징 기법으로 발전됨
2. 다중 분할 할당 기법
1) 고정 분할 할당 (Multiple contiguous Fixed parTition allocation, MFT) 기법 = 정적 할당 (Static Allocation) 기법
- 프로그램을 할당하기 전에 운영체제가 주기억장치의 사용자 영역을 여러 개의 고정된 크기로 분할하고 준비상태 큐에서 준비중인 프로그램을 각 영역에 할당하여 수행하는 기법
- 프로그램을 실행하려면 프로그램 전체가 주기억장치에 위치해야함
- 프로그램이 분할된 영역보다 커서 영역 안에 들어갈 수 없는 경우가 발생할 수 있음
- 일정한 크기의 분할 영역에 다양한 크리의 프로그램이 하당되므로 내부 단편화 및 외부 단편화가 발생하여 주기억장치의 낭비가 많음
- 내부 단편화 : 분할된 영역이 할당될 프로그램 크기보다 커서 할당된 후 사용되지 않고 남아 있는 빈 공간
- 외부 단편화 : 분할됭 영역이 할당될 프로그램 크기보다 작아서 할당될 수 없어 사용되지 않고 빈 공간으로 남아있는 분할된 전체 영역
- 실행할 프로그램의 크기를 미리 알고 있어야 함
- 다중 프로그래밍을 위해 사용되었으나 현재는 사용하지 않음

2) 가변 분할 할당 (Multiple contifuous Variable parTition allocation, MVT) 기법 = 동적 할당 (Dynamic Allocation) 기법
- 단편화를 줄이기 위한것
- 미리 주기억장치를 분할해 높는 것이 아니라 프로그램을 주기억장치에 적재하면서 필요한 만큼의 크기로 영역을 분할하는 기법
- 주기억장치를 효율적으로 사용 가능
- 다중 프로그래밍의 정도를 높일 수 있음
- 고정 분할 할당 기법에 비해 실행될 프로세스 크기에 대한 제약이 적음
- 단편화를 상당 부분 해결할 수 있으나 영역과 영역 사이에 단편화가 발생될 수 있음

📖 Reference
2023 시나공 정보처리기사 필기 : 네이버 도서
네이버 도서 상세정보를 제공합니다.
search.shopping.naver.com
728x90
반응형