API Conversion – POSIX

POSIX 사용자를 위한 호환 키트
 
 

개요

POSIX 호환 키트는 POSIX 사용자를 위해 설계되었습니다. 이 키트는 몇가지 제한과 함께
기본적인 POSIX pthread services를 정의하고, 그 밑단에서는 ThreadX® 기초 요소를 활용하고 있습니다.
 
새로운 POSIX 호환 레이어(layer)는 내부적으로 ThreadX 기초요소를 활용하고 있고,
기본적인 ThreadX 오류 검사를 우회하기 때문에 고성능을 냅니다.
하지만, ThreadX로 완벽하게 전환한다면 응용 프로그램은 더 좋은 성능과 크기에 이점이 생길 것입니다.
 
 

호환 키트 소스

호환 키트 소스코드는 단순성(Simplicity economy of code)을 위해 설계되었습니다.
각각의 POSIX 함수를 지원하는 자체 파일들로 구성되고, 이를 설명하는 명확한 이름으로 쉽게 검색을 할 수
있습니다. 각 함수를 위한 분리된 파일을 사용하는 것은 죽은 코드(dead code)가 아닌 것만 사용하는 것이고,
최종 이미지로 링크될 때 사용되지 않은 함수를 포함하지 않을 것입니다.
 
POSIX 표준에서 요구하는 pthread.h를 포함(#Include)시킴으로써, 지원하는 POSIX API 함수 원형을
소스 파일에서 사용할 것입니다. ThreadX 호환 키트는 모든 타겟의 포팅에 특별한 기능을 요구하지 않고,
ThreadX에서 현재 지원하는 타겟 마이크로프로세서의 광대한 컬렉션을 사용할 것입니다.
 
 

호환 키트 문서

호환 키트 사용자 가이드는 다양한 주의사항과 경고를 포함한 포팅 과정의 개요를 제공합니다.
또한, POSIX 서브루틴에 대한 문서를 포함되어 있습니다. 이 문서에는 지원/미지원 옵션에 대한 정보 및
제한사항, 위반, 제한사항에 대한 해결 방법 등도 포함되어 있습니다.
 
 

호환 키트 서비스

현재 릴리즈된 호환 키트는 다음과 같은 호출(calls)을 지원합니다:
 
   pthread related Subroutines:
       sched_yield, pthread_create, pthread_detach, pthread_join,
       pthread_equal, pthread_exit, pthread_self, pthread_attr_destroy,
       pthread_attr_getdetachstatem, pthread_attr_setdetachstate,
       pthread_attr_getinheritsched, pthread_attr_setinheritsched,
       pthread_attr_getschedparam, pthread_attr_setschedparam,
       pthread_attr_getschedpolicy, pthread_attr_setschedpolicy,
       pthread_attr_init, phread_attr_getstackaddr,
       phread_attr_setstackaddr, pthread_attr_getstacksize,
       pthread_attr_setstacksize, pthread_attr_getstack, pthread_attr_setstack,
       pthread_setcancelstate, pthread_setcanceltype, pthread_cancel, pthread_yield,
       pthread_setschedparam, pthread_getschedparam, pthread_testcancel, pthread_once
 
 
   Semaphore related Subroutines:
       sem_close, sem_getvalue, sem_open, sem_post, sem_trywait, sem_unlink,
       sem_wait sem_init, sem_destroy
 
 
   Conditional Variable related Subroutines:
       pthread_cond_destroy, pthread_cond_init, pthread_cond_broadcast,
       pthread_cond_signal, pthread_cond_timedwait, pthread_cond_wait
 
 
   Message Queue related Subroutines:
       mq_send, mq_receive, mq_unlink, mq_close, mq_open
 
 
   Mutex related Subroutines:
       pthread_mutexattr_gettype, pthread_mutexattr_settypetype,
       pthread_mutexattr_destroy, pthread_mutexattr_init,
       pthread_mutex_destroy, pthread_mutex_init, pthread_mutex_lock,
       pthread_mutex_unlock, pthread_mutex_trylock,
       pthread_mutexattr_getprotocol, pthread_mutexattr_setprotocol,
       pthread_mutexattr_getpshared, pthread_mutexattr_setpshared,
       pthread_mutex_timedlock
 
 

호환 키트 에러 처리(Error Handing)

tx_posix.c에 정의된 2개의 “error handing” 함수가 있고 호환 키트에서 다음과 같이 사용됩니다:
 
         posix_internal_error, posix_error_handler
 
일반적으로 사용법(usage)에 대한 에러가 발생하면 이 루틴이 호출되고,
해당 위치에서 에러를 잡을 수 있습니다.
만약 응용 프로그램 소스에서 반환 상태(return status)를 확인하지 못했다면 감지하지 못합니다.
 
이 루틴은 간단한 회전 루프입니다.
 
 

데모 시스템

posix_demo.c 파일은 POSIX services를 활용하는 데모 시스템입니다.
이 응용 프로그램은 pthreads, 세마포어, 메세지 큐와 같은 POSIX의 기본적인 OS 개체 중 일부를 데모할 수 있습니다.
이 데모 프로그램은 귀하의 응용 프로그램에 호환 키트를 통합하는 방법에 대한 예제로 사용해야 합니다.
 
 

향후 호환 키트

향후 다음 버전의 호환 키트는 저희에게 문의 바랍니다.
 
 

상표(Trademarks)

ThreadX는 Express Logic, Inc의 등록된 상표이고,
POSIX Compatibility Kit도 Express Logic, Inc의 상표입니다.