В реално време Linux

Основната идея на реално време (RT). Твърд реално време и Linux.

Какво е в реално време?

Преди да преминем към въвеждането на RT-Linux, трябва да вземете предвид няколко идеи, свързани с концепцията за "реално време" (в реално време, RT). Ние казваме, че:







"В реално време системата е информационна система. В коя правилната информация изход зависи не само от алгоритмите, но и на информацията за външния вид momeyntov време."

Не е достатъчно, че информацията е вярна, е необходимо, че тя се появява в строго определени интервали от време. Имайте предвид, че горното определение на система в реално време, не е задължително да бърза, тъй като човек може да мисли. Например, навигационна система на превозното средство в началото на не може да изглежда като система в реално време, тъй като скоростта е ниска и обикновено "достатъчно" време (от порядъка на минути) за решение. Въпреки това, според нашата дефиниция, това е наистина реално време система.

Имайте предвид, че ние определяме "система в реално време", а не на системата в реално време. Системата в реално време, общо взето бързо системи, създават илюзията за "реалността". Обикновено всички симулации и интерактивни игри, трябва да се създаде впечатление за реалния свят, и най-много изображения, генерирани за единица време, толкова по-добре.

Нека сега разгледаме по-подробно понятието "Срок" (времевото ограничение), предполагам, че някой иска да се контролира скоростта на двигателя с различна натовареност на вала с помощта на закона за контрол на PID. (PID закон е пропорционален-неразделна, диференциална регулиране закон). От наша гледна точка, законът PID е функция със собствен набор от параметри. В този пример, скоростта на двигателя - параметъра получен от двигателя и на захранващото напрежение на двигателя - скоростта параметър за управление на двигателя. Теория на алгоритмите на управление, който между другото е много богат, не взема под внимание времето за изчисление на функцията на алгоритъм PID, т.е. от време на измерване на скоростта на двигателя, до точката, където ние работим за двигателя, много малко. При нормални условия, системата позволява да има леко забавяне. Друга характеристика на закона PID е честотата, с други думи, трябва постоянно, на равни интервали, за да се изчисли функцията PID. Ако времето между две последователни функция повиквания PID е твърде голям, двигателят може да достигне до нежелано процент. Обобщаване на закона PID може да се разглежда като функция, изпълняват периодично (Pi); с максимално допустимото закъснение PID практика (Di) и, в съответствие с изпълнение процесор скорост PID код е необходим определен период от време (Ci) ..

Pi: Период задача аз.

Di: Максимално допустимото закъснение за контрол, аз задача.

Ci: най-лошото време за задача аз.

Няма проблем да се използва единна система задача като система в реално време. или процесорът може да изпълнява дадена задача в даден момент, или не. Ако той не е bystr- нужда да го замени по-бързо.

Проблемите възникват, когато множество задачи и те трябва да се разделят на процесора може да бъде изпълнено в системата (CPU) един до друг. Това ни позволява да използват класически споделени ресурси като Linux. Разбира се не е необходимо да се спомене: дори не се опита да се пишат програми, изискващи реално време под Windows. И съвети не се напише някаква програма за тази платформа.

Не всички в реално време системи са идентични, то не е едно и също нещо, че системата за контрол на впръскването на гориво самолет на двигателя или на дисплея MPEG-файлове. В първия случай, и най-малкото забавяне при изпълнение може да доведе до загуба на човешки животи и големи материални загуби, а във втория случай е лесно влошаване на системата - на снимката може да избледнее или част рамки ще бъдат загубени. Първият тип е известен като система "трудно в реално време" (трудно в реално време, HRT), и второ, като система на "меко реално време" (мека реално време, SRT) .. Ние ще се занимава в HRT системи.

Развитие на RT-пропуск системи различни фази: първо, задачите са определени, в който трябва да бъдат vypolyeno и в която времеви граници (ограничение във времето); На второ място, кодът е писано и последен измереното време по изпълнение на задачите, и планира стартирането на задачи, извършвани, за да бъдете сигурни, че задачата няма да пропуснете срока му, докато системата работи. планиране на изследване се базира на използването на серия от тестове за цялата група от проблеми, и ако те преминат успешно теста, е възможно да се гарантира, че няма задача ще загуби крайния й срок. Ако не, ще трябва да започне разработването на първо място, изберете по-бърз процесор или други алгоритми за решаване на проблема.

За да обобщим. Задачите се дефинират три времеви стойности: Пи, Ди и Ci. Системата трябва да гарантира, че времето за изпълнение на задачите, т.е. ако някой отговори на следния набор от задачи, всички задачи ще останат в рамките на предварителните си граници. Уверете се, времето за изпълнение - това означава, че системата трябва да бъде предвидимо (предвидим). Казвайки, че системата е система в реално време, или системата е предвидима, обикновено означава едно и също нещо.

Каква е връзката между операционната система и реално време?

Семантичната изпълнение на контролните сигнали - програмист, отговорни и сроковете зависят от операционната система.







Операционната система е необходимо да се поддържа и управлява изпълнението на всички задачи и управление на прекъсвания. Операционната система трябва да предложи:
  • Алгоритъмът за график.
  • Механизмът на комуникация между процеса (семафори, съобщения.)
  • управление preryvaniemi.
  • Стартиране на задачи в определен за всеки времеви точки.

В сравнение с "нормалните" операционна система, операционна система в реално време е целта да се намали сложността. Ние нямаме нужда от операционна система, която прави много неща, които е важно е, че задачите се изпълняват с предсказуемост и скорост.

По-предпочитани са тези операционни системи, където контекстът обикновено варира от 10 цикъла от време, в най-лошия случай 12 от операционната система, която въпреки че средния това се случи в 3, но може да бъде обусловено от 20 времеви слотове.

Не е изненадващо, че в реално време операционна система по-бавно в сравнение с конвенционалните OS. Понякога, за да се получи предвидимо поведение, трябва да забраните дори кеш паметта, съответно, със загубата на продуктивност. Cache процесор с газопровода възли и браншови алгоритмите за предвиждане са враговете на предсказуемост, а оттам и системи в реално време.

POSIX RT rassshireniya.

POSIX е съкращение от Portable оперативен интерфейс на системите (Portable интерфейс на операционната система). Standard, насочен към постигане на софтуер преносимост на ниво код. С други думи, програмата за POSIX съвместима операционна система, трябва да се компилира и изпълнява на всяка друга POSIX, дори и да е от различен доставчик. POSIX стандарт определя интерфейса на операционната система трябва да предлага на приложения: набор от системни функции (набор от системни функции). стандарт POSIX разработен от IEEE (Instiute на електротехника и електроника) и стандартизиран ANSI (Американски институт за стандартизация) и ISO (Международната организация по стандартизация). Очевидно POSIX е базиран на UNIX. Повечето операционни системи, включително Windows NT, търсят от една версия да е съвместим със стандарта POSIX.

Работата по определянето на POSIX е разделена в няколко работни групи са ангажирани представители на компютърни фирми, софтуерни компании, правителствени служители и частни лица, специалисти в дадена област programirrovaniya. Всяка група се грижи за развитието на всеки аспект от операционната система. Например, една група, наречена POSIX.4 се занимава с въпроси, свързани с реално време.

POSIX тези добавки са предназначени за подобряване на контрола на системата за управление на операционната система.

LINUX 2.0 поддържа много POSIX съвместими системни функции в реално време. но този аспект на Linux, ще обсъдим в бъдеща статия. Версия 2.2. Много е вероятно да бъде 100% съвместим с POSIX 1003.1b.

Real Time Linux (в реално време Linux, RT-Linux)

Виктор Yodiken и Майкъл Barabanov разработен RT-LINUX като Департамент по компютърни науки Института по минно дело и технологиите, намиращ се в Ню Мексико. Майкъл направи тази работа част от дипломата, магистър по компютърни науки. Последната налична версия 0.6. По време на това писание, RT-LINUX е достъпна само за платформата Intel.

RT-Linux решава проблема наново. Вместо това, да променят ядрото на Линукс, опитвайки се да го предвидим, какво ще бъде независима от основната ядрото на малкия си ядро ​​- разписание. Главна Linux Kernel изпълнява върху споделяне на процесора с други задачи в реално време, това ядро. Linux използва процесор пар в други задачи в реално време, по-точно LINUX е задача, фон и се изпълнява само, ако не е изпълнено, нито една от задачите в реално време.

В този момент, много читатели могат да се объркат, защото те мислят, че операционната система е всемогъщ, и то не трябва да се третира по този начин.

Особено се радваме да знаят, че монтажа и отстраняването на планировчика може динамично, тъй като той се компилира като модул.

Linux Kernel (като OS) обикновено забранява прекъсва като синхронизиращия означава или изпълнение на критични участъци. Ако по времето, когато Linux забранява прекъсва има часовник прекъсване, това остава блокиран, а оттам и загуба на времевата прецизност. В RT-LINUX прилага оригинално решение: всички повиквания към CLI, STI, и IRET (асемблер контролни команди за прекъсване) се заменят със S_CLI, S_STI и S_IRET, и Linux никога не може да деактивира прекъсва.

По подразбиране разписание, която идва с RT-Linux, това е, което го приоритет разписание с фиксирани приоритети за LINUX подчерта ниската prioretet. Ако задачи в реално време, да вземат всички времето на процесора, а след това Linux няма да получи време и може да създаде впечатлението, че системата е спряна.

В случай на RT-Linux, ние не само имаме система в реално време, но също така и класически OS. Ние можем да карам в интернет, докато се измерва и контролира от физически обект.

Монтаж RT-Linux.

За преобразуване в LINUX RT-Linux, трябва да промените изходния код на ядрото кръпка, която идва от RT-Linux Kernel и събират. Сега, как да го направя. Предполагам, че този файл RTLinux-0.6-2.0.33.tgz е в директорията / ЮЕсАр / SRC и че тя е била извлечена от /usr/src/rtlinux-0.6 директория. Аз също се предположи, че ядрото вече са конфигурирани (направи довереник) и след това:

Новото ядро ​​изглеждат "нормално" ядро, но вече се подготвят за една система в реално време. /usr/src/rtlinux-0.6-2.0.33/testing на директорията са различни демонстрационни програми.

Отделно от примерите, които идват с дистрибуция (тестване директория), можете да вземете интеренет (интернет) е още един пример, изготвен от Олег, който ни позволява да създадете карта на задачите от време. Един от досиетата на плановик демо програма с промените, той не само планирани задачи, но също така изпраща информация, свързана с решенията, взети. Тази информация се събира и съхранява във файл, който може да се показва в графичен вид. В резултат на това ще видим в какъв ред различни задачи, извършвани и като задача с по-висок приоритет preempts задачи с по-нисък приоритет. В Linux, тъй като проблемът не е представяна.

Всяка задача има хоризонтална ос. Правоъгълници показват времето проблем използването на процесора (в нашия случай имахме система за моно-процесор, и само една задача Mogdy се прави за единица време). В този пример, всяка задача граници са равни на техния период. Периодът на всяка задача, интервала от време (представители), през който трябва да се извършва задачата. Задачи в горната част, имат най-висок приоритет и възможност за заснемане на други процесорни задачи, които са възникнали по време равен на 600.

Бъдещето на RT-Linux.

Вече има мулти-процесорни версия на RT-Linux. Броят на услугите, предлагани от RT-LINUX са умишлено минимална, че не е необходимо да се включат функции, които наистина не се нуждаят от това, ако имате нужда да се поддържа предвидима система. Въпреки това, някои разширения, които вече са на разположение, като семафори, както и способността за управление на задачите на реално време чрез / ргос / сис.

Преди няколко седмици започнаха създаването на RT-LINUX ръководство.

заключение

много инженери, които са искали да използват системата в реално време, са били принудени да използват MS-DOS и изграждане на всички необходими драйвери, или да си купите система в реално време до появата на RT-Linux (за огромни суми). Сега разработчиците имат пълен Операционна система за разработване на приложения на една и съща система, където те ще се управлява. В действителност, ние можем да стартирате няколко приложения в реално време, а в същото време сърфиране в интернет и без никакви проблеми.