الأحد، 28 ديسمبر 2014

الدرس (1) - تحليل وتصميم وبناء أنظمة قواعد البيانات باستخدام SQL Server

بسم الله الرحمن الرحيم


تحليل وتصميم وبناء أنظمة قواعد البيانات باستخدام

2012 SQL Server



رابط الدرس:






العرض التقديمي الخاص بالدرس:

ساقوم بتحميل العروض التقديمية قريبا.

محتويات الدرس:

مقدمة عن طرق تخزين البيانات
الملفات
تخزين البيانات
قواعد البيانات التراتبية
قواعد البينات العلائقية
ما هي قواعد البيانات؟

ما هو نظام ادارة قواعد البيانات؟

Introduction about data saving
Files.
Sequential Database.
Relational Database
What is Database?
What is DBMS?

SQL Server Management Studio
Starting SQL Server Management Studio
Connecting with Registered Servers and Object Explorer
Changing the Environment Layout
Displaying the Document Window
Showing the Object Explorer Details page
Selecting the Keyboard Shortcut Scheme
Setting the Startup Options
Restoring the Default SQL Server Management Studio Configuration
Object Explorer Window
The Object Explorer Groups

Understanding SQL Server System Databases 
master 
tempdb 
model 
msdb 
resource database
distribution database

Create your first database with SSMS
Create your first database with T-SQL
filegroups

مقدمة دورة تحليل وتصميم وبناء أنظمة قواعد البيانات باستخدام SQL Server

بسم الله الرحمن الرحيم



تحليل وتصميم وبناء أنظمة قواعد البيانات باستخدام

2012 SQL Server





كنت قد القيت موخرا دورة حول تصميم وبناء انظمة قواعد البيانات باستخدام اس كيول سيرفر. فكرة الدورة تكون على مرحلتين كل مرحلة عدة دروس. كخطوة اولى الابتداء مع المبرمج من تحليل ثم تصميم ثم بناء نظام قاعدة البيانات والخطوة الثاني هي دورة اخرى مستقلة خاصة ببناء البرامج (ساتكلم عنها لاحقا). ان شاء الله ساقوم برفع دروس هذه الدورة بالتسلسل.



نظرة عامة على منهج الدورة:


·         Database Fundamentals  & Introduction To SQL Server
·         Working With SQL Server Management Studio
·         GUI VS CODE Programming (Creating Database & Tables & ……. )
·         Data Definition Language  (DDL).
·         Data Manipulation Language  (DML).
·         Data Control Language (DCL).
·         Transact-SQL Language in Details with examples (Views , Constraints , Scripts, Transaction, Stored Procedure, Functions, Template, Triggers, Programmability)
·         SQL Server Services (Reporting, Reporting  Services, Backup & Restore DB ……..)
·         Database Relationships & Normalization
·         Systems Analyses
·         Analyses
·         Design
·         Execute
·         Test
·         Client – Server Database

سيتم نشر دروس الدورة على قناتي في اليوتيوب:
https://www.youtube.com/channel/UCS3bQ4kq7hP_O06I_OlJ0iw


سيتم وضع الكودات والبوربوينت للدورة على مدونتي:

مستوى الدورة مبتدى - متوسط - متقدم.
لا تنسونا من الدعاء.


الجمعة، 12 ديسمبر 2014

أهم 25 مواقع على الأنترنت حالياََ


 من أهم مواقع الأنترنت حالياََ
