Microkernel arhitectura

Utilități, programe de procesare și aplicații - stratul superior (Figura 3.6).

Echipamentul este un strat interior,

Structura stratificată a sistemului de operare

Sistemul informatic care rulează sub control OS pe baza kernel-ului poate fi considerat ca un sistem format din trei straturi ierarhic localizate:

§ miezul este un strat intermediar,

Structura stratificată a sistemului de calcul este reprezentată de obicei ca un sistem de cercuri concentrice, ilustrând faptul că fiecare strat poate interacționa numai cu straturile adiacente. Într-adevăr, cu o astfel de organizație, aplicațiile nu pot interacționa direct cu hardware-ul, ci numai prin stratul de bază.

Fiecare strat servește stratului suprapus, efectuând pentru el un set de funcții,

Deoarece nucleul este un complex multifuncțional complex, abordarea multistratificată se extinde de obicei la structura de bază.

Kernelul poate fi format din următoarele straturi.

1. Suportul hardware pentru sistemul de operare este o componentă a hardware-ului care rulează direct din sistemul de operare (suport pentru mod privilegiat, sistem de întrerupere, procese, protecția zonelor de memorie)

2. Componente dependente de mașină ale sistemului de operare. Acest strat este format din module software care reflectă specificitatea platformei hardware. Acest strat protejează (ecranele) straturile superioare ale nucleului de dependența hardware.

3. Mecanismele de bază ale nucleului. Acest strat efectuează cele mai simple, dar cele mai masive operații de kernel, cum ar fi procesarea software-ului, întreruperea dispecerizării, mutarea paginilor de la memorie la disc și spate și așa mai departe.

4. Manageri de resurse. Acest strat constă din module care implementează sarcini strategice pentru gestionarea resurselor de bază ale sistemului informatic

5. Interfața apelurilor de sistem. Acest strat este stratul cel mai de sus al kernel-ului și interacționează direct cu aplicațiile și utilitățile de sistem, formând interfața de programare a aplicațiilor din sistemul de operare.

Partiționarea de mai sus a kernelului OC în straturi este mai degrabă condiționată

1. Conceptul

Arhitectura microkernel este o alternativă la modul clasic de a construi un sistem de operare în care un nucleu cu mai multe straturi este executat într-un mod privilegiat.

Esența arhitecturii micronucleare este după cum urmează. În modul privilegiat, doar o foarte mică parte a sistemului de operare rămâne să funcționeze. numită microkernel (Figura 3.10). Microkernelul este protejat de alte părți ale sistemului de operare și de aplicații. Microkernelul include de obicei module dependente de mașină. precum și module, care efectuează (dar nu toate!) funcțiile de bază pentru managementul proceselor de bază, de a întrerupe de manipulare, de gestionare a memoriei virtuale, redirecționarea mesajelor și gestionarea dispozitivelor de intrare și de ieșire asociate cu încărcarea sau citirea registrelor de dispozitiv. Setul de funcții al microkernelului corespunde de obicei funcțiilor stratului mecanismelor de bază ale kernelului obișnuit. Asemenea funcții ale sistemului de operare sunt dificile, dacă nu chiar imposibil, să se realizeze în spațiul utilizatorilor.

Toate celelalte funcții ale kernelului la nivel superior sunt concepute ca aplicații care rulează în modul utilizator. O decizie cu valoare unică în privința funcțiilor sistemului care ar trebui lăsată în modul privilegiat și care dintre acestea să fie transferate utilizatorului nu există. În general, mulți administratori de resurse, care sunt părți integrante ale kernelului obișnuit - sistemul de fișiere, subsistemele de memorie virtuală și gestionarea proceselor, managerul de securitate etc. - devin module "periferice" care funcționează în modul utilizator.

Managerii de resurse gestionate de utilizatori au diferențe fundamentale față de utilitățile tradiționale și programele de procesare ale sistemului de operare. Acestea servesc cereri pentru aplicații locale și, prin urmare, se numesc servere OS. Evident, pentru implementarea unei arhitecturi microkernel, o condiție necesară este prezența în sistemul de operare a unei modalități eficiente de a apela procedurile unui proces de la altul. Sprijinul pentru un astfel de mecanism este una dintre principalele sarcini ale microkernelului.

2. Avantajele și dezavantajele arhitecturii micronucleare

Sistemele de operare bazate pe conceptul de microkernel, în comparație cu cele anterioare, au o portabilitate, o extensibilitate mai bună, o fiabilitate mai bună și creează premise bune pentru susținerea aplicațiilor distribuite. Pentru aceste merite trebuie să plătească o scădere a performanței, și acesta este principalul dezavantaj al arhitecturii microkernel.

Un grad înalt de portabilitate se datorează faptului că întregul cod dependent de mașină este izolat în microkernel, deci sunt necesare mai puține modificări pentru a transfera sistemul la noul procesor și toate acestea sunt logic grupate împreună.

