프로세스는 자원들을 담고있다고하네? 그냥 스레드랑 라이브러리 메모리들을 데이터를 가지고있는 리소스 들을 담고있는 것이라고합니다.?
스레드는 뭘까? 5
그냥 페이지 보라 귀찮다.
스레드는 코드를 실행해준다.
프로세스가 가지고있는 자원을 이용해서.... 이렇게 표현한다.
프로세스 생성
fork
부모자식 프로세스 하는거
exec
내코드아닌 다른 바이너리 실행
spawn
위는 posix 표준인데 이놈은 아님 사실 잘모르겠음 써보고 느껴야지
프로세스 죽을때?
SIGCHID가 날라간다.
wait를 통해 메모리 프리해줘야합니다.
안그럼 좀비된다.
thread
pthread_create 스래드 만드는 거시기
synchronization
프로세스 스레드 동기화 어떻게하나요?
자원공유 방법은?
mutex
condvar
semaphore
mutex
pthread mutex init
pthread mutex destroy
pthread mutex lock
pthread mutex trylock
pthread mutex unlock
pthread mutex timelock
condvar
thread를 좀 더 섬세하게 다룰 수 있는 조건변수(Condition Variable)
variable 조건에 따라 mutex를 쓰기위해서 하는것입니다.
pthread cond init
pthread cond destory
pthread cond broadcast -- cond 인자를 가지고 pthread_cond_wait() 함수를 실행중인 모든 thread를 깨웁니다. 만약 cond 인자를 잡고 있는 thread가 다수일 경우 mutex를 먼저 잡은 thread가 먼저 동작되며 나머지 thread는 mutex를 받을 때 까지 대기상태를 유지합니다.
pthread cond signal -- cond 인자를 가지고 pthread_cond_wait() 함수를 실행중인 하나의 thread를 깨웁니다. 만약 cond 인자를 잡고있는 thread가 다수일 경우 단 하나의 thread만 깨어납니다.
pthread cond wait -- 동작중인 thread를 잠시 중단시킵니다 condition과 mutex인자를 모두 적용합니다. 다른 thread로부터 signal이나 broadcast를 받았을 경우 해당 함수는 동작을 하게 됩니다.
pthread cond timewait -- wait에 timeout기능이 추가된것.
signal 날리면 인스턴트 노티 이기때문에 날아갑니다. 저장하지않음. flag를 이용해서 check 해줍시다.
프로세스는 뭐시당가? 4
스레드는 뭘까? 5
프로세스 생성
프로세스 죽을때?
thread
synchronization
mutex
condvar