네, 저도 고심했던 부분입니다.
프로그램의 구조에 따라 방법이 다르겠습니다만 저 같은 경우 공유 메모리나 파이프 보다는 UDS를 사용합니다.

공유 메모리 같은 경우에는 편할 듯 하지만 버퍼링되는 자료를 공유 메모리로 이용한다는 것은 문제가 있고, 파이프는
오히려 코드가 복잡해 지더군요.....^^

UDS는 UDP난 TCP/IP 통신을 이용하는 방법과 매우 비슷합니다.
즉, Application 간의 통신으로 자료를 서로 주고 받을 수 있을 뿐만 아니라 공유 메모리나 파일 처럼 Application간의 접근 분리가 안되는 문제도 해결됩니다.

UDS에 대해서도 꼭 소개를 올리면서 강좌로 올리겠습니다만 우선 UDS에 대한 정보를 검색해 보시기를 권해드립니다. ^^

> Embedded Linux Programming에 대해 라는 동영상을 보았는데요.
>통신포트 여러개를 사용하게 할 경우 제작 프로그램을 하나안에서
>다 처리하지 말고 한개씩 한개씩 여러개의 프로그램으로 나눠서
>하는게 좋다. 라고 얘기를 하셔서 그러는데요. 제가 초보라서 좀 궁금한 것이 있습니다.
>위의 경우 하나의 통신포트가 다른쪽하고 무관하게 동작되면 상관이 없는데
>만약 각각의 통신포트로 받아오는 데이타를 상호 연관성있게 동작되는
>로직구조라면은 각각의 프로그램간의 데이타를 어떻게 공유해야 하는지요?
>공유메모리를 이용한다거나 파일을 이용하는 법은 들어본거 같은데
>제가 사용을 못해서 그런지 데이타를 주고 받고 하는데 시간이 심하게 많이 걸려서
>하나의 프로그램안에서 멀티태스킹으로 해야하는것이 아닌가라고 생각하고 있는데요
>조언 좀 부탁 드립니다.
>
>