p쓰레드 ? IPC ? 아님 Timer Callback?
위 세가지 방식중에 어떤 걸 사용해야 할까요....
통신 프로그램을 짜고 있습니다.
개발 툴은 리눅스에서 microwindows 를 사용하여 GUI 환경을 꾸미구 있구요.
시리얼로 들어오는 데이터를 받아서 네트워크로 날려주는 프로그램을 짜고 있는데요.... 계산해 보니까 시리얼로 들어오는 데이터가 15byte씩 약 80~100ms 속도록 들어오더라구요...구현은 polling로 구현했구요...
GUI환경을 구성하지 않고 돌렸을때는 단일 프로그램으로 잘 동작합니다.
근데...
GUI 환경으로 꾸미고 터치패드 입히고...그리고 몇몇 프로세스들을 멀티 테스크로 돌리려고 하니까...잘 않되더라구요...
증상은 위 통신 프로세스가 CPU를 다 잡아먹어버리는...현상을 낳더라구요..
그래서 후면 처리로 통신 부분을 처리하면서 들어오는 데이터를 본 프로세스에서 넘겨받아 뿌려주려구 했는데요...
가만히 생각해보니까...이 방법도 어차피 데이타가 파이프를 통해 짧은 시간 간격을 통해 들어오게 되니까...똑같이 블럭 현상이 나타날것 같네요...
어떻게 해결해야하나요?
-----------------------------------------------
정확히 말하자면 질문의 요지는 이렇습니다.
-----------------------------------------------
microwindows 를 사용해서...
process1 : 80~100ms 간격로 데이터를 수신하여 해당 Edit box에
디스플레이 해주고 네트워크로 날려줌(polling 방식)
process2 : 버튼1을 클릭하면 자식 윈도우1가 생성되면서 help파일 보여줌
process3 : 버튼2를 클릭하면 자식 윈도우2가 생성되면서 메뉴를 보여줌
process4 : 버튼 3을 클릭하면 process1 의 동작이 멈춤 또는 종료
이렇게 구현을 하려면 어떤 방식을 사용해야 하나요?
현재 발생하는 문제는 process1이 CPU를 선점해버려서 process1만 돌아갈뿐 마우스도 움직이지 않습니다.
제가 리눅스에서 프로그래밍 짜기 시작한지 이제 한달입니다.
여기서 정말 많은 도움을 받구있구요...이렇게 처음 질문을 드리네요...
감사드립니다.
댓글 달기