티스토리 뷰

반응형

약간의 순서가 잘못 되었지만 가상메모리에 대한 개념이 없을 때라고 가정한 내용이다.

 

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자체는..
반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함