목록CS/OS (4)
Arthur's Blog
소프트웨어를 이용한 해결방법의 문제점 다중 스레드 또는 임계영역보다 복잡한 문제로 일반화하기가 쉽지 않음. 이를 위해 세마포어사용. 특히 원자적 연산에 대한 하드웨어 지원이 가능한 경우 효과적인 모니터사용. 세마포어 연산(P연산, V연산), 모니터 연산 3. 세마포어(Semaphores) 1. 세마포어 개요 세마포어 개요 동기화를 위한 도구 음이 아닌 정수값을 갖는 플래그 변수 다익스트라가 상호배제를 극복하기 위해 제안 세마포어의 유명한 예 : 열차 진행 여부를 알리는 차단기 세마포어 연산 세마포어 변수 1. 카운팅 세마포어 (Counting Semaphore) S의 크기 : 총 사용 가능한 자원의 갯수 S는 자원의 개수로 초기화 됨 S의 범위는 한정되어 있지 않음 2. 이진 세마포어 (Binary Se..
1. 상호배제와 동기화 상호배제(Mutual Exclusion) 특정 공유자원을 한 순간에 한 개의 프로세스만 사용할 수 있는 경우 프로세스 하나가 데이터에 접근하는 동안 다른 프로세스가 해당 데이터를 접근할 수 없게 하는 것 동기화(Synchronous) 공유자원을 동시에 사용하지 못하게 프로세스들이 상호 협력하면서 수행하는 것 순차적 재사용이 가능한 자원의 공유를 위해 질서 있는 실행을 보장하고 데이터 일관성 유지해줌 경쟁상태(Race Condition) - 여러 개의 서로 다른 프로세스가 동일한 자료에 접근, 자료를 조작하여 그 결과가 접근 순서에 따라 달라지는 상황 => 동기화 필요 => 임계영역을 이용한 상호배제로 구현 2. 프로세스 동기화 임계영역(critical section, CS) 개념 ..
병행프로세스란? 병행프로세스 개념 프로세스들이 독립적으로 작업을 수행하거나 또는 다른 프로세스와 협력하며 특정 기능 수행 상호작용 필요 - 제한된 자원을 공유하지 위해서는 프로세스는 서로 동기화되어야 함 비동기 병행 프로세스 : (비동기) 다른 프로세스들의 진행상태를 전혀 모르고 각기 독립적으로 수행하면서 (병행) 다수의 프로세스들이 동시에 존재하며 공유자원에 접근할 수 있는 프로세스 -> 프로세스들이 동시에 자원 및 데이터에 접근할 수 있으므로 동기화 알고리즘이 필요 병행프로세스 과제 공유자원을 서로 베타적으로 사용 병행프로세스 사이에는 협력 또는 동기화가 이루어져야 한다. 두 프로세스 사이에는 데이터 교환을 위한 통신이 이루어져야 한다. 프로세스는 동시에 실행되는 프로세스의 속도와 관계없이 일정한 실..
1. 교착상태란? 둘 이상의 프로세스들이 다른 프로세스가 차지하고 있는 자원을 서로 무한정 기다리고 있어 프로세스의 진행이 중단된 상태를 의미한다. 1. 교착상태의 필수 조건 상호 배제(mutual exclusion) 조건 : 프로세스들이 그들이 필요로 하는 자원에 대해 베타적인 통제권을 요구하는 것으로, 한 프로세스가 사용 중이면 다른 프로세스는 반드시 기다려야 하는 경우이다. -> 동시 사용 불가 점유와 대기(hold and wait) 조건 : 프로세스가 적어도 하나 이상의 자원을 할당받은 채로 다른 프로세스의 자원이 해제되기를 기다리는 경우이다. 비선점 조건(nonpreemption) : 프로세스가 점유한 자원은 사용이 끝날 때까지 해제할 수 없는 경우이다. 환형 대기 조건(circular wait..