반응형 동기화2 [C언어] pthread 라이브러리를 이용한 스레드 동기화 Threads Synchornization Multi Thread에서 전역 변수, 힙 영역, malloc 등은 Data Sharing을 한다.다음 코드는 입력한 초만큼 전역 변수 cnt가 증가하는 예제이다.volatile: 컴파일러 최적화 방지. cnt 변수를 레지스터가 아닌 메모리에서 직접 읽고 쓰게 만듦volatile int cnt;void* do_loop (void *loop){ while(1) cnt++; return NULL;}int main(int argc, char *argv[]){ int status, sec; pthread_t thread_id; cnt = 0; sec = atoi(argv[1]); if (pthread_create(&threa.. 2025. 1. 28. [C언어] 프로세스 간 통신 (IPC) 프로세스 간 통신 (IPC)1. 파이프 (Pipe)스트림 지향: 데이터를 순차적으로 단방향으로 전송하는 방식입니다.시스템 호출: pipe(), read(), write()를 사용하여 데이터 전송을 처리합니다.동작 방식: 파이프의 쓰기 끝에 데이터를 작성하면, 커널이 해당 데이터를 버퍼에 저장하고 읽기 끝에서 읽힐 때까지 유지합니다.FIFO 동작: First In First Out 방식으로 데이터를 처리합니다.2. 메시지 큐 (Message Queue)메시지 지향: 프로세스가 메시지를 쓰고 다른 프로세스가 읽는 형태입니다.특징: 메시지 큐는 메시지 식별자로 관리되며, 커널 내에서 메시지의 연결 리스트로 구현됩니다.메시지 순서: 메시지는 FIFO 방식으로 읽히지만, 비순차적으로도 메시지를 검색할 수 있습니다.. 2024. 10. 18. 이전 1 다음