RTOS 를 쓰지 않는 경우에 비슷한 효과 내는 방법

honeamis의 이미지

RTOS 를 쓰지 않는 경우에 비슷한 효과 내는 방법이 있을까요? 메모리 나 CPU 의 성능상 (가장 큰 이유는 돈!) RTOS 를 올리기에는 무리가 많은 시스템인데, 멀티스레딩 비스므리한 효과를 내야 합니다. 참조할 수 있는 사이트나 서적을 소개해 주시면 감사하겠습니다.

익명 사용자의 이미지

honeamis wrote:
메모리 나 CPU 의 성능상 (가장 큰 이유는 돈!) RTOS 를 올리기에는 무리가 많은 시스템

이라고 하신 말씀이 이해가 잘 안가네요. 일반적으로 RTOS가 더 열악환 환경에서 돌아가기 마련인데요. 비용 문제의 경우, 비상업적 용도일 때 x86 시스템에 uC/OS를 사용하는 것이 하나의 방법일 것이라고 생각합니다.

honeamis의 이미지

Anonymous wrote:
honeamis wrote:
메모리 나 CPU 의 성능상 (가장 큰 이유는 돈!) RTOS 를 올리기에는 무리가 많은 시스템

이라고 하신 말씀이 이해가 잘 안가네요. 일반적으로 RTOS가 더 열악환 환경에서 돌아가기 마련인데요. 비용 문제의 경우, 비상업적 용도일 때 x86 시스템에 uC/OS를 사용하는 것이 하나의 방법일 것이라고 생각합니다.

프로그램 영역이 64Kword 밖에 안되는데 OS+application 을 다 깔기에는 무리가 있습니다. 현재 쥐어짜서 application 이 48Kword 정도 점유하고 있으므로 상용 OS 를 쓰기에는 무리가 있다고 판단되어, 유사효과를 낼 수 있는 간단한 인터럽트+스케쥴러를 고려해 봐야 할 상황입니다.

민법 제 2 조 제 2 항 - 권리는 남용하지 못한다.

kdoll의 이미지

다른부분은 몰라도 context switch 부분만 본다면

nachos를 살펴보시는 것도 나쁘진 않을 듯 싶습니다.

Necromancer의 이미지

단일 프로그램으로 짜고

프로그램내에 타이머를 이용한 시분할 작업 기능을
구현하면 됩니다. 이걸로 멀티프로세스/멀티스레드를 간단히 구현할수
있죠. 물론 프로그램도 멀티스레드로 돌아가는 부분과 이것을 구현하는 부분으로 나뉘어야죠.

그런데 64k 정도에 멀티스레드를 고려하실 정도면 어셈블리로 짤 수 밖에 없을거 같습니다.

Written By the Black Knight of Destruction

anfl의 이미지

Quote:
프로그램 영역이 64Kword 밖에 안되는데 OS+application 을 다 깔기에는 무리가 있습니다. 현재 쥐어짜서 application 이 48Kword 정도 점유하고 있으므로 상용 OS 를 쓰기에는 무리가 있다고 판단되어, 유사효과를 낼 수 있는 간단한 인터럽트+스케쥴러를 고려해 봐야 할 상황입니다.

극히 제한적인 기능만 구현한다면 8K 정도면 충분할것 같습니다. 8K 정도면 scheduling, interrupt, event, mutex, timer, task management, startup code가 있는 간단한 RTOS를 구현 하실수 있을겁니다.

물론 assembly로 제작하면 성능이나 사이즈 면에서 좋겠지만 C로도 구조를 잘 설계하여 최적화하면 8K 내에 작성할수 있습니다.

나머지 영역은 task code와 stack으로 사용하시면 됩니다.


saxboy의 이미지

넌센스인지는 모르겠는데, 이 정도의 칩을 쓰면서 멀티스레딩이 되어야 하는 류의 제품이 어떤 것이 있는지 문득 궁금해지네요.

익명 사용자의 이미지

메모리 64K에 어찌하여 멀티쓰레딩입니까? 멀티쓰레딩으로 어떤 효과를 원하시는 거죠?
그리고 RTOS는 8K면 스케쥴러, API 정도는 충분히 만들 수 있는데 중수 실력으로 어려우니 <무한루프 + 인터러트>가 정답일듯 싶네요.

저 같은 경우에도 RTOS는 메모리가 256K 정도는 되야 올릴 각오를 하거든요. 64K는 C로 컴파일하면 순식간이라서 말씀하신대로 어렵겠네요.
참고로 RTOS라는 것은 CPU속도는 크게 신경쓸 필요가 없습니다. 20MHz정도라면 대개 문제 없어요

anfl의 이미지

Quote:
넌센스인지는 모르겠는데, 이 정도의 칩을 쓰면서 멀티스레딩이 되어야 하는 류의 제품이 어떤 것이 있는지 문득 궁금해지네요.

냉장고, 에어컨, 세탁기가 이 정도 합니다.
이전까지는 냉장고, 에어컨, 세탁기는 모두 펌웨어로 제작 되어졌습니다.
최근에 들어서 RTOS의 필요성이 제기되어 RTOS를 탑재하려고 준비하고 있습니다.
해당 시스템의 요구 사항에 맞게 5K짜리 kernel을 제작한 경험이 있습니다.


honeamis의 이미지

saxboy wrote:
넌센스인지는 모르겠는데, 이 정도의 칩을 쓰면서 멀티스레딩이 되어야 하는 류의 제품이 어떤 것이 있는지 문득 궁금해지네요.

초저가형 mp3p를 생각하고 있습니다. 역시 NAND flash IO 가 문제되고 있습니다.

민법 제 2 조 제 2 항 - 권리는 남용하지 못한다.

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.