1 - CodeAcademy
http://www.codecademy.com/
من أفضل مواقع تعليم لغات البرمجة (HTML , CSS) و الـJavascript
2 - Coursera
https://www.coursera.org/
فيها أكتر من 800 دورة مجانية على بداية تاريخ الأنترنت الى الهندسة المالية
3 - Digital Photography School
http://digital-photography-school.com/tips
أفضل موقع لتحسين مهارات التصوير الفوتوغرافي الخاص بيك وفيها منتدى نشط دائما للتفاعل مع المصورين صُحاب الصور المعروضة للملاحظات والتعلم
4 - Duolingo
http://duolingo.com/
لتعلم اللغات وتحسين مهاراتك اللغوية بجانب الموقع دة برضوhttp://www.bbc.co.uk/languages/
5 - edX
https://www.edx.org/
موقع شامل لشرح حاجات علمية وعرض معلومات
6 - Factsie
http://factsie.com/
من أمتع المواقع اللى بتنشر حقائق تاريخية وعلمية جنبا الى مصادر موثوقة من جهات معتمدة متخصصة وبمجرد النقر على الموقع بيضفلك معلومة بالـsource
7 - Fast Company's 30-Second MBA
http://www.fastcompany.com/section/30-second-mba
بيعرض فيديوهات قصيرة لمديرين تنفيذين لشركات بيدفعوك للعمل والتعلم وبيحكوا عن تجاربهم
8 - Freerice
http://freerice.com/#/english-vocabulary/1515
بيوسع مفردات كلامك عند الحديث الأقل منك ماديا أو جسديا أو مركزاََ
9 - Gibbon
https://gibbon.co/
بيعرض مقالات وأشرطة فيديوهات لمساعدتك على تعلم حاجات عن البرمجة والجرافيك و الـios
10 - Instructables
http://instructables.com/
موقع فنى بيعرض مقالات وفيديوهات عن تعليم حاجات مثل المواهب و المهارات زى الطبخ ، الرسم ، التزيين ، ترتيب منزلك ، إصلاح حاجات ، خطط عمل ، عمل حديقة إلخ....
11 - Investopedia
http://www.investopedia.com/
لتعليم كل شيئ بتحتاج معرفته عن الأستثمار والتسويق والتمويلات الشخصية
12 - Khan Academy
https://www.khanacademy.org/
موسوعة كبيرة جدا جدا لتعليم حاجات كتيره جدا جدا كلامى عنها يحتاج لبوست تانى ، بس زى ما هو مكتوب عند دخولك على الموقع
you only have to know one thing >> YOU CAN LEARN ANYTHING
13 - LearnVest
https://www.learnvest.com/
تقديم موارد لمساعدتك على تعلم أساسيات إدارة الأموال الخاصة بيك والتمويل
14 - Lifehacker
http://lifehacker.com/
نصائح و tricks وحاجات لأنجاز أمورك بسرعة وبطريقة صحيحة بدون أخطاء وعواقب
15 - Lumosity
http://www.lumosity.com/
لتدريب دماغك على المرح والسعادة عبر ألعاب مصممة بطريقة علمية ، وفيها برامج لتدريب دماغك "علميا برضو" على الذاكرة والأنتباه وسرعة البديهه
16 - MIT Open Courseware
http://ocw.mit.edu/index.htm
كورسات مواد دراسية لجعل من الطالب شخص ذكى
17 - Powersearching with Google
http://www.powersearchingwithgoogle.com/
بيعرض أحسن طرق لمهارة اتقان عملية البحث عن شيئ فى محرك جوجل
18 - Quora
https://www.quora.com/
بيعرض عليك مختارات ثقافية كتير وانت كل اللى عليك تحدد انت بتحب ايه فيهم ، وبيتم يوميا نشر عنهم معلومات ، بجانب انك لو سألت أى سؤال هيتم الرد عليك فوراََ
19 - Recipe Puppy
http://www.recipepuppy.com/
مطبخ كبير جدا
20 - Spreeder
http://www.spreeder.com/
لتحيسن فهم وسرعة قرائتك ولصق وتنسيق الجُمل بحرفية
21 - StackOverflow
http://stackoverflow.com/
سؤال وجواب للمبرمجيين
22 - TED-Ed
http://ed.ted.com/
دروس وفيديوهات عن كل المواضيع والثقافات
23 - Udemy
https://www.udemy.com/
لتغذية عقلك مع دورات عن كل شيئ من أول دروس عن الشبكات لغاية التعليم على الغيتار
24 - Unplug The TV
http://unplugthetv.com/
موقع علمى بيطرح حاجات عن العالم الحديث من أول التعدين لعلم الكون
25 - VSauce
https://www.youtube.com/user/Vsauce/videos
من أهم وأكبر القنوات على اليوتيوب اللى بتعرض حقائق وبتاخدك لعالم تانى توريك قد ايه عالمنا مذهل وبتطرح أمثلة زى (ايه اللى هيحصل لكوكب الأرض لو مفهوش غَزل ؟) أو (لماذا نحصل على الملل ؟)

