티스토리 뷰
반응형
약간의 순서가 잘못 되었지만 가상메모리에 대한 개념이 없을 때라고 가정한 내용이다.
Swapping이란 ?
Process를 실행중 임시로 예비저장장치인 Disk로 Swap-out 했다가 다시 Memory로 Swap-in할 수 있도록 지원하는 기술이다. 이를 통해 다중 프로그래밍의 정도를 증가시킬 수 있다.
1) 이 예비저장장치는 User Memory Image를 저장할 수 있을만큼 커야한다.
2) 시스템은 Process Ready Queue가 있어야한다.
Swapping의 진행순서는 아래와 같다.
- CPU는 디스패처를 통해 Ready Queue에 있는 다음 Process를 메모리에 있는지 확인한다.
- 없으면 Disk에서 불러와야한다.
- 불러오려는데 메모리에 자리가 없다면 현재 메모리에 올라온 Process를 Swap-out한다.
- Disk에서 해당 Process를 Swap-in하고 해당 Process를 실행한다.
위 과정을 거치면서 걸리는 문맥교환시간이 상당하다.
Swap-out 하기 위해서는 해당 Process가 완전히 휴지 상태임을 확인해야한다.
특히 입/출력을 비동기적으로 하고 있는 Process.
이럴 경우, 입/출력이 종료되기 전까지 Swap-out을 하지 않는 방법과,
입/출력은 항상 Process가 하는 것이 아니라 OS의 버퍼를 통해서만 하는 방법이 있다.
현대 OS는 기본 스와핑을 하지않는다. 이유는 오래걸리는 문맥교환시간 때문이다.
그렇기 때문에 그에 따른 변형 스와핑 기법이 등장하게 되었다.
( 추가로 모바일은 Swapping 자체를 지원하지 않는다. )
- 평상시엔 Swapping을 하지 않다가 Memory가 임계치보다 적어지면 Swapping을 진행하는 형태.
시작할 때 가상메모리가 없을 때라고 했는데, 가상메모리가 존재해도 비슷한 느낌일 것 같다.. Swapping자체는..
반응형
'운영체제(OS)' 카테고리의 다른 글
[OS] Segmentation 기법 & Paging 기법. (0) | 2019.12.16 |
---|---|
[OS] Process를 Memory에 올리는 메모리할당. (Feat. 단편화) (0) | 2019.12.16 |
[OS] 페이지 교체(Page Replacement) (0) | 2019.12.16 |
[OS] Memory ( 가상메모리 ) (0) | 2019.12.16 |
[OS] Semaphore . ( feat. IPC, mutex ... ) (0) | 2019.12.03 |