Un proces este un program în execuție. Un computer ar trebui să efectueze mai multe sarcini în același timp. Prin urmare, procesorul ar trebui să obțină procese și să le execute. Uneori este necesar să se execute anumite procese decât celelalte procese. În acest moment, procesul de rulare este întrerupt, iar procesorul este alocat noului proces. După terminarea sarcinii, procesorul este alocat înapoi procesului anterior. Programarea în funcție de acest mecanism este cunoscută ca programare preemptivă. Dacă procesul de rulare nu poate fi întrerupt și este obligatoriu să se execute procesul de funcționare, atunci este cunoscut ca programare nonpreemptive. Acest articol discută diferența dintre programarea preventivă și nonpreemptive într-un sistem de operare. Programarea preemptivă este mecanismul de programare a procesului prin care un proces poate fi întrerupt de un alt proces în mijlocul execuției sale. Programarea nonpreemptive este mecanismul de programare a procesului prin care un proces începe executarea numai după terminarea procesului precedent. Asta este diferența cheie între Programarea preemptivă și neprevăzută în sistemul de operare.
1. Prezentare generală și diferență cheie
2. Ce este programarea preemptivă în sistemul de operare
3. Ce este programarea nonpreemptivă în sistemul de operare
4. Asemănări între planificarea preemptivă și nonpreemptivă în sistemul de operare
5. Comparație de la o parte la alta - Programare preventivă vs. nonpreemptivă în OS în formă tabulară
6. rezumat
Programarea rotundă a Robin este un exemplu de programare preemptivă. Fiecare proces obține o cantitate mică de timp CPU. Este de obicei de la 10 la 100 de milisecunde. Această unitate mică de date este, de asemenea, cunoscută sub numele de timp cuantum. După ce a trecut acest timp, procesul este preemptat și adăugat la sfârșitul coadă de gata. Să presupunem că există 4 procese ca P1, P2, P3 și P4. Timpurile de spargere ale procesorului în milisecunde sunt după cum urmează. Timpul este de 20.
Figura 01: Exemplu de planificare rotundă în robinet
Procesul P1 execută până la 20. Există încă 33 de kilograme rămase. Apoi P2 execută. Deoarece timpul cuantic este 20 și timpul necesar P2 este de 17 ms, P2 va executa timp de 17 ms. Deci, procesul P2 este finalizat. Apoi șansa este dată P3. Se va executa timp de 20ms. Restul este de 48ms. Apoi P4 va executa timp de 20ms. Are 4ms pentru a finaliza procesul total. Din nou, P1 va executa timp de 20ms. Are alte 13ms pentru a finaliza procesul. Modificarea este dată P3. Acesta se va executa timp de 20ms, și are alte 28ms pentru a termina complet. P4 execută. Are doar 4ms. Prin urmare, P4 completează execuția. P2 și P4 au terminat deja. Procesele rămase sunt P1 și P3. Șansa este dată P3. Avea 13 ms pentru a termina, așa că se termină. Acum, singurul proces rămas este P3. Ea are 28ms pentru a finaliza. Deci P3 va rula timp de 20ms. Restul este de 8 ms. Toate celelalte procese au încheiat deja executarea. Prin urmare, din nou restul de 8ms din P3 va executa. De asemenea, fiecare proces are șansa de a executa.
Primul program de livrare primită (FCFS) poate fi luat ca un exemplu de planificare fără preempție. Procesul care cere mai întâi este alocat mai întâi CPU-ului. Acest programare este ușor de gestionat de coada First In First Out (FIFO). Dacă există procese în ordine ca P1, P2 și P3, atunci șansa este dată mai întâi P1. După ce este terminat, P2 va executa. Când P2 se termină, P3 va executa. Să presupunem că există 3 procese ca P1, P2 și P3 cu timpii de spargere a procesorului în milisecunde, după cum urmează.
Figura 02: Exemplu de planificare FCFS
În conformitate cu cele de mai sus, P1 va executa. Odată terminată, procesul P2 este executat timp de 3 ms. Acum procesul rămas este P3. Apoi se va executa. Timpul de așteptare pentru P1 este zero. Procesul P2 a trebuit să aștepte 24 ms, iar procesul P3 a trebuit să aștepte 27 ms. Dacă procesele au ajuns în ordinea P2, P3 și P1, atunci P2 va fi completă mai întâi. Următorul P3 va finaliza și, în sfârșit, P1 va finaliza.
Preemptiv vs. Nonpreemtive Scheduling în OS | |
Programarea preemptivă este mecanismul de programare a procesului prin care un proces poate fi întrerupt de un alt proces în mijlocul executării acestuia. | Programarea nonpreemptive este mecanismul de programare a procesului prin care un proces începe executarea numai după terminarea procesului precedent. |
Procesul de întrerupere | |
În planificarea preemptivă, procesele pot fi întrerupte. | În planificarea fără preempțiune, procesele pot fi întrerupte. |
Utilizarea CPU | |
În planificarea preemptivă, utilizarea CPU este mai mare decât planificarea fără preempție. | În planificarea fără preempțiune, utilizarea CPU este minimă în comparație cu planificarea preemptivă. |
Flexibilitate | |
Programarea preemptivă este flexibilă. | Programarea nonpreemptive nu este flexibilă. |
Există mai multe procese care rulează pe un computer. Când fiecare proces este executat, procesorul este alocat procesului respectiv. Uneori, este necesar să se oprească executarea procesului actual și să se acorde prioritate unui alt proces. Mecanismele de programare a proceselor pot fi preventive sau neprevăzute. Programarea preemptivă este mecanismul de programare a procesului prin care procesul poate fi întrerupt de un alt proces în mijlocul execuției acestuia. Programarea nonpreemptive este mecanismul de programare a procesului prin care un proces începe executarea numai după terminarea procesului precedent. Aceasta este diferența dintre planificarea preemptivă și nonpreemptivă în sistemul de operare.
Puteți descărca versiunea PDF a acestui articol și îl puteți utiliza în scopuri offline conform notei de citare. Descărcați versiunea PDF aici: Diferența dintre programarea preventivă și nonpreemptivă în sistemul de operare
1. Ce este programarea pre-empirică și non-preemptivă?. Disponibil aici
2.Point, Tutoriale. "Algoritmi de programare a sistemului de operare.", Tutoriale punct. 8 ianuarie 2018. Disponibil aici
3. "Ce sunt termeni pre-empatici și non-preemptivi în contextul sistemului de operare?" GeeksforGeeks Întrebări și răspunsuri. Disponibil aici