Operativsystem

Ett operativsystem är ett grundläggande programvara som hanterar datorns hårdvara och resurser samt tillhandahåller tjänster för datorprogram. Det fungerar som ett gränssnitt mellan användaren, applikationer och datorns hårdvara. Operativsystemet ansvarar för att säkerställa att alla komponenter i datorn fungerar tillsammans smidigt. Exempel på populära operativsystem inkluderar Windows, macOS, Linux och Android.

Datorns hårdvara hanteras via små program som kallas ”drivrutiner”. När du installerar ny maskinvara måste du installera en drivrutin för att den nya hårdvaran ska fungera korrekt. Förutom drivrutiner använder vi varierande applikationer för olika ändamål, exempelvis Microsoft Word. Men drivrutiner och applikationer ensamma kan inte hantera datorns hårdvara effektivt; det krävs ett operativsystem.

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

Operativsystemet ansvarar för viktiga funktioner som:

  • Resurshantering: Hanterar datorns minne, processorer, lagringsutrymme och andra resurser.
  • Filhantering: Organiserar och kontrollerar datafiler på datorns lagringsenheter.
  • Enhetshantering: Styr och kommunicerar med externa enheter som skrivare, skannrar och andra anslutna enheter.
  • Användargränssnitt: Ger användare ett sätt att interagera med datorn, antingen via kommandoradsgränssnitt (CLI) eller grafiskt användargränssnitt (GUI).

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.

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.

Applikationer och Processer

Applikationer och tjänster körs som processer på en dator. Man kan säga att allt som händer när datorn är på, sker genom dessa processer. Operativsystemet ansvarar för att tilldela dessa processer åtkomst till datorns resurser, vilket inkluderar:

  • Kommunikationskanaler: Hanterar dataöverföring mellan olika processer och enheter.
  • Processorkraft: Tilldelar CPU-tid till olika processer för att de ska kunna utföra sina uppgifter.
  • RAM-minne: Tilldelar och hanterar användningen av det tillfälliga minnet (RAM) för att processerna ska kunna arbeta effektivt.
  • Lagringsplatser: Ger processer åtkomst till lagringsenheter för att läsa och skriva data.

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