2024/08/17 2

교착상태 / 기아상태

교착상태 (Deadlock)운영체제에서 교착상태란, 시스템 자원에 대한 요구가 뒤엉킨 상태이다.즉, 둘 이상의 프로세스가 다른 프로세스가 점유하고 있는 자원을 서로 기다릴 때 무한 대기에 빠지는 상황을 말한다.프로세스는 자원 요청->자원사용->자원해제 순서로 동작한다. 사실 초기에 일괄 처리 시스템에서는 교착상태가 자주 발생하지 않았지만, 시스템 효율성을 증가시키고 제한된 자원의 사용률을 높이기 위해 사용하는 병행 처리 기술과 자원 공유 기술의 부작용으로 교착상태가 자주 발생하게 된 것이다.  교착상태의 발생조건1. 상호 배제 -  한 번에 프로세스 하나만 해당 자원을 사용할 수 있다. 사용 중인 자원을 다른 프로세스가 사용하려면 요청한 자원이 해제될 때까지 기다려야 한다.2. 점유와 대기 - 자원을 최..

운영체제 2024.08.17

경쟁상태(Race Condition)

경쟁상태(Race Condition)란?- 두 개 이상의 프로세스가 공통 자원을 병행적으로(concurrently) 읽거나 쓰는 동작을 할 때, 공용 데이터에 대한 접근이 어떤 순서에 따라 이루어 졌는지에 따라 그 실행 결과가 달라지는 상황을 말한다. Race의 뜻 그대로, 간단히 말하면 경쟁하는 상태, 즉 두 개의 스레드가 하나의 자원을 놓고 서로 사용하려고 경쟁하는 상황을 말한다.  경쟁상태가 발생하는 경우커널 작업을 수행하는 중에 인터럽트 발생문제점 : 커널모드에서 데이터를 로드하여 작업을 수행하다가 인터럽트가 발생하여 같은 데이터를 조작하는 경우해결법 : 커널모드에서 작업을 수행하는 동안, 인터럽트를 disable시켜 CPU제어권을 가져가지 못하도록 한다.프로세스가 'System call'을 하여..

운영체제 2024.08.17