pthread 함수정리

프로그래밍/C/C++ 2014. 1. 31. 19:39

안드로이드 NDK(리눅스 커널)에서 pthread를 지원한다고 한다.

단일 프로세스에서 동시에 여러작업을 하는것처럼 보여지기위해 스레드를 사용한다.

pthread API 함수를 쓰기 위해서 #include <pthread.h>를 해야한다.

또한 컴파일시 -lpthread 옵션 추가를 해주어야 한다.(미추가시 컴파일 오류 혹은 스레드가 정상으로 작동하지 않음)

 

pthread_t  :  pthread의 자료형을 나타낸다.

 

1. pthread 생성 

int pthread_create(pthread_t *th_id, const pthread_attr_t *attr, void *함수명, void *arg)

 첫번째 인자 : pthread 식별자(thread가 생성되면 thread식별자 값이 주어진다.)

 두번째 인자 : pthread 속성(옵션), 기본적인 thread를 사용할경우 NULL로 설정

 세번째 인자 : pthread 분기함수, 반환값이 void* 타입이고 매개변수도 void* 으로 선언된 함수만 사용할수있다.

                     예) void *threadFunc(void *arg)

 네번째 인자 : 분기할 함수로 넘겨줄 인자값. 어떤 자료형을 넘겨줄 지 모르기 때문에 void 형으로 넘겨주고, 상황에 맞게

                     분기하는 함수 내에서 원래의 자료형으로 캐스팅해서 사용하면 된다.

 ▶ 성공적으로 pthread가 생성된 경우 0을 리턴

 

2. pthread 옵션

int pthread_join(pthread_t th_id, void **thread_return)

 - 특정 pthread가 종료될 때까지 기다리다가 pthread가 종료시 자원 해제

 첫번째 인자 : pthread를 기다릴 id

 두번째 인자 : pthread의 return값(포인터로 받아와야함)

 

int pthread_detach(pthread_t th_id)

 - th_id 식별자를 가지는 pthread가 부모 pthread로 부터 독립한다.

   (pthread_join(..)이 없어도 종료시 자동으로 리소스가  해제됨)

 

void pthread_exit(void *ret_value)

 - 현재 실행중인 thread를 종료시킨다. pthread_exit가 호출되면 cleanup handler가 호출되며 리소스 해제하는 일을 수행

 

void pthread_cleanup_push(void *함수명, void *arg)

 - pthread(exit)가 호출될때 호출된 handler를 정하는 함수(자원 해제용이나 mutex lock해제를 위한 용도로 사용)

 

void pthread_cleanup_pop(int exec)

 - 설정된 cleanup handler를 제거하기 위해서 사용하는 함수(exec 값이 0일 경우 바로 cleanup handler 제거하고 그 외

    의 값을 가질 경우 cleanup handler를 한번 실행한 후 제거한다)

 

pthread_t pthread_self()

 - 현재 동작중인 pthread의 식별자를 리턴.

함수의 극값 구하기

수학 2014. 1. 29. 23:34

극대와 극소를 판정하고 극대값,극소값과 안장점을 구하여라

 인 점은 극점입니다. 극점은 극대, 극소, 안장점(saddle point) 중에 하나입니다.

그 점에서 Hessian이 positive definite 이면 극소, negative definite 이면 극대, semi-definite 이거나 indefinite이면 saddle point입니다.

위 식을 풀면 극점은

(0,0), (2/9, 0), (4/23, 6/23)

Hessian matrix

 

(1) (0,0)에서 H는

H = [-2 0; 0 0 ]

eigenvalue가 -2, 0 이므로 negative-semidefinite --> saddle point

(2) (2/9,0)에서 H는

H = [2 0; 0 -4/3 ]

eigenvalue가 2, -4/3 이므로 inidefinite --> saddle point

(3) (4/23, 6/23) 에서 H는

H =

1.1304 -1.5652
-1.5652 3.6522

eigenvalue가

eig(H)

ans =

0.381404464117179
4.401204231534994

둘 다 양수이므로 극소점입니다.

Frobenius Matrix Norm

카테고리 없음 2014. 1. 29. 23:34

가우스 정규분포 (Gaussian Normal Distribution)

수학 2014. 1. 29. 23:30

가우스 정규분포 (Gaussian Normal Distribution)

http://blog.naver.com/oscarsim_95?Redirect=Log&logNo=60176253101


'수학' 카테고리의 다른 글

사인법칙  (0) 2014.02.26
함수의 극값 구하기  (0) 2014.01.29
1차 미분 2차 미분 차이  (0) 2014.01.29
푸리에 급수(Fourier series)  (0) 2014.01.29
헤시안 행렬식 극값판정법  (0) 2014.01.29

1차 미분 2차 미분 차이

수학 2014. 1. 29. 23:29