منقول من حسابي على الفيسبوك...

الخميس، 4 ديسمبر 2014

معلومات مهمة عن برامج الاتصال للموبايلات...

الجدول التالي الذي يوضح أشهر برامج المحادثة على الأجهزة الذكية والعاملة بالنظم ( آبل ، اندرويد ، بلاك بيري ) ومستوى أمان هذه البرامج . ودعمها للتشفير من عدمه ، حيث على الجميع عدم استخدام اي برامج لا تدعم التشفير حيث ان مثل هذه البرامج التي لا تستخدم اي معيار للتشفير تمكن الهكرز وشركات الاتصالات والحكومات من الإطلاع على كافة الرسائل والصور والفديوات المرسله من قبلك والوارده إليك , وفي هذا انتهاك كبير لخصوصيتك , مع ملاحظة ان محادثات البلاك بيري آمنه في جميع الدول إلا في السعودية والإمارات والهند حيث يتم مراقبتها من قبل الحكومات كما اسلف بعض الخبراء في امن المعلومات , أذا رأيت المعلومة نافعة ومفيدة بادر الى مشاركتها مع اﻷخرين وبذلك تسهم في دعم الوعي لدى المواطن بامن المعلومات وامن الهاتف الشخصي , خالص تحياتي واعتزازي .



منقول للفائدة.

الأحد، 14 سبتمبر 2014

يوم المبرمجين - Programmers' Day



يوم المبرمج هو عطلة رسمية خاصة بالمبرمجين تقام في العديد من دول العالم تم تحديده في روسيا من قبل أحد الموظفين في شركة تصميم وتطوير مواقع الويب باراليل تكنولوجيز  ويصادف في اليوم الـ 256 من السنة (الموافق 13 سبتمبر أيلول في السنوات البسيطة أو 12 سبتمبر أيلول في السنوات الكبيسة)

تم اختيار الرقم 256 بناء على عدد القيم التي يمكن تمثيلها باستخدام بايت واحد 8-بت، وهذا من أكثر الأرقام المعروفة للمبرمجين. أيضا فإن الرقم 256 له القيمة الست-عشرية ’100‘ (’0x100‘)، وهو أيضا أعلى أس للرقم 2 أقل من القيمة 365 (عدد أيام السنة.)

الخميس، 4 سبتمبر 2014

Microsoft College Code Competition @ RIT!

بسم الله الرحمن الرحيم


الى طلاب اختصاص علوم الحاسوب بشكل عام في معهد  Rochester Institute of Technology تقيم شركة مايكروسوفت تحدي للمبرمجين بتاريخ Sep 10, 2014 واسم هذا التحدي Microsoft College Code Competition @ RIT! والجائزة للفائز هي ١٠٠ دولار. 


للتسجيل في المنافسة:


ملاحظة:
لا تنسى جلب لابتوب معاك.

اتمنى التوفيق للجميع. ونلتقي في المنافسة باذن الله.

الثلاثاء، 26 أغسطس 2014

7- نظام التشغيل (Linux) - مقارنة بين لينكس و ويندوز - Linux VS Windows

بسم الله الرحمن الرحيم



الدرس السابع - Linux VS Windows 


مقارنة بين لينكس و ويندوز - Linux VS Windows
مقارنة البرامج الكبيرة هي عملية صعبة ومعقدة ولاسيما مقارنة أنظمة تشغيل والجدول التالي يوضح مقارنة عامة بين (Windows) و(Linux) من عدة نواحي موضحة بالجدول التالي والتضليل الأخضر اللون في خانة النظام بالجدول يعني أن الصفة هي أفضل في هذا النظام:

