Ugrás a tartalomhoz

Operációs rendszerek

Dr. Fazekas Gábor (2011)

Kempelen Farkas Hallgatói Információs Központ

3. fejezet - Processzus leírás és vezérlés

3. fejezet - Processzus leírás és vezérlés

Processzus állapotok

Folyamat (processzus): végrehajtás alatt álló program. Alapvetően két állapotban lehet: futó, nem futó.

Két állapotú processzus modell

Processzusütemezés és létrehozás

  • Ütemező (dispatcher):

    • – program, mely a processzor processzusokkal való ellátását végzi

    • – megszakítás vagy processzusfelfüggesztés esetén a várakozási sorból választ ki végrehajtásra egy másik processzust

    • – megóvja a rendszert attól, hogy egy processzus kisajátítsa a processzoridőt

  • Processzus létrehozása:

    • – Az operációs rendszer létrehozza a processzus kezeléséhez szükséges adatszerkezetet és a főmemóriából címteret foglal le a processzus számára.

    • – Okai:

      • új kötegelt munka (batch job) benyújtása

      • új felhasználó terminálról való bejelentkezése

      • az operációs rendszer által létrehozott processzusok valamilyen szogáltatásnyújtás érdekében (pl. nyomtatásvezérlés)

      • egy már létező processzus is létrehozhat processzust (egymással kapcsolatban álló processzusok kommunikációját meg kell oldani!)

Processzusmegállítás (befejezés)

  • Kötegelt munka kiadja a "Halt/Stop" utasítást

  • Egy felhasználó kijelentkezik

  • Alkalmazásból való kilépés

  • Bizonyos hibafeltételek teljesülése

  • A megállítás/befejezés okai lehetnek:

    • Normális processzusbefejezés

    • Időhatár túllépése

    • Memória nem áll rendelkezésre

    • Memóriahatárok megsértése (nemlétező cím, bounds violation, segmentation fault)

    • Védelmi hiba: például írás csak olvasható fájlba

    • Számolási hiba

    • Időtúllépés

    • I/O hiba

    • Érvénytelen utasítás: adat „végrehajtása”

    • Privilegizált utasításvégrehajtásának megkisérlése: az utasítás csak kernel (operációs rendszer) módban hajtható végre

    • Használhatatlan adatsor

    • Operációs rendszer beavatkozása (preempció)

    • Szülő processzus és így az utód processzus is megszakad (kaszkád termináció)

    • Szülő processzus által történő megszakítás

Öt állapotú processzus modell

  • A két állapotú modell elégtelensége:

    • – néhány nem-futó állapotban levő processzus készen áll a végrehajtásra, míg mások blokkolva vannak (I/O várakozás)

    • – az ütemező nem választhat csak úgy processzust a lista legvégéről

    • – az ütemezőnek végig kellene vizgálnia a listát a legrégebbi nem blokkolt processzus után keresve

    • – nem futó processzusok kettéválasztásának szükségessége:

      • futásra kész (ready) állapot és blokkolt (blocked) állapot

  • A processzusok öt állapota:

    • futó (running)

    • futásra kész (ready)

    • blokkolt, vagy eseményre (I/O) várakozó (blocked)

    • új (new): újonnan létrehozott processzus, mely nincs még a főmemóriában

    • befejezett (terminated): processzus, melyet az operációs rendszer kivon a végrehajtandó processzusok közül

Várakozási sor használata

Processzusfelfüggesztés

  • A processzor sokkal gyorsabb, mint az I/O rendszer, így előfordulhat, hogy az összes processzus I/O-ra vár (a processzor üresjáratban van....)

  • Ezen processzusok memóriából lemezre történő mozgatásával memória szabadítható fel új processzusok számára (swap in, swap out) - SWAPPING

  • A processzus lemezre történő áthelyezésével a processzus blokkolt állapotból felfüggesztett állapotba kerül

  • Felfüggesztett lista (suspended queue): felfüggesztett processzusok listája

Két felfüggesztett állapot

  • Probléma: egy felfüggesztett processzus időközben futásra késszé válhat

  • Két új állapot szükséges:

    • – blokkolt, felfüggesztett

    • – futásra kész, felfüggesztett

A processzusfelfüggesztés okai

  • Swapping:

    • – az operációs rendszernek főmemóriát kell felszabadítani, hogy egy készen álló processzust be tudjon tölteni

  • Egyéb operációs rendszerhez köthető okokból:

    • – például az operációs rendszer felfüggeszthet olyan processzust, amely egy hiba okozásával gyanúsítható

  • Interaktív felhasználói kérelem:

    • – egy felhasználó a program végrehajtásának felfüggesztését kérheti (pl. erőforráshasználati okok miatt)

  • Időzítés:

    • – olyan processzus ideiglenes felfüggesztése, mely periodikusan hajtódik végre (naplózó illetve rendszermonitorozó processzusok)

  • Szülő processzus általi kérelem:

    • – egy szülő processzus felfüggesztheti az utód processzust annak vizsgálata illetve megváltoztatása céljából