티스토리 뷰

728x90

병행성(concurrency):

여러 개의 프로세스 혹은 스래드들이 동시에 실행되는 것

 

결정성(determinacy):

동일한 입력에 대한 프로세스 혹은 스래드의 실행 결과는 항상 일정하다. 하지만 상호 영향을 주고 받으면서 자원을 공유하고 병행적으로 실행될 경우 실행 결과가 달라질 수 있다. (=결정성이 보장되지 않는다.) 즉, 결정성 보장을 위한 운영체제의 기능이 요구된다.

 

 

 

생산자 프로세스: 데이터를 생산하여 공유버퍼에 저장한다.

소비자 프로세스: 공유 버퍼에 저장된 데이터를 가져와 소비한다.

- 두 프로세스는 상호 영향을 주고 받는다.

- 두 프로세스에 대한 결정성 보장이 요구됨. (동기화 필요)

 

 

 

경쟁 조건(race condition): 다수의 프로세스들이 공유 메모리를 병행적으로 접근할 때, 그 공유 메모리에 대한 접근이 발생하는 특별한 순서에 따라 프로세스들의 실행 결과가 달라질 수 있는 것.

 

 

ex) 프로세스는 비동기적으로 실행되므로, 생산자 프로세스에서 명령을 처리하는 도중에 소비자 프로세스로 문맥교환이 일어나는 원하는 결과값이 나오지 않는 경우

ex) 10개의 스래드가 공유 메모리를 사용하면서 병행적으로 실행되는 경우

 

-> 결정성이 보장되지 않음/경쟁 조건 발생/동기화 기법 요구

 

 

 

728x90
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함