26
OPERATIVSYSTEM OCH PRAKTISK LINUX Föreläsning 2 - 4.11.2010 INNEHÅLL Operativsystemarkitekturer Processer Kommandotolkar

OPERATIVSYSTEM OCH PRAKTISK LINUX Föreläsning 2 - 4.11.2010

  • Upload
    burian

  • View
    48

  • Download
    0

Embed Size (px)

DESCRIPTION

INNEHÅLL Operativsystemarkitekturer Processer Kommandotolkar. OPERATIVSYSTEM OCH PRAKTISK LINUX Föreläsning 2 - 4.11.2010. Operativsystemarkitektur. Operativsystem är otroligt stora (i Mb) och komplexa OS/360 (En av de första operativsystemen som utvecklades av IBM) - PowerPoint PPT Presentation

Citation preview

Page 1: OPERATIVSYSTEM OCH PRAKTISK LINUX Föreläsning 2 - 4.11.2010

OPERATIVSYSTEM OCH PRAKTISK LINUX

Föreläsning 2 - 4.11.2010

INNEHÅLLOperativsystemarkitekturerProcesserKommandotolkar

Page 2: OPERATIVSYSTEM OCH PRAKTISK LINUX Föreläsning 2 - 4.11.2010

Operativsystemarkitektur

Operativsystem är otroligt stora (i Mb) och komplexa

OS/360 (En av de första operativsystemen som utvecklades av IBM)

utvecklades av ca 5000 olika programmerare under en period av fem år

och innehöll drygt 1 miljon rader kod!!!

Linux-kärnan (med Linus Torvalds som chefsutvecklare) har tusentals

programmerare världen över

Version 2.6.22 av Linuxkärnan , lanserad i Juli 2007, innehåller

8 259 076 rader vilket är tre miljoner fler än i version 2.4.22 som lanserades

2003

Jämfört med andra operativsystem är Linux litet!!

Page 3: OPERATIVSYSTEM OCH PRAKTISK LINUX Föreläsning 2 - 4.11.2010

Operativsystemarkitektur

Finns i huvudsak fyra olika arkitekturmodeller Monolitisk Skiktad Mikrokärna (Den virtuella maskinen)

Page 4: OPERATIVSYSTEM OCH PRAKTISK LINUX Föreläsning 2 - 4.11.2010

Monolitisk arkitektur

Många program och operativsystemkärnor brukar beskyllas för att vara

monoliter!!!

Med monolit menas att hela programmet består av ett block med kod

Varje del är innesluten i kerneln och kan direkt kommunicera med andra

delar, t.ex. Filsystemet kan direkt kalla på minnesallokeringssystemet

De flesta monolitiska operativsystemkärnor är dock inte till arkitekturen rena

monolitkonstruktioner

Utvecklarna har i stället ofta skapat en logisk struktur som placerar viss

funktionalitet i block och sedan blocken i ett antal lager/skikt

Page 5: OPERATIVSYSTEM OCH PRAKTISK LINUX Föreläsning 2 - 4.11.2010

Skiktad arkitektur

I praktiken realiseras ofta lagerbaserad/skiktad struktur på det sättet att

källkoden delas in i olika underkataloger och så finns det regler för vilka

variabler som får användas och vilka funktioner som får anropas

En äkta skiktad konstruktion är dock baserad på ett antal lager där ett lagar

bara kan anropa ett angränsande lager och bara genom ett visst antal

förutbestämda anrop

Page 6: OPERATIVSYSTEM OCH PRAKTISK LINUX Föreläsning 2 - 4.11.2010

Mikro- och nanokärnor

Tanken är att själva kärnan endast skall hantera den mest basala

funktionaliteten och att allt annat skall skötas av processer som exekveras

utanför kärnan

Funktionaliteten är uppdelad så att mikrokärnan har ansvar för att skicka

meddelanden mellan alla processer + att schemalägga dem

Resten av funktionaliteten sköts av serverprocesserna

I vissa fall har mikrokärnan inte ens ansvar för att schemalägga

processerna (kallas för nanokärna)

Page 7: OPERATIVSYSTEM OCH PRAKTISK LINUX Föreläsning 2 - 4.11.2010

Mikrokärna vs monolitisk kärna

En monolitisk kärna är mycket effektivare eftersom ingen kommunikation

behövs mellan olika serverprocesser (kärntrådar)

En mikrokärna är dock mycket stabilare och har klarare design

(För ett praktiskt exempel, se sid 55-56 i kursboken)

Page 8: OPERATIVSYSTEM OCH PRAKTISK LINUX Föreläsning 2 - 4.11.2010

Arkitekturen i Windows och Linux

Windows Ursprungligen baserat på en mikrokärna Har modifierats mot monolitisk konstruktion bl.a. p.g.a kravet grafikprestanda

