Computer Science/Operating System(OS)19 Deadlock-데드락 Deadlock (=교착상태) 더 이상 방법이 없는 상황 일련의 프로세스들이 각자 갖고 있는 자원을 놓지 않고 상대방이 가진 자원을 요구하는 상태 The Deadlock Problem Deadlock 일련의 프로세스들이 서로가 가진 자원을 기다리며 block 된 상태 Resource(자원) 하드웨어, 소프트웨어 등을 포함하는 개념 ex) I/O device, CPU cycle, memory space, semaphore 등 프로세스가 자원을 사용하는 절차 Request, Allocate, Use, Release Deadlock Example 1 시스템에 2개의 tape drive가 있다. 프로세스 P1과 P2 각각이 하나의 tape drive를 보유한 채 다른 하나를 기다리고 있다. Deadlock Ex.. 2022. 3. 17. Process Synchronization(3)-프로세스 동기화 Classical Problems of Synchronization Bounded-Buffer Problem (Producer-Consumer Problem) Readers and Writers Problem Dining-Philosophers Problem Bounded-Buffer Problem (Producer-Consumer Problem) Buffer가 유한한 환경에서 생산자-소비자 문제 생산자 프로세스와 소비자 프로세스는 여러 개가 존재 Shared data buffer 자체 및 buffer 조작 변수(empty/full buffer의 시작 위치) Synchronization variables mutual exclusion Need binary semaphore (shared data의 mut.. 2022. 3. 16. Process Synchronization(2)-프로세스 동기화 Initial Attempts to Solve Problem 두 개의 프로세스가 있다고 가정 P0, P1 프로세스들의 일반적인 구조 do{ entry section critical section exit section remainder section }while(1); 프로세스들은 수행의 동기화(Synchronize)를 위해 몇몇 변수를 공유할 수 있다 → synchronization variable 프로그램적 해결법의 충족 조건 *가정 모든 프로세스의 수행 속도는 0보다 크다. 프로세스들 간의 상대적인 수행 속도는 가정하지 않는다. 상호 배제 (Mutual Exclusion) 프로세스 Pi가 critical section 부분을 수행 중이면 다른 모든 프로세스들은 그들의 critical section에.. 2022. 3. 16. Process Synchronization(1)-프로세스 동기화 데이터의 접근 컴퓨터 시스템 안에서 데이터가 접근되는 패턴(1-2-3-4) Race Condition(경쟁상태) 두 개 이상의 프로세스가 공통 자원을 병행적으로(concurrently) 읽거나 쓰는 동작을 할 때, 공용 데이터에 대한 접근이 어떤 순서로 이루어졌는지에 따라 그 실행 결과가 같지 않고 달라지는 상황을 말한다. Race의 뜻 그대로, 간단히 말하면 경쟁하는 상태, 즉 두 개의 프로세스(스레드)가 하나의 자원을 놓고 서로 사용하려고 경쟁하는 상황을 말한다. 데이터의 최종 연산 결과는 마지막에 그 데이터를 다룬 프로세스에 따라 달라진다. 프로세스는 일반적인 경우, 자기 주소 공간만 접근하기 때문에 Race Condition이 발생할 일이 없음. OS에서 발생하는 Race Condition Ker.. 2022. 3. 11. 이전 1 2 3 4 5 다음