SlideShare a Scribd company logo
1 of 27
‫؟‬ ‫الحقيقي‬ ‫الزمن‬ ‫نظام‬ ‫هو‬ ‫ما‬
‫هو‬‫دخل‬ ‫لتحريض‬ ‫يستجيب‬ ‫المعلومات‬ ‫لمعالجة‬ ‫نظام‬
‫ومنتهية‬ ‫معينة‬ ‫زمنية‬ ‫مدة‬ ‫في‬ ‫خارجي‬.
‫قد‬‫يكون‬:
1-‫لين‬ ‫الزمن‬ ‫نظام‬: RT -‫أحيانا‬ ‫يسمح‬‫بإغفال‬‫المواعيد‬
‫النهائية‬(‫على‬‫عرض‬ ‫تحديث‬ ‫المثال‬ ‫سبيل‬‫الفيديو‬.)
2-‫صعب‬ ‫الزمن‬ ‫نظلم‬: RT –‫تلبية‬ ‫أن‬ ‫يعني‬‫النهائ‬ ‫الموعد‬‫ي‬
‫األهمية‬ ‫غاية‬ ‫في‬ ‫هو‬(‫الصواري‬ ‫تحكم‬ ‫المثال‬ ‫سبيل‬ ‫على‬‫خ‬.)
‫أنظمة‬ ‫مع‬ ‫التوافق‬ ‫عدم‬‫مشاركة‬:
‫الوسطية‬ ‫الحاالت‬ ‫تحسين‬ ‫تحاول‬ ‫الزمن‬ ‫مشاركة‬ ‫انظمة‬
‫ان‬ ‫عليها‬ ‫الحقيقي‬ ‫التوقيت‬ ‫انظمة‬ ‫لكن‬‫تأخذ‬‫اال‬ ‫في‬‫عتبار‬
‫االحتماالت‬ ‫اسوء‬.
‫للحاال‬ ‫جيد‬ ‫هو‬ ‫ما‬ ،‫لالثنين‬ ‫التصميم‬ ‫اهداف‬ ‫اختالفات‬‫ت‬
‫تدهور‬ ‫الى‬ ‫يؤدي‬ ‫الوسطية‬‫الحالة‬‫لألسواء‬.
‫تتط‬ ‫و‬ ‫االفتراضية‬ ‫الذاكرة‬ ‫هو‬ ‫لذلك‬ ‫كالسيكي‬ ‫مثال‬‫لب‬
paging
‫ال‬ ‫مالءمة‬liunx‫للهارد‬Rt:
‫بها‬ ‫التنبؤ‬ ‫يمكن‬ ‫ال‬ ‫جدولة‬-‫النظ‬ ‫تحميل‬ ‫على‬ ‫يعتمد‬‫ام‬.
‫الخشنة‬ ‫مؤقت‬ ‫قرار‬(10‫ثانية‬ ‫مللي‬)
‫نواة‬Non-preemptible
‫الخش‬ ‫الحبيبات‬ ‫لمزامنة‬ ‫تستخدم‬ ‫المقاطعات‬ ‫تعطيل‬‫نة‬.
‫استخدام‬‫الظاهرية‬ ‫الذاكرة‬
‫كفاءة‬ ‫طلبات‬ ‫ترتيب‬ ‫إعادة‬(‫القرص‬ ‫مثال‬I / O)
POSIX 1003.1b Standard:
‫في‬ ‫اللي‬ ‫الحقيقي‬ ‫الزمن‬ ‫نظام‬ ‫ميزات‬ ‫على‬ ‫للحصول‬
UNIX‫،يتطلب‬‫ما‬ ‫ذلك‬‫يلي‬:
‫جدولة‬‫وقائية‬ ‫أولوية‬
‫الذاكرة‬ ‫في‬ ‫افتراضية‬ ‫صفحات‬ ‫قفل‬
‫الحقيقي‬ ‫الوقت‬ ‫في‬ ‫إشارات‬
‫تحسين‬IPC
‫الوقت‬ ‫ضبط‬ ‫أجهزة‬ ‫تحسين‬
‫سبق‬ ‫ما‬ ‫إلى‬ ‫فقط‬ ‫جزئيا‬ ‫يتفق‬ ‫لينكس‬.
(mlocksystem,setsched calls)
RT Linux – Aims(‫الهدف‬: )
‫تحقيق‬‫أداء‬RT‫الثابت‬.
‫من‬ ‫عال‬ ‫مستوى‬‫دقة‬Timer‫الجدولة‬ ‫في‬.
‫لتوفير‬‫للكمون‬ ‫منخفضة‬ ‫مقاطعة‬
‫جدولة‬‫مخصصة‬.
‫ك‬ ‫مجموعة‬ ‫بحيث‬ ‫لينكس‬ ‫نواة‬ ‫على‬ ‫طفيفة‬ ‫تغييرات‬‫من‬ ‫املة‬
‫الخدمات‬OS‫المتاحة‬.
(‫منهج‬)RT Linux – Approach:
‫برامج‬ ‫من‬ ‫طبقة‬ ‫هناك‬‫بين‬ ‫المحاكاة‬‫نواة‬‫اللينكس‬‫و‬
‫المقاطعة‬ ‫تحكم‬ ‫أجهزة‬.
‫يمنع‬‫تعطيل‬‫المقاطعة‬‫بواسطة‬‫لينوكس‬.
Cli, sti and iret‫محاكات‬ ‫برامج‬ ‫بنسخ‬ ‫يستبدلون‬
‫متطابقة‬.
Interrupt Emulation(‫محاكاة‬
‫المقاطعة‬: )
 S_CLI :