Linux Ursprungligen designad av Linus enligt den monolitiska arkitekturen Fick kritik bl.a. av Tanenbaum (pappan bakom Minix) Rör sej dock mer och mer mot en mikrokernelkonstruktion

Kerneltrådar (servrar) Moduler

Page 9: OPERATIVSYSTEM OCH PRAKTISK LINUX Föreläsning 2 - 4.11.2010

Virtuell omgivning för operativsystem

Inte egentligen en operativsystemarkitektur enligt den rätta bemärkelsen

men ändå värt att nämnas!

Ett tidsdelande system (timesharing system) erbjuder en exakt kopia av

den existerande hårdskivan till en virtuell dator

Innebär att på en fysisk dator kan man köra många virtuella datorer där alla

datorer i princip har samma hårdvara som värddatorn

De olika virtuella maskinerna kan köra olika operativsystem

Exempel på virtualiseringsprogramvara är VMWare Server och WMWare

Player

Page 10: OPERATIVSYSTEM OCH PRAKTISK LINUX Föreläsning 2 - 4.11.2010

Virtuell omgivning för operativsystem

Page 11: OPERATIVSYSTEM OCH PRAKTISK LINUX Föreläsning 2 - 4.11.2010

Processhantering

En process är ett program som exekveras på en dator

En process blir till/startas på flera olika sätt: Av operativsystemet vid uppstart av dator (t.ex. en printerserver-

process) Av en annan process Interaktivt av en användare

Operativsystem

Printerserver

Operativsystem

Terminal

Pico

Page 12: OPERATIVSYSTEM OCH PRAKTISK LINUX Föreläsning 2 - 4.11.2010

Processhierarkin i Linux

I Linux upprätthålls en processhierarki som ser ut ungefär som ett släktträd:

Föräldraprocess

BarnprocessBarnprocess

Barnbarnproc.Barnbarnproc.Barnbarnproc.Barnbarnproc.

Page 13: OPERATIVSYSTEM OCH PRAKTISK LINUX Föreläsning 2 - 4.11.2010

Processhierarkin i Linux

Init-processen är förälder till alla processer i Linux-systemet

Init (process 1)

BarnprocessBarnprocess

Barnbarnproc.Barnbarnproc.Barnbarnproc.Barnbarnproc.

Page 14: OPERATIVSYSTEM OCH PRAKTISK LINUX Föreläsning 2 - 4.11.2010

Processhierarkin i Linux

En process kan ha flera barn men endast en förälder

En föräldraprocess i Linux känner till alla sina barnprocesser och

tillsammans kallas dessa för en processgrupp

Om en föräldraprocess ”kraschar” förvandlas barnen till s.k.

”orphanprocesser” (föräldralösa) Barnen ”adopteras” i detta fall av init-processen

En annan variant av processer är zombie- eller ”defunced-” processer: En process som utfört sin uppgift men som inte fått sin avslutningsstatus

avläst av sin förälder Uppstår t.ex. Om en föräldraprocess fastnat i en oändlig loop

Page 15: OPERATIVSYSTEM OCH PRAKTISK LINUX Föreläsning 2 - 4.11.2010

Processhantering: Schemaläggare

En processor i en dator är inte speciellt smart

Processorn utför helt enkelt bara de uppgifter den blir tilldelad

Det är operativsystemets uppgift att tilldela uppgifter åt processorn

Man kan jämföra en processor med metalldetektorn i säkerhetskontrollen

på ett flygfält! Metalldetektorn är processorn Varje människa i kö är en instruktion i en process som i tur och ordning

ska hanteras av processorn I multiprogrammering system har vi flera processer (köer) och

instruktioner (människor i kö) och plockas från de olika processerna(köerna) i tur och ordning enligt operativsystemets schemaläggare

Page 16: OPERATIVSYSTEM OCH PRAKTISK LINUX Föreläsning 2 - 4.11.2010

Processhantering: Schemaläggare

Dagens operativsystem möjliggör exekvering av flera program samtidigt

Dagens datorer kan inte göra detta!!!!! (skulle i så fall behövas minst lika

många processorer som exekverande program)

Operativsystemet möjliggör dock samtidig exekvering m.h.a.

multiprogrammering:

Multiprogrammering innebär att vi har en schemaläggare som föredelar

processortiden mellan de olika processerna som körs på datorn

Page 17: OPERATIVSYSTEM OCH PRAKTISK LINUX Föreläsning 2 - 4.11.2010

Processhantering: Schemaläggare

Schemaläggarens grunduppgift är att se till att alla processer får tillgång till

datorns processor så att de kan utföras

Page 18: OPERATIVSYSTEM OCH PRAKTISK LINUX Föreläsning 2 - 4.11.2010

Processhantering: Schemaläggare

Mera faktorer en schemaläggare bör ta hänsyn till:

Faktor Innebörd

Interaktivitet Hur snabbt användaren uppfattar att datorn reagerar på t.ex. En tangenttryckning. Grundregeln för att optimera interaktivitet är att låta alla processer exekvera ofta men en kort stund varje gång.

Genomströmmning Hur får man igenom så många jobb som möjligt på kortast möjliga tid? Detta är mera intressant på en server än på en arbetsstation.

Förutsägbarhet Om samma uppgift utförs flera gånger skall den ta ”ungefär” lika lång tid varje gång.

Rättvisa På ett system med många samtidiga användare kan det vara vettigt att låta var och en av användarna få tillgång till lika stor del av kapaciteten.

Resursutnyttjande Vissa processer använder processorn mycket och andra använder den lite. Det kan vara effektivt att låta en process som gör exempelvis mycket diskarbete schemaläggas före en som utnyttjar processorn mycke. Om den bara utför lite processorarbete och sedan lämnar tillbaka den igen

Prioritering Det skall vara möjligt för användarna och systemet att avgöra vilka processer som är viktigast och vilka som är minst viktiga.

Page 19: OPERATIVSYSTEM OCH PRAKTISK LINUX Föreläsning 2 - 4.11.2010

Vad är en kommandotolk?

Man kan säga att kommandotolken fungerar som en länk mellan

användaren och operativsystemet

Hanterar information som användaren skriver in från tangentbordet

Page 20: OPERATIVSYSTEM OCH PRAKTISK LINUX Föreläsning 2 - 4.11.2010

Vad är en kommandotolk?

Brukar även kallas kommandoskal eller “command shell” på

engelska

Är precis vad namnet säger, dvs. ett program som tolkar de

kommandon som en användare ger och utför kommandona på

enligt operativsystemet det bästa sättet

Det goda med kommandotolken i Linux är att man kan via den

effektivt använda operativsystemet såsom: hantera filer hantera processer skapa automatiska processer (t.ex. backup-kopiering av filer) konfigurera operativsystemet (uppstartskript odyl.)

Page 21: OPERATIVSYSTEM OCH PRAKTISK LINUX Föreläsning 2 - 4.11.2010

Shellskript

Förutom kommandon klarar kommandoskalet av att även tolka

s.k. shellskript som är en sorts tolkat programspråk

Ett shellskript skapas av vanliga kommandotolkskommandon som

sparas i en fil med exekveringsrättigheter (chmod 700 filnamn)

Ett skript kan t.ex. användas för att: att köras vid systemstart för att starta upp vissa

program/processer automatiskt. skapa automatiska backup kopior av en viss katalog i filsystemet

Page 22: OPERATIVSYSTEM OCH PRAKTISK LINUX Föreläsning 2 - 4.11.2010

Olika kommandotolkar

Det finns flera olika kommandotolkar (program för att tolka

kommandon) i Unix/Linux-världen, bl.a:• Bourne Shell (/bin/sh)• Bourne Again Shell (/bin/bash)• C Shell (/bin/csh)• Korn Shell (/bin/ksh)• TC Shell (/bin/tcsh)• Zsh (/bin/zsh)

Bourne Again Shell (bash) är den abolut vanligaste

kommandotolkaren idag

Page 23: OPERATIVSYSTEM OCH PRAKTISK LINUX Föreläsning 2 - 4.11.2010

Tillgång till kommandotolken lokalt

På ett Linux-system har man tillgång till kommandotolken via ett

textgränssnitt (textbaserat program) som kan startas upp t.ex. via

en meny ur operativsystemests GUI (Graphical User Interface)

Man kan också starta operativsystemet utan GUI om man t.ex. kör

Linux på en server och vill att systemet skall kräva så lite prestanda

som möjligt

Kommandotolken är också oftast det ända tillgängliga gränssnittet

efter en systemkrasch vid försök att starta upp systemet från en

installations-CD/DVD

Page 24: OPERATIVSYSTEM OCH PRAKTISK LINUX Föreläsning 2 - 4.11.2010

Tillgång till kommandotolken över nätverk

Administratörer av Linux-servrar ansluter sej ofta till en servers

kommandotolk över ett nätverk (lokalnät/Internet) via gränssnittet

SSH (Secure Shell)

Det även finns SSH-klienter för Windows som tillåter SSH

inloggning till en Linux-dator från en Windows-dator, bl.a. Putty, se

http://www.putty.org/ (kan laddas ner gratis)

Page 25: OPERATIVSYSTEM OCH PRAKTISK LINUX Föreläsning 2 - 4.11.2010

Distansinloggning med Putty

Page 26: OPERATIVSYSTEM OCH PRAKTISK LINUX Föreläsning 2 - 4.11.2010

Distansinloggning med Putty