본문 바로가기

반응형

C

스레드 동기화 reference. 캄란 아미니 - 전문가를 위한 C [POSIX 뮤텍스]- pthread 라이브러리에 도입된 뮤텍스는 프로세스 및 스레드를 동기화하는 데 상요할 수 있다. 뮤텍스는 한 번에 하나의 스레드만 임계 구역에 들어갈 수 있도록 허용하는 세마포어이다. 일반적으로 세마포어는 자신의 임계 구역에 하나 이상의 스레드를 허용할 수 있다. ------------------------------------------------------------------------[ 여담 ]------------------------------------------------------------------------ 뮤텍스는 이진 세마포어라고도 불린다. 이유는 단 두가지 상태만 받는 세마포어이기 때문이다. 그러나 엄.. 더보기
스레드2 reference. 캄란 아미니 - 전문가를 위한 C [스레드]- 모든 스레드는 프로세스에 의해 시작되며, 프로세스에서 벗어날 수 없다. 스레드를 공유하거나 스레드의 소유권을 다른 프로세스에 넘길 수 없다는 뜻이다. 모든 프로세스는 최소한 하나의 스레드를 가지며 이를 메인 스레드(main thread)라고 한다. C 프로그램에서 main 함수는 메인 스레드에 속해서 실행된다. 모든 스레드는 같은 프로세스ID (PID) 를 공유한다. top 또는 htop 과 같은 유틸리니를 사용할 때, 스레드들이 같은 프로세스 ID를 공유하며 해당 ID 및으로 스레드가 모인다는 것은 쉽게 확인할 수 있다. 그 뿐만 아니라 소유자 프로세스의 모든 속성은 스레드가 상속받을 수 있는데, 이러한 속성에는 그룹 ID, 사용자 ID.. 더보기
컴파일 [컴파일] - 소스 코드 .c 파일을 실행 파일로 변환시켜주는 작업 컴파일 과정에선 크게 4가지 변환기를 통해 실행 파일로 변환된다. 전처리기 -> 컴파일러 -> 어셈블러 -> 링커  전처리기(preprocessing) -> .c 파일을 .i 파일로 전처리해주는 변환기전처리(preprocess) - 본격적으로 컴파일하기 전에 처리할 작업들로 외부에 선언된 다양한 소스코드, 라이브러리(헤더 파일 등)를 포함시키고, 프로그래밍의 편의를 위해 작성된 매크로(define 으로 설정된 상수값 등) 변환과 컴파일할 영역(ifdef 류의 구문)을 명시해준다. 다음과 같은 구문으로 .i 파일을 생성시킬 수 있다.소스 코드 = test.c(gcc -E test.c -o test.i) 생성된 파일을 읽어보면 헤더 파일등의.. 더보기

반응형