Programarea proceselor în sistemul de operare: planificator pe termen lung, mediu, scurt

⚡ Rezumat inteligent

Planificarea proceselor este o sarcină a sistemului de operare care gestionează procesele în stările de pregătire, așteptare și rulare. Aceasta alocă timp CPU fiecărui proces, menține CPU ocupat și reduce timpul de răspuns utilizând planificatoare pe termen lung, mediu și scurt.

  • Definiție: Planificarea proceselor gestionează procesele în stările „gata”, „așteptare” și „execuție” pentru a menține CPU-ul ocupat.
  • 📥 Cozi de aşteptare: Cozile de joburi, de tip „gata” și de tip „dispozitiv” organizează procesele în funcție de starea lor de execuție.
  • 🔀 Modelul cu două state: La cel mai simplu nivel, un proces fie rulează, fie nu rulează.
  • 🧑💼 Trei planificatori: Planificatoarele pe termen lung, mediu și scurt controlează ce procese se execută și când.
  • Termen scurt: Planificatorul CPU este cel mai rapid, selectând un proces gata pentru execuție imediată.
  • 🔁 Comutare context: Salvarea și restaurarea stării procesorului în PCB permite multitasking-ul.

Planificarea proceselor în sistemul de operare

Ce este programarea proceselor?

Programarea proceselor este o sarcină a sistemului de operare care planifică procese în diferite stări, cum ar fi pregătit, în așteptare și în rulare.

Planificarea proceselor permite sistemului de operare să aloce un interval de timp de execuție a procesorului pentru fiecare proces. Un alt motiv important pentru utilizarea unui sistem de planificare a proceselor este acela că menține procesorul ocupat tot timpul. Acest lucru vă permite să obțineți timpul de răspuns minim pentru programe.

Cozile de programare a proceselor

Cozile de planificare a proceselor vă ajută să mențineți o coadă distinctă pentru fiecare stare a procesului și PCB. Toate procesele cu aceeași stare de execuție sunt plasate în aceeași coadă. Prin urmare, ori de câte ori starea unui proces este modificată, PCB-ul său trebuie deconectat de coada existentă și mutat înapoi în noua coadă de stare.

Trei tipuri de cozi ale sistemului de operare sunt:

  1. Coada de locuri de muncă – Vă ajută să stocați toate procesele din sistem.
  2. Coadă gata – Acest tip de coadă vă ajută să setați fiecare proces care se află în memoria principală, care este gata și așteaptă să fie executată.
  3. Cozile pentru dispozitive – Este un proces care este blocat din cauza absenței unui dispozitiv I/O.
Cozile de programare a proceselor
Cozile de programare a proceselor

În diagrama de mai sus:

  • Un dreptunghi reprezintă o coadă.
  • Un cerc indică resursa.
  • O săgeată indică fluxul procesului.
  1. Fiecare proces nou este mai întâi pus în coada „Ready”. Acesta așteaptă în coada „ready” până când este în final procesat pentru execuție. Aici, noul proces este pus în coada „ready” și așteaptă până când este selectat pentru execuție sau este expediat.
  2. Unul dintre procese este alocat CPU-ul și se execută.
  3. Procesul ar trebui să emite o cerere I/O.
  4. Apoi, ar trebui plasat în coada de intrare/ieșire.
  5. Procesul ar trebui să creeze un nou subproces.
  6. Procesul ar trebui să aștepte încetarea acestuia.
  7. Ar trebui eliminat cu forța din CPU, ca urmare a unei întreruperi. Odată ce întreruperea este finalizată, ar trebui trimis înapoi în coada de așteptare.

Modelul procesului cu două stări

Modelele de proces cu două stări sunt:

  • Stare de funcționare
  • Stare nefuncțională

Alergare

În Operasistem de ting, ori de câte ori este construit un nou proces, acesta este introdus în sistem, care ar trebui să ruleze.

Nu alearga

Procesele care nu rulează sunt păstrate într-o coadă, care așteaptă rândul lor pentru a fi executate. Fiecare intrare din coadă este un punct către un anumit proces.

Obiective de programare

Iată obiectivele importante ale planificării proceselor:

  • Maximizați numărul de utilizatori interactivi în timpi de răspuns acceptabili.
  • Obțineți un echilibru între răspuns și utilizare.
  • Evitați amânarea pe termen nedeterminat și aplicați prioritățile.
  • De asemenea, ar trebui să facă referire la procesele care dețin resursele cheie.

