Procesno upravljanje. Interakcija aplikacijskih zadataka s jezgrom odvija se putem standardnog sučelja za pozive sustava. Sučelje sistemskog poziva predstavlja skup kernel usluga i definira format servisnih zahtjeva. Proces traži

Procesno upravljanje

U operacijskom sustavu UNIX, procesi se stvaraju pozivanjem funkcije sustava jezgre koja se zove fork(). Kada ovu funkciju pozove proces, operativni sustav izvodi sljedeće radnje [BASN86].

1. Dodjeljuje prostor u tablici procesa za novi proces.

2. Dodjeljuje jedinstveni ID ovom procesu.

3. Stvara kopiju slike nadređenog procesa, isključujući područja zajedničke memorije.

4. Povećava brojače svih datoteka u vlasništvu nadređenog procesa, odražavajući činjenicu da novi proces također posjeduje te datoteke.

5. Dodjeljuje proces u stanje spremno za izvršenje.

Vraća ID procesa djeteta nadređenom procesu i vrijednost 0 procesu djeteta.

Ovu metodu stvaranja procesa može biti teško vizualizirati jer i nadređeni i podređeni procesi izvode isti prolaz kroz kod u trenutku stvaranja. Razlikuju se po vrijednosti koju vraća funkcija fork(): ako je nula, onda je to proces dijete. Na ovaj način moguće je izdati naredbu grananja koja će uzrokovati izvršenje programa djeteta ili nastaviti s izvođenjem glavnog grananja.

SAŽETAK, KLJUČNA I PITANJA ZA PROVJERU

Temeljni građevni element modernih operativnih sustava je proces. Glavna funkcija operacijskog sustava je kreiranje, upravljanje i završetak procesa. operacijski sustav mora osigurati da se svakom aktivnom procesu dodijeli vrijeme za izvršavanje na procesoru, koordinirati aktivnosti procesa, riješiti konfliktne situacije i dodijeliti procese resursi sustava.

Kako bi operativni sustav mogao upravljati procesima, održava opis svakog procesa ili sliku procesa. Slika procesa uključuje adresni prostor u kojem se proces izvodi i kontrolni blok procesa. Kontrolni blok sadrži sve informacije koje operativni sustav zahtijeva za kontrolu procesa, uključujući njegovo trenutno stanje, dodijeljene resurse, prioritet i druge potrebne podatke.

Tijekom svog postojanja proces može prijeći iz jednog stanja u drugo. Najvažnija od svih stanja su stanje spremnosti, stanje rada i stanje blokiranja. Proces spreman za izvršenje je proces koji nije u tijeku ovaj trenutak, ali njegovo izvršavanje može započeti čim operativni sustav prenese kontrolu na njega. Proces koji se izvodi je proces koji se trenutno izvodi na procesoru. U višeprocesorskom sustavu nekoliko procesa može biti u ovom stanju odjednom. Blokirani proces je onaj koji čeka da se dogodi neki događaj, kao što je završetak I/O operacije.

Procesi se s vremena na vrijeme prekidaju. Prekid se javlja ili kao rezultat nekog događaja izvan procesa, koji prepoznaje procesor, ili kao rezultat poziva kontrolnom programu operacijskog sustava. U bilo kojem od ovih slučajeva, procesor se prebacuje u drugi način rada i prenosi kontrolu na potprogram operacijskog sustava. Operacijski sustav nakon izvršenja svojih funkcija može nastaviti s izvršavanjem prekinutog procesa ili se prebaciti na izvršavanje drugog procesa.

Ključni pojmovi

Preemption Interrupt Statusna riječ programa

Stanje privilegiranog blokiranja podređenog procesa

Način završetka procesa Stanje izvršenja

Proces zadatka u stanju spremnosti

Trap Kernel Mode Novo stanje procesa

Slika procesa Roditeljsko stanje procesa

Prebacivanje procesa Zamjena ovjesa

Načini prebacivanja Način rada sustava Upravljačka jedinica

Praćenje procesa korisničkog načina

Kontrolna pitanja

3.1. Što je trag procesa?

3.2. Koji događaji rezultiraju stvaranjem procesa?

3.3. Dati Kratki opis svako stanje koje se pojavljuje u modelu obrade procesa prikazanom na sl. 3.3.

3.4. Što je preemption procesa?

3.5. Što je swap i kada se koristi?

3.6. Zašto na sl. 3.6.6 Postoje li dva blokirana stanja?

3.7. Popis četiri karakteristične značajke obustavljeni procesi.

3.8. Za koje objekte operativni sustav održava tablice s kontrolnim informacijama?

3.9. Navedite tri opće kategorije informacija u bloku upravljanja procesom.

3.10. Zašto su nam potrebna dva načina rada procesora (korisnički način i način jezgre)?

3.11. Koje radnje poduzima operativni sustav prilikom stvaranja novog procesa?

3.12. Koja je razlika između običnog prekida i zamke?

3.13. Navedite tri primjera prekida.

Koja je razlika između promjene načina rada procesora i promjene procesa?

Materijal u ovom poglavlju predstavljen je u udžbenicima danim u odjeljku 2.9. Opis upravljanja procesima u operacijskom sustavu UNIX nalazi se u i. Raspravljaju se stanja procesa i primitiva operacijskog sustava koji se koriste u dispečiranju procesa.

DOBRO 94 Goodheart V., Soh J. Objašnjenje čarobnog vrta: unutrašnjost UNIX System V, izdanje 4.- Englewood Cliffs, NJ: Prentice Hall, 1994.

SIVO97 Sivo J. Interprocess Communication in UNIX: The Nooks and Crannies.- Upper Saddle River, NJ: Prentice Hall, 1997.

NEHM75 Nehmer J. Dispatcher Primitives for the Construction of Operacijski sustav Jezgre. - Acta Informatica, vol. 5, 1975.

ZADACI

Navesti pet glavnih funkcija operacijskog sustava u upravljanju procesima; Općenito opravdajte njihovu nužnost.

3.1. Definirana su sljedeća stanja procesa: radi, spreman za rad, blokiran i obustavljen. Proces je u blokiranom stanju ako čeka dopuštenje za korištenje resursa; Proces se obustavlja ako čeka da postane dostupan resurs za koji je već zahtijevao da se koristi. Na mnogim operativnim sustavima ta su dva stanja kombinirana u jedno, koje se naziva blokirano stanje. U ovom slučaju, definicija suspendiranog stanja ista je kao ona korištena u ovom poglavlju. Usporedite prednosti korištenja ova dva skupa stanja.

3.2. Nacrtajte dijagram koristeći redove čekanja za model sa sedam stanja prikazan na sl. 3.6.6. Kao osnovu uzmite dijagram prikazan na Sl. 3.5,6.

3.3. Razmotrite dijagram prijelaza stanja prikazan na sl. 3.6.6. Recimo da je vrijeme da operativni sustav promijeni proces. Pretpostavimo da imamo procese u stanju pripravnosti i one koji su pauzirani spremni za izvođenje. Osim toga, barem jedan od obustavljenih procesa koji su spremni za pokretanje ima viši prioritet od prioriteta bilo kojeg procesa u stanju spremnosti. Možete nastaviti prema jednoj od sljedeće dvije strategije.

1. Uvijek odaberite proces u stanju pripravnosti kako bi zamjena bila minimalna.

2. Uvijek dajte prednost procesu s višim prioritetom, čak i ako to znači izvođenje zamjena koje nisu potrebne.

Predložite srednju strategiju koja pokušava uravnotežiti koncepte prioriteta i izvedbe.

3.5. U tablici Slika 3.13 prikazuje stanja procesa koja se koriste u VAX/VMS operativnom sustavu.

A. Možete li pronaći opravdanje za to velika količina različita stanja očekivanja?

b. Zašto ne postoje rezidentne i obustavljene verzije stanja kao što su čekanje da se stranica učita u glavnu memoriju, čekanje da se riješi sukob pristupa stranici, čekanje općeg događaja, čekanje slobodne stranice i čekanje resursa.

V. Nacrtajte dijagram prijelaza stanja i na njemu označite radnju ili događaj koji dovodi do svakog od prikazanih prijelaza.

Tablica 3.13. Stanja procesa u VAX/VMS operativnom sustavu

Pokretanje Proces se izvodi

Izvršni (rezidentni) Proces koji je spreman za pokretanje i nalazi se u glavnoj memoriji.

Izvršni (zamijenjen) Proces spreman za pokretanje koji je izbačen iz glavne memorije.

Stanje čekanja

učitavanje stranice Proces je pristupio stranici koja nije u glavnoj memoriji i mora čekati da se pročita

Stanje čekanja

rješavanje sukoba

pristup stranici Proces je pristupio dijeljenoj stranici koju drugi proces već čeka da učita, ili osobnoj stranici koja se čita ili piše.

Stanje čekanja

zajednički događaj Pričekajte da se zastavica zajedničkog događaja prebaci (zastavice događaja su jednobitni mehanizmi za prijenos signala iz jednog procesa u drugi)

Stanje čekanja

slobodna stranica Proces čeka dok se slobodna stranica glavne memorije ne doda skupu stranica koje su joj dodijeljene i nalaze se u glavnoj memoriji (radni skup procesa).

Stanje mirovanja Proces se stavlja u stanje mirovanja

(Rezidencija)

Stanje spavanja

(unloaded) Proces u stanju mirovanja istovaruje se iz glavne memorije

Čeka se lokalac

događaji (rezidentni) Proces se nalazi u glavnoj memoriji i čeka da se dogodi lokalni događaj (obično je događaj I/O završetak)

Čeka se lokalac

događaji (unloaded) Proces koji čeka na lokalni događaj je istovaren iz glavne memorije

Suspendiran

(rezident) Proces koji je drugi proces stavio u stanje čekanja

Suspendiran

(unloaded) Obustavljeni proces se istovaruje iz glavne memorije

Resurs na čekanju Proces koji čeka da mu neki sistemski resurs bude dostupan.

Potrebno je razlikovati procese upravljanja sustavom, koji predstavljaju rad nadzornika operacijskog sustava i uključeni su u raspodjelu i upravljanje resursima, od svih ostalih procesa: procesa obrade sustava koji nisu dio jezgre operacijskog sustava i korisničkih procesa. . Za procese kontrole sustava u većini operativnih sustava resursi se dodjeljuju inicijalno i nedvosmisleno. Ti procesi upravljaju resursima sustava za koje postoji konkurencija među svim ostalim procesima. Stoga se izvršavanje programa upravljanja sustavom obično ne naziva procesima. Izraz zadatak može se koristiti samo u odnosu na korisničke procese i procese obrade sustava. Međutim, to ne vrijedi za sve operativne sustave. Na primjer, u takozvanom “microkernel” OS-u (primjer je QNX real-time OS iz sustava Quantum Software), većina upravljačkih softverskih modula samog OS-a, pa čak i upravljačkih programa, imaju status procesa visokog prioriteta, za što je potrebno izdvojiti odgovarajuća sredstva. Slično, u UNIX sustavima, izvođenje sistemskih programskih modula također ima status procesi sustava, koji dobivaju sredstva za svoje izvršenje.

Ako generaliziramo i uzmemo u obzir ne samo obični OS Opća namjena, ali i npr. OS u stvarnom vremenu, onda možemo reći da proces može biti u aktivnom i pasivnom (ne aktivnom) stanju. U aktivno stanje proces može sudjelovati u konkurenciji za korištenje resursa računalnog sustava, au pasivnom procesu samo je poznat sustavu, ali ne sudjeluje u konkurenciji (iako je njegovo postojanje u sustavu povezano s osiguravanjem RAM-a i/ili vanjska memorija). Zauzvrat, aktivni proces može biti u jednom od sljedećih stanja:

  • izvršenje- svi resursi koje proces zahtijeva su dodijeljeni. Samo jedan proces može biti u ovom stanju u bilo kojem trenutku ako govorimo o jednoprocesorskom računalnom sustavu;
  • spremnost za izvođenje- mogu se osigurati resursi, tada će proces prijeći u stanje rada;
  • blokiranje ili čekanje- traženi resursi nisu mogli biti osigurani ili I/O operacija nije dovršena.

U većini operativnih sustava, potonje stanje je pak podijeljeno na mnoga stanja čekanja koja odgovaraju određenoj vrsti resursa, zbog čijeg nedostatka proces prelazi u blokirano stanje.



U redovnim operativnim sustavima, u pravilu, proces se pojavljuje kada pokrenete program. OS organizira (izrodi ili dodjeljuje) odgovarajući deskriptor procesa (pogledajte više o tome u nastavku) za novi proces, a proces (zadatak) se počinje razvijati (izvršavati). Dakle, nema pasivnog stanja. U OS-u u stvarnom vremenu (RTOS) situacija je drugačija. Obično je kod projektiranja sustava u stvarnom vremenu već unaprijed poznat sastav programa (zadataka) koji će se morati izvršiti. Poznati su i mnogi njihovi parametri koji se moraju uzeti u obzir pri dodjeli resursa (primjerice, količina memorije, prioritet, prosječno vrijeme izvršavanja, otvorene datoteke, korišteni uređaji itd.). Stoga im se deskriptori zadataka unaprijed izrađuju kako ne bi naknadno gubili dragocjeno vrijeme organizirajući deskriptor i tražeći potrebne resurse za njega. Stoga, u RTOS-u, mnogi procesi (zadaci) mogu biti u stanju neaktivnosti, što smo pokazali na Sl. 1.3, odvajajući ovo stanje od ostalih stanja točkastom linijom.

Tijekom svog postojanja proces može opetovano prelaziti iz jednog stanja u drugo. Razlog tome su pozivi operacijskom sustavu sa zahtjevima za resursima i izvršavanje funkcija sustava koje operativni sustav osigurava, interakcija s drugim procesima, pojava signala prekida od mjerača vremena, kanala i ulazno/izlaznih uređaja, kao i drugih uređaja . Mogući prijelazi procesa iz jednog stanja u drugo prikazani su u obliku stanja na sl. 1.3. Razmotrimo ove prijelaze iz jednog stanja u drugo detaljnije.

Proces se može prebaciti iz stanja mirovanja u stanje spremnosti u sljedećim slučajevima:

  • na naredbu operatera (korisnika). Javlja se u onim interaktivnim operacijskim sustavima u kojima program može imati status zadatka (i istovremeno biti pasivan), a ne samo biti izvršna datoteka i primati status zadatka samo tijekom izvođenja (kao što se događa u većini modernih operativnih sustava za računala);
  • kada je izabran iz reda čekanja od strane planera (tipično za operacijske sustave koji rade u paketnom načinu);
  • pozivom iz drugog zadatka (pozivom supervizora jedan proces može kreirati, pokrenuti, obustaviti, zaustaviti, uništiti drugi proces);
  • prekidom vanjske inicijative 1 uređaja (signal o završetku nekog događaja može pokrenuti odgovarajući zadatak);

1 Poziva se uređaj "inicijativa" ako bi se na signal zahtjeva za prekid iz njega trebao pokrenuti neki zadatak.

  • kada dođe zakazano vrijeme za početak programa.

Riža. 1.3. Grafikon stanja procesa

Posljednje dvije metode pokretanja zadatka, u kojima proces prelazi iz stanja mirovanja u stanje spremnosti, tipične su za operativne sustave u stvarnom vremenu.

Proces koji se može izvršiti čim dobije procesor, a za zadatke koji se nalaze na disku na nekim sustavima, RAM, je u stanju pripravnosti. Vjeruje se da su takvom procesu već dodijeljeni svi potrebni resursi osim procesora.

Proces može izaći iz stanja pokretanja iz jednog od sljedećih razloga:

  • proces završava, a kontaktom sa supervizorom prenosi kontrolu na operacijski sustav i javlja njegov završetak. Kao rezultat tih radnji, nadzornik ga ili prebacuje na popis neaktivnih procesa (proces prelazi u pasivno stanje) ili ga uništava (naravno, ne uništava se sam program, već upravo zadatak koji je odgovarao izvođenje određenog programa). Proces se može prisiliti u neaktivno stanje: naredbom operatera (akciju ove i drugih naredbi operatera provodi sistemski proces koji naredbu "prevodi" u zahtjev nadzorniku sa zahtjevom da navedeni proces prenese na neaktivno stanje), ili kontaktiranjem nadzornika operativnog sustava s drugog zadatka sa zahtjevom za zaustavljanje ovog procesa;
  • nadzornik operacijskog sustava prebacuje proces u stanje spremnosti za izvršenje zbog pojave zadatka višeg prioriteta ili zbog kraja vremenskog odsječka koji mu je dodijeljen;
  • Proces je blokiran (stavljen u stanje čekanja) ili zato što je zatražio I/O operaciju (koja mora biti dovršena prije nego što može nastaviti s izvođenjem) ili zato što mu se ne može dati trenutno traženi resurs (razlog stavljanja u stanje čekanja može biti odsutnost segmenta ili stranice u slučaju organiziranja mehanizama virtualne memorije, pogledajte odjeljak “Organizacija memorije segmenta, stranice i segmenta-stranice” u poglavlju 2), kao i naredbom operatera za obustavu zadatka ili na zahtjev preko nadređenog s drugog zadatka.
  • Kada se dogodi odgovarajući događaj (I/O operacija je završena, traženi resurs je oslobođen, potrebna stranica virtualne memorije je učitana u RAM, itd.), proces se oslobađa i postavlja u stanje spremno za izvršenje .

Dakle, pokretačka snaga koja mijenja stanje procesa su događaji. Jedna od glavnih vrsta događaja su prekidi.

Pošaljite svoj dobar rad u bazu znanja jednostavno je. Koristite obrazac u nastavku

Dobar posao na web mjesto">

Studenti, diplomanti, mladi znanstvenici koji koriste bazu znanja u svom studiju i radu bit će vam vrlo zahvalni.

Objavljeno na http://www.allbest.ru/

1 . Procesi

Koncept procesa uveli su programeri OS-a od 60-ih godina prošlog stoljeća, kao program tijekom izvođenja. Imajte na umu da je program samo datoteka u formatu preuzimanja pohranjena na disku, a proces se nalazi u memoriji tijekom izvođenja.

Stanja procesa

Proces karakterizira niz diskretnih stanja, a promjenu tih stanja mogu uzrokovati različiti događaji. U početku ćemo se ograničiti na razmatranje tri glavna stanja procesa.

Proces je u stanju izvođenja ako mu je trenutno dodijeljena središnja procesorska jedinica (CPU).

Proces je u stanju pripravnosti ako može odmah koristiti središnji procesor koji mu je stavljen na raspolaganje.

Proces je u blokiranom stanju ako čeka da se dogodi neki događaj prije nego što može nastaviti s izvođenjem.

Imajte na umu da na jednoprocesorskom stroju samo jedan proces može biti u stanju izvođenja u bilo kojem trenutku. Nekoliko procesa može biti u stanju pripravnosti i blokiranosti, tj. Moguće je kreirati popis spremnih i popis blokiranih procesa.

Popis spremnih procesa poredan je po prioritetu, pri čemu prvi proces s popisa prvi prima CPU. Prilikom izrade popisa spremnih procesa, svaki novi proces se stavlja na kraj popisa, a kako prethodni procesi završe s izvršenjem, promiče se na čelo popisa. Popis blokiranih procesa nije uređen, jer Procesi se otključavaju redoslijedom kojim se događaji očekuju.

Razmotrimo dijagram prijelaza procesa X iz stanja u stanje - promjenu stanja procesa.

Pokretanje ili odabir procesa za pokretanje je proces davanja CPU-a prvom procesu s popisa spremnih procesa. Lansiranje se provodi pomoću programa dispečera. Označimo takvu promjenu stanja na sljedeći način: operativni sustav linux

Kako bi spriječio ekskluzivno zauzimanje CPU resursa od strane jednog procesa, OS postavlja određeni vremenski interval u posebnom mjeraču vremena prekida, koji je dodijeljen ovom procesu; nakon isteka vremenskog odsječka, mjerač vremena generira signal prekida, preko kojeg se vrši kontrola prenosi se u OS i proces se prebacuje iz stanja pokretanja u stanje spremnosti, a prvi proces s liste spremnih se stavlja u stanje rada.

Blokiranje procesa je kada proces otpusti CPU prije nego što istekne dodijeljeni vremenski odsječak, tj. kada pokrenuti proces inicira, na primjer, I/O operaciju, i tako dobrovoljno otpušta CPU dok čeka da se navedena operacija završi.

Proces se budi kada se dogodi događaj koji proces čeka i prijeđe iz stanja blokiranja u stanje spremnosti. Dakle, u gore opisanom slučaju, nakon završetka I/O operacije.

Dakle, identificirali smo četiri moguće promjene u stanju procesa.

Imajte na umu da je jedina promjena stanja koju pokreće sam proces blokiranje; ostale pokreću objekti izvan procesa.

Operacije nad procesima

Sustavi koji upravljaju procesima moraju biti u mogućnosti izvršiti niz operacija na njima.

Stvaranje procesa. operativni sustav linux

Stvaranje procesa uključuje davanje imena procesu; uključivanje njegovog imena u popis naziva procesa; određivanje početnog prioriteta procesa; formiranje kontrolne jedinice za RSV proces; dodjela početnih resursa procesu.

Proces može iznjedriti novi proces, au ovom slučaju, prvi će se zvati proces roditelj, a drugi proces dijete, a jedan proces roditelj može imati nekoliko djece, a proces dijete može imati samo jednog roditelja. Ovo stvara hijerarhijsku strukturu procesa.

UNIX OS, budući da je u osnovi alat za upravljanje procesima, sam se može smatrati sustavom paralelnih interakcija procesa sa strukturom stabla. Zajednički predak svih procesa u UNIX OS-u je init proces, koji se nalazi na vrhu obiteljskog stabla, ovaj proces je stalno prisutan u sustavu, svi ostali procesi se generiraju prema jedinstvenoj shemi pomoću fork() sistemskog poziva .

UNIX svakom kreiranom procesu dodjeljuje jedinstveni identifikator procesa - PID, koji identificira proces za OS. Osim toga, svaki proces također ima PPID (nadređeni proces), koji nije ništa više od PID-a svog roditelja.

Koristeći naredbu ps u UNIX-u, možete vidjeti ID-ove trenutnih procesa u sustavu.

Ubijanje procesa.

Kada se proces uništi, resursi koji su mu dodijeljeni prenose se u sustav, naziv se uklanja sa svih popisa i tablica, a blok kontrole procesa se oslobađa.

Pauziranje procesa.

Obustavljeni proces može se nastaviti izvršavati kada ga drugi proces aktivira.

Nastavak procesa.

Operacija pripreme procesa za ponovno pokretanje od točke na kojoj je bio obustavljen naziva se nastavak.

Promjena prioriteta procesa.

Ova operacija znači modificiranje vrijednosti prioriteta procesa u RSV-u.

Osim toga, koriste se operacije blokiranja, buđenja i pokretanja procesa.

Uzimajući u obzir uvedene koncepte obustave i nastavka procesa, slika promjena stanja procesa prikazana na slici 1 može se donekle dopuniti.

Na primjer, UNIX dispečer je program koji omogućuje procesima da se međusobno natječu za CPU vrijeme. Procesi se pauziraju i nastavljaju mnogo puta u sekundi, stvarajući učinak kontinuiranog procesa. Shema dijeljenja CPU vremena može se predstaviti na sljedeći način:

Blok upravljanja procesom

Kontrolni blok procesa (PCB) je objekt koji definira proces za operativni sustav i podatkovna je struktura koja koncentrira sve ključne informacije o procesu:

trenutno stanje procesa;

jedinstveni identifikator procesa;

prioritet procesa;

pokazivači procesne memorije;

pokazatelji resursa dodijeljenih procesu;

područje za spremanje registra (kada OS prebacuje CPU s procesa na proces, koristi područja za spremanje registra navedena u RSV-u kako bi zapamtio informacije potrebne za ponovno pokretanje svakog procesa kada sljedeći put primi CPU).

Koncept procesa osnovni je za operativni sustav UNIX. U biti, stvaranje bilo kojeg procesa je stvaranje nekog virtualnog stroja. Ima vlastiti adresni prostor u kojem se nalaze proceduralni segment i podatkovni segment.

Ručka procesa i kontekst. Sistemski podaci koji se koriste za identifikaciju procesa koji postoji tijekom cijelog životnog vijeka čine deskriptor procesa. Mnogi deskriptori tvore tablicu procesa - u modernim verzijama UNIX-a to je nekoliko stotina procesa.

Deskriptor procesa sadrži sljedeće parametre procesa:

mjesto (memorijska adresa);

veličina učitanog dijela slike procesa;

ID procesa i korisnika.

Ostale važne informacije o procesu pohranjene su u korisničkoj tablici (koja se naziva i kontekst procesa), koja sadrži:

identifikacijski brojevi korisnika za određivanje privilegija pristupa datotekama;

veze na tablicu sistemskih datoteka za sve datoteke koje proces otvara;

pokazivač na inode trenutnog direktorija u inode tablici;

popis reakcija na različite signale.

Rukovanje prekidima