movl $0, SFIF
 S_STI :
sti
pushfl
pushl $KERNEL_CS
pushl $1f
S_IRET
1:
Interrupt Emulation (‫محاكاة‬
‫المقاطعة‬: )
 S_IRET:
push %ds
pushl %eax
pushl %edx
movl $KERNEL_DS, %edx
mov %dx, %ds
Interrupt Emulation (‫محاكاة‬
‫المقاطعة‬: )
cli
movl SFREQ, %edx
andl SFMASK, %edx
bsfl %edx, %eax
jz 1f
S_CLI
sti
jmp SFIDT (,%eax,4)
Interrupt Emulation (‫محاكاة‬
‫المقاطعة‬: )
1:
movl $1, SFIF
popl %edx
popl %eax
popl %ds
iret
RT Linux – Tasks(‫مهام‬)
‫التصميم‬‫األولي‬-‫كل‬‫مهمة‬‫منفذة‬‫في‬‫مساحة‬‫العنوان‬
‫الخاص‬‫بها‬.
‫اآلن‬‫جميع‬‫المهام‬‫تعمل‬‫في‬‫نفس‬‫مساحة‬‫العنوان‬(‫في‬
‫فضاء‬‫النواة‬)‫وعلى‬‫أعلى‬‫مستوى‬‫االمتياز‬.
‫ولكنها‬‫للغاية‬‫عرضة‬‫للخطأ‬‫كما‬‫أن‬‫خلل‬‫في‬‫تطبيق‬‫واحد‬
‫يمكن‬‫أن‬‫تقضي‬‫على‬‫النظام‬‫بأكمله‬.
‫تعمل‬‫المهام‬‫كوحدة‬‫النواة‬،‫و‬‫يمكن‬‫أن‬‫يحدث‬‫إضافة‬
‫بشكل‬‫أوتوماتيكي‬.
‫ال‬‫يستخدم‬‫تبديل‬‫السياق‬‫األجهزة‬x86.
‫إجرائيات‬‫المصادر‬‫ينبغي‬‫أن‬‫يكون‬‫لها‬‫قسم‬‫ثابت‬.
RT Linux - Scheduling
Default-‫جدولة‬‫تع‬ ‫يتم‬ ‫حيث‬ ‫األولوية‬ ‫تستند‬ ‫بسيطة‬‫يين‬
‫األولويات‬ ‫ثابت‬ ‫بشكل‬ ‫المهام‬.‫المهمة‬ ‫المقرر‬ ‫ومن‬‫ذات‬
‫القصوى‬ ‫األولوية‬‫للتشغيل‬ ‫جاهزة‬.
 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
KernelLoadableModules
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
KernelLoadableModules
RAM
DISK
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

More Related Content

Viewers also liked

Operating system introducton and tyes
Operating system introducton and tyesOperating system introducton and tyes
Operating system introducton and tyes
Nancy Verma
 
أنواع نظم تشغيل الحاسب
أنواع نظم تشغيل الحاسبأنواع نظم تشغيل الحاسب
أنواع نظم تشغيل الحاسب
Ahmad Abdelbaqy
 
