In this project, you will learn the basics of threading a process and how to work on the same memory space. You will learn how to make threads. You will discover the mutex, semaphore and shared memory.

마이크로초(microsecond, μs)또는 마이크로세컨드는 백만 분의 1초를 가리키는 말
usleep 은 마이크로초 
usleep(1) = 1 / 100 0000 ( 1,000,000)
          = 0.000001
밀리초(millisecond, ms)는 천 분의 1초를 가리키는 말이다. 
(10−3 초와 10−2 초 사이)[1][2]

10 밀리초는 센티세컨드(centisecond)라고 한다.
100 밀리초는 데시세컨드(decisecond)라고 한다.

리눅스에서의 세마포어(2)

philo_two


sem_open함수는 POSIX 세마포어의 구분자로 동작하는 sem_t를 리턴한다.

이제부터 세마포어에 대한 동작이 이루어진다. 세마포어를 locking하는 방법은:

int sem_wait(sem_t *sem);

이 함수 호출은 세마포어 카운트가 0보다 큰 경우 세마포어를 lock한다. 세마포어를 locking한 후 카운트는 1만큼 감소한다. 세마포어 카운트가 0인 경우 함수 호출은 block된다.

세마포어를 unlocking하는 방법은

int sem_post(sem_t *sem);