학습 일지130 [OS] 페이징과 페이지 테이블 스와핑(swapping) 프로세스를 보조기억장치의 스왑영역으로 쫒아내고 당장 필요한 프로세스를 적재하는 메모리 관리 기법으로 프로세스의 전체 크기가 메모리보다 큰 상황에서도 프로세스를 동시에 실행시킬 수 있다는 장점이 있다. 스왑 아웃(swap-out) 프로세스를 보조기억장치 스왑영역으로 내쫒는 것 스왑 인(swap-in) 스왑 아웃된 프로세스를 메모리에 적재하는 것 스왑 영역 스왑 아웃된 프로세스가 적재되는 보조기억장치 영역 연속 메모리 할당 프로세스를 메모리에 연속적으로 배치하는 방식 연속 메모리 할당 방식은 외부 단편화라고하는 용량 낭비의 문제를 야기할 수 있다. 외부 단편화 : 프로세스들이 실행되고 종료되고 반복하면서 빈 공간이 생기는 메모리 낭비 현상. 해결방법으로 페이징이 있다 페이징 물리 메.. 2023. 9. 10. [OS] 교착상태와 해결 방법 교착상태(deadlock) 두 개 이상의 작업이 서로 상대방의 작업이 끝나기 만을 기다리고 있기 때문에 결과적으로 아무것도 완료되지 못하는 상태. 둘 이상의 프로세스나 스레드가 서로 필요한 자원을 얻지 못하고 무한히 대기하는 상태. 교착상태의 발생 조건 아래의 4가지 조건을 모두 만족했을 때 교착상태의 발생 가능성이 있다. 상호 배제 : 동시에 자원 사용이 불가능한 경우 점유와 대기 : 자원을 할당받을 채 다른 자원의 할당을 기다리는 경우 비선점 : 강제로 자원을 빼앗을 수 없는 경우 원형 대기 : 자원을 원형으로 대기할 경우 교착상태 해결 방법 교착상태 예방 교착상태 발생 조건 중 네가지 중 하나를 없애는 것 교착상태가 발생 배경 원천을 차단한다. 교착상태가 발생하지 않음을 보장할 수 있지만 여러 부작.. 2023. 9. 10. [OS] 조건 변수와 모니터 기존 동기화 도구의 문제점은 세마포어를 누락하거나, wait과 signal 순서를 햇갈린 경우 등 실수를 할 수 있다는 것이다. 이런 것들을 방지하기 위해서 사용이 간편한 동기화 도구를 모니터라고 한다.(입출력장치의 모니터가 아닌 동기화도구 모니터임) 모니터 공유 자원에 접근하기 위한 인터페이스를 분리해둔 방식 정해진 인터페이스를 통해서만 공유자원에 접근할 수 있도록 만들어둔다. 이를 통해 상호 배제가 보장된다. 실행 순서 제어를 위한 동기화를 위해 조건 변수를 사용한다. 조건 변수 현재 프로세스의 상태를 상황에 따라 변경할 수 있는 특별한 변수로 wait(), signal()연산이 가능한 변수다. wait() : 호출한 프로세스를 대기 상태로 전환 signal() : 호출한 프로세스를 깨움 조건변수를 .. 2023. 9. 9. [OS] 뮤텍스 락과 세마포어 동기화를 하기 위해서 지켜야 하는 3가지 원칙 상호 배제 : 한 프로세스가 임계 구역에 진입했다면 다른 프로세스는 대기해야함 진행 : 어떤 프로세스라도 임계 구역에 진입하지 않았다면 진입이 가능해야함 유한 대기 : 한 프로세스가 임계 구역에 진입하기 위해 대기하고 있다면 언젠가 진입이 가능해야 함 뮤텍스 락 : 상호 배제를 위한 동기화 도구 상호 배제를 위한 동기화 도구로 한번에 하나의 프로세스만 자원에 접근할 수 있도록 하는 락 메커니즘을 제공한다. 뮤텍스 락은 acquire 함수와 release 함수를 사용한다. 자물쇠 잠그기 역할을 하는 acquire 함수 락을 얻기 위해 호출되며 락을 얻을 때 까지 대기하거나 스핀한다. 락을 획득했다면 임계구역에 진입한다. 여기서 락을 얻을 때 까지, 반복적으로 .. 2023. 9. 9. 이전 1 ··· 12 13 14 15 16 17 18 ··· 33 다음