المعيار
Linux
Windows
الكلفة
عادة يكون (Linux) مجاني أو اقل كلفة بكثير من (Windows)
تكون كلفة (Windows) بين $50.00 - $150.00دولاراً لكل نسخة مرخصة
سهولة الاستخدام
لقد تحسن (Linux) من ناحية سهولة الاستخدام ولكن يبقى (Windows) أسهل بالنسبة للمستخدمين الجدد
قامت مايكروسوفت بالعديد من التحسينات لتكوين نظام تشغيل سهل الاستخدام
المعولية
إن اغلب توزيعات وإصدارات (Linux) تكون موثوقة جدا وتشتغل لشهور أو سنوات دون الحاجة لإعادة تشغيل
على الرغم من التحسينات العديدة في إصدارات (Windows) الأخيرة من ناحية المعولية إلا أنها لا تستطيع أن تجاري (Linux)
البرمجيات
(Linux) يملك تشكيلة كبيرة من البرامج والألعاب
بسبب كثرة عدد مستخدمي (Windows) فانه يملك تشكيلة اكبر من البرمجيات مقارنة بـ(Linux)
كلفة البرمجيات
معظم البرامج والألعاب والأدوات في (Linux) تكون مجانية و مفتوحة المصدر غالبا وحتى البرامج الكبيرة مثل (Gimp, OpenOffice) تكون مجانية أو قليلة الكلفة
على الرغم من أن (Windows) يملك العديد من الأدوات والبرامج والألعاب مجانا فإنها تكلف البرامج الأساسية للمستخدم الاعتيادي ما بين $20.00 - $200.00+ للنسخة
الماديات
قامت شركات (Linux) ومصنعي الماديات بتطورات عظيمة من ناحية دعم (Linux) للماديات ولكن لا تزال بعض الشركات لا توفر السواقات المناسبة لـ(Linux)
بسبب العدد الكبير لمستخدمي (Windows) وأجهزتهم الصلبة فانه يملك دعماً اكبر للماديات واغلب مصنعي الأجهزة تدعم منتجاتها في ال(Windows)
الأمان
على الرغم من وجود بعض الثغرات في (Linux) لكنه يبقى النظام الأكثر أماناً مقارنة بـ(Windows)
مايكروسوفت تعمل تحسينات أمنية مستمرة على الـ(Windows) ولكنه يبقى النظام الأكثر عرضة للفيروسات والهجمات الأخرى
المصدر المفتوح
العديد من إصدارات (Linux) من البرامج هي مفتوحة المصدر وتسمح للمستخدمين بالتعديل وتخصيص المصدر البرمجي حسب العمل المطلوب
نظام (Windows) مغلق المصدر وأغلب البرامج فيه مغلقة المصدر أيضا
الدعم
على الرغم من صعوبة إيجاد مستخدمين (Linux) متآلفين مع جميع توزيعات (Linux) فإن هنالك كمية كافية من التوثيق والمساعدة متوفرة على الانترنت لدعم (Linux)
(Windows) يمتلك قسماً خاصاً للمساعدة ويمتلك كمية كبيرة من التوثيق والمساعدة على الانترنيت فضلا عن العديد من الكتب لمختلف الإصدارات

الاثنين، 25 أغسطس 2014

6- نظام التشغيل (Linux) - التوزيعات

بسم الله الرحمن الرحيم

الدرس السادس - التوزيعات


التوزيعات: Distributions
التوزيعة هي نظام (Linux) متكامل تم بناؤه من شركات أو منظمات للمساعدة في دعم وتركيب نظام تشغيل (Linux) تعتني التوزيعات بكل المهام الأولية لبناء النظام مثل بناء وفحص البرامج وتزويد الدعم الفني والتحديثات الأمنية وتصحيح الأخطاء وغيرها. هنالك العديد من التوزيعات لنظام التشغيل (Linux) قد تصل إلى الآلاف من التوزيعات بعضها تعود لشركات معينة أو جامعات أو حتى مجموعة من الأصدقاء ولكن هناك نقطة مهمة هي أن هذه التوزيعات تكون متشابهة في العديد من الأجزاء ومختلفة في أجزاء قليلة, فبيئات سطح المكتب والـ (shell) والأوامر ومهام الإدارة للنظام عادة ما تكون نفسها في كل التوزيعات لأنها تبنى على النواة نفسها وتختلف حيث تكون لكل توزيعة طريقة في التنصيب وتحديد أي البرامج سوف تضمن في هذه التوزيعة.
وعلى الرغم من أن كل توزيعة تضع شعارها وبرامجها الخاصة ولها إعداداتها وطرق التنصيب الخاصة بها فان مستخدم إحدى التوزيعات يستطيع بسهولة أن ينتقل إلى توزيعة أخرى للأسباب الآتية:
  1. إن التوزيعات تقوم على قاعدة تحقيق المعايير القياسية الخاصة بـ (Linux): حيث أن كل توزيعة يجب أن تحقق المحددات التي وضعتها www.linuxbase.org والهدف الرئيس من ذلك كله هو ضمان أن البرامج المكتوبة لأحد أنظمة (Linux) سوف يعمل على الأنظمة الأخرى.
  2. مشاريع مفتوحة المصدر: معظم التوزيعات تستخدم المشاريع نفسها مفتوحة المصدر فمثلا معظم الأوامر الأساسية وخدمات الطباعة وخدمات الانترنيت وخدمات إرسال الايميل ستكون نفسها بغض النظر عن ألتوزيعه
  3. الـ(shell) هي نفسها: على الرغم من إمكانية وضع واجهات عدة جميلة عليها فأن مفسر الأوامر هو نفسه (عادة ما يكون sh أو bash ) ولذا فأن مستخدمي (Linux) أو (UNIX) لا يجدون صعوبة في الانتقال بين التوزيعات لتوفر نفس الأوامر.
1.4.2 اختيار التوزيعة: Select Distributions
تستطيع معظم توزيعات (Linux) تنفيذ ما يحتاجه المستخدم من نظام التشغيل إلا أن بعض التوزيعات قد تحتاج لإرساء (install) برمجيات إضافية حتى تستطيع القيام بوظائفها كاملة أو تستطيع تنفيذ بعض مهامها. على كل حال يبقى الوضع المتمثل في وجود هذا الكم من التوزيعات غريبا. إذ يدعي كل توزيع بأنه الاسهل وانه كامل المواصفات. فيجب تحديد التوزيعة الأنسب للعمل. والشيء الذي يحدد اي توزيعة هي الانسب هو نوع العمل المطلوب من النظام.

الرابط التالي يساعدك في اختيار افضل توزيعة مناسبة لك :


كما يمكنك الاطلاع على افضل واحدث توزيعات اللينكس من:


الرابط ويمثل الموقع distrowatch.com واحد من افضل الماوقع للمقارنة بين التوزيعات ومعرفة معلومات تفصيلة عن توزيعات اللينكس




الأحد، 24 أغسطس 2014

5- نظام التشغيل (Linux) - النواة، الجدولة، جدولة المهام



بسم الله الرحمن الرحيم

الدرس الخامس - النواة، الجدولة، جدولة المهام



