운영체제 허상복 컴퓨터시스템 연구실 2014.05.11
출석체크(dbs.chonbuk.ac.kr) 회원가입 아이디는 학번 이름/닉네임은 이름 출석체크 ID는 학번, 닉네임은 이름 TA 시간 전후로 10분 학번 이름 이름
오늘 강의내용 - thread pthread Linux에서 지원하는 thread 라이브러리 fork()와의 차이점
pthread 생성/대기 함수 pthread 라이브러리 : pthread.h pthread 생성 함수 int pthread_create(pthread * thread, const pthread_attr_t *attr, void* (*start_routine)(void*), void * arg); 첫번째 인자 : 생선된 쓰레드의 ID를 저장할 변수의 포인터 두번째 인자 : 쓰레드의 특성을 설정할 때 사용되는데, 주로 NULL 세번째 인자 : 각 쓰레드가 실행할 함수 네번째 인자 : 세번째 인자에서 호출되는 함수에 전달하고 하는 인자 값 pthread 종료 대기 함수 int pthread_join(pthread_t th, void **thread_return) 첫번째 인자 : 쓰레드 ID 두번째 인자 : 쓰레드가 종료시 반환하는 값
thread 예제 1
pthread 함수가 포함되었을 경우 컴파일 방법 gcc 컴파일 방법
pthread 함수가 포함되었을 경우 컴파일 방법 makefile 컴파일 방법
thread 동기화
동기화 방법 Mutex & Semaphore Mutex vs. Semaphore Critical section 공유 리소스를 접근함에 있어 결과의 오류를 막기 위해 사용되는 기법 Mutex vs. Semaphore Mutex : 하나의 쓰레드만을 허용 Semaphore : 공유 리소스에 접근할 수 있는 최대 허용치만큼 접근
thread 동기화 - mutex 사용방법 Library : pthread.h pthread_mutex 변수명 main()에서 호출 Mutex 초기화 : pthread_mutex_init(& 변수명,NULL) Mutex 제거 : pthread_mutex_destory(& 변수명) thread 함수에서 호출 Mutex lock : pthread_mutex_lock(& 변수명) Mutex unlock : pthread_mutex_unlock(& 변수명)
thread 동기화(mutex) 예제 pthread_mutex_init() 포함
thread 실습 thread 동기화 예제 실습 소스코드 : 앞 페이지 참조 Makefile을 통해서 컴파일 한 후 실행 확인
Q & A