Prekinuti( Prekid je događaj koji mijenja normalan slijed instrukcija koje izvršava procesor. Ako dođe do prekida, tada

kontrola se prenosi na OS;

OS pamti stanje prekinutog procesa;

OS analizira vrstu prekida i prenosi kontrolu na odgovarajuću prekidnu rutinu.

Pogledajmo glavne vrste prekida.

SVC (uputa za poziv nadzornika) prekida.

Inicijator ovih prekida je pokrenuti proces koji izvršava SVC naredbu, tj. zahtjev koji generira korisnički program za pružanje određene usluge sustava (na primjer, za izvođenje I/O operacije, za povećanje veličine dodijeljene memorije, itd.). SVC mehanizam omogućuje zaštitu OS-a od korisnika.

I/O prekidi.

Pokrenuti I/O hardverom, oni signaliziraju CPU-u da je došlo do promjene stanja na kanalu ili I/O uređaju, kao što je dovršetak I/O operacije, pojava pogreške ili uređaj koji ulazi u stanje pripravnosti.

Vanjski prekidi.

Uzroci takvih prekida mogu biti različiti vanjski događaji, na primjer, istek vremenskog odsječka postavljenog na mjeraču vremena prekida.

Restart prekida.

Ovi se prekidi događaju nakon naredbe ponovnog pokretanja OS-a.

Prekidi kontrole programa.

Ovi prekidi su uzrokovani raznim vrstama grešaka koje se javljaju u procesu koji se izvodi, kao što je pokušaj dijeljenja s nulom.

Prekidi upravljanja strojem.

Ti su prekidi uzrokovani hardverskim pogreškama.

Prebacivanje konteksta

Postupak rukovanja prekidima, ovisno o njihovoj vrsti, obavljaju odgovarajući programi uključeni u OS - rukovatelji prekidima ( IH - rukovatelj prekidom).

Kada dođe do prekida, OS mora osigurati da se stanje prekinutog procesa zapamti i da se kontrola prenese na odgovarajući rukovatelj prekidima. To se može implementirati korištenjem promjene konteksta.

Pri implementaciji ove metode koriste se statusne riječi programa PSW (program status words) koje kontroliraju redoslijed izvršavanja naredbi i sadrže niz informacija o stanju procesa.

Na jednoprocesorskom stroju postoji jedan trenutni PSW, koji sadrži adresu sljedeće instrukcije koju treba izvršiti, kao i tipove trenutno omogućenih i onemogućenih prekida. Šest novih PSW-ova, koji sadrže adrese odgovarajućih rukovatelja prekidima, i šest starih PSW-ova - po jedan za svaku vrstu prekida.

Kada se dogodi prekid, prva stvar koju treba provjeriti je da li je onemogućen (u tom slučaju je ili odgođen ili zanemaren). Ako je prekid omogućen, sljedeće PSW prebacivanje se izvodi u hardveru:

trenutni PSW postaje stari PSW za ovu vrstu prekida;

novi PSW za ovu vrstu prekida postaje trenutni PSW.

Nakon takve zamjene statusnih riječi, trenutni PSW sadrži adresu odgovarajućeg rukovatelja prekida koji počinje obrađivati ​​ovaj prekid. Kada je obrada prekida dovršena, CPU počinje servisirati ili proces koji je bio pokrenut u vrijeme prekida ili spreman proces s najvišim prioritetom.

Opisana shema obrade prekida nije jedina moguća.

Jezgra operativnog sustava

Sve operacije povezane s procesom izvode se pod kontrolom dijela OS-a koji se naziva jezgra.

Kernel se obično nalazi u RAM-u, dok se ostali dijelovi OS-a po potrebi premještaju u vanjsku memoriju i iz vanjske memorije.

Kernel funkcije

Jezgra OS-a, u pravilu, treba sadržavati programe za implementaciju sljedećih funkcija:

rukovanje prekidima;

operacije na procesima;

sinkronizacija procesa;

organizacija interakcije između procesa;

manipulacija blokovima kontrole procesa;

I/O podrška;

podrška za datotečni sustav;

podrška za mehanizam vraćanja poziva prilikom pristupa procedurama;

niz računovodstvenih funkcija.

Hijerarhijski pristup procesu dizajna OS-a je sljedeći.

U središtu hijerarhije je računalni hardver, takozvani "čisti stroj".

Na sljedećoj razini hijerarhije nalaze se različite funkcije jezgre, zajedno s kojima računalo postaje "prošireni stroj".

Ove dodatne funkcije implementirane od strane kernela često se nazivaju primitivima.

Iznad kernela u hijerarhiji su različiti OS procesi koji pružaju podršku korisničkim procesima – na primjer, procesi za upravljanje vanjskim uređajima.

Na vrhu hijerarhije su sami korisnički procesi.

OS iskustvo pokazuje da je takve hijerarhijske sustave lakše ispravljati, modificirati i testirati nego one u kojima kernel funkcionira

raspoređeni na nekoliko razina hijerarhije.

OS arhitektura Linux

Sustav Linux trenutno je prilično raširen (autor osnovne verzije je Linus Torvalds). Sve veći utjecaj Linuxa još je jednom potvrđen na izložbi LinuxWorldExpo početkom veljače 2000. u New Yorku. IBM aktivno razvija aplikacije za Linux, što potvrđuje visoku ocjenu ovog OS-a. "Linux danas raste istim tempom kao Internet ranih 90-ih, a njegova je popularnost čak i veća od popularnosti e-poslovanja", rekao je Irving Wladawsky-Berger, potpredsjednik IBM Enterprise System Group. Linux hardverski zahtjevi su minimalni, možda je samo MS DOS manje zahtjevan za računalni hardver od Linuxa. Možete čak pokrenuti Linux na 386SX/16, 1MB RAM-a, ali ovo je minimum koji će samo omogućiti provjeru funkcionalnosti sustava. Osnovni skup naredbi, pomoćni programi za administraciju i tumač naredbi zauzet će 10 MB.

Linux može "koegzistirati" na računalu s drugim sustavima, na primjer, s MS DOS-om, MS Windows-om ili OS/2, u ovom slučaju svaki od sustava treba biti smješten na zasebnoj particiji diska, a kada se računalo pokrene, alternativa za pokretanje jednog ili drugog OS-a bit će ponuđen.

Linux je sustav sličan UNIX-u, pa se stoga principi njegove arhitekture ne razlikuju mnogo od UNIX standarda. Najopćenitiji pogled omogućuje nam da vidimo dvorazinski model sustava, kao što je prikazano na sl. A.

U središtu je jezgra sustava. Kernel izravno komunicira s računalnim hardverom, izolirajući aplikacijske programe od značajki svoje arhitekture. Kernel ima skup usluga koje se pružaju aplikacijskim programima. Osnovne usluge uključuju:

I/O operacije (otvaranje, čitanje, pisanje i upravljanje datotekama),

kreiranje i upravljanje procesima, njihovu sinkronizaciju i međuprocesne interakcije.

Sve aplikacije zahtijevaju usluge jezgre putem sistemskih poziva.

Drugu razinu čine aplikacije ili zadaci, kako sistemski, koji određuju funkcionalnost sustava, tako i aplikativni, koji osiguravaju korisničko sučelje Linuxa. Skup aplikacija koje čine drugu razinu modela definiraju određenu Linux distribuciju.

Jezgra sustava

Kernel pruža osnovnu funkcionalnost OS-a: stvara i upravlja procesima, dodjeljuje memoriju i omogućuje pristup datotekama i perifernim uređajima.

Interakcija aplikacijskih zadataka s jezgrom odvija se putem standardnog sučelja za pozive sustava. Sučelje sistemskog poziva predstavlja skup kernel usluga i definira format servisnih zahtjeva. Proces zahtijeva uslugu putem sistemskog poziva prema specifičnoj proceduri jezgre, sličnog izgleda kao pozivanje obične bibliotečne funkcije.

Kernel se sastoji od tri glavna podsustava:

datotečni podsustav;

podsustav za upravljanje procesima i memorijom;

ulazno/izlazni podsustav.

Datotečni podsustav

Datotečni podsustav pruža jedinstveno sučelje za pristup podacima koji se nalaze na diskovnim pogonima i perifernim uređajima. Iste funkcije open(2), read(2), write(2) mogu se koristiti i kod čitanja ili pisanja podataka na disk, i kod ispisivanja teksta na pisač ili terminal.

Datotečni podsustav kontrolira prava pristupa datoteci, obavlja operacije postavljanja i brisanja datoteka te zapisuje/čita podatke iz datoteka. Budući da se većina funkcija aplikacije izvodi preko sučelja datotečnog sustava, prava pristupa datoteci određuju korisničke privilegije na sustavu.

Datotečni podsustav osigurava preusmjeravanje zahtjeva upućenih perifernim uređajima koji odgovaraju modulima ulazno/izlaznog podsustava.

Podsustav upravljanja procesima

Program pokrenut za izvršenje generira jedan ili više procesa u sustavu; zadaci podsustava za upravljanje procesima uključuju:

stvaranje i brisanje procesa;

raspodjela resursa sustava (memorija, računalni resursi) između procesa;

sinkronizacija procesa;

međuprocesna komunikacija.

Raspoređivač procesa poseban je modul jezgre koji rješava sukobe između procesa i natjecanje za sistemske resurse. Planer pokreće proces za izvršenje, pazeći da proces ne preuzima isključivo zajedničke resurse. Proces oslobađa procesor dok čeka na dugu I/O operaciju ili nakon što je prošao vremenski odsječak. U ovom slučaju planer odabire sljedeći proces najvišeg prioriteta.

Modul za upravljanje memorijom osigurava smještaj RAM memorija za primijenjene zadatke. Ako nema dovoljno RAM-a za sve procese, kernel premješta dijelove procesa ili nekoliko procesa u sekundarnu memoriju, obično u posebno područje tvrdi disk, oslobađajući resurse za tekući proces. Svi moderni operacijski sustavi implementiraju virtualnu memoriju: proces se odvija u vlastitom logičkom adresnom prostoru, koji može znatno premašiti raspoloživi fizička memorija. Upravljanje virtualnom memorijom procesa također je odgovornost modula za upravljanje memorijom.

Međuprocesni komunikacijski modul odgovoran je za obavještavanje procesa o događajima pomoću signala i pružanje mogućnosti razmjene podataka između različitih procesa.

I/O podsustav

I/O podsustav ispunjava zahtjeve datotečnog podsustava i podsustava kontrole procesa za pristup perifernim uređajima (diskovi, terminali itd.). Omogućuje potreban međuspremnik podataka i komunicira s upravljačkim programima uređaja - posebnim modulima jezgre koji izravno opslužuju vanjske uređaje.

2. Pitanja

Definirajte sljedeće pojmove: program, procedura, proces, procesor.

Zašto obično nije praktično postaviti redoslijed prioriteta za popis blokiranih procesa?

Opišite četiri glavna prijelaza stanja procesa.

Opišite promjene stanja procesa, uzimajući u obzir obustavu i nastavak operacija.

Koje podatke o procesu sadrži PCB?

Navedite glavne vrste prekida i navedite primjer svake vrste prekida.

Opišite bit metode promjene konteksta.

Definirajte jezgru OS-a i imenujte njezine glavne funkcije.

Odredite strukturu jezgre Linuxa.

Koja je svrha podsustava datoteka?

Koja je svrha podsustava upravljanja procesima?

Koje su glavne funkcije ulazno/izlaznog podsustava?

Definirajte pojam – primitivci.

Što je posebno u hijerarhijskom pristupu dizajnu OS-a?

Objavljeno na Allbest.ru

Slični dokumenti

    Povijest stvaranja, arhitektura operacijskog sustava i popis značajki implementiranih u Linuxu. Alati i razvojni ciklus nova verzija jezgre. Životni ciklus zakrpe. Struktura donošenja odluka prilikom dodavanja novih značajki (zakrpa) u kernel.

    predavanje, dodano 29.07.2012

    Analiza poslužiteljskih operacijskih sustava temeljenih na Linux kernelu. Pristupi konstruiranju rutiranja i vrednovanju dobivenih rezultata. Instalacija operativnog sustava CentOS 6.6 i obrasci njegove konfiguracije. Principi i glavne faze testiranja kreiranog pristupnika.

    kolegij, dodan 19.11.2015

    Opća organizacija sustav datoteka. Virtualne stranice. Naredbe za rad s FS-om. Načini organiziranja datoteka. Pozivi sustava kontrole procesa. Algoritam za planer procesa. Višeprogramski način rada OS-a. Struktura jezgre sustava.

    kolegij, dodan 23.03.2015

    Naučiti kako softverski alati rade težak je dio procesa uklanjanja pogrešaka. Debuggeri korisničkog načina rada, njihove glavne vrste. Automatski start aplikacije u debuggeru. Tipke prečaca za prekide. Otklanjanje pogrešaka u jezgri operacijskog sustava.

    sažetak, dodan 25.11.2016

    Strukturna organizacija operacijskog sustava temeljena na različitim programskim modulima. Funkcije koje obavljaju moduli jezgre. Moduli operativnog sustava, dizajnirani kao pomoćni programi. Kernel je u privilegiranom načinu rada. Višeslojna struktura jezgre sustava.

    prezentacija, dodano 16.01.2012

    Stvaranje softverski proizvod, dizajniran za malu mrežu s optimizacijom njenog rada na operativnoj platformi Linux sustavi; uprave. Razvoj modula protokola upravljanja; metodologija testiranja podsustava; analiza inženjerstva sustava.

    diplomski rad, dodan 27.06.2012

    Proučavanje operacijskog sustava Linux: elementi datoteka, struktura direktorija i prava pristupa. Stjecanje praktičnih vještina rada s pojedinim naredbama ovog OS-a. Teorijske informacije te praktične vještine rada s Linux procesima.

    laboratorijski rad, dodano 16.06.2011

    Najvažniji događaji u povijesti povezivanja operativnih sustava Hardver i aplikativni programi. Karakteristike operativnog sustava Microsoft Windows Sedmo, analiza operativnog sustava Linux. Prednosti i nedostaci svakog operativnog sustava.

    kolegij, dodan 07.05.2011

    Povijest razvoja i Linux verzije. Ključne značajke, prednosti i komparativne karakteristike operacijski sustav. Karakteristike softvera, glavni razlozi uspjeha i brzog razvoja Linuxa. Glavni problemi distribucije operacijskog sustava.

    kolegij, dodan 13.12.2011

    Značajke MIPS arhitekture iz MIPS Technology. Hijerarhija sjećanja. Obrada naredbi za skok. Red čekanja adresa. Preimenovanje registara. Opravdanost odabira operacijskog sustava. Perl emulator i izgradnja kernela. Električna i protupožarna sigurnost.

Svaki novi proces koji se pojavi u sustavu ulazi u stanje pripravnosti. Operativni sustav, koristeći neki algoritam raspoređivanja, odabire jedan od spremnih procesa i prebacuje ga u stanje rada. U stanju izvršenja procesni kod se izravno izvršava. Proces može izaći iz ovog stanja iz tri razloga:

operativni sustav zaustavlja svoju aktivnost;

ne može nastaviti s radom dok se ne dogodi neki događaj, a operativni sustav ga stavlja u stanje čekanja;

Kao rezultat prekida u računalnom sustavu (na primjer, prekid mjerača vremena nakon što je isteklo određeno vrijeme izvršenja), on se vraća u stanje pripravnosti.

Iz stanja čekanja, proces ulazi u stanje spreman nakon što se očekivani događaj pojavi i može se ponovno odabrati za izvršenje.

Naše novi model dobro opisuje ponašanje procesa tijekom njihovog postojanja, ali se ne fokusira na pojavu procesa u sustavu i njegov nestanak. Da bismo dovršili sliku, moramo uvesti još dva stanja procesa: rođenje i završeno izvršenje (vidi sl. 2.3).

Riža. 2.3. Dijagram stanja procesa usvojen u kolegiju

Sada, da bi se pojavio u računalnom sustavu, proces mora proći kroz stanje rođenja. Po rođenju, proces dobiva adresni prostor u koji se učitava programski kod postupak; alocirani su mu stog i sistemski resursi; postavlja se početna vrijednost programskog brojača ovog procesa itd. Novorođeni proces se prebacuje u stanje pripravnosti. Kada završi svoju aktivnost, proces prelazi iz stanja izvršenja u stanje završenog izvršenja.

U određenim operativnim sustavima stanja procesa mogu biti još detaljnija, a mogu se pojaviti i neke nove mogućnosti prijelaza iz jednog stanja u drugo. Na primjer, model stanja procesa za operacijsku salu Windows sustavi NT sadrži 7 različitih stanja, a za operativni sustav Unix - 9. Ipak, na ovaj ili onaj način, svi operativni sustavi slijede gore navedeni model.

Procesne operacije i srodni pojmovi

Skup operacija

Proces ne može sam prijeći iz jednog stanja u drugo. Operativni sustav mijenja stanje procesa izvodeći operacije nad njima. Broj takvih operacija u našem dosadašnjem modelu podudara se s brojem strelica na dijagramu stanja. Prikladno ih je kombinirati u tri para:

stvaranje procesa – završetak procesa;

Osnove operativnih sustava

obustava procesa (prijelaz iz stanja izvršenja u stanje spremnosti) – pokretanje procesa (prijelaz iz stanja spremnosti u stanje izvršenja);

blokiranje procesa (prijelaz iz stanja izvršavanja u stanje čekanja) – deblokada procesa (prijelaz iz stanja čekanja u stanje spremnosti).

U Kasnije, kada budemo govorili o algoritmima za raspoređivanje, naš model će sadržavati još jednu operaciju koja nema par: promjenu prioriteta procesa.

Operacije kreiranja i završetka procesa su jednokratne operacije, budući da se na proces primjenjuju najviše jednom (neki sistemski procesi se nikada ne prekidaju dok računalni sustav radi). Sve druge operacije povezane s promjenom stanja procesa, bilo pokretanje ili blokiranje, obično se mogu ponovno koristiti. Pogledajmo pobliže kako operativni sustav izvodi operacije nad procesima.

Blok kontrole procesa i kontekst procesa

Da bi operacijski sustav mogao obavljati operacije nad procesima, svaki proces je u njemu predstavljen nekom podatkovnom strukturom. Ova struktura sadrži informacije specifične za određeni proces:

stanje u kojem se proces nalazi;

programski brojač procesa ili, drugim riječima, adresa instrukcije koja se za njega sljedeća treba izvršiti;

sadržaj registara procesora;

podaci potrebni za CPU raspoređivanje i upravljanje memorijom (prioritet procesa, veličina i lokacija adresnog prostora, itd.);

vjerodajnice ( identifikacijski broj proces, koji je korisnik pokrenuo njegov rad, ukupno procesorsko vrijeme koje je taj proces koristio itd.);

informacije o uređaju I/O povezan s procesom (na primjer, koji su uređaji dodijeljeni procesu, tablica otvorenih datoteka).

Njegov sastav i struktura ovise, naravno, o konkretnom operativnom sustavu. U mnogim operacijskim sustavima informacije koje karakteriziraju proces nisu pohranjene u jednoj, već u nekoliko povezanih podatkovnih struktura. Ove strukture mogu imati različita imena i sadržavati Dodatne informacije ili, obrnuto, samo dio opisanih informacija. Nije nam bitno. Nama je jedino važno da za svaki proces koji se nalazi u računalnom sustavu operativnom sustavu budu dostupne sve informacije potrebne za obavljanje operacija na njemu. Radi jednostavnosti prikaza, pretpostavit ćemo da je pohranjen u jednoj podatkovnoj strukturi. Nazvat ćemo ga PCB (Process Control Block) ili blok upravljanja procesom. Procesni kontrolni blok je model procesa za operacijski sustav. Bilo koja operacija koju operacijski sustav izvodi na procesu uzrokuje određene promjene na PCB-u. Unutar prihvaćenog modela stanja procesa, sadržaj PCB-a između operacija ostaje konstantan.

Podaci za koje je jedinica za upravljanje procesom namijenjena da budu pohranjeni mogu se prikladno podijeliti u dva dijela za daljnji prikaz. Sadržaj svih registara procesora (uključujući vrijednost programskog brojača) nazvat ćemo kontekstom registra procesa, a sve ostalo sistemskim kontekstom procesa. Poznavanje registra i konteksta sustava procesa dovoljno je za kontrolu njegovog rada u operacijskom sustavu izvođenjem operacija nad njim. Međutim, to nije dovoljno za potpunu karakterizaciju procesa. Operativni sustav ne zanima kakvim se proračunima proces bavi, tj. koji se kod i koji podaci nalaze u njegovom adresnom prostoru. Sa stajališta korisnika, naprotiv, najveći interes predstavlja sadržaj adresnog prostora procesa, koji možda, uz kontekst registra, određuje redoslijed konverzije podataka i dobivene rezultate. Kod i podaci koji se nalaze u adresnom prostoru procesa nazivat će se njegovim korisničkim kontekstom. Ukratko radi, skup registara, sustava i korisničkih konteksta procesa jednostavno se naziva kontekst procesa. U bilo kojem trenutku, proces je potpuno karakteriziran svojim kontekstom.


Osnove operativnih sustava

Jednokratne operacije

Složeni životni put procesa u računalu počinje njegovim rođenjem. Svaki operativni sustav koji podržava koncept procesa mora imati sredstva za njihovo stvaranje. Vrlo jednostavni sustavi(na primjer, u sustavima dizajniranim za pokretanje samo jedne specifične aplikacije) svi se procesi mogu pokrenuti u fazi pokretanja sustava. Složeniji operativni sustavi po potrebi dinamički stvaraju procese. Inicijator rađanja novog procesa nakon pokretanja operacijskog sustava može biti ili korisnički proces koji je uputio poseban sistemski poziv ili sam operativni sustav, odnosno u konačnici i određeni proces. Proces koji je pokrenuo stvaranje novog procesa obično se naziva proces roditelj, a novostvoreni proces naziva se proces dijete. Procesi djeca mogu zauzvrat rađati novu djecu, itd., formiranje, u opći slučaj, unutar sustava je skup genealoških stabala procesa – genealoška šuma. Primjer genealoške šume prikazan je na slici 2.4. Treba napomenuti da svi korisnički procesi, zajedno s nekim procesima operativnog sustava, pripadaju istom šumskom stablu. U brojnim računalnim sustavima šuma se općenito degenerira u jedno takvo stablo.

Riža. 2.4. Pojednostavljeni genealoški proces šume. Strelica označava odnos roditelj-dijete

Kada se proces rodi, sustav pokreće novi PCB sa stanjem procesa rođenja i počinje ga puniti. Novi proces dobiva svoj jedinstveni identifikacijski broj. Budući da je ograničen broj bitova dodijeljen za pohranu identifikacijskog broja procesa u operacijskom sustavu, da bi se održala jedinstvenost brojeva, broj procesa koji su istovremeno prisutni u njemu mora biti ograničen. Nakon završetka procesa, njegov objavljeni ID broj može se ponovno upotrijebiti za drugi proces.

Tipično, za obavljanje svojih funkcija, podređeni proces zahtijeva određene resurse: memoriju, datoteke, I/O uređaje itd. Postoje dva pristupa njihovoj dodjeli. Novi proces može primiti neke od svojih nadređenih resursa, možda dijeleći prava na njih s nadređenim procesom i drugim podređenim procesima, ili može dobiti svoje resurse izravno iz operativnog sustava. Informacije o dodijeljenim resursima bilježe se u PCB.

Nakon dodjele resursa procesu dijete, potrebno je u njegov adresni prostor unijeti programski kod, vrijednosti podataka i postaviti programski brojač. Ovdje također postoje dva moguća rješenja. U prvom slučaju, podređeni proces postaje duplikat roditeljskog procesa u registru i korisničkom kontekstu, i mora postojati način da se odredi koji je od dupliciranih procesa roditelj. U drugom slučaju, podređeni proces se učitava s novim programom iz neke datoteke. Operativni sustav Unix dopušta stvaranje procesa samo na prvi način; za početak novi program prvo se mora kreirati proces roditelj, a zatim proces dijete mora zamijeniti svoj korisnički kontekst pomoću posebnog sistemskog poziva. Operativni sustav VAX/VMS dopušta samo drugo rješenje. U sustavu Windows NT moguće su obje opcije (u različitim API-jima).

Stvaranje novog procesa kao duplikata nadređenog procesa rezultira mogućnošću postojanja programa (tj. izvršne datoteke), za koje je organizirano više od jednog procesa. Sposobnost zamjene korisničkog konteksta procesa dok se izvodi (tj. učitanog za izvođenje

Osnove operativnih sustava

novi program) dovodi do činjenice da se nekoliko različitih programa može izvoditi sekvencijalno unutar istog procesa.

Nakon što je proces obdaren sadržajem, preostale informacije se dodaju na PCB, a stanje novog procesa se mijenja u spreman. Ostaje reći nekoliko riječi o tome kako se roditeljski procesi ponašaju nakon rođenja dječjih procesa. Roditeljski proces može nastaviti s izvođenjem dok se dijete proces izvršava ili može čekati da neka ili sva njegova djeca završe.

Nećemo se detaljno zadržavati na razlozima koji mogu dovesti do završetka životni ciklus postupak. Nakon što proces završi svoj rad, operativni sustav ga prebacuje u stanje dovršenog izvršenja i oslobađa sve resurse povezane s njim, unoseći odgovarajuće unose u kontrolni blok procesa. U tom slučaju sam PCB nije uništen, već neko vrijeme ostaje u sustavu. To je zbog činjenice da nadređeni proces, nakon završetka procesa djeteta, može postaviti upit operativnom sustavu o razlogu "smrti" procesa koji je iznjedrio i/ili statističkim informacijama o njegovom radu. Takve informacije pohranjuju se u PCB dovršenog procesa do zahtjeva nadređenog procesa ili do završetka njegove aktivnosti, nakon čega iz sustava konačno nestaju svi tragovi dovršenog procesa. U operacijskoj sali Unix sustav Procesi koji su u stanju završenog izvršenja obično se nazivaju zombi procesi.

Treba napomenuti da u nizu operativnih sustava (na primjer, u VAX/VMS) smrt nadređenog procesa dovodi do prekida rada sve njegove "djece". U drugim operativnim sustavima (na primjer, Unix), podređeni procesi nastavljaju postojati nakon završetka nadređenog procesa. U ovom slučaju, postoji potreba za promjenom informacija u PCB-u podređenih procesa o procesu koji ih je generirao kako bi genealoška šuma procesa ostala integralna. Razmotrite sljedeći primjer. Neka proces broj 2515 iznjedri proces broj 2001 i po njegovom završetku ostane u računalnom sustavu neodređeno dugo vrijeme. Tada je moguće da će broj 2001 ponovno upotrijebiti operativni sustav za potpuno drugačiji proces. Ako ne promijenite informacije o roditeljskom procesu za proces 2515, tada će genealoška šuma procesa biti netočna - proces 2515 će smatrati novi proces 2001 svojim roditeljem, a proces 2001 će se odreći neočekivanog djeteta. Procese "siročiće" u pravilu "usvaja" jedan od procesa sustava, koji se rađa prilikom pokretanja operativnog sustava i funkcionira sve dok je pokrenut.

Višekratne operacije

Jednokratne operacije rezultiraju promjenom broja procesa pod kontrolom operativnog sustava i uvijek su povezane s dodjelom ili oslobađanjem određenih resursa. Višekratno upotrebljive operacije, naprotiv, ne dovode do promjene u broju procesa u operacijskom sustavu i ne moraju biti povezane s dodjelom ili oslobađanjem resursa.

U ovom odjeljku ćemo ukratko opisati radnje koje operativni sustav izvodi prilikom izvođenja višekratnih operacija na procesima. O tim će radnjama biti više riječi kasnije u odgovarajućim predavanjima.

Započnite proces. Među procesima u stanju spremnosti, operativni sustav odabire jedan proces za naknadno izvršenje. Kriteriji i algoritmi za takav izbor bit će detaljno obrađeni u predavanju 3 - “Planiranje procesa”. Za odabrani proces operativni sustav osigurava da su informacije potrebne za njegovo daljnje izvođenje dostupne u RAM-u. Kako ona to radi bit će detaljno opisano u predavanjima 8-10. Zatim se stanje procesa mijenja u izvršenje, vrijednosti registra za ovaj proces se vraćaju, a kontrola se prenosi na naredbu na koju ukazuje brojač programa procesa. Svi podaci potrebni za vraćanje konteksta preuzimaju se iz PCB-a procesa na kojem se radi.

Pauziranje procesa. Proces u stanju izvođenja obustavljen je kao rezultat nekog prekida. Procesor automatski pohranjuje programski brojač i eventualno jedan ili više registara na stog procesa koji se izvršava, a zatim prenosi kontrolu preko posebnog

Osnove operativnih sustava

na specifičnu adresu obrade za ovaj prekid. Ovo dovršava hardverske aktivnosti obrade prekida. Jedan od dijelova operativnog sustava obično se nalazi na navedenoj adresi. U svoj PCB pohranjuje dinamički dio sustava i registarske kontekste procesa, stavlja proces u stanje pripravnosti i počinje s obradom prekida, odnosno izvođenjem određenih radnji vezanih uz nastali prekid.

Blokiranje procesa. Proces je blokiran kada ne može nastaviti s radom bez čekanja da se dogodi neki događaj u računalnom sustavu. Da bi to učinio, poziva operativni sustav pomoću određenog sistemskog poziva. Operativni sustav obrađuje sistemski poziv (pokreće I/O operaciju, dodaje proces u red čekanja procesa koji čekaju da se uređaj oslobodi ili da se dogodi događaj itd.) i, ako je potrebno, pohranjuje potreban dio kontekst procesa u svom PCB-u, prenosi proces iz stanja rada u stanje čekanja. O ovoj operaciji će biti više riječi u predavanju 13.

Deblokiranje procesa. Nakon što se u sustavu dogodi neki događaj, operativni sustav treba točno odrediti koji se događaj dogodio. Tada operativni sustav provjerava je li određeni proces bio u stanju čekanja za ovaj događaj, i ako jest, stavlja ga u stanje pripravnosti, izvodeći potrebne radnje povezane s pojavom događaja (pokretanje I/O operacije za sljedeći proces čekanja itd.) . Ova operacija, kao i operacija blokiranja, bit će detaljno opisana u poglavlju 13.

Prebacivanje konteksta

Do sada smo razmatrali operacije na procesima izolirano, neovisno jedan o drugom. U stvarnosti, aktivnost višeprogramskog operacijskog sustava sastoji se od nizova operacija koje se izvode na različitim procesima, a prati ih prebacivanje procesora s jednog procesa na drugi.

Kao primjer, pogledajmo pojednostavljeno kako se operacija deblokiranja procesa koji čeka I/O može odvijati u stvarnosti (vidi sliku 2.5). Kada procesor izvrši određeni proces (proces 1 na slici), dolazi do prekida od I/O uređaja, signalizirajući kraj operacija na uređaju. Operacija obustave izvodi se na pokrenutom procesu. Zatim operativni sustav deblokira proces koji je pokrenuo I/O zahtjev (proces 2 na slici) i pokreće obustavljeni ili novi proces odabran tijekom raspoređivanja (na slici je odabran deblokirani proces). Kao što vidimo, kao rezultat obrade informacije o završetku I/O operacije, moguće je promijeniti proces koji je u stanju izvođenja.

Riža. 2.5. Izvođenje operacije deblokiranja procesa. Upotreba izraza "korisnički kod" ne ograničava općenitost slike samo na korisničke procese


Osnove operativnih sustava

Za ispravno prebacivanje procesora s jednog procesa na drugi potrebno je pohraniti kontekst procesa koji se izvršava i vratiti kontekst procesa na koji će se procesor prebaciti. Ovaj postupak za spremanje/vraćanje procesa naziva se prebacivanje konteksta. Vrijeme potrošeno na prebacivanje konteksta računalni sustav ne koristi za obavljanje korisnog posla i predstavlja opterećenje koje smanjuje performanse sustava. Razlikuje se od stroja do stroja i obično se kreće od 1 do 1000 mikrosekundi. Prošireni procesni model, koji uključuje koncept niti izvršavanja (izvršne niti ili jednostavno niti), omogućuje značajno smanjenje režijskih troškova u modernim operativnim sustavima. Više o izvedbenim nitima govorit ćemo u predavanju 4 - “Kooperacija procesa i glavni aspekti njezine logičke organizacije.”

Zaključak

Koncept procesa karakterizira određeni skup izvršavajućih naredbi, pridruženih resursa i trenutnog trenutka njihovog izvršenja, koji je pod kontrolom operacijskog sustava. U svakom trenutku proces je potpuno opisan svojim kontekstom koji se sastoji od registarskog, sistemskog i korisničkog dijela. U operacijskom sustavu procesi su predstavljeni specifičnom podatkovnom strukturom - PCB-om, koja odražava sadržaj registra i kontekste sustava.

Procesi mogu biti u pet glavnih stanja: rođenje, spreman, izvođenje, čekanje, završeno izvođenje. Operativni sustav prenosi proces iz stanja u stanje kao rezultat operacija koje se na njemu izvode. Operativni sustav može izvršiti sljedeće operacije nad procesima: stvaranje procesa, završetak procesa, obustava procesa, pokretanje procesa, blokiranje procesa, deblokiranje procesa, promjena prioriteta procesa. Sadržaj PCB-a se ne mijenja između operacija. Aktivnost višeprogramskog operacijskog sustava sastoji se od nizova navedenih operacija koje se izvode na različitim procesima, a prate je procedure za spremanje/vraćanje funkcionalnosti procesa, odnosno prebacivanje konteksta. Promjena konteksta nema nikakve veze s tim koristan rad, koje izvode procesi, a vrijeme potrošeno na to smanjuje korisno vrijeme procesora.

3. Predavanje: Planiranje procesa

Ovo predavanje govori o problemima vezanim uz različite razine raspoređivanja procesa u operativnim sustavima. Opisani su glavni ciljevi i kriteriji planiranja, kao i parametri na kojima se ono temelji. Prikazani su različiti algoritmi planiranja.

Volim golemost naših planova...

V. V. Mayakovsky Što pažljivije planiramo svoje aktivnosti, manje vremena ostaje za njihovu provedbu.

Iz ljetopisa Gosplana

Kad god imamo posla s ograničenom količinom resursa i nekoliko njihovih konzumenata, bila to platna lista u radnom timu ili studentski tulum s nekoliko gajbi piva, prisiljeni smo se baviti raspodjelom raspoloživih resursa između konzumenata, odn. , drugim riječima, planiranje korištenja resursa. Takvo planiranje mora imati jasno definirane ciljeve (što želimo postići alokacijom resursa) i algoritme koji odgovaraju ciljevima i temelje se na parametrima potrošača. Samo pravilnim odabirom kriterija i algoritama možete izbjeći pitanja poput: “Zašto ja dobivam deset puta manje od svog šefa?” ili "Gdje je moje pivo?" Ovo predavanje je posvećeno planiranju izvođenja procesa u višeprogramskim računalnim sustavima ili, drugim riječima, planiranju procesa.

Razine planiranja

U prvom predavanju, razmatrajući evoluciju računalnih sustava, govorili smo o dvije vrste rasporeda u računalnim sustavima: raspored zadataka i raspored procesora. Raspored poslova pojavio se u batch sustavima nakon što su se počeli koristiti magnetski diskovi za pohranjivanje generiranih serija poslova. Magnetski diskovi, kao izravni uređaji

Osnove operativnih sustava

Mogući pristup omogućuje učitavanje zadataka u vaše računalo bilo kojim redoslijedom, a ne samo redoslijedom kojim su zapisani na disk. Promjenom redoslijeda učitavanja poslova u računalni sustav možete povećati učinkovitost njegovog korištenja. Proceduru za odabir sljedećeg zadatka za učitavanje u stroj, tj. za pokretanje odgovarajućeg procesa, nazvali smo raspored zadataka. CPU raspoređivanje se prvi put pojavljuje u višeprogramskim računalnim sustavima, gdje nekoliko procesa može biti u stanju pripravnosti u isto vrijeme. Upravo smo za proceduru odabira jednog procesa među njima koji će dobiti procesor na raspolaganje, tj. preći u stanje izvršenja, upotrijebili ovu frazu. Sada, nakon što smo se upoznali s konceptom procesa u računalnim sustavima, razmotrit ćemo obje vrste planiranja kao različite razine planiranja procesa.

Raspoređivanje poslova koristi se kao dugoročno planiranje procesa. Odgovoran je za generiranje novih procesa u sustavu, određujući mu stupanj multiprogramiranosti, odnosno broj procesa koji se u njemu istovremeno nalaze. Ako se stupanj multiprogramiranosti sustava održava konstantnim, odnosno prosječan broj procesa u računalu se ne mijenja, tada se novi procesi mogu pojaviti tek nakon završetka prethodno učitanih. Stoga se dugoročno planiranje provodi prilično rijetko, između pojave novih procesa mogu proći minute ili čak deseci minuta. Odluka o odabiru određenog procesa za pokretanje utječe na funkcioniranje računalnog sustava tijekom prilično dugog vremenskog razdoblja. Otuda i naziv ove razine planiranja – dugoročno. Neki operativni sustavi imaju malo ili nimalo dugoročnog planiranja. Na primjer, u mnogim interaktivnim sustavima dijeljenja vremena, proces se pokreće odmah nakon što se pojavi odgovarajući zahtjev. Održavanje razumnog stupnja multiprogramiranosti postiže se ograničavanjem broja korisnika koji mogu raditi u sustavu i osobitostima ljudske psihologije. Ako prođe 20-30 sekundi između pritiska na tipku i pojavljivanja znaka na ekranu, tada će mnogi korisnici radije prekinuti rad i nastaviti ga kada sustav bude manje zauzet.

CPU raspoređivanje se koristi kao kratkoročno planiranje procesa. Provodi se, na primjer, kada pokrenuti proces pristupi I/O uređajima ili jednostavno nakon završetka određenog vremenskog intervala. Stoga se kratkoročno planiranje provodi, u pravilu, najmanje jednom u 100 milisekundi. Odabir novog procesa za izvođenje utječe na funkcioniranje sustava prije nego što se dogodi sljedeći sličan događaj, odnosno unutar kratkog vremenskog perioda, što objašnjava i naziv ove razine planiranja - kratkoročno.

Na nekim računalnim sustavima može biti korisno poboljšati performanse privremenim uklanjanjem djelomično izvršenog procesa iz RAM-a na disk i kasnijim vraćanjem na daljnje izvršenje. Ovaj se postupak u literaturi na engleskom jeziku naziva swapping, što se na ruski može prevesti kao "pumpanje", iako se u stručnoj literaturi koristi bez prijevoda - swapping. Kada i koji od procesa treba prenijeti na disk i vratiti natrag odlučuje dodatna srednja razina planiranja procesa - srednjoročno.

Kriteriji planiranja i zahtjevi za algoritme

Za svaku razinu planiranja procesa može se predložiti mnogo različitih algoritama. Odabir određenog algoritma određen je klasom problema koje rješava računalni sustav i ciljevima koje planiranjem želimo postići. Takvi ciljevi uključuju sljedeće:

Pravednost - Jamčenje za svaki posao ili proces određenog postotka CPU vremena na računalnom sustavu, pokušavajući spriječiti situaciju u kojoj proces jednog korisnika neprestano zauzima CPU dok se proces drugog korisnika zapravo nije počeo izvršavati.

Učinkovitost - pokušajte zauzeti procesor 100% radnog vremena, ne dopuštajući mu da miruje čekajući procese spremne za izvršenje. U stvarnim računalnim sustavima opterećenje procesora kreće se od 40 do 90%.

Smanjenje vremena obrade – osigurajte minimalno vrijeme između početka procesa ili postavljanja posla u red čekanja za učitavanje i njegovog završetka.

Osnove operativnih sustava

Smanjenje vremena čekanja – smanjite vrijeme koje procesi provode u stanju spremnosti i poslovi u redu za učitavanje.

Smanjenje vremena odgovora - minimiziranje vremena potrebnog da proces u interaktivnim sustavima odgovori na zahtjev korisnika.

Bez obzira na ciljeve planiranja, također je poželjno da algoritmi imaju sljedeća svojstva.

Bili su predvidljivi. Isti zadatak treba završiti u približno istom vremenu. Korištenje algoritma za planiranje ne bi trebalo dovesti, na primjer, do izvlačenja kvadratnog korijena iz 4 u stotinkama sekunde pri jednom izvođenju i za nekoliko dana u drugom izvođenju.

Bili su povezani s minimalnim režijskim troškovima. Ako će na svakih 100 milisekundi dodijeljenih procesu za korištenje procesora, biti 200 milisekundi za određivanje kojem procesu će dati procesor na raspolaganje i za promjenu konteksta, onda se takav algoritam očito ne isplati koristiti.

Ravnomjerno opterećivao resurse računalnog sustava, dajući prednost onim procesima koji bi zauzeli malo korištene resurse.

Bili su skalabilni, tj. nisu odmah izgubili funkcionalnost kada se opterećenje povećalo. Na primjer, udvostručenje broja procesa u sustavu ne bi trebalo dovesti do povećanja ukupnog vremena izvršenja procesa za jedan red veličine.

Mnogi od gore navedenih ciljeva i svojstava su kontradiktorni. Poboljšanjem performansi algoritma sa stajališta jednog kriterija, pogoršavamo ga sa stajališta drugog. Prilagođavanjem algoritma jednoj klasi problema diskriminiramo probleme druge klase. "Ne možete upregnuti konja i srnu u ista kola." Ne možete ništa učiniti. To je život.

Mogućnosti planiranja

Da bi se postigli ovi ciljevi, razumni algoritmi raspoređivanja moraju se temeljiti na nekim karakteristikama procesa u sustavu, poslovima u redu za preuzimanje, stanju samog računalnog sustava, drugim riječima, na parametrima raspoređivanja. U ovom odjeljku opisat ćemo niz takvih parametara, bez pretendiranja da budemo potpuni.

Svi parametri planiranja mogu se podijeliti u dva velike skupine: statički parametri i dinamički parametri. Statički parametri se ne mijenjaju tijekom rada računalnog sustava, dok su dinamički parametri, naprotiv, podložni stalnim promjenama.

DO statički parametri računalnog sustava uključuju granične vrijednosti njegovih resursa (veličina RAM-a, maksimalan iznos disk memorija za swap, broj spojenih uređaja ulaz/izlaz, itd.). Dinamički parametri sustava opisuju količinu slobodnih resursa u ovom trenutku.

DO Statički parametri procesa uključuju karakteristike koje su obično svojstvene zadacima već u fazi učitavanja.

Koji je korisnik pokrenuo proces ili stvorio zadatak.

Koliko je važna zadaća, odnosno koji je prioritet njene provedbe.

Koliko je CPU vremena korisnik tražio za rješavanje problema.

Koliki je omjer CPU vremena i vremena potrebnog za izvođenje operacija I/O

Koji resursi računalnog sustava (RAM, uređaji) I/O, specijalne knjižnice i sistemski programi itd.) i u kojim količinama su potrebne za zadatak.

