Operativsystem

Ett datorsystem, eller bara dator, består av in- och ut-enheter och en systemenhet. I systemenheten finns alla komponenter anslutna till ett moderkort, bland annat CPU, RAM-minne, SSD-enheten och många andra komponenter till. Varje datorkomponent består i sin tur av flera inre komponenter. Hur hanteras så många komponenter och hur kommunicerar de med varandra och vi med de?

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 det. 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.

Datorer utrustas med olika hårdvara därmed hanteras de med olika drivrutiner och applikationer som matchar datorns hårdvara. Men varierande hårdvara gör det svårt att samarbeta och då anpassas mjukvara till ett generellt arbetsläge som passar alla möjliga datorkomponenter. Sådant mjukvara kallas ”generic” eller standard/abstraktion.

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, antingen kan det finnas t ex en CD-rom med vid köpet eller så laddar man ner drivrutinen 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 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

Utifrån detta perspektiv kan nämnas att det finns flera olika operativsystem (OS) för lika varierande datorarkitektur (se som datorns hårdvara och hur de hanteras).

Bild 4: Fler-användarsystem

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.