Tipul de programatori de proces

Un planificator este un tip de software de sistem care vă permite să gestionați planificarea procesului.

Există în principal trei tipuri de programatori de procese:

  1. Programator pe termen lung
  2. Programator pe termen scurt
  3. Programator pe termen mediu

Programator pe termen lung

Planificatorul pe termen lung este cunoscut și sub numele de programator de locuri de muncăAcest planificator reglează programul, selectează procesele din coadă și le încarcă în memorie pentru execuție. De asemenea, reglează gradul de multiprogramare.

Totuși, scopul principal al acestui tip de planificator este de a oferi un mix echilibrat de joburi, cum ar fi joburi de procesor și I/O, care să permită gestionarea multiprogramării.

Programator pe termen mediu

Programarea pe termen mediu este o parte importantă a schimbapingVă permite să gestionați procesele schimbate. În acest planificator, un proces care rulează poate fi suspendat, ceea ce face o cerere I/O.

Un proces care rulează poate fi suspendat dacă face o cerere I/O. Un proces suspendat nu poate face niciun progres spre finalizare. Pentru a elimina procesul din memorie și a face loc pentru alte procese, procesul suspendat trebuie mutat într-o memorie secundară.

Programator pe termen scurt

Programarea pe termen scurt este cunoscută și sub denumirea de programator CPUScopul principal al acestui planificator este de a crește performanța sistemului conform unor criterii stabilite. Acesta vă ajută să selectați dintr-un grup de procese care sunt gata de execuție și să aloce CPU-ul unuia dintre ele. Dispecerul acordă controlul CPU-ului procesului selectat de planificatorul pe termen scurt.

Diferența dintre programatori

Termen lung vs. termen scurt vs. termen mediu:

Termen lung Termen scurt Termen mediu
Pe termen lung este cunoscut și sub denumirea de planificator de locuri de muncă. Pe termen scurt este cunoscut și sub denumirea de planificator CPU. Pe termen mediu se mai numește și swapping programator.
Este fie absent, fie minim într-un sistem de partajare a timpului. Este nesemnificativ în ordinea de partajare a timpului. Acest planificator este un element al sistemelor de partajare a timpului.
Viteza este mai mică în comparație cu programatorul pe termen scurt. Viteza este cea mai rapidă în comparație cu programatorul pe termen scurt și mediu. Oferă viteză medie.
Vă permite să selectați procese din încărcare și să le reintroduceți în memorie. Selectează doar procesele care sunt într-o stare gata de execuție. Te ajută să trimiți procesul înapoi în memorie.
Oferă control deplin. Oferă mai puțin control. Reduce nivelul de multiprogramare.

Ce este comutarea contextului?

Este o metodă de stocare/restaurare a stării unui procesor (CPU) în placa de circuit imprimat (PCB), astfel încât execuția procesului să poată fi reluată din același punct ulterior. Metoda de schimbare a contextului este importantă pentru un sistem de operare multitasking.

Întrebări frecvente

Un planificator decide ce proces ar trebui să ruleze în continuare pe baza unei politici. Un dispecer este modulul care oferă de fapt controlul asupra procesorului pentru procesul ales, efectuând schimbarea contextului și saltul.ping la locația corectă din program.

Gradul de multiprogramare este numărul de procese ținute simultan în memoria principală. Planificatorul pe termen lung îl controlează decizând câte procese să admită, echilibrând utilizarea CPU și a I/O pentru o performanță eficientă a sistemului.

Un Bloc de Control al Proceselor este o structură de date pe care sistemul de operare o folosește pentru a stoca toate informațiile despre un proces, cum ar fi starea sa, contorul de program, registrele și limitele de memorie. Este esențial pentru salvarea și restaurarea proceselor în timpul unei schimbări de context.

IA poate învăța modele de sarcină de lucru pentru a decide ce proces să ruleze și cum să aloce timpul CPU. În loc de reguli fixe, adaptează programarea în timp real, îmbunătățind randamentul, timpul de răspuns și eficiența energetică, în special în sistemele cloud și multi-core.

Da. Prin analizarea exploziilor CPU și a modelelor I/O anterioare, modelele de inteligență artificială pot estima cât timp va rula un proces și dacă este limitat de CPU sau de I/O. Aceste predicții ajută planificatorul să prioritizeze procesele și să reducă timpul de așteptare.

Rezumați această postare cu: