لقد أجريت بعض التعديلات على الإصدار الأولي من قائمتي، وهي الآن تلبي المتطلبات المنصوص عليها في مادة الأستاذ مازيرو. لقد قمت بتعديله لاجتياز الاختبارات، وقررت أيضًا استخدام readapt لـ C. بدا التجميع مع ملف الاختبار المتاح أقل إشكالية بهذه الطريقة.
بإعادة النظر في الكود الخاص بهذه القائمة، كنت بحاجة إلى إعادة النظر في القوائم الأبسط التي تأتي قبل القائمة الدائرية ذات الارتباط المزدوج، لذلك تمكنت من تجميع أسباب قوية عند البرمجة.
هي بنية تحتوي كل عقدة فيها على ثلاثة أجزاء: القيمة، ومؤشر إلى العقدة التالية، ومؤشر إلى العقدة السابقة.
يسمح بالتنقل ثنائي الاتجاه، ولإزالة أو إضافة عقدة، ما عليك سوى ضبط نقاط العقدة السابقة والتالية.
[head] [nó1] [nó2] [tail]
يمكن أن تكون متسلسلة ببساطة (بمعنى من جانب واحد) أو مزدوجة السلسلة (وهذا ما أستخدمه في المشروع).
العقدة الأخيرة في القائمة متصلة بالعقدة الأولى، مما يعني أن القائمة لا تحتوي على نقطة نهاية طبيعية.
يمكن تمرير القائمة إلى أجل غير مسمى، لأنها عندما تصل إلى النهاية، فإنها تعود إلى البداية.
استخدام قائمة دائرية مزدوجة الارتباط يجعل نظام التشغيل يتمتع بميزة الجدولة الدائرية.
ومع ذلك، بعد تنفيذ العملية الأخيرة، يعود النظام إلى العملية الأولى ويستمر في التنفيذ.
تخيل أن نظام التشغيل يحتوي على ثلاث عمليات:
[P1] [P2] [P3] [P1] ...
بعد انتهاء P3 من وقت التنفيذ، ستعود القائمة مباشرة إلى P1، مما يضمن التنفيذ المستمر.
يمكن العثور على رمز نظام التشغيل الحالي هنا.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3