Diferența dintre programarea preventivă și nepreemptivă în sistemul de operare

Cuprins:

Diferența dintre programarea preventivă și nepreemptivă în sistemul de operare
Diferența dintre programarea preventivă și nepreemptivă în sistemul de operare

Video: Diferența dintre programarea preventivă și nepreemptivă în sistemul de operare

Video: Diferența dintre programarea preventivă și nepreemptivă în sistemul de operare
Video: Difference between Preemptive and Nonpreemptive Scheduling in Operating System in Hindi Lec-13 2024, Noiembrie
Anonim

Diferență cheie – Programare preventivă versus nepreemptivă în sistemul de operare

Un proces este un program în execuție. Un computer ar trebui să îndeplinească multe sarcini în același timp. Prin urmare, CPU ar trebui să primească procese și să le execute. Uneori este necesar să se execute unele procese decât celel alte procese. În acel moment, procesul de rulare este întrerupt și CPU este alocat noului proces. După finalizarea sarcinii, procesorul este alocat înapoi procesului anterior. Programarea conform acestui mecanism este cunoscută sub denumirea de programare preventivă. Dacă procesul de rulare nu poate fi întrerupt și este obligatoriu să se execute procesul de rulare, atunci este cunoscut ca programare nonpreemptive. Acest articol discută diferența dintre programarea preventivă și nonpreemptivă într-un sistem de operare. Programarea preventivă este mecanismul de planificare a procesului prin care un proces poate fi întrerupt de un alt proces în mijlocul execuției sale. Programarea nepreemptivă este mecanismul de planificare a procesului prin care un proces începe execuția numai după ce procesul anterior se încheie. Aceasta este diferența cheie dintre programarea preventivă și nepreemptivă în sistemul de operare.

Ce este programarea preventivă în sistemul de operare?

Programarea Round Robin este un exemplu de programare preventivă. Fiecare proces primește o cantitate mică de timp CPU. De obicei este de 10 până la 100 de milisecunde. Această mică unitate de date este cunoscută și sub numele de cuantum de timp. După expirarea acestui timp, procesul este anticipat și adăugat la sfârșitul cozii de așteptare. Să presupunem că există 4 procese ca P1, P2, P3 și P4. Timpii de explozie a procesorului în milisecunde sunt după cum urmează. Cuantumul de timp este 20.

Diferența dintre programarea preventivă și nonpreemptivă în sistemul de operare
Diferența dintre programarea preventivă și nonpreemptivă în sistemul de operare
Diferența dintre programarea preventivă și nonpreemptivă în sistemul de operare
Diferența dintre programarea preventivă și nonpreemptivă în sistemul de operare

Figura 01: Exemplu de programare Round Robin

Procesul P1 se execută până la 20. Mai sunt încă 33 ms. Apoi P2 se execută. Deoarece cuantumul de timp este 20 și timpul necesar P2 este de 17 ms, P2 se va executa timp de 17 ms. Deci, procesul P2 este finalizat. Apoi șansa i se acordă P3. Se va executa timp de 20 ms. Restul este de 48 ms. Apoi P4 se va executa timp de 20 ms. Are 4 ms pentru a finaliza procesul total. Din nou, P1 se va executa timp de 20 ms. Mai are 13 ms până la finalizarea procesului. Modificarea este dată la P3. Se va executa timp de 20 ms și mai are încă 28 ms pentru a se termina complet. P4 execută. Are doar 4 ms. Prin urmare, P4 finalizează execuția. P2 și P4 s-au terminat deja. Procesele rămase sunt P1 și P3. Se acordă șansa P3. Avea 13 ms de finalizat, așa că se completează. Acum, singurul proces rămas este P3. Are 28 ms de finalizat. Deci P3 va rula timp de 20 ms. Restul este de 8 ms. Toate celel alte procese s-au încheiat deja execuția. Prin urmare, din nou restul de 8 ms din P3 se vor executa. De asemenea, fiecare proces are șansa de a fi executat.

Ce este programarea nepreemptivă în sistemul de operare?

Programarea Primul venit, primul servit (FCFS) poate fi luată ca exemplu de programare nepreemptivă. Procesul care solicită primul este alocat mai întâi procesorului. Această programare este gestionată cu ușurință de coada First In First Out (FIFO). Dacă există procese în ordine ca P1, P2 și P3, atunci șansa este acordată mai întâi lui P1. După ce este finalizat, P2 se va executa. Când P2 se termină, P3 se va executa. Să presupunem că există 3 procese ca P1, P2 și P3 cu timpi de explozie a procesorului în milisecunde, după cum urmează.

Diferența cheie între programarea preventivă și nepreemptivă în sistemul de operare
Diferența cheie între programarea preventivă și nepreemptivă în sistemul de operare
Diferența cheie între programarea preventivă și nepreemptivă în sistemul de operare
Diferența cheie între programarea preventivă și nepreemptivă în sistemul de operare

Figura 02: Exemplu de programare FCFS

Conform celor de mai sus, P1 se va executa. Odată ce este finalizat, 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 sosit în ordinea P2, P3 și P1, atunci P2 se va finaliza primul. Următorul P3 se va finaliza și, în cele din urmă, P1 se va finaliza.

Care este asemănarea dintre programarea preventivă și nepreemptivă în sistemul de operare?

Atât programarea preventivă, cât și cea nepreemptivă în sistemul de operare sunt mecanisme de programare a proceselor pe un computer

Care este diferența dintre programarea preventivă și nepreemptivă în sistemul de operare?

Programare preventivă vs nonpreemtivă în sistemul de operare

Programarea preventivă este mecanismul de planificare a procesului prin care un proces poate fi întrerupt de un alt proces în mijlocul execuției sale. Programarea nepreemptivă este mecanismul de planificare a procesului prin care un proces începe execuția numai după ce procesul anterior se încheie.
întreruperea procesului
În programarea preventivă, procesele pot fi întrerupte. În programarea nepreemptivă, procesele pot fi întrerupte.
Utilizare CPU
În programarea preventivă, utilizarea procesorului este mai mare decât programarea nepreemptivă. În programarea nepreemptivă, utilizarea procesorului este minimă în comparație cu programarea preventivă.
Flexibilitate
Programarea preventivă este flexibilă. Programarea nepreemptivă nu este flexibilă.

Rezumat – Programare preventivă versus nepreemptivă în sistemul de operare

Există mai multe procese care rulează pe un computer. Când fiecare proces se execută, procesorul este alocat procesului specific respectiv. Uneori, este necesar să se oprească execuția procesului curent și să se acorde prioritate unui alt proces. Mecanismele de planificare a proceselor pot fi preventive sau nepreemptive. Programarea preventivă este mecanismul de planificare a procesului prin care procesul poate fi întrerupt de un alt proces în mijlocul execuției sale. Programarea nepreemptivă este mecanismul de planificare a procesului prin care un proces începe execuția numai după ce procesul anterior se încheie. Aceasta este diferența dintre programarea preventivă și nepreemptivă în sistemul de operare.

Descărcați PDF-ul programării preventive vs nonpreemptive în sistemul de operare

Puteți descărca versiunea PDF a acestui articol și să o utilizați în scopuri offline, conform nota de citare. Vă rugăm să descărcați versiunea PDF aici: Diferența dintre programarea preventivă și nonpreemptivă în sistemul de operare

Recomandat: