RT-linux vs FreeRTOS

mp3912의 이미지

안녕하세요.
임베디드 시스템을 공부하고 있는 학생입니다.

hard real time OS로 하드웨어를 작동시켜야 하는 상황인데요

임베디드 리눅스와 freeRTOS 중에 고민하다가 hard한 스케쥴링이 되는 freeRTOS를 선택했는데
리눅스중에 hard RT가 지원되는 RT-linux 패치가 있다는 걸 알게 되었습니다.

1.RT-linux는 기존 리눅스의 특성을 유지한 상태에서 hard 한 real time기능이 추가된 것으로
기능성이 좋지만 크기가 큰 반면에
FreeRTOS는 컴팩트하다는 장점이 있는 것 같은데요. 맞나요?

2.이 둘은 hard real time로서의 정확성이나 안정성 면에서는 차이가 없을까요?

추가 질문)
1. real time OS가 hard냐 soft냐를 가르는것은 OS의 어떤 특성인가요?
커널이 선점인지 비선점인지, 아니면 프로세스스케쥴링 정책이 선점인지 비선점인지로 갈리는건가요?

라스코니의 이미지

1. 둘다 직접적으로 써보지는 않아서 모르겠지만 RTLinux는 리눅스 커널을 패치한 것이기 때문에 아무래도 좀 사이즈가 클 것으로 생각됩니다.

2. 학생이라고 하시니 정말 hard real time이 필요한 상황이라기 보다는 공부 차원에서 사용해보시려고 하는 것 같은데요. 익숙한 개발 환경을 선택하는 것이 맞을 것 같네요. 아무래도 RTLinux는 리눅스 계열이니 posix thread를 사용할 것이고, FreeRTOS는 전용 API가 별도로 있습니다. 익숙하기는 posix가 이점이 있고, FreeRTOS는 또 재미있는 공부의 기회를 선사할 가능성이 있죠.

추가질문) hard냐 soft 냐를 가르는 것은 OS의 주안점을 사용자 편의성에 두는가? 아니면 실시간성에 두는가에 따라서 크게 갈립니다. 윈도우와 같이 여러 사용자의 needs를 만족시켜야 하는 범용 OS라면 다른 부분을 제껴두고 멀티미디어, 게임같은 범용성에 중점을 둘 수밖에 없고, 이는 덩치가 큰 OS를 탄생시킵니다. 필연적으로 soft real time OS로 갈 수밖에 없죠.
반대로 미사일 운영체제 같은 경우 매우 사용자(개발자)가 제한되어 있고, 이 사용자는 수 us 단위로 일을 처리하고 제 시간에 응답을 얻는 것 외에는 아무 관심이 없습니다. 이 경우 무조건 선점 커널로 가고 우선순위가 가장 높은 job 만 돌리면 되기 때문에 사실 상대적으로 hard real time OS는 신경쓸 것이 더 적습니다. 나머지는 개발자가 신경써서 코딩해라 이런 식이죠.

반면 windows/Linux 같은 범용 OS는 아무리 작은 우선순위를 가진 job 이라도 일정 시간 CPU 시간을 할당해 줍니다. 그래서 보통 개발자가 크게 고민을 안해줘도 시스템이 얼추 돌아갑니다. 하지만 hard real time OS는 얄짤 없습니다. 조금만 방심하면 시스템 자원을 다 잡아 먹거나 아니면 시스템 자원을 할당 못 받아 실행도 안되는 경우가 부지기수로 발생합니다.

댓글 달기

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