النواة: Kernel
قام لينوس تروفالدوز بكتابة نواة نظام تشغيل لغرض تشغيل نظام التشغيل الخاص به على حاسبته المنزلية لان أنظمة التشغيل كانت تعمل على حواسيب عملاقة في الجامعات والمؤسسات وبعد نجاحه في كتابة النواة تم دمجها مع مشروع (GNU) لينتج نظام التشغيل (Linux).
والنواة لنظام التشغيل هي الجزء المركزي الذي يدير النظام وهي عبارة عن برنامج خاص جدا يدير كل العمليات وسواقات الأجهزة وعمليات الإدخال والإخراج, وعندما يبدأ تشغيل النظام يتم تشغيل النواة أولا. وثم تقوم بتهيئة الأجزاء المادية وهياكل البيانات وبعد أن تنهي النواة هذه المرحلة تقوم بتحميل وتشغيل برامج النظام.
وللنواة العديد من الوظائف فبعد إقلاع النظام تبدأ مرحلة إدارة الأجهزة والعمليات على الرغم من أن المعالج -في مفهوم الحاسوب- يستطيع أن ينفذ برنامجاً واحداً في وقت واحد فأن النواة تحمل العديد من البرامج على الذاكرة وإدارتها, وعملية إدارة العمليات تكون كالأتي:
  1. النواة لها السيطرة على المعالج, وهنالك العديد من العمليات في الذاكرة.
  2. النواة تختار عملية وتؤشر إلى أين وصل تنفيذ هذه العملية.
  3. النواة تترك السيطرة على المعالج.
  4. يتم تنفيذ العملية لوقت معين (مثلا عدة ثواني).
  5. عندما ينتهي وقت العملية توقف ساعة القطع العملية ويرجع التحكم مرة أخرى للنواة.
  6. النواة تهتم بأعمال النظام المطلوبة مثل القراءة أو الكتابة على احد الأجهزة.
  7. اذهب إلى خطوة (2).
يبسط هذا الوصف عمل النواة بعض الشيء ويتبين أن النواة عبارة عن جزء من الشفرة الذي ينفذ بين حين وآخر بين العمليات.
في (Linux) تقع النواة عادة في ملف اسمه /vmlinuz أو /boot/vmlinuz والـ(Boot Loader ) يحمل هذا الملف إلى الذاكرة يمكنه من العمل عند انطلاق النظام.

الجدولة في لينكس: Scheduling in Linux
الجدولة هي عملية تعيين وقت المعالج إلى مهام مختلفة موجودة في نظام التشغيل و كل مهمة يسمح لها بان تنفذ فقط إذا كانت هي المهمة الوحيدة في النظام ولا علاقة لها بالمهام الأخرى (ما لم يكن تصميم البرنامج يتطلب ذلك) وهذا يجعل البرامج أكثر سهولة في التطوير والصيانة والنقل وعلى الرغم من أن المعالج ينفذ (Thread) واحدة ضمن المهمة فان النظام يتواجد فيه في الوقت نفسه العديد من الـ (Thread) تابعة لعدة مهام بحيث أن النظام يجدول (Thread) واحدة للتنفيذ بوقت قصير ثم يتم الانتقال لتنفيذ (Thread) أخرى ويجب أن تحقق الجدولة وقت استجابة سريع للمهام و(throughput) جيد للمهام التي تعمل بالخلفية، كما يجب تجنب حالات المجاعة للمهام والتوفيق بين متطلبات الأسبقية العالية والمنخفضة وهذا يتم حسب مجموعة من القواعد تحدد متى وكيف سيتم اختيار المهمة لتنفيذها تدعى سياسة الجدولة (scheduling policy).

جدولة المهام: Task Scheduling
في الإصدار 2.4 من نواة (Linux) تدعم النواة طرق جدولة تقليدية من خوارزميات الجدولة الخاصة بيونكس وان هذه الطرق لا تنمو بصورة جيدة (not scale well) عندما يزداد عدد المهام في النظام كما إنها لا توفر دعماً لتعدد المعالجات. ومع الإصدار 2.5 غير المستقر من النواة ثم الإصدار 2.6 المستقر تم استخدام خوارزمية جدولة جديدة هي O1 algorithm وان الحرف Big-O يعني معدل الزيادة في وقت التنفيذ لخوارزمية الجدولة بالاعتماد على كمية الإدخالات للخوارزمية فمثلا On يعني أن وقت التنفيذ للخوارزمية يزداد بصورة خطية كلما ازداد حجم الإدخالات كما أن On^2 يعني أن النمو تربيعي والخوارزمية O1 يعني أن الوقت الأعلى لتنفيذ الخوارزمية هو وقت ثابت أي إنها تضمن الانتهاء بكمية محددة من الوقت بغض النظر عن حجم الإدخالات وتوفر هذه الخوارزمية موازنة للحمل والعدالة والدعم للمهام الفعالة.
مجدول (Linux) يكون قابل للمقاطعة (preemptive) ويستخدم خوارزمية تعتمد على الأولوية (priority-based algorithm) باستخدام نطاقين منفصلين من الأولوية هما مدى الزمن الحقيقي (real-time range) وهو من 0-99 والمدى المعتمد على قيم الـ(nice) وهو من 100-140 والقيم الأقل هي الأعلى أولوية وال(Linux) يعطي وقتاً اكبر للمهام الأعلى أولوية و الشكل (1) يوضح العلاقة بين الأولوية وطول شريحة الوقت