الفصل الثامن
الفصل الثامنالفصل الثامن
الفصل الثامن
guestb0490b3d
 
Real time Operating System
Real time Operating SystemReal time Operating System
Real time Operating System
Tech_MX
 

Viewers also liked (13)

Cloud Computing workshop
Cloud Computing workshopCloud Computing workshop
Cloud Computing workshop
 
الوراثة في الجافا
الوراثة في الجافاالوراثة في الجافا
الوراثة في الجافا
 
Www.kutub.info 18703
Www.kutub.info 18703Www.kutub.info 18703
Www.kutub.info 18703
 
Linux presentation
Linux presentationLinux presentation
Linux presentation
 
Embedded System Real Time Operating System (ERTS) I unit by vijay
Embedded System Real Time Operating System (ERTS) I unit by vijayEmbedded System Real Time Operating System (ERTS) I unit by vijay
Embedded System Real Time Operating System (ERTS) I unit by vijay
 
Operating system introducton and tyes
Operating system introducton and tyesOperating system introducton and tyes
Operating system introducton and tyes
 
أنواع نظم تشغيل الحاسب
أنواع نظم تشغيل الحاسبأنواع نظم تشغيل الحاسب
أنواع نظم تشغيل الحاسب
 
مساق الخوارزميات والبرمجة بلغة جافا (1) مفاهيم الخوارزميات ج1
مساق الخوارزميات والبرمجة بلغة جافا (1) مفاهيم الخوارزميات ج1مساق الخوارزميات والبرمجة بلغة جافا (1) مفاهيم الخوارزميات ج1
مساق الخوارزميات والبرمجة بلغة جافا (1) مفاهيم الخوارزميات ج1
 
Questionnaire
QuestionnaireQuestionnaire
Questionnaire
 
الفصل الثامن
الفصل الثامنالفصل الثامن
الفصل الثامن
 
شرح مبسط جدا لمنهج سيسكو CCNA
شرح مبسط جدا لمنهج سيسكو CCNAشرح مبسط جدا لمنهج سيسكو CCNA
شرح مبسط جدا لمنهج سيسكو CCNA
 
نموذج عن استبيان
نموذج عن استبيان نموذج عن استبيان
نموذج عن استبيان
 
Real time Operating System
Real time Operating SystemReal time Operating System
Real time Operating System
 

Similar to Rtliunx

مقدمة_في_الحاسوب.pptx
مقدمة_في_الحاسوب.pptxمقدمة_في_الحاسوب.pptx
مقدمة_في_الحاسوب.pptx
anasalsaaydeh
 
الصف العاشر-الذاكرة-الرئيسية-ومكونات-جهاز-الحاسوب-الداخلية
الصف العاشر-الذاكرة-الرئيسية-ومكونات-جهاز-الحاسوب-الداخليةالصف العاشر-الذاكرة-الرئيسية-ومكونات-جهاز-الحاسوب-الداخلية
الصف العاشر-الذاكرة-الرئيسية-ومكونات-جهاز-الحاسوب-الداخلية
moaa alaassr
 
حاسب اليتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتت
حاسب اليتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتحاسب اليتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتت
حاسب اليتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتت
EsraaAhmed428889
 
عمارة الحاسب
عمارة الحاسبعمارة الحاسب
عمارة الحاسب
تقانة
 

Similar to Rtliunx (20)

عرض وحدة تقنيات التحكم الرقمي والروبوت
عرض وحدة تقنيات التحكم الرقمي والروبوتعرض وحدة تقنيات التحكم الرقمي والروبوت
عرض وحدة تقنيات التحكم الرقمي والروبوت
 
مقدمة_في_الحاسوب.pptx
مقدمة_في_الحاسوب.pptxمقدمة_في_الحاسوب.pptx
مقدمة_في_الحاسوب.pptx
 
نظم التشغيل.ppt
نظم التشغيل.pptنظم التشغيل.ppt
نظم التشغيل.ppt
 
Control system
Control systemControl system
Control system
 
Mn
MnMn
Mn
 
Osi layers
Osi layersOsi layers
Osi layers
 
Computer school-books-1st-preparatory-1st-term-khawagah-2019-2
Computer school-books-1st-preparatory-1st-term-khawagah-2019-2Computer school-books-1st-preparatory-1st-term-khawagah-2019-2
Computer school-books-1st-preparatory-1st-term-khawagah-2019-2
 