원래의 값을 물리에서는 위치의 변화량 이라고 함

그리고 1차 미분으로 얻어지는 값은 그래프상에서의 기울기 값이다.

즉 물리에서는 속도를 말함.

다시 2차 미분으로 한번 더 미분을 하면.. 이제 속도가 변화하는 양, 가속도의 양을 알게 됨.

속도가 얼마만큼 빨리 빨라지는 지 혹은 느려지는 지를 알게 되는 것임

원래 그래프에서는 이를 곡선의 방향으로 알 수 있는데, 곡선이 천천히 증가하느냐 아니면 빠르게

증가하느냐  혹은 천천히 감소하느냐 빨리 감소하느냐 예를 들어 지수함수 

 

는 빠르게 증가 하는 곡선 형태라고 본다면  는 처음에는 급격히 감소하나 나중에는 천천히 감소하는 모습을 띄고 있음.

 

즉 1차 미분에서 2차미분으로 가는 것은 기울어 지는 정도가 얼마나 빨리 급하게 기울어지느냐? 를 하는 관계를 보여줌

 

 

푸리에 급수(Fourier series)

수학 2014. 1. 29. 23:27

헤시안 행렬식 극값판정법

수학 2014. 1. 29. 23:25



'수학' 카테고리의 다른 글

1차 미분 2차 미분 차이  (0) 2014.01.29
푸리에 급수(Fourier series)  (0) 2014.01.29
특이행렬(singular) & 정칙행렬(Nonsingular)  (0) 2014.01.29
회전 행렬 변환  (0) 2014.01.29
도함수 공식  (0) 2014.01.29

특이행렬(singular) & 정칙행렬(Nonsingular)

수학 2014. 1. 29. 23:23

수 계산에서 곱셈 역원이 존재 하듯 행렬 연산에서도 이와 같은 기능을 갖는 Matrix가 

존재한다. 이를 역행렬(Inverse matrix)라 한다.

 

역행렬의 정의

A는 정사각 행렬이고, AB = AB = E 가 되는 A와 같은 크기의 행렬 B가 존재할 때,

A는 Invertible matrix또는 Nonsingular matrix라 하고, B는 A의 Inverse matrix라 한다. 

이 성질을 만족시키는 행렬 B가 존재하지 않으면 A는 Singular Matrix라 한다.


즉, 서로 같은 크기의 matrix A와 B를 둘다 곱하여 E(단위행렬) matrix가 나오면, 

A와 B 둘다 Nonsingular matrix이며, A와 B는 서로가 서로의 Inverse matrix가 된다.

또한 A가 Nonsingular matrix이고 B와 C가 A의 Inverse matrix이면 B = C이다.

Nonsingular amtrix는 단 하나의 Inverse matrix를 갖는다.

 

 ▶역행렬의 조건

A가 Nonsingular Matrix일 필요 충분 조건은 A의 Determinant가 0이 아니어야 한다.

즉, Det(A)  ≠ 0 (행렬식이 0이 아니어야 한다)

 

'수학' 카테고리의 다른 글

푸리에 급수(Fourier series)  (0) 2014.01.29
헤시안 행렬식 극값판정법  (0) 2014.01.29
회전 행렬 변환  (0) 2014.01.29
도함수 공식  (0) 2014.01.29
지수함수와 로그함수의 도함수  (0) 2014.01.29

회전 행렬 변환

수학 2014. 1. 29. 23:15

2D 변환

 

 

 

 

 

 

 

 

 

 

 

 

 

 

▶3D변환

원점을 시작점으로 하는 임의의 단위벡터(unit vector) u = (a, b, c)에 의해 결정되는 에 있는 어떤 축에 관하여 각도 θ 만큼

반시계 방향으로 회전했을 때의 표준행렬은 

이다. 유도는 W.M.Newman과 R.F.Sproull의 "Principles of Interactive Computer Graphics, New York, McGraw-Hill, 1979"에서 찾아볼수 있다.

 

 

 

 

 

 

 

 

 

'수학' 카테고리의 다른 글

헤시안 행렬식 극값판정법  (0) 2014.01.29
특이행렬(singular) & 정칙행렬(Nonsingular)  (0) 2014.01.29
도함수 공식  (0) 2014.01.29
지수함수와 로그함수의 도함수  (0) 2014.01.29
삼각함수의 도함수  (0) 2014.01.29

도함수 공식

수학 2014. 1. 29. 22:52









'수학' 카테고리의 다른 글

특이행렬(singular) & 정칙행렬(Nonsingular)  (0) 2014.01.29
회전 행렬 변환  (0) 2014.01.29
지수함수와 로그함수의 도함수  (0) 2014.01.29
삼각함수의 도함수  (0) 2014.01.29
쌍곡선 함수의 도함수  (0) 2014.01.29