본문 바로가기
반응형

반도체 그 다음 학문73

운영체제 LRU ( Least Recently Used, FIFO, Belady's Anomaly, Page and Frame Replacement Alogorithms ) Page and Frame Replacement Alogorithms page fault가 발생했을 때 빈 frame을 찾아서 할당해야 하는데 만약 빈 frame이 없다면 하나의 frame을 선택하여 page out 시켜야 한다. 이때 어느 frame을 선택할지에 대한 알고리즘을 알아볼 것이다. 가장 최적의 알고리즘 ( Optimal Algorithm )은 오랫동안 사용되지 않을 page를 선택하여 page out 시키는 것이다. 예를 들어 논리 메모리에 "7012030....."처럼 연속적으로 할당돼 있는데 물리 메모리는 3개의 frame만 할당했을 때 어떻게 동작하는지 보자. 처음 3개는 빈 frame을 채우기 위해 할당하고, "2"부터 알고리즘을 통해 page out 시킬 frame을 찾는다. 가령.. 2022. 6. 7.
운영체제 Deadlock Detection (Deadlock 해결방법, 하드웨어 Deadlock) Deadlock 처리 deadlock을 처리하는 방법으로는 3가지 정도 볼 수 있다. 1. Deadlcok Prevention 2. Deadlcok Avoidance 3. Detection and recovery 그중에 Detection and recovery에 대해 알아보자 Deadlock Detection 간단하다 Deadlock을 허용하고 그다음에 찾으라는 것이다. 찾는 방법은 Deadlock Avoidance을 이용하여 찾는데 이때 문제는 얼마나 자주 찾을 것인가?이다. 어떤 요청이 있을 때마다 찾자니 높은 overhead가 생길 것이고, 오랜 시간 응답이 오지 않거나 실행되지 않는 프로세스가 있을 때 찾는다면 찾기가 너무 어렵고 Deadlock은 점점 퍼져 나가기 때문에 쉽지 않다. 또한 일정 .. 2022. 5. 19.
운영체제 Deadlock Avoidance ( 은행원 알고리즘, Banker's Algorithm, Safety Algorithm, Resource-Request Algorithm ) Deadlock 처리 deadlock을 처리하는 방법으로는 3가지 정도 볼 수 있다. 1. Deadlcok Prevention 2. Deadlcok Avoidance 3. Detection and recovery 그중에 Deadlock Avoidance에 대해 알아보자 Deadlock Avoidance Prevention과 마찬가지로 criculer wait를 무효화하는 방법이다. 하지만 다른 점이라면 자원의 상태(state)를 판단하여 할당할지 안 할지를 판단한다. 이때 상태라고 함은 3가지 상태를 판단한다. 1. the number of available ( 사용 가능한 자원의 수 ) 2. allocated resources ( 할당된 자원의 수 ) 3. the maximum demands of th.. 2022. 5. 19.
운영체제 Deadlcok Prevention Deadlock 처리 deadlock을 처리하는 방법으로는 3가지 정도 볼 수 있다. 1. Deadlcok Prevention 2. Deadlcok Avoidance 3. Detection and recovery 그중에 Deadlcok Prevention에 대해 알아보자 Deadlcok Prevention Deadlock에 빠지는 4가지 조건 중 하나라도 성립하지 않게 하는 것이다. 첫째로, Mutual Exclusion을 무효화하기 위해선 모든 자원을 공유 자원으로 변경하는 방법이 있다. 하지만 공유 자원으로 사용할 수 없는 것들이 있기 때문에 불가능하다. 둘째로, Hold and Wait를 무효화하기 위해 프로세스를 실행시키기 위해 필요한 자원을 미리 다 확보하면 그때 동작하는 방법이 있다. 하지만 .. 2022. 5. 19.
운영체제 Deadlock (발생 원인, 조건, Mutual exclusion, Hold and wait, Circular wait ) Deadlock Deadlock이란 이미 다른 프로세스에 할당된 resource를 얻기 위해 다른 프로세스들이 대기하는데 이 대기시간이 무제한일 때를 의미한다. 간단한 예를 들어보자, - resource1과 resource2는 하나의 프로세스에게만 할당될 수 있다. - 각각 프로세스1과 프로세스2는 자원 1과 자원 2가 있어야 동작할 수 있다. - 프로세스1은 resource1을 가지고 있다. - 프로세스2는 resource2를 가지고 있다. 이런 상황을 deadlock이라고 한다. 즉 교착상태로 이러지도 저러지도 못하는 상황이다. resource1을 얻기 위해선 프로세스 1이 내놔야 하는데 그러기 위해선 resource2가 필요하고 프로세스2도 마찬가지다. 프로세스는 resource을 3단계로 처리한다.. 2022. 5. 19.