1.5 - Operating System Operations (p.20)

Dual-Mode Operation

  • User Mode = Opdracht uitgevoerd door de gebruiker.
  • Kernel Mode = Opdracht uitgevoerd door het Operating System.
    • Ook wel Supervisor Mode, System Mode, Privileged Mode genoemd.
    • Wanneer het OS control heeft over de computer.
  • Een bit is toegeveoegd aan de hardware om aan te geven in welke modus het OS is.
    • Een hardware onderdeel kan hierdoor
    • Kernel = 0, User = 1
  • Wanneer een userapplicactie een service request doet aan het besturingssysteem moet het systeem omschakelen naar de kernel mode.

  • Wat gebeurt er op boot?

    1. De hardware start in Kernel Mode.
    2. Het OS wordt geladen, en start de programmas in User Mode.
    3. Wanneer er een Trap/Interrupt plaatsvind wisselt de hardware van User naar Kernel mode.
  • Voordeel: Beveiligen van het systeem (of andere gebruikers) tegen loslopende/kwaadwillende gebruikers

  • Privileged Instructions = Instructies die worden uitgevoerd als kernel mode, welke mogelijk kwaadwillend kunnen zijn.
  • System Call = Zorgen ervoor dat het OS taken bestemd voor het OS kan uitvoeren, welke zijn aangevraagd door een User Program.

    • Over het algemeen aangevraagd door middel van een trap
  • Hoe werkt een system call?

    1. User Process start een system call.
    2. Een trap wordt uitgevoerd naar de kernel.
    3. De mode bit verandert van 1 naar 0 (user naar kernel mode).
    4. De kernel onderzoekt de call, en leest wat voor service is aangevraagd.
    5. Aanvullende gegevens worden doorgegeven in de stack, registers of in memory (pointers naar dit geheugen worden meegegeven)
    6. De kernel valideert dat de gegevens correct en legaal zijn.
    7. De kernel voert de call uit.
    8. De kernel geeft de controle terug aan het user process.
    9. De mode bit verandert terug naar 1.
  • Een OS zonder dual-mode kan zonder waarschuwing zichzelf overschrijven.

Timer

  • Timer = Methode om er voor te zorgen dat een user program niet eindeloos kan blijven draaien in de cpu.
  • De timer interrupt het programma na een gespecificeerde periode.
    • De tijd kan vast staan, of variabel.
    • Het OS zet de timer.
    • Wanneer de timer 0 is, wordt een interrupt gestuurd naar het OS.
      • Het OS kan beslissen het programma meer tijd te geven of het interpreteren als een fatale error.

results matching ""

    No results matching ""