Algoritmi dugoročnog planiranja u svom radu koriste statičke i dinamičke parametre računalnog sustava i statičke parametre procesa (dinamički parametri procesa u fazi učitavanja poslova još nisu poznati). Algoritmi za kratkoročno i srednjoročno planiranje


Osnove operativnih sustava

Proračuni dodatno uzimaju u obzir dinamičke karakteristike procesa. Za srednjoročno planiranje, sljedeće informacije mogu se koristiti kao takve karakteristike:

koliko je vremena prošlo otkako je proces istovaren na disk ili učitan u RAM;

koliko RAM-a proces zauzima;

koliko je CPU vremena već dodijeljeno procesu.

Riža. 3.1. Fragment aktivnosti procesa koji ističe razdoblja kontinuirane upotrebe procesora i I/O čekanja

Za kratkoročno planiranje potrebno je uvesti još dva dinamička parametra. Aktivnost bilo kojeg procesa može se prikazati kao niz ciklusa korištenja procesora i čekanja na završetak I/O operacija. Period vremena kontinuiranog korištenja procesora naziva se CPU burst, a period vremena neprekidnog čekanja na I/O naziva se I/O burst. Slika 3.1. prikazan je fragment aktivnosti određenog procesa u pseudoprogramskom jeziku, ističući naznačene intervale. Radi sažetosti ćemo koristiti CPU pojmovi burst i I/O burst bez prijevoda. Vrijednosti trajanja posljednjeg i sljedećeg CPU bursta i I/O bursta važni su dinamički parametri procesa.

Preventivno i nepreventivno planiranje

Proces raspoređivanja provodi dio operativnog sustava koji se naziva planer. Raspoređivač može odlučiti odabrati novi proces među onima koji su spremni za izvršenje u sljedeća četiri slučaja.

1. Kada se proces prebaci iz stanja izvršenja u stanje završenog izvršenja.

2. Kada se proces prebaci iz stanja pokretanja u stanje čekanja.

3. Kada se proces prebaci iz stanja rada u stanje spremnosti (na primjer, nakon prekida timera).

4. Kada se proces prebaci iz stanja čekanja u stanje spremnosti (operacija je završena I/O ili neki drugi događaj). Procedura za takav prijenos detaljno je obrađena u predavanju 2 (odjeljak “Promjena konteksta”), gdje smo pokazali zašto postaje moguće promijeniti proces koji je u stanju izvršavanja.

U U slučajevima 1 i 2, proces koji je bio u stanju pokretanja ne može se nastaviti izvršavati, a operativni sustav je prisiljen izvršiti raspored odabirom novog procesa za izvršenje. U slučajevima 3 i 4, planiranje se može i ne mora provesti, planer nije nužno prisiljen donijeti odluku o odabiru procesa za izvođenje, proces koji je bio u stanju izvođenja može jednostavno nastaviti svoj rad. Ako operativni sustav raspoređuje samo u prisilnim situacijama, kaže se da ima raspoređivanje bez prioriteta. Ako planer donosi i prisilne i neforsirane odluke, govorimo o preventivnom planiranju. Izraz "preventivno planiranje" pojavio se jer pokrenuti proces, protiv svoje volje, može biti izbačen iz radnog stanja od strane drugog procesa.

Osnove operativnih sustava

Non-preemptive scheduling se koristi, na primjer, u MS Windows 3.1 i Apple Macintosh OS. S ovim načinom raspoređivanja, proces oduzima onoliko CPU vremena koliko mu je potrebno. U ovom slučaju, prebacivanje procesa događa se samo ako sam proces koji se izvršava želi prenijeti kontrolu (pričekati završetak I/O operacije ili na kraju rada). Ova metoda raspoređivanja je relativno jednostavna za implementaciju i prilično učinkovita, jer vam omogućuje da većinu vremena procesora dodijelite samim procesima i smanjite troškove prebacivanja konteksta na minimum. Međutim, kod non-preemptive scheduling-a problem se javlja zbog mogućnosti potpunog zauzimanja procesora od strane jednog procesa, koji iz nekog razloga (npr. zbog greške u programu) ulazi u petlju i ne može prenijeti kontrolu na drugi proces. U takvoj situaciji jedino rješenje je ponovno pokretanje cijelog računalnog sustava.

Preventivno planiranje obično se koristi u sustavima dijeljenja vremena. U ovom načinu raspoređivanja, proces se može obustaviti u bilo kojem trenutku tijekom izvršenja. Operacijski sustav postavlja poseban timer za generiranje signala prekida nakon određenog vremenskog intervala - kvantuma. Nakon prekida, procesor se prebacuje na sljedeći proces. Vremenski prekidi pomažu osigurati prihvatljivo vrijeme odziva procesa za online korisnike i sprječavaju zastoje. računalni sustav zbog petlje bilo kojeg programa.

Algoritmi planiranja

Postoji prilično velik skup različitih algoritama planiranja koji su dizajnirani za postizanje različitih ciljeva i učinkoviti su za različite klase problema. Mnogi od njih mogu se koristiti na nekoliko razina planiranja. U ovom odjeljku pogledat ćemo neke od najčešće korištenih algoritama koji se primjenjuju na proces kratkoročnog planiranja.

Prvi dođe, prvi poslužen (FCFS)

Najjednostavniji algoritam za raspoređivanje je algoritam koji se obično označava kraticom FCFS nakon prvih slova svog engleskog naziva - First-Come, First-Served (prvi došao, prvi poslužen). Zamislimo da su procesi u stanju pripravnosti poredani. Kada proces uđe u stanje pripravnosti, on, točnije referenca na njegovu PCB-u, postavlja se na kraj ovog reda čekanja. Odabir novog procesa za izvršenje provodi se od početka reda i referenca na njegov PCB se odatle uklanja. Red čekanja ove vrste ima poseban naziv u programiranju

– FIFO1), skraćenica za First In, First Out (prvi ušao, prvi izašao).

Ovaj algoritam odabira procesa izvodi raspoređivanje bez prevencije. Proces koji je stekao procesor zauzima ga dok ne istekne trenutni CPU burst. Nakon toga, novi proces s početka reda čekanja odabire se za izvršenje.

Tablica 3.1.

Prednost FCFS algoritma je jednostavnost njegove implementacije, ali u isto vrijeme ima mnogo nedostataka. Razmotrite sljedeći primjer. Neka postoje tri procesa p0, p1 i p2 u stanju pripravnosti za koje su poznata vremena njihovog sljedećeg CPU bursta. Ta su vremena dana u tablici 3.1. u nekim konvencionalnim jedinicama. Radi jednostavnosti, pretpostavit ćemo da je aktivnost svih procesa ograničena na korištenje samo jednog CPU bursta, da procesi ne izvode I/O operacije i da je vrijeme prebacivanja konteksta toliko kratko da se može zanemariti.

Ako se procesi nalaze u redu čekanja procesa spremnih za izvršenje redoslijedom p0, p1, p2, tada slika njihovog izvršenja izgleda kao na slici 3.2. Prvi proces koji se izvršava je p0, koji prima procesor za cijelo vrijeme trajanja njegovog CPU bursta, tj. 13 vremenskih jedinica. Nakon njegovog završetka, proces p1 prelazi u stanje izvršenja, zauzima procesor 4 jedinice vremena. I konačno, proces p2 dobiva priliku za rad. Vrijeme čekanja za proces p0 je 0