분류 전체보기
-
세그먼테이션운영체제/메모리 관리 전략 2018. 2. 4. 15:55
프로그래머가 인지하는 메모리의 모습을 실제 물리 메모리의 모습으로 변환해주는 메모리 기법을 제공한다. 기본 방법 프로그램은 세그먼트들의 집합이다. 세그먼트의 길이는 다양하며 각 세그먼트의 길이는 프로그램의 목적에 따라 자동적으로 결정된다. 세그먼테이션은 프로그래머가 생각하는 모양을 그대로 지원하는 메모리 관리 기법이다. 프로그래머는 모든 주소를 세그먼트 이름과 오프셋의 두 부분으로 나누어 명기한다. C 컴파일러가 만들어 내는 세그먼트 코드, 전역 변수, 힙, 스택, 표준 C 라이브러리 하드웨어 사용자가 정의한 -이차원 주소는 일차원의 실제 주소로 사상 된다. 이 사상은 세그먼트 테이블에 의해 이루어진다. 세그먼트 테이블들의 각 항목은 세그먼트의 기준과 한계를 가지고 있다. 세그먼트 기준은 세그먼트의 시작..
-
연속 메모리 할당운영체제/메모리 관리 전략 2018. 2. 4. 15:51
주 메모리는 사용자 프로세스들도 수용해야 하고 효율적으로 관리되어야 한다. 메모리는 일반적으로 두 개의 부분으로 나누어 지는데 하나는 메모리에 상주하는 운영체제를 위한 것이고 하나는 사용자 프로세스를 위한 것이다. 연속 메모리 할당 시스템에서 각 프로세스는 연속된 하나의 메모리 영역을 차지하게 된다. 메모리 보호 프로세스가 자신이 소유하지 않은 메모리를 접근할 수 없게 하기 위해서 상한 레지스터와 재 배치 레지스터를 사용한다. 여기서 재배치 레지스터를 사용함 으로서 운영체제의 크기는 실행 중이라도 얼마든지 변경될 수 있다. 운영체제 중 필요에 따라 메모리로 올라오기도 하고 지워지기도 하는 부분을 일시적 운영체제 코드 라고 한다. 이러한 기능을 최대한 활용하면 전체 운영체제의 크기는 매우 작아질 수 있다...
-
스와핑운영체제/메모리 관리 전략 2018. 2. 4. 15:46
프로세스는 실행 도중에 임시로 보조 저장장치로 내보내어졌다가 다시 메모리로 돌아올 수 있다. 모든 프로세스의 크기의 총합이 실제 물리 메모리 크기보다 큰 경우에도 스와핑을 이용하면 동시에 실행하는 것이 가능하게 되어 다중 프로그래밍의 정도를 증가시킨다. 기본 스와핑기본 스와핑은 메인 메모리와 예비 저장장치 사이에서 프로세스를 이동시킨다.이런 스와핑 시스템에 경우 문맥 교환 시간이 상당히 오래 걸린다. 스와핑에는 제약이 따르는데 한 프로세스를 스왑 하기를 원한다면 그 프로세스는 완전히 휴지 상태에 있음을 확인해야 한다.프로세스가 입출력 장치에 어떤 신호를 주고받는 동안이라면 그 동안은 스왑 하면 안된다.이러한 문제의 해결책은 두 가지가 있다. 입출력이 종료되지 않은 프로세스를 스왑 하지 말거나 입출력은 항..
-
배경운영체제/메모리 관리 전략 2018. 2. 4. 15:44
메모리는 각각 주소가 할당된 일련의 바이트로 구성된다.CPU는 PC가 지시한 메모리주소로부터 명령어를 가져와 수행한다. 기본 하드웨어각각의 프로세스들은 독립된 메모리 공간을 가진다.특정 프로세스만 접근할 수 있는 합법적인 메모리 주소 영역을 설정하고 프로세스가 합법적인 영역만을 접근하도록 보호하는 것이 필요하다. 메모리 공간의 보호는 base 레지스터와 limit 레지스터를 사용한다.기준 레지스터는 가장 작은 합법적 물리 메모리 주소의 값을 저장하고 상한 레지스터는 주어진 영역의 크기를 저장한다. 주소의 할당프로그램이 실행되기 위해서는 주 메모리로 올라와 프로세스가 되어야 한다.사용하는 메모리 관리 기법에 따라 프로세스는 디스크와 주 메모리 사이를 왔다갔다 할 수 있다.디스크에서 주 메모리로 들어오기를 ..
-
교착상태로부터 회복운영체제/교착상태 2018. 2. 4. 15:02
탐지 알고리즘이 교착상태가 존재한다고 결정하면 운영자가 수작업으로 처리하는 방법과 시스템이 자동으로 교착상태로부터 회복하게 하는 방법이 있다. 교착상태에서 회복 시키는 방법 순환 대기를 깨트리기 위해 단순히 한 개 이상의 프로세스들을 중지시키는 것 교착상태에 있는 하나 이상의 프로세스들로 부터 자원을 선점하는 것 프로세스 종료 교착상태 발생시 문제가 되는 프로세스를 종료함으로써 교착 상태를 해결한다. 종료 방법에는 교착상태 에 연루되어 있는 모든 프로세스를 종료하는 방법과 교착 상태가 없어질 때까지 하나씩 종료하는 방법이 있다. 어느 프로세스를 종료할지 결정하는 요인 프로세스의 우선순위 프로세스의 남은 시간과 수행된 시간 프로세스가 사용한 자원의 타입과 수 프로세스 종료까지 필요한 자원의 수 종료되어야 ..
-
교착상태 탐지운영체제/교착상태 2018. 2. 4. 15:01
교착상태 발생이 가능한 시스템에서 지원해야할 것교착상태가 발생했는지 결정하기 위해 시스템의 상태를 결정하는 알고리즘교착상태로부터 회복하는 알고리즘 교착상태 탐지 시 실행 시간이 소요되며 교착 상태로부터 회복할 때는 오버헤드가 발생한다. 각 자원 타입이 한 개씩 있는 경우모든 자원들이 한 개의 인스턴스만 가진다면 대기 그래프를 사용해 교착상태를 탐지할 수 있다대기 그래프가 사이클을 포함하는 경우에만 시스템에 교착 상태가 존재하므로 주기적으로 그래프에서 사이클을 조사하여 교착상태를 탐지한다.그래프에서 사이클을 탐지하는 알고리즘은 O(n^2)의 연산을 요구한다. 여기서 n은 정점의 수이다. 각 타입의 자원을 여러 개 가진 경우각 자원이 복수의 인스턴스를 가질 경우 은행원 알고리즘에서 설명한 안전성 검사 알고리..
-
교착상태 회피운영체제/교착상태 2018. 2. 4. 14:58
교착 상태 회피 방법은 자원이 어떻게 요청될 지에 대한 정보를 미리 파악하여시스템이 불 안전 상태로 진입하지 않도록 하는 것이다. 안전 상태시스템이 프로세스들이 요청하는 모든 자원을 어떤 순서로든 교착 상태를 야기시키지 않고 차례로 모두 할당해 줄 수 있는 상황을 안전 상태라고 한다. 모든 프로세스들을 무사히 마칠 수 있는 순서를 찾을 수 없으면 불안전 하다고 한다. 단일 인스턴스 자원 유형 에서는 자원 할당 그래프 알고리즘을 사용하고다중 인스턴스 자원 유형 에서는 은행원 알고리즘을 사용한다. 예를 들어 시스템이 이러한 상태일 때 최대 자원 12 최대 소요량 현재 사용량 P0 10 5 P1 4 2 P2 9 2 P1 - P0 -P2 순서로 자원을 할당 해 주는 것이 안전 순서이다. 안전 순서시스템이 프로세..
-
교착상태 예방운영체제/교착상태 2018. 2. 4. 14:55
교착 상태가 발생하기 위한 네 가지 조건 중 최소한 하나가 성립하지 않도록 보장함으로써 교착상태의 발생을 예방할 수 있다. 단점 : 자원의 낭비가 심함 예방 방법 상호 배제 : 여러 개의 프로세스가 공유 자원을 사용할 수 있게 한다. 점유 대기 : 프로세스가 실행되기 전 모든 자원을 할당해 준다. 비 선점 : 자원을 점유하고 있는 프로세스가 다른 자원을 요구 할 때 자신이 점유한 자원을 반납하고 다른 자원을 기다리도록 한다. 순환 대기 : 자원에 고유한 번호를 할당하고 번호 순서대로 자원을 요구하도록 한다.
-
교착상태의 특징운영체제/교착상태 2018. 2. 4. 14:51
필요 조건들교착 상태는 한 시스템 내에서 다음에 네 가지 조건이 동시에 성립할 때 발생한다.따라서 네 가지 조건 중 하나라도 성립하지 않도록 만든다면 교착상태를 해결할 수 있다. 상호 배제 : 자원은 한 번에 한 프로세스만이 사용할 수 있어야 한다. 점유 대기 : 최소 하나의 자원을 점유하고 있으면서 다른 프로세스에게 할당되어 사용되고 있는 자원을 추가로 점유하기 위해 대기하는 프로세스가 있어야 한다. 비 선점 : 다른 프로세스에게 할당된 자원은 사용이 끝날 때 까지 빼앗을 수 없어야 한다. 순환 대기 : P1은 자원을 점유하고 있으면서 P2 의 자원을 요구하고P2도 자원을 점유하고 있으면서 P1의 자원을 요구해야 한다. 자원 할당 그래프프로세스와 자원의 요청 및 할당 관계를 표시한다.순환 대기 조건을 ..