Extensibilitatea este inerentă sistemului OS microkernel într-un grad foarte înalt. În sistemele tradiționale, chiar și cu o structură multistrat, nu este ușor să se îndepărteze un strat și să se schimbe altul datorită multiplicității și neclarității interfețelor dintre straturi. Adăugarea de funcții noi și modificarea celor existente necesită o bună cunoaștere a sistemului de operare și o mare parte din timp. În același timp, un set limitat de interfețe microkernel bine definite deschide calea spre creșterea și evoluția ordonată a sistemului de operare. Adăugarea unui nou subsistem necesită dezvoltarea unei noi aplicații, care nu afectează integritatea microkernelului. Structura microkernel permite nu numai adăugarea, dar și reducerea numărului de componente ale sistemului de operare, care este de asemenea foarte utilă. De exemplu, nu toți utilizatorii au nevoie de instrumente de securitate sau de sprijin distribuite de calcul și eliminarea lor din nucleul tradițional de multe ori imposibil. De obicei, sistemele de operare tradiționale pot fi adăugate în mod dinamic la kernel-ul sau eliminate din driverele kernel doar dispozitivele externe - având în vedere schimbările frecvente de configurare sunt conectate la un dispozitiv extern de calculator IO nucleu subsistem permite încărcarea și descărcarea de drivere „on the fly“, dar că acesta este proiectat într-un mod special (de exemplu, mediul STREAMS pe UNIX sau managerul de I / O din Windows NT). Cu abordarea microkernel, configurabilitatea sistemelor de operare nu cauzează probleme și nu necesită măsuri speciale.

Utilizarea unui model micronuclear mărește fiabilitatea sistemului de operare. Fiecare server rulează ca proces separat în propria sa zonă de memorie și este astfel protejat de alte servere de sistem de operare, ceea ce nu este observat într-un sistem tradițional de operare în care toate modulele de kernel se pot afecta reciproc. Și dacă un server separat se blochează, acesta poate fi repornit fără a opri sau a deteriora serverele OS rămase. Mai mult, deoarece serverele rulează în modul utilizator, nu au acces direct la hardware și nu pot modifica memoria în care microkernelul este stocat și rulat. O altă sursă potențială de creștere a fiabilității sistemului de operare este cantitatea redusă de cod microkernel comparativ cu kernelul tradițional - ceea ce reduce probabilitatea de erori de programare.

Performanță. În organizarea clasică a sistemului de operare (Figura 3.12, a), executarea apelului de sistem este însoțită de două moduri de comutare, iar în cazul unei organizații micro-nucleare (Figura 3.12, b) - patru. Astfel, sistemul de operare bazat pe microkernel, cu alte lucruri egale, va fi întotdeauna mai puțin productiv decât OS cu nucleul clasic. Din acest motiv, abordarea micro-nucleară nu a beneficiat de o difuzare atât de largă pe care a fost prevăzută.

Seriozitatea acestui defect este bine ilustrată de istoria dezvoltării Windows NT. În versiunile 3.1 și 3.5, managerul de ferestre, biblioteca grafică și driverele de dispozitive grafice de nivel înalt făceau parte din serverul pentru modul de utilizare, iar funcțiile acestor module erau numite în concordanță cu circuitul micronuclear. Cu toate acestea, foarte curând, dezvoltatorii de Windows NT și-au dat seama că un astfel de mecanism de accesare a funcțiilor frecvent utilizate ale interfeței grafice încetinește semnificativ operarea aplicațiilor și face ca acest sistem de operare să fie vulnerabil în condiții de concurență intensă. Ca rezultat, s-au făcut modificări semnificative în versiunea Windows NT 4.0 - toate modulele de mai sus au fost mutate în nucleu, care a distanțat acest sistem de operare de la arhitectura ideală pentru microkernel, dar și-a mărit dramatic performanța.

Acest exemplu ilustrează principala problemă cu care se confruntă dezvoltatorii sistemului de operare care au decis să aplice abordarea micronucleară - ce trebuie să includă în microkernel și ce să scoată în spațiul utilizatorilor. În mod ideal, un microkernel poate consta doar în mijloace de transmitere a mesajelor, mijloace de interacțiune cu hardware-ul, inclusiv mijloace de acces la mecanisme de protecție privilegiată. Cu toate acestea, mulți dezvoltatori nu respectă întotdeauna cu strictețe principiul minimizării funcțiilor kernel-ului, adesea sacrificând acest lucru pentru a îmbunătăți performanța. Ca rezultat al implementării, sistemul de operare formează un spectru, la un capăt al cărui sistem se află cel puțin un microkernel posibil, iar pe de altă parte, sisteme precum Windows NT, în care microkernelul execută un volum suficient de mare de funcții.

Articole similare