Presentation is loading. Please wait.

Presentation is loading. Please wait.

운영체제 허상복 컴퓨터시스템 연구실 2014.05.11.

Similar presentations


Presentation on theme: "운영체제 허상복 컴퓨터시스템 연구실 2014.05.11."— Presentation transcript:

1 운영체제 허상복 컴퓨터시스템 연구실

2 출석체크(dbs.chonbuk.ac.kr)
회원가입 아이디는 학번 이름/닉네임은 이름 출석체크 ID는 학번, 닉네임은 이름 TA 시간 전후로 10분 학번 이름 이름

3 오늘 강의내용 - thread pthread Linux에서 지원하는 thread 라이브러리 fork()와의 차이점

4 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 두번째 인자 : 쓰레드가 종료시 반환하는 값

5 thread 예제 1

6

7 pthread 함수가 포함되었을 경우 컴파일 방법
gcc 컴파일 방법

8 pthread 함수가 포함되었을 경우 컴파일 방법
makefile 컴파일 방법

9 thread 동기화

10 동기화 방법 Mutex & Semaphore Mutex vs. Semaphore Critical section
공유 리소스를 접근함에 있어 결과의 오류를 막기 위해 사용되는 기법 Mutex vs. Semaphore Mutex : 하나의 쓰레드만을 허용 Semaphore : 공유 리소스에 접근할 수 있는 최대 허용치만큼 접근

11 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(& 변수명)

12 thread 동기화(mutex) 예제 pthread_mutex_init() 포함

13

14 thread 실습 thread 동기화 예제 실습 소스코드 : 앞 페이지 참조 Makefile을 통해서 컴파일 한 후 실행 확인

15 Q & A


Download ppt "운영체제 허상복 컴퓨터시스템 연구실 2014.05.11."

Similar presentations


Ads by Google