الصف العاشر-الذاكرة-الرئيسية-ومكونات-جهاز-الحاسوب-الداخلية
الصف العاشر-الذاكرة-الرئيسية-ومكونات-جهاز-الحاسوب-الداخليةالصف العاشر-الذاكرة-الرئيسية-ومكونات-جهاز-الحاسوب-الداخلية
الصف العاشر-الذاكرة-الرئيسية-ومكونات-جهاز-الحاسوب-الداخلية
 
دورة صيانة مختصر
دورة صيانة مختصردورة صيانة مختصر
دورة صيانة مختصر
 
Linuxppt
LinuxpptLinuxppt
Linuxppt
 
حاسب اليتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتت
حاسب اليتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتحاسب اليتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتت
حاسب اليتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتت
 
عمارة الحاسب
عمارة الحاسبعمارة الحاسب
عمارة الحاسب
 
الانترنت
الانترنتالانترنت
الانترنت
 
نظام التشغيل
نظام التشغيلنظام التشغيل
نظام التشغيل
 
Processor
ProcessorProcessor
Processor
 
Computer school-books-1st-preparatory-1st-term-khawagah-2019-9
Computer school-books-1st-preparatory-1st-term-khawagah-2019-9Computer school-books-1st-preparatory-1st-term-khawagah-2019-9
Computer school-books-1st-preparatory-1st-term-khawagah-2019-9
 
Introduction to lookout
Introduction to lookoutIntroduction to lookout
Introduction to lookout
 
Computer school-books-1st-preparatory-1st-term-khawagah-2019-12
Computer school-books-1st-preparatory-1st-term-khawagah-2019-12Computer school-books-1st-preparatory-1st-term-khawagah-2019-12
Computer school-books-1st-preparatory-1st-term-khawagah-2019-12
 
مكونات الحاسوب
مكونات الحاسوبمكونات الحاسوب
مكونات الحاسوب
 
Lecture6
Lecture6Lecture6
Lecture6
 

More from Alaa Bar Avi (6)

مبادئ التحرير الإعلامي
مبادئ التحرير الإعلاميمبادئ التحرير الإعلامي
مبادئ التحرير الإعلامي
 
النشرالإلكتروني
النشرالإلكترونيالنشرالإلكتروني
النشرالإلكتروني
 
أخلاقيات العالم الافتراضي نهائي
أخلاقيات العالم الافتراضي نهائيأخلاقيات العالم الافتراضي نهائي
أخلاقيات العالم الافتراضي نهائي
 
تصميم مواقع الشرق الأوسط
تصميم مواقع الشرق الأوسطتصميم مواقع الشرق الأوسط
تصميم مواقع الشرق الأوسط
 
الإعلام الجديد التفاعلية
الإعلام الجديد   التفاعليةالإعلام الجديد   التفاعلية
الإعلام الجديد التفاعلية
 
بحث علمي
بحث علمي  بحث علمي
بحث علمي
 

Rtliunx

  • 1.
  • 2. ‫؟‬ ‫الحقيقي‬ ‫الزمن‬ ‫نظام‬ ‫هو‬ ‫ما‬ ‫هو‬‫دخل‬ ‫لتحريض‬ ‫يستجيب‬ ‫المعلومات‬ ‫لمعالجة‬ ‫نظام‬ ‫ومنتهية‬ ‫معينة‬ ‫زمنية‬ ‫مدة‬ ‫في‬ ‫خارجي‬. ‫قد‬‫يكون‬: 1-‫لين‬ ‫الزمن‬ ‫نظام‬: RT -‫أحيانا‬ ‫يسمح‬‫بإغفال‬‫المواعيد‬ ‫النهائية‬(‫على‬‫عرض‬ ‫تحديث‬ ‫المثال‬ ‫سبيل‬‫الفيديو‬.) 2-‫صعب‬ ‫الزمن‬ ‫نظلم‬: RT –‫تلبية‬ ‫أن‬ ‫يعني‬‫النهائ‬ ‫الموعد‬‫ي‬ ‫األهمية‬ ‫غاية‬ ‫في‬ ‫هو‬(‫الصواري‬ ‫تحكم‬ ‫المثال‬ ‫سبيل‬ ‫على‬‫خ‬.)
  • 3. ‫أنظمة‬ ‫مع‬ ‫التوافق‬ ‫عدم‬‫مشاركة‬: ‫الوسطية‬ ‫الحاالت‬ ‫تحسين‬ ‫تحاول‬ ‫الزمن‬ ‫مشاركة‬ ‫انظمة‬ ‫ان‬ ‫عليها‬ ‫الحقيقي‬ ‫التوقيت‬ ‫انظمة‬ ‫لكن‬‫تأخذ‬‫اال‬ ‫في‬‫عتبار‬ ‫االحتماالت‬ ‫اسوء‬. ‫للحاال‬ ‫جيد‬ ‫هو‬ ‫ما‬ ،‫لالثنين‬ ‫التصميم‬ ‫اهداف‬ ‫اختالفات‬‫ت‬ ‫تدهور‬ ‫الى‬ ‫يؤدي‬ ‫الوسطية‬‫الحالة‬‫لألسواء‬. ‫تتط‬ ‫و‬ ‫االفتراضية‬ ‫الذاكرة‬ ‫هو‬ ‫لذلك‬ ‫كالسيكي‬ ‫مثال‬‫لب‬ paging
  • 4. ‫ال‬ ‫مالءمة‬liunx‫للهارد‬Rt: ‫بها‬ ‫التنبؤ‬ ‫يمكن‬ ‫ال‬ ‫جدولة‬-‫النظ‬ ‫تحميل‬ ‫على‬ ‫يعتمد‬‫ام‬. ‫الخشنة‬ ‫مؤقت‬ ‫قرار‬(10‫ثانية‬ ‫مللي‬) ‫نواة‬Non-preemptible ‫الخش‬ ‫الحبيبات‬ ‫لمزامنة‬ ‫تستخدم‬ ‫المقاطعات‬ ‫تعطيل‬‫نة‬. ‫استخدام‬‫الظاهرية‬ ‫الذاكرة‬ ‫كفاءة‬ ‫طلبات‬ ‫ترتيب‬ ‫إعادة‬(‫القرص‬ ‫مثال‬I / O)
  • 5. POSIX 1003.1b Standard: ‫في‬ ‫اللي‬ ‫الحقيقي‬ ‫الزمن‬ ‫نظام‬ ‫ميزات‬ ‫على‬ ‫للحصول‬ UNIX‫،يتطلب‬‫ما‬ ‫ذلك‬‫يلي‬: ‫جدولة‬‫وقائية‬ ‫أولوية‬ ‫الذاكرة‬ ‫في‬ ‫افتراضية‬ ‫صفحات‬ ‫قفل‬ ‫الحقيقي‬ ‫الوقت‬ ‫في‬ ‫إشارات‬ ‫تحسين‬IPC ‫الوقت‬ ‫ضبط‬ ‫أجهزة‬ ‫تحسين‬ ‫سبق‬ ‫ما‬ ‫إلى‬ ‫فقط‬ ‫جزئيا‬ ‫يتفق‬ ‫لينكس‬. (mlocksystem,setsched calls)
  • 6. RT Linux – Aims(‫الهدف‬: ) ‫تحقيق‬‫أداء‬RT‫الثابت‬. ‫من‬ ‫عال‬ ‫مستوى‬‫دقة‬Timer‫الجدولة‬ ‫في‬. ‫لتوفير‬‫للكمون‬ ‫منخفضة‬ ‫مقاطعة‬ ‫جدولة‬‫مخصصة‬. ‫ك‬ ‫مجموعة‬ ‫بحيث‬ ‫لينكس‬ ‫نواة‬ ‫على‬ ‫طفيفة‬ ‫تغييرات‬‫من‬ ‫املة‬ ‫الخدمات‬OS‫المتاحة‬.
  • 7. (‫منهج‬)RT Linux – Approach: ‫برامج‬ ‫من‬ ‫طبقة‬ ‫هناك‬‫بين‬ ‫المحاكاة‬‫نواة‬‫اللينكس‬‫و‬ ‫المقاطعة‬ ‫تحكم‬ ‫أجهزة‬. ‫يمنع‬‫تعطيل‬‫المقاطعة‬‫بواسطة‬‫لينوكس‬. Cli, sti and iret‫محاكات‬ ‫برامج‬ ‫بنسخ‬ ‫يستبدلون‬ ‫متطابقة‬.
  • 8. Interrupt Emulation(‫محاكاة‬ ‫المقاطعة‬: )  S_CLI : movl $0, SFIF  S_STI : sti pushfl pushl $KERNEL_CS pushl $1f S_IRET 1:
  • 9. Interrupt Emulation (‫محاكاة‬ ‫المقاطعة‬: )  S_IRET: push %ds pushl %eax pushl %edx movl $KERNEL_DS, %edx mov %dx, %ds
  • 10. Interrupt Emulation (‫محاكاة‬ ‫المقاطعة‬: ) cli movl SFREQ, %edx andl SFMASK, %edx bsfl %edx, %eax jz 1f S_CLI sti jmp SFIDT (,%eax,4)
  • 11. Interrupt Emulation (‫محاكاة‬ ‫المقاطعة‬: ) 1: movl $1, SFIF popl %edx popl %eax popl %ds iret
  • 12. RT Linux – Tasks(‫مهام‬) ‫التصميم‬‫األولي‬-‫كل‬‫مهمة‬‫منفذة‬‫في‬‫مساحة‬‫العنوان‬ ‫الخاص‬‫بها‬. ‫اآلن‬‫جميع‬‫المهام‬‫تعمل‬‫في‬‫نفس‬‫مساحة‬‫العنوان‬(‫في‬ ‫فضاء‬‫النواة‬)‫وعلى‬‫أعلى‬‫مستوى‬‫االمتياز‬. ‫ولكنها‬‫للغاية‬‫عرضة‬‫للخطأ‬‫كما‬‫أن‬‫خلل‬‫في‬‫تطبيق‬‫واحد‬ ‫يمكن‬‫أن‬‫تقضي‬‫على‬‫النظام‬‫بأكمله‬. ‫تعمل‬‫المهام‬‫كوحدة‬‫النواة‬،‫و‬‫يمكن‬‫أن‬‫يحدث‬‫إضافة‬ ‫بشكل‬‫أوتوماتيكي‬. ‫ال‬‫يستخدم‬‫تبديل‬‫السياق‬‫األجهزة‬x86. ‫إجرائيات‬‫المصادر‬‫ينبغي‬‫أن‬‫يكون‬‫لها‬‫قسم‬‫ثابت‬.
  • 13. RT Linux - Scheduling Default-‫جدولة‬‫تع‬ ‫يتم‬ ‫حيث‬ ‫األولوية‬ ‫تستند‬ ‫بسيطة‬‫يين‬ ‫األولويات‬ ‫ثابت‬ ‫بشكل‬ ‫المهام‬.‫المهمة‬ ‫المقرر‬ ‫ومن‬‫ذات‬ ‫القصوى‬ ‫األولوية‬‫للتشغيل‬ ‫جاهزة‬.  the scheduler is itself a load able kernel . module. ‫جدولة‬ ‫سياسات‬‫بديلة‬: ( EDF) -‫جدولة‬ ‫يتم‬ ‫التي‬ ‫الديناميكية‬ ‫األولويات‬ ‫جدولة‬ ‫مهلة‬ ‫أقرب‬ ‫مع‬ ‫المهمة‬. -(RM)‫جدولة‬‫لمهام‬ ‫ثابتة‬ ‫أولوية‬‫دورية‬‫تعيين‬ ‫يتم‬ ‫حيث‬‫المهمة‬ ‫الفترة‬ ‫مع‬‫األصغر‬.‫هي‬ ‫الجدولة‬ ‫هذه‬ ‫وربما‬‫المثل‬ ‫السياسة‬‫ى‬
  • 14. ‫تستخدم‬ ‫التي‬ ‫التطبيقات‬ ‫تصميم‬RT LIUNX: ‫من‬ ‫النظام‬ ‫هذا‬ ‫في‬ ‫التطبيقات‬ ‫تتألف‬ ‫أن‬ ‫المتوقع‬ ‫من‬‫جزئيين‬ : ‫ب‬ ،‫صغير‬ ،‫سريع‬ ‫يكون‬ ‫و‬ ‫الحقيقي‬ ‫الزمن‬ ‫نظم‬ ‫جزء‬‫سيط‬. ‫يأخذ‬ ‫أن‬ ‫يجب‬ ‫و‬ ،‫المستخدم‬ ‫فضاء‬ ‫في‬ ‫يعمل‬ ‫آخر‬ ‫جزء‬ ‫بالحسبان‬I/O.. ‫الحقيق‬ ‫الزمن‬ ‫مهام‬ ‫مع‬ ‫يتواصل‬ ‫أن‬ ‫عليه‬ ‫المهام‬ ‫مستخدم‬‫ي‬ ‫عبر‬FiFo‫الحقيقي‬ ‫الزمن‬.
  • 15. ‫التطبيقات‬ ‫تصميم‬ ‫مخطط‬: User Process RT Fifo RT Fifo RT Process Peripheral Device Linux Kernel NetworkDisk X Windows Display
  • 16. Why RT Linux ? ‫أسباب‬‫تصميم‬RT Linux‫يمكن‬‫أن‬‫يفهم‬‫من‬‫خالل‬‫دراسة‬ ‫عمل‬‫نواة‬‫لينكس‬‫القياسية‬: ‫نواة‬‫لينكس‬‫تفصل‬‫بين‬Hardware‫و‬‫مهام‬‫مستوى‬ ‫المستخدم‬. ‫تستخدم‬‫نواة‬‫لينكس‬‫خوارزميات‬‫الجدولة‬‫وتعين‬‫األولوي‬‫ة‬‫لكل‬ ،‫مهمة‬‫لتوفير‬‫متوسط‬‫األداء‬‫الجيد‬‫أو‬‫اإلنتاجية‬. ‫وهكذا‬‫فإن‬‫النواة‬‫لديها‬‫القدرة‬‫على‬‫وقف‬‫أي‬‫مهمة‬‫على‬‫مستوى‬ ،‫المستخدم‬‫مرة‬‫واحدة‬‫وقد‬‫تفوق‬‫تلك‬‫المهمة‬‫شريحة‬‫الوقت‬ ‫المخصصة‬‫لها‬‫من‬‫قبل‬‫وحدة‬‫المعالجة‬‫المركزية‬.
  • 17. 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); }
  • 18. 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. 19 Linux Kernel (‫ليونكس‬ ‫نواة‬) System libraries Device drivers Linux kernel Hardware I/O Hardware Interrupts User Processes
  • 20. 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. 21 Linux Kernel: code perspective (‫الكود‬ ‫تجسيد‬) Linux Monolithic kernel core M1 M2 M3 M4 KernelLoadableModules RAM DISK Module M2 service (system call) User Process M2 THE controller
  • 22. 22 RTLinux Kernel: code perspective ‫الكود‬ ‫عن‬ ‫يعبر‬ ‫رسم‬ Linux Monolithic kernel core RTM2 RTM3 M1 M2 KernelLoadableModules RAM DISK Load RT core RT Load command RT-Core Module RT core M3 THE controller
  • 23. RTLINUX MODULES ‫ال‬‫برامج‬ ‫إنشاء‬ ‫يتم‬RTLinux‫وحدة‬ ‫على‬ ‫بناء‬‫قائمة‬ ‫بذاتها‬‫بل‬ ،‫يتم‬ ‫والتي‬ ،‫وحدات‬ ‫أنها‬ ‫على‬ ‫إنشاؤها‬ ‫يتم‬ ‫نواة‬ ‫الفضاء‬ ‫في‬ ‫تحميلها‬‫لينكس‬. ‫يتم‬‫تجميع‬‫ملفات‬‫المصدر‬C‫إلى‬‫أغراض‬‫الملفات‬ ‫األمر‬ ‫باستخدام‬gcc‫مع‬(“(“argument –c flag ‫يحصل‬‫الوظيفة‬ ‫استبدال‬main)(‫التالية‬ ‫األسطر‬ ‫مع‬:
  • 24. 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.
  • 25. EXECUTING THE RTLINUX MODULES: ‫في‬ ‫المستخدمة‬ ‫الوحدات‬ ‫إيقاف‬ ‫و‬ ‫تحميل‬ ‫يمكنك‬ RtLiunx‫أوامر‬ ‫باستخدام‬‫الليونكس‬(liunx) ‫هي‬ ‫األوامر‬ ‫من‬ ‫جملة‬ ‫بناء‬: $rtlinux start my_program $rtlinux stop my_program $rtlinux status my_program
  • 26. ‫الطالبان‬ ‫من‬ ‫كل‬ ‫عمل‬: ‫آالء‬‫بارافي‬‫سمكة‬ ‫موفق‬ ‫و‬.
  • 27. 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