justgo_developer

병행성(concurrency) 본문

IT/운영체제

병행성(concurrency)

다날92 2018. 1. 2. 23:44
728x90
반응형

병행성(concurrency)

정의 : 여러개의 프로세스(또는 스레드)가 동시에 실행되는 시스템의 특성


병행 프로세스의 문제점

1. 프로세스간 동기화 문제

: 프로세스들이 공유 자원을 동시에 사용할 수 없게 프로세스끼리 순서를 맞춰서 임계구역에 입장해야한다.

2. 결정성 문제

: 프로세스의 실행순서에 따라 결과값이 달라져선 안된다.

3. 교착상태

: 문제점을 해결하지 못해 아무것도 못하는 상황

concurrency 관련 꼭 알아야 할 용어

** deadlock

: 교착상태/ 한정된 자원을 여러 곳에서 사용할때 발생/ 무한대기상태

** race condition

: 한정된 자원을 동시에 이용하려는 여러 프로세스가 서로 경쟁하는 상황

**starvation

: 기다리는 결과를 예방하기 위해 자원할당할때 발생하는 결과

**critical section

: source code 중 한 영역, shared resouce를  access하는 부분


**mutual exclusion

: process A가 critical section에 들어가 있다면,

다른 어떤 process도 그 critical section에 들어가면 안된다.

즉, critical section에는 한번에 하나의 process만이 들어갈 수 있다.


mutual exclusion을 보장하기 위한 필수 조건

1. critical section안에는 오직 하나의 프로세스만

2. critical section에 있지 않은 process는 다른 process의 동작을 방해해서는 안된다.

3. Deadlock이나 Starvation을 방치해서는 안된다.

4. critical section이 비어있다면, critical section에 들어가려고 하는 프로세스는 바로 들어갈 수 있어야 한다.

5. 프로세스 속도나 프로세스 개수와 관련된 가정이 있어서는 안된다.

6. critical section에 들어가서 무한히 머물 수는 없다.

728x90
반응형

'IT > 운영체제' 카테고리의 다른 글

교착상태(Deadlock)  (0) 2018.01.06
세마포어(Semaphore)  (0) 2018.01.03
스레드(Thread)  (0) 2018.01.02
Process Switching vs Mode Switching  (0) 2017.12.30
프로세스(Process)  (0) 2017.12.30