22-12-08
복습
연속 메모리 할당
고정 분할 다중프로그래밍
- FPM
FPM 기법의 문제점 및 해결 방안
- 사용자 프로그램의 크기가 최대 분할 영역의 크기보다 큰 경우 => 중첩 구조
- 커널과 다른 프로세스들에게 할당된 분할 영역들에 대한 보호 필요
- 각 분할 영역마다 낭비되는 공간 발생
고정 분할 다중프로그래밍 기법 요약
주기억장치 공간을 미리 분할
Os 입장에서는 주기억장치 관리 용이
오버헤드 작음
시스템 자원의 낭비 초래 가능
가변 분할 다중프로그래밍
-
VPM
초기의 메모리는 사용자공간 전체를 하나의 블록으로 설정(사용자 / 커널 이렇게만 나눔)
사용자공간 분할형태를 동적으로 변화시킴
내부단편화가 발생하지 않아요. 그리고 연속 공간을 할당받음…
단점: 관리 오버헤드 증가…
가변 분할 다중프로그래밍의 주기억장치 할당 예
-
가정:
사용자 공간 크기: 120MB
나머지는 PDF를 보십쇼
근데 차곡차곡 할당하다가 (e) 적재 후엔 b에 있는 프로세스가 종료가 되는 걸 확인할 수 있을겁니다.
메모리에 빈 공간이 생겼어오 이런 상태에서 16MB 프로세스를 추가로 적재할 때, 어디에 적재할 것인가?
메모리 배치 기법에 따라 다르다.
메모리 배치 기법
-
최초 적합(first-fit)
첫 번째에 넣는다.
-
최적 적합(best-fit)
가장 자투리공간이 적은, 딱 맞는 곳에 넣는다.
-
최악 적합(worst-fit)
가장 큰, 널널한 곳에 넣는다.
-
순환 최초 적합(next-fit)
최초 적합과 유사하지만, 이전에 넣었던 곳부터 검사 시작.
VPM의 외부 단편화 문제 해결
-
통합 작업
인접한 분할 영역을 합병하여 큰 홀을 생성한다.
-
메모리 압축 작업
이거는 그냥 넘어간대요
버디 시스템
단편화 현상을 해결
큰 버퍼들을 반복적으로 이등분하여 작은 버퍼들을 만들고, 인접한 버퍼들을 합치는 과정 반복
기억장소교체(스와핑)
실행이 종료되지 않은 프로세스가 할당받은 기억장소를 중간에 반납받을 수 있도록 하는 기법
기존에 적재된 프로세스를 꺼내줘야지 새로운 프로세스를 적재할 수 있다는 거지
그래서 swap out-swap in으로 기억 장소를 교체
-
롤인, 롤아웃
-
스압 과정
주소 바인딩 방법에 따라 다름
-
스와핑 시간
효과적인 프로세스 사용을 위해선 각 프로세스에 대한 수행시간이 교체시간보다 길어야 함.
virtual memory의 근간이 되는 방법이라고 볼 수 있다.