p쓰레드 ? IPC ? 아님 Timer Callback?

jiheony의 이미지

위 세가지 방식중에 어떤 걸 사용해야 할까요....
통신 프로그램을 짜고 있습니다.
개발 툴은 리눅스에서 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만 돌아갈뿐 마우스도 움직이지 않습니다.

제가 리눅스에서 프로그래밍 짜기 시작한지 이제 한달입니다.
여기서 정말 많은 도움을 받구있구요...이렇게 처음 질문을 드리네요...
감사드립니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.