단편화는 분할된 주기억장치에 프로그램을 할당하고 반납하는 과정을 반복하면서

사용되지 않고 남는 기억장치의 빈 공간 조각을 의미하며, 내부 단편화와 외부 단편화가 있다.






내부 단편화

 - 분할된 영역이 할당될 프로그램 크기보다 크기 때문에 

프로그램이 할당된 후 사용되지 않고 남아 있는 빈 공간


프로그램 크기 < 분할된 영역

내부 단편화 = 분할된 영역 - 프로그램 크기








외부 단편화

 - 분할된 영역이 할당될 프로그램의 크기보다 작기 때문에 프로그램이 

할당될 수 없어 사용되지 않고 빈 공간으로 남아 있는 분할된 전체 영역


프로그램 크기 > 분할된 영역

외부 단편화 = 분할된 영역








단편화 해결 방법


통합(Coalescing) 기법

 - 주기억장치 내에 인접해 있는 단편화된 공간을 하나의 공간으로 통합

 - 주기억 장치에 빈 공간이 발생할 경우 이 빈 공간이 다른 빈 공간과 

인접되어 있는지 점검한 후 결합하여 사용


압축(Compaction) 기법

 - 주기억장치 내에 분산되어 있는 단편화된 빈 공간을 결합하여 하나의 

큰 가용 공간을 만드는 작업. 집약, Garbage Collection이라고도 한다.

 -  여러 위치에 분산된 단편화된 공간을 주기억장치의 한 쪽 끝으로 옮겨서 큰 가용 공간을 만든다.

 - 압축이 실행되는 동안 시스템은 모든 일을 일시 중단한다.

'ComputerScience > OperatingSystem' 카테고리의 다른 글

페이지 교체 알고리즘  (0) 2017.10.16
가상기억장치 구현 기법  (0) 2017.10.16
주기억장치 할당 기법 - 연속 할당 기법  (0) 2017.10.16
교착상태  (0) 2017.10.16
병행 프로세스와 상호 배제  (0) 2017.10.11

주기억장치 할당 기법

주기억장치 할당 기법은 프로그램이나 데이터를 실행시키기 위해 

주기억장치에 어떻게 할당할 것인지에 대한 내용이다.


연속 할당 기법

프로그램을 주기억장치에 연속으로 할당하는 기법으로,

단일 분할 할당 기법과 다중 분할 할당 기법이 있다.






단일 분할 할당 기법

 - 단일 할당 기법은 주기억장치를 운영체제 영역과 사용자 영역으로 나누어 한 순간에는

오직 한 명의 사용자만이 주기억자치의 사용자 영역을 사용하는 기법이다.

 - 가장 단순한 기법으로 초기의 운영체제에서 많이 사용하던 기법이다.


오버레이 기법

 - 오버레이 기법은 주기억장치보다 큰 사용자 프로그램을 실행하기 위한 기법이다.

 - 보조기억장치에 저장된 하나의 프로그램을 여러 개의 조각으로 분할한 후 필요한

조각을 차례로 주기억장치에 적재하여 프로그램을 실행한다.


스와핑 기법

 - 스와핑 기법은 하나의 프로그램 전체를 주기억장치에 할당하여 사용하다 필요에 따라 

다른 프로그램과 교체하는 기법이다.









다중 분할 할당 기법


고정 분할 할당 기법

 - 고정 분할 할당은 프로그램을 할당하기 전에 운영체제가 주기억장치의 사용자 영역을

여러 개의 고정된 크기로 분할하고 준비상태 큐에서 준비중인 프로그램을 각 영역에 

할당하여 수행하는 기법이다.


가변 분할 할당 기법

 - 고정 분할 할당 기법의 단편화를 줄이기 위한 것으로, 미리 주기억장치를 분할해 놓는 것이 

아니라 프로그램을 주기억장치에 적재하면서 필요한 만큼의 크기로 영역을 분할하는 기법이다.

'ComputerScience > OperatingSystem' 카테고리의 다른 글

가상기억장치 구현 기법  (0) 2017.10.16
단편화  (0) 2017.10.16
교착상태  (0) 2017.10.16
병행 프로세스와 상호 배제  (0) 2017.10.11
프로세서 스케줄  (0) 2017.10.10


상호 배제에 의해 나타나는 문제점으로, 둘 이상의 프로세스들이 자원을 점유한 상태에서 

서로 다른 프로세스가 점유하고 있는 자원을 요구하며 무한정 기다리는 현상






교착상태 발생의 필요 충분 조건


상호배제(Mutual Exclusion)

 - 한 번에 한 개의 프로세스만이 공유 자원을 사용할 수 있어야 한다.


점유와 대기(Hold and Wait)

 - 최소한 하나의 자원을 점유하고 있으면서 다른 프로세스에 할당되어 

사용되고 있는 자원을 추가로 점유하기 위해 대기하는 프로세스가 있어야 한다.


비선점(Non-preemption)

 - 다른 프로세스에 할당된 자원은 사용이 끝날 때까지 강제로 빼앗을 수 없어야한다.


환형 대기(Circular Wait)

 - 공유 자우너과 공유 자원을 상요하기 위해 대기하는 프로세스들이 원형으로 구성되어 있어 

자신에게 할당된 자원을 점유하면서 앞이나 뒤에 있는 프로세스의 자원을 요구해야 한다.








교착 상태 해결 방법


예방 기법

 - 교착상태 발생의 4가지 조건 중에서 하나를 제거

 - 상호 배제 부정

 - 점유와 대기 부정

 - 비선점 부정

 - 환형 대기 부정


회피 기법

 - 교착 상태가 발생할 가능성을 배제하지 않고, 교착 상태가 발생하면 적절히 피해나가는 방법

 - 다익스트라가 제안한 은행원 알고리즘을 사용


발견 기법

 - 교착 상태가 발생했는지 점검하여 교착 상태에 있는 프로세스와 자원을 발견하는 것으로, 

자원 할당 그래프 등을 사용함


회복 기법

 - 교착 상태를 일으킨 프로세스를 종료하거나 교착 상태의 프로세스에 할당된 자원을 선점하여 

'프로세사나 자원을 회복하는 것




'ComputerScience > OperatingSystem' 카테고리의 다른 글

단편화  (0) 2017.10.16
주기억장치 할당 기법 - 연속 할당 기법  (0) 2017.10.16
병행 프로세스와 상호 배제  (0) 2017.10.11
프로세서 스케줄  (0) 2017.10.10
프로세스  (0) 2017.10.10

+ Recent posts