الشكل (1) العلاقة بين الأولوية وطول شريحة الزمن


أي مهمة تعتبر مرشحة للتنفيذ من المعالج طالما أن لها وقتاً متبقياًً في شريحة الوقت الخاصة بها. وعندما تستنزف المهمة شريحة وقتها فإنها تعتبر منتهية (expired) ولا ترشح للتنفيذ ثانية حتى تكمل جميع المهام الأخرى شرائح الوقت الخاصة بها، النواة تدير قائمة بكل المهام قيد التنفيذ في هيكل بيانات هو (runqueue) وهو يراقب ويتابع كل المهام قيد التنفيذ وكل معالج له (runqueue) خاص به والـ (runqueue) يتكون من مصفوفتين مرتبتين حسب الأولوية (Priority arrays) هما (active) و (expired) تحوي المصفوفة (active) جميع المهام التي لها وقت متبقي في شرائح الوقت الخاصة بهم وتحوي المصفوفة (expired) جميع المهام المنتهية لاحظ الشكل (2). مصفوفة الأولوية (Priority arrays) هي عبارة عن مصفوفة كل عنصر يشير إلى بداية قائمة موصولة وكل قائمة موصولة تمثل مستوى من الأولوية وعندما يتم إضافة مهمة إلى الـ (Priority arrays) فإنها تضاف إلى القائمة في مستوى الأولوية الخاص بها ويتم تعديل مصفوفة (bitmap) وهي تحوي على قيم تمثل فعالية أو تعطيل مستوى الأولوية في الـ (Priority arrays) فمثلا إذا كان هنالك ثلاث مهام في النظام واحدة في مستوى الأولوية 5 واثنتين في مستوى الأولوية 0 فانه سيتم تفعيل البت 0 و 5 من الـ (bitmap).

الشكل (2) ترتيب المهام حسب الأولوية

المجدول يقوم باختيار المهمة ذات الأولوية الأعلى من مصفوفة الـ(active) ليتم تنفيذها على المعالج وعملية إيجاد المهمة ذات أعلى أولوية هي عملية سهلة لأنه فقط يجب إيجاد أول بت فعال في الـ (bitmap) ثم تحديد القائمة الموصولة المطلوبة من مصفوفة الـ (active) وإذا كان هنالك أكثر من مهمة في القائمة نفسها فإنها ستنفذ بأسلوب (round-robin) ثم بعد تنفيذ المهمة للـ(time slice) الخاص بها يتم نقلها من مصفوفة الـ(active) إلى مصفوفة الـ(expired) وعندما يتم نقل جميع المهام وتصبح مصفوفة الـ(active) فارغة يتم تبديل مصفوفة الـ(active) و مصفوفة الـ(expired) أي تبديل المؤشرين فقط بين المصفوفتين نلاحظ أن عملية إيجاد أول بت في الـ(bitmap) وإيجاد أول عنصر في القائمة يتطلب وقتاً محدداً لإكمال العملية ولهذا تسمى الخوارزمية O1.


هذه صورة مصغرة لخارطة النواة......

ممكن استخدام الخارطة التفاعلية لنواة اللنكس من الرابط التالي
Interactive map of linux kernel