시그널

Study/시스템프로그래밍

[시스템프로그래밍] 조건 변수와 시그널, Reader-Writer problem에 관하여

Busy waiting while( x != y ); Non-busy waiting 해결책 Mutex를 잠그기 조건 x == y를 테스트 참이면 mutex를 잠금 해제하고 루프를 종료 거짓이면 스레드를 일시 중단하고 mutex를 잠금 해제 Mutex는 데이터에 대한 스레드 액세스를 제어하여 동기화를 구현하지만 조건 변수는 실제 데이터 값에 기반하여 스레드를 동기화할 수 있게 함. 만약 조건 변수가 없다면, 프로그래머는 계속해서 조건이 충족되었는지 확인하기 위해 스레드를 폴링(가능하면 임계 구역에서) 이는 스레드가 이 활동에 계속해서 바쁘게 차지되어 매우 자원 소모적일 수 있음. 조건 변수는 폴링 없이 동일한 목표를 달성하기 위한 방법 조건 변수는 항상 Mutex 락과 함께 사용 조건 변수 : 임의의 조건..

Study/시스템프로그래밍

[시스템프로그래밍] Signals

signal은 이벤트가 일어났을 때 발생했다는 사실을 프로세스에게 전달해주는 software notification다. 명령어 kill을 주면 목적지로 시그널을 준다. -l option은 available symbolic signal names의 list들을 준다. 프로세스는 도착한 시그널에 대해서 처리를 해줘야한다. → 시그널이 왔을 때 프로세스가 취해줘야 되는 default action이 있다. 터미널에서 ctrl+c → interrupt signal이 발생해서 지금 돌고 있는 프로세스에게 전달이 된다. 그러면 프로세스는 하던 작업을 멈추고 default action을 수행한다.(여기서는 강제 종료) Generating Signals #include int kill(pid_t pid, int sig)..

퀵차분
'시그널' 태그의 글 목록