rtliunx

27
RTLIUNX ي ق ي ق ح ل ا ن م ز ل ا م ظ ن

Upload: alaa-bar-avi

Post on 23-Jul-2015

27 views

Category:

Education


1 download

TRANSCRIPT

Page 1: Rtliunx

RTLIUNX الحقيقي الزمن نظم

Page 2: Rtliunx

؟ الحقيقي الزمن نظام هو ما

يستجيب المعلومات لمعالجة نظام هومعينة زمنية مدة في خارجي دخل لتحريض

ومنتهية. : يكون قد

لين- 1 الزمن بإغفال - RT: نظام أحيانا يسمحتحديث ) المثال سبيل على النهائية المواعيد

.) الفيديو عرضصعب- : 2 الزمن تلبية – RTنظلم أن يعني

سبيل ) على األهمية غاية في هو النهائي الموعد.) الصواريخ تحكم المثال

Page 3: Rtliunx

: مشاركة أنظمة مع التوافق عدم

الحاالت تحسين تحاول الزمن مشاركة انظمةعليها الحقيقي التوقيت انظمة لكن الوسطية

. االحتماالت اسوء االعتبار في تأخذ انجيد هو ما لالثنين، التصميم اهداف اختالفات

الحالة تدهور الى يؤدي الوسطية للحاالتلألسواء.

و االفتراضية الذاكرة هو لذلك كالسيكي مثالpagingتتطلب

Page 4: Rtliunx

ال : Rtللهارد liunxمالءمة - تحميل على يعتمد بها التنبؤ يمكن ال جدولة

النظام.( الخشنة مؤقت (10قرار ثانية مللي نواة Non-preemptible الحبيبات لمزامنة تستخدم المقاطعات تعطيل

الخشنة. الظاهرية الذاكرة استخدام ( القرص مثال كفاءة طلبات ترتيب / Iإعادة

O)

Page 5: Rtliunx

POSIX 1003.1b Standard : الحقيقي الزمن نظام ميزات على للحصول

في :UNIXاللي يلي ما ذلك ،يتطلب وقائية أولوية جدولة الذاكرة في افتراضية صفحات قفل الحقيقي الوقت في إشارات تحسينIPC الوقت ضبط أجهزة تحسين . سبق ما إلى فقط جزئيا يتفق لينكس (mlock system, setsched calls)

Page 6: Rtliunx

RT Linux – Aims الهدف) ( :

أداء .RTتحقيق الثابت دقة من عال .Timerمستوى الجدولة في للكمون منخفضة مقاطعة لتوفير. مخصصة جدولة بحيث لينكس نواة على طفيفة تغييرات

الخدمات من كاملة .OSمجموعة المتاحة

Page 7: Rtliunx

) :RT Linux – Approachمنهج)

نواة بين المحاكاة برامج من طبقة هناكالمقاطعة . تحكم أجهزة و اللينكس

. لينوكس بواسطة المقاطعة تعطيل يمنع Cli, sti and iret برامج بنسخ يستبدلون

. متطابقة محاكات

Page 8: Rtliunx

Interrupt Emulation (محاكاةالمقاطعة ( :

S_CLI : movl $0, SFIF

S_STI : stipushfl pushl $KERNEL_CSpushl $1fS_IRET

1:

Page 9: Rtliunx

Interrupt Emulation( محاكاة: ( المقاطعة S_IRET:

push %dspushl %eaxpushl %edxmovl $KERNEL_DS, %edxmov %dx, %ds

Page 10: Rtliunx

Interrupt Emulation( محاكاة: ( المقاطعة

climovl SFREQ, %edxandl SFMASK, %edxbsfl %edx, %eaxjz 1fS_CLIsti jmp SFIDT (,%eax,4)

Page 11: Rtliunx

Interrupt Emulation( محاكاة: ( المقاطعة

1:movl $1, SFIFpopl %edxpopl %eaxpopl %dsiret

Page 12: Rtliunx

RT Linux – Tasks) مهام) - مساحة في منفذة مهمة كل األولي التصميم

بها . الخاص العنوان مساحة نفس في تعمل المهام جميع اآلن

) ( أعلى وعلى النواة فضاء في العنوان. االمتياز مستوىفي خلل أن كما للخطأ عرضة للغاية ولكنهاالنظام على تقضي أن يمكن واحد تطبيق

بأكمله. يحدث أن يمكن و ، النواة كوحدة المهام تعمل

أوتوماتيكي . بشكل إضافة األجهزة السياق تبديل يستخدم .x86ال قسم لها يكون أن ينبغي المصادر إجرائيات

ثابت .

Page 13: Rtliunx

RT Linux - SchedulingDefault - يتم حيث األولوية تستند بسيطة جدولة

. المقرر ومن األولويات ثابت بشكل المهام تعيين. للتشغيل جاهزة القصوى األولوية ذات المهمة

the scheduler is itself a load able kernel .module.

: بديلة جدولة سياسات (EDF - )جدولة يتم التي الديناميكية األولويات جدولة

. مهلة أقرب مع المهمة(-RM )تعيين يتم حيث دورية لمهام ثابتة أولوية جدولة

هي . الجدولة هذه وربما األصغر الفترة مع المهمةالمثلى السياسة

Page 14: Rtliunx

تستخدم التي التطبيقات RTتصميمLIUNX:

هذا في التطبيقات تتألف أن المتوقع منجزئيين : من النظام

،سريع يكون و الحقيقي الزمن نظم جزءبسيط . صغير،

يجب و المستخدم، فضاء في يعمل آخر جزءبالحسبان يأخذ ..I/Oأن

مهام مع يتواصل أن عليه المهام مستخدمعبر الحقيقي الحقيقي . FiFoالزمن الزمن

Page 15: Rtliunx

التطبيقات : تصميم مخطط

User Process

RT Fifo

RT Fifo

RT Process

Peripheral Device

Linux Kernel

NetworkDisk

X Windows

Display

Page 16: Rtliunx

Why RT Linux ? تصميم خالل RT Linux أسباب من يفهم أن يمكن

القياسية : لينكس نواة عمل دراسة بين تفصل لينكس مستوى Hardwareنواة مهام و

المستخدم . األولوية وتعين الجدولة خوارزميات لينكس نواة تستخدم

. اإلنتاجية أو الجيد األداء متوسط لتوفير مهمة، لكل

على مهمة أي وقف على القدرة لديها النواة فإن وهكذاالمهمة تلك تفوق وقد واحدة مرة المستخدم، مستوىالمعالجة وحدة قبل من لها المخصصة الوقت شريحة

المركزية.

Page 17: Rtliunx

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); }

Page 18: Rtliunx

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; }

Page 19: Rtliunx

19

Linux Kernel( ليونكس ( نواة

System libraries

Device drivers Linux kernel

Hardware

I/O Hardware Interrupts

User Processes

Page 20: Rtliunx

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

Page 21: Rtliunx

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

Page 22: Rtliunx

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

Page 23: Rtliunx

RTLINUX MODULES

برامج إنشاء يتم وحدة RTLinuxال على بناءأنها على إنشاؤها يتم بل بذاتها، قائمة

نواة الفضاء في تحميلها يتم والتي وحدات،لينكس.

المصدر ملفات تجميع أغراض Cيتم إلىاألمر باستخدام مع )“ gccالملفات

“(argument –c flag الوظيفة استبدال األسطر)( mainيحصل مع

التالية:

Page 24: Rtliunx

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.

Page 25: Rtliunx

EXECUTING THE RTLINUX MODULES:

المستخدمة الوحدات إيقاف و تحميل يمكنكأوامر RtLiunx في باستخدام

(liunxالليونكس ) : هي األوامر من جملة بناء

$rtlinux start my_program$rtlinux stop my_program$rtlinux status my_program

Page 26: Rtliunx

الطالبان : من كل عملسمكة . موفق و بارافي آالء

Page 27: Rtliunx

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