rtliunx
TRANSCRIPT
RTLIUNX الحقيقي الزمن نظم
؟ الحقيقي الزمن نظام هو ما
يستجيب المعلومات لمعالجة نظام هومعينة زمنية مدة في خارجي دخل لتحريض
ومنتهية. : يكون قد
لين- 1 الزمن بإغفال - RT: نظام أحيانا يسمحتحديث ) المثال سبيل على النهائية المواعيد
.) الفيديو عرضصعب- : 2 الزمن تلبية – RTنظلم أن يعني
سبيل ) على األهمية غاية في هو النهائي الموعد.) الصواريخ تحكم المثال
: مشاركة أنظمة مع التوافق عدم
الحاالت تحسين تحاول الزمن مشاركة انظمةعليها الحقيقي التوقيت انظمة لكن الوسطية
. االحتماالت اسوء االعتبار في تأخذ انجيد هو ما لالثنين، التصميم اهداف اختالفات
الحالة تدهور الى يؤدي الوسطية للحاالتلألسواء.
و االفتراضية الذاكرة هو لذلك كالسيكي مثالpagingتتطلب
ال : Rtللهارد liunxمالءمة - تحميل على يعتمد بها التنبؤ يمكن ال جدولة
النظام.( الخشنة مؤقت (10قرار ثانية مللي نواة Non-preemptible الحبيبات لمزامنة تستخدم المقاطعات تعطيل
الخشنة. الظاهرية الذاكرة استخدام ( القرص مثال كفاءة طلبات ترتيب / Iإعادة
O)
POSIX 1003.1b Standard : الحقيقي الزمن نظام ميزات على للحصول
في :UNIXاللي يلي ما ذلك ،يتطلب وقائية أولوية جدولة الذاكرة في افتراضية صفحات قفل الحقيقي الوقت في إشارات تحسينIPC الوقت ضبط أجهزة تحسين . سبق ما إلى فقط جزئيا يتفق لينكس (mlock system, setsched calls)
RT Linux – Aims الهدف) ( :
أداء .RTتحقيق الثابت دقة من عال .Timerمستوى الجدولة في للكمون منخفضة مقاطعة لتوفير. مخصصة جدولة بحيث لينكس نواة على طفيفة تغييرات
الخدمات من كاملة .OSمجموعة المتاحة
) :RT Linux – Approachمنهج)
نواة بين المحاكاة برامج من طبقة هناكالمقاطعة . تحكم أجهزة و اللينكس
. لينوكس بواسطة المقاطعة تعطيل يمنع Cli, sti and iret برامج بنسخ يستبدلون
. متطابقة محاكات
Interrupt Emulation (محاكاةالمقاطعة ( :
S_CLI : movl $0, SFIF
S_STI : stipushfl pushl $KERNEL_CSpushl $1fS_IRET
1:
Interrupt Emulation( محاكاة: ( المقاطعة S_IRET:
push %dspushl %eaxpushl %edxmovl $KERNEL_DS, %edxmov %dx, %ds
Interrupt Emulation( محاكاة: ( المقاطعة
climovl SFREQ, %edxandl SFMASK, %edxbsfl %edx, %eaxjz 1fS_CLIsti jmp SFIDT (,%eax,4)
Interrupt Emulation( محاكاة: ( المقاطعة
1:movl $1, SFIFpopl %edxpopl %eaxpopl %dsiret
RT Linux – Tasks) مهام) - مساحة في منفذة مهمة كل األولي التصميم
بها . الخاص العنوان مساحة نفس في تعمل المهام جميع اآلن
) ( أعلى وعلى النواة فضاء في العنوان. االمتياز مستوىفي خلل أن كما للخطأ عرضة للغاية ولكنهاالنظام على تقضي أن يمكن واحد تطبيق
بأكمله. يحدث أن يمكن و ، النواة كوحدة المهام تعمل
أوتوماتيكي . بشكل إضافة األجهزة السياق تبديل يستخدم .x86ال قسم لها يكون أن ينبغي المصادر إجرائيات
ثابت .
RT Linux - SchedulingDefault - يتم حيث األولوية تستند بسيطة جدولة
. المقرر ومن األولويات ثابت بشكل المهام تعيين. للتشغيل جاهزة القصوى األولوية ذات المهمة
the scheduler is itself a load able kernel .module.
: بديلة جدولة سياسات (EDF - )جدولة يتم التي الديناميكية األولويات جدولة
. مهلة أقرب مع المهمة(-RM )تعيين يتم حيث دورية لمهام ثابتة أولوية جدولة
هي . الجدولة هذه وربما األصغر الفترة مع المهمةالمثلى السياسة
تستخدم التي التطبيقات RTتصميمLIUNX:
هذا في التطبيقات تتألف أن المتوقع منجزئيين : من النظام
،سريع يكون و الحقيقي الزمن نظم جزءبسيط . صغير،
يجب و المستخدم، فضاء في يعمل آخر جزءبالحسبان يأخذ ..I/Oأن
مهام مع يتواصل أن عليه المهام مستخدمعبر الحقيقي الحقيقي . FiFoالزمن الزمن
التطبيقات : تصميم مخطط
User Process
RT Fifo
RT Fifo
RT Process
Peripheral Device
Linux Kernel
NetworkDisk
X Windows
Display
Why RT Linux ? تصميم خالل RT Linux أسباب من يفهم أن يمكن
القياسية : لينكس نواة عمل دراسة بين تفصل لينكس مستوى Hardwareنواة مهام و
المستخدم . األولوية وتعين الجدولة خوارزميات لينكس نواة تستخدم
. اإلنتاجية أو الجيد األداء متوسط لتوفير مهمة، لكل
على مهمة أي وقف على القدرة لديها النواة فإن وهكذاالمهمة تلك تفوق وقد واحدة مرة المستخدم، مستوىالمعالجة وحدة قبل من لها المخصصة الوقت شريحة
المركزية.
Hello World in RT Linux pthread_t thread; void * start_routine(void * arg) { . . . }
int init_module(void) { return pthread_create(&thread, NULL, start_routine, 0); }
int cleanup_module(void) { pthread_delete(thread); }
Hello World in RT Linux
void * start_routine(void *arg) { struct sched_param p; p.sched_priority = 1; pthread_setschedparam(pthread_self(), SCHED_FIFO, &p); pthread_make_periodic_np(pthread_self(), gethrtime(), 500000000); while (1) { pthread_wait_np(); rtl_printf(“Hello World !\n”); } return 0; }
19
Linux Kernel( ليونكس ( نواة
System libraries
Device drivers Linux kernel
Hardware
I/O Hardware Interrupts
User Processes
20
RTLinux Kernel
Hardware
System libraries
Device drivers Linux kernel
I/O Software Interrupts
User Processes
RTLinux Plug-in
Real Time Tasks
RT-Scheduler
I/O Hardware Interrupts
Linux is executed in the background
Direct h/w access
21
Linux Kernel: code perspective( الكود ( تجسيد
Linux Monolithic kernel core
M1
M2
M3
M4
Kernel Loadable M
odules
RAM DISK
Module M2 service (system call)
User
Process
M2
THE controller
22
RTLinux Kernel: code perspectiveالكود عن يعبر رسم
Linux Monolithic kernel core
RTM2
RTM3
M1
M2
Kernel Loadable M
odules
RAMDISK
Load RT core
RT Load command
RT-Core Module
RT core
M3
THE controller
RTLINUX MODULES
برامج إنشاء يتم وحدة RTLinuxال على بناءأنها على إنشاؤها يتم بل بذاتها، قائمة
نواة الفضاء في تحميلها يتم والتي وحدات،لينكس.
المصدر ملفات تجميع أغراض Cيتم إلىاألمر باستخدام مع )“ gccالملفات
“(argument –c flag الوظيفة استبدال األسطر)( mainيحصل مع
التالية:
RTLINUX MODULES
Int init_module(); Void cleanup_module(); Init_module is called when the
module is first loaded into the kernel.
This function returns 0 if the module is successfully loaded. It returns a negative value in case of failure. When the module is loaded is to be unloaded , the cleanup_module() is called.
EXECUTING THE RTLINUX MODULES:
المستخدمة الوحدات إيقاف و تحميل يمكنكأوامر RtLiunx في باستخدام
(liunxالليونكس ) : هي األوامر من جملة بناء
$rtlinux start my_program$rtlinux stop my_program$rtlinux status my_program
الطالبان : من كل عملسمكة . موفق و بارافي آالء
http://www.tldp.org/HOWTO/RTLinux-HOWTO-3.html
مراجع :CprE 458/558: Real-Time Systems (G.
Manimaran)
CS397 Ambuj and Utkarsh Feb 2000
Dr. C. SARITHA , Lecturer in Electronics,SSBN Degree & PG College Anantapur