2) Operativsystem

Datorns hårdvara hanteras via små program som kallas ” drivrutiner”. När du installerar en ny maskinvara måste du installera ett program (drivrutin) för att hantera maskinvaran. Förutom drivrutiner använder vi varierande applikationer för olika ändamål exempelvis Microsoft Word. Men drivrutiner och applikationer ensamma kan inte avgöra hantering av datorns hårdvara, det krävs ett större program som kallas operativsystemEtt operativsystem fungerar som ett gränssnitt mellan användare/program och datorns hårdvara. Med andra ord kan operativsystemet betraktas som förmedlare mellan användare och datorns hårdvara.

Bild 1: Användare och kärna funktionsläge

Applikationer och tjänster körs i processer, man kan säga att allt som händer när datorn är på, körs i processer. Dessa processer tilldelas av operativsystemet åtkomst till datorns resurser oftast kommunikationskanaler, processors kraft, RAM minne och lagringsplatser.

Hardware Abstraction Layer – HAL

Operativsystemet kontrollerar även kommunikationen med en dators olika kringenheter, som skrivare, bildskärmar etc. För att göra detta behöver operativsystemet drivrutiner för dessa enheterna. I de flesta moderna operativsystemen så finns drivrutiner med för de vanligaste enheterna, annars laddar man in dessa drivrutiner när man kopplar in en ny enhet oftast från nätet. Windows operativsystem har utvecklat ett separat uppdateringssystem som automatiserar dators uppdateringar.

När varierande mjukvara styrs av egna arbetssätt så kan det vara problem att exekvera lämpliga instruktioner som är specifika till varje program. För att förenkla detta finns en del av operativsystemet som matchar de olika arbetssätt, denna del kallas på engelska Hardware Abstraction Layer eller HAL. Den fungerar som en virtuell dator som passar alla sorter hårdvara och mjukvara. Det är just via denna lager som applikationer tar sig till för att nå dators hårdvara. Ett annat sätt att definiera HAL är att den fungerar som en tolk mellan applikationer i Användarläge och dators hårdvara i kärnaläge. Det största fördelen med HAL är att operativsystemet behöver inte specifika drivrutiner till varje hårdvara istället kan operativsystemet använda samma drivrutiner till flera liknande hårdvara, det är det som kallas för generic.

Applikationshantering

Vi använder applikationer som kräver åtkomst till datorns hårdvara och när applikationer inte kan detaljer av varje datorkomponent är de begränsade i sitt fungerande. Samtidigt kan de  inte tillåtas ett fullständigt åtkomst till dators hårdvara och därmed kan de inte heller tillåtas fullständigt kontroll över drivrutinerna. Lösningen till detta är det att dela upp  körningsläge/arbetsläge i användarläge och systemläge (user mode och kernel mode).

Det är här man ser hur ett operativsystem styr kommunikationen mellan användare och applikationer med datorns hårdvara.

Bild 2 visar två olika datorer (A och B) med olika hårdvara. Operativsystem skapar ett underlag för kommunikationsmöjligheter så att applikationer kan komma åt hårdvara. Det handlar egentligen om fyra skikt som är självständiga men öppna till samarbete, se tredje bilden.

Bild 2: Samarbete

Processer

Processer kan startas av användaren via program eller processer själva kan starta andra processer via operativsystemet. Alla processer schemaläggas så att användning av resurser styrs tidsbaserat. Det finns olika metoder för schemaläggning:

  • Round-robin: Varje process tilldelas ett fixt tidskvanta och sedan tilldelas CPU:n dessa processer i ett cykliskt förlopp, en process exekveras inom en viss tid och sedan ställer sig sist i kön för att återkomma senare.
  • FIFO: First-In-First-Out, är en schemaläggningsteknik som inte är cyklisk, en process (eller ett jobb som det då kallas) schemaläggs och kör tills den är klar, det gäller att vara först i kön.
  • Lottoschemaläggning: En rättvis form av schemaläggning där CPU-tid lottas ut. I längden jämnar det ut sig och blir som round robin. Slumpmässigt resurstilldelning sker så att alla processer i kön får en del varje gång vad de begär.

När du startar ett program som användare i Windows skapas en process för programmet. Processen ger programmet ett privat virtuellt adressutrymme och en privat referenstabell. Eftersom ett programs virtuella adressutrymme är privat kan ett program inte ändra data som tillhör ett annat program. Varje program körs isolerat, och om ett program kraschar är kraschen begränsad till det programmet. Andra program och operativsystemet påverkas inte av kraschen.