rtliunx

Post on 23-Jul-2015

27 Views

Category:

Education

1 Downloads

Preview:

Click to see full reader

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

top related