본문 바로가기

프로그래밍 기초/운영체제14

메모리 단편화(Memory Fragmentation) 메모리 단편화(Memory Fragmentation)란? 주 기억장치에서 메모리의 공간이 작은 조각으로 나뉘어져서, 사용하기에 충분한 양의 메모리가 존재는 하지만 사실상 사용이 불가능한 경우 메모리 단편화가 발생했다고 한다. 메모리 단편화는 내부 단편화와 외부 단편화로 구분할 수 있다. 내부 단편화(Internal Fragmentation)필요한 양보다 더 큰 메모리가 할당이 되어서 할당 된 메모리 내부에 사용하는 메모리 공간 이외에 사용하지 않는 메모리 공간이 발생했을 때를 말한다. 외부 단편화(External Fragmentation)메모리가 할당이 되고 해제가 되는 작업이 반복될 때 작은 단위의 메모리가 띄엄띄엄 존재하게 되는데 빈 메모리의 전체 공간은 충분한 양이지만 실제로 사용할 수 없는 경우를.. 2017. 6. 19.
주 기억장치 - 2 단일 프로그래밍 시스템 시스템 내에 하나의 프로세스만 존재하는 것 문제점- 프로세스의 크기가 유저 영역보다 클 수 있다. (프로세스를 나누어서 사용)- 유저 영역에 놀다가 맘대로 커널영역으로 들어갈 수 있다. (경계 레지스터로 판별 가능)- 자원 낭비가 심하다. (성능 저하) 고정 분할 다중 프로그래밍 (FPM - Fixed Partition Multi-programming) - 기억장치 할당 중 가장 간단한 방법.- 기억 장치를 여러 개의 고정된 크기로 분할하는 것.- 경계 레지스터로 분할된 메모리의 경계를 구분한다.- 정적 분할 다중 프로그래밍이라고도 한다. * 결정해야 할 사항1. 분할 영역의 크기- 시스템의 부하를 분석하여, 어느 정도의 크기를 가진 영역을 몇 개 선정할 것인가를 결정2. 영역의 .. 2017. 6. 16.
주 기억장치 - 1 주 기억장치 구성 정책 1. 프로세스의 수- 단일 프로세스인가 다중 프로세스인가 2. 주 기억장치의 양(용량)- 동일하게 나눌 것인가(고정분할) 다르게 나눌 것인가(가변분할) 3. 각 프로세스에 할당 된 분할 영역의 교체 가능성- 자신에게 할당 된 영역만 사용할 것인가 자신에게 할당되지 않은 영역도 사용할 수 있을 것인가 4. 주 기억장치의 인접성- 주 기억장치의 할당 영역이 연속적인가 비 연속적인가 주 기억장치 관리 기법 1. 호출 기법- 생성된 프로세스에게 주 기억장치를 언제 할당할 것인가 2. 배치 기법- 프로세스에게 어떤 메모리 블록을 할당할 것인가 3. 교체 기법- 메모리블록이 꽉 차 있을 때 새로운 프로세스가 들어올 경우, 메모리 블록을 사용하고 있는 어떤 프로세스와 교체할 것인가 4. 할당 .. 2017. 6. 16.
프로세스 대기와 자원의 분류 프로세스 대기 다음은 프로세스 상태전이도의 일부를 확대한 그림이다. 프로세스가 Running 상태에 있다가 자원을 빼앗기거나 다른 자원이 필요한데 얻지 못하였을 경우에 시스템에 자원을 요청하고 Asleep 상태로 내려오게 된다. 용어 정리 자원형 ( Resource Type ) - 시스템 내에 존재하는 자원을 종류별로 구분한 것 단위 자원 ( Resource unit ) - 자원형에 존재하는 같은 종류의 자원을 개별적으로 지칭할 때 사용 자원의 분류 1. 선점 가능성에 의한 분류 - 선점 가능 : 프로세서, 메모리, 버스 - 선점 불가능 : 프린터 2. 할당 방식에 의한 분류 - 전체 할당 방식 : 프로세서, 버퍼 - 분할 할당 방식 : 메모리, 마우스 3. 할당 형태에 의한 분류 - 공유식 할당 : 프.. 2017. 6. 12.
교착상태(Deadlock) 발생 조건 및 해결 방법 지난 포스팅에서 프로세스 동기화와 더불어 교착상태에 대해 다뤘었다. 교착상태가 무엇인지 아직 헷갈리시는 분들은 이전 포스팅을 보고 오시길 바란다. 이번에는 교착상태의 발생 조건과 해결 방법에 대해서 알아보자. 교착상태(Deadlock) 발생 조건 교착상태는 아래의 네 가지 조건을 모두 동시에 충족할 때 발생한다. 1. 상호배제 (Mutual Exclusion)한 자원에 대한 여러 프로세스의 동시 접근 불가 2. 점유와 대기 (Hold and Wait)자원을 가지고 있는 상태에서 다른 프로세스가 사용하고 있는 자원의 반납을 기다리는 것 3. 비선점 (Non Preemptive)다른 프로세스의 자원을 강제로 가져올 수 없음 4. 환형대기(Circle wait)각 프로세스가 순환적으로 다음 프로세스가 요구하는.. 2017. 6. 9.