본문 바로가기

반응형

동기화

스레드 동기화 reference. 캄란 아미니 - 전문가를 위한 C [POSIX 뮤텍스]- pthread 라이브러리에 도입된 뮤텍스는 프로세스 및 스레드를 동기화하는 데 상요할 수 있다. 뮤텍스는 한 번에 하나의 스레드만 임계 구역에 들어갈 수 있도록 허용하는 세마포어이다. 일반적으로 세마포어는 자신의 임계 구역에 하나 이상의 스레드를 허용할 수 있다. ------------------------------------------------------------------------[ 여담 ]------------------------------------------------------------------------ 뮤텍스는 이진 세마포어라고도 불린다. 이유는 단 두가지 상태만 받는 세마포어이기 때문이다. 그러나 엄.. 더보기
POSIX 동시성 reference. 캄란 아미니 - 전문가를 위한 C 동시성 또는 다중 작업은 OS 의 커널에서 제공하는 기능이다. 모든 커널이 처음부터 동시적인 것은 아니었지만, 오늘날 대부분은 동시성을 지원한다. UNIX 의 첫 번째 버전은 동시적이지 않았지만 탄생 직후에 이 기능을 갖추게 되었다. POSIX 호환 OS의 동시성은 일반적으로 두 가지 방식으로 제공된다. 동시 프로그램은 멀티 프로세싱(multiprocessing)이라고 하는 서로 다른 프로세스로 실행하거나 멀티스레딩(multithreading) 이라고 하는 동일한 프로세스에 있는 서로 다른 스레드로 실행할 수 있다.  [동시성을 지원하는 커널]- 오늘날 개발되고 유지되는 거의 모든 커널은 다중 작업을 한다. 모든 커널은 실행 중인 여러 프로세스 및 스.. 더보기
동기화2 reference. 캄란 아미니 - 전문가를 위한 C [동시성 문제]- 동시성 문제는 동시성 제어 메커니즘이 없을 때만 존재할 수도 있고, 동시성 제어 기술을 사용해서 발생할 수도 있다. 동시성 제어 메커니즘이 없는 경우 - 서로 다른 인터리빙이 전체 상태를 다르게 만들 때 동시성 문제가 발생한다.(고유한 동시성 문제(intrinsic concurrency) - 제어(동기화) 메커니즘이 없는 동시 시스템에서 발생하는 문제) 전체상태, 인터리빙 간단 설명 -> 동시성 (tistory.com) 고유하다고 하는 이유는 이 문제가 모든 동시 시스템에 본질적으로 존재하기 때문이다. 이 문제는 피할 수 없으며 제어 메커니즘을 이용해 다루어야 한다. 어떤 의미로는 이것이 동시 시스템의 문제라기보다는 동시 시스템의 속.. 더보기
프로세스 동기화 [프로세스 동기화]- 동시 다발적으로 실행되는 프로세스들이 서로 협력하여 영향을 주고 받는 과정에서 자원의 일관성을 보장(동기화)해주는 행위(스레드도 포함 가능) [동기화(Synchronization)]- 프로세스들의 수행 시기를 맞추는 것으로 실행 순서를 제어하고, 상호 배제가 있다 실행 순서 제어 - 프로세스를 올바른 순서대로 실행하기  위의 그림에서 Reader 와 Writer 프로세스는 실행의 순서가 있기 때문에 아무렇게나 실행되어선 안된다.Reader 프로세스는 Book.txt 안에 값이 존재해야 읽을 수 있는 조건이 있기 때문에 이 조건이 만족되어야 실행 가능하기 때문이다.즉, Write 로 쓰여 있어야 Reader 로 읽을 수 있다는 것이다.  상호 배제 - 동시에 접근해서는 안되는 자원에 .. 더보기

반응형