Presentation laddar. Vänta.

Presentation laddar. Vänta.

OPERATIVSYSTEM OCH PRAKTISK LINUX Föreläsning 3 – Vecka 45 2010 INNEHÅLL  Processtillstånd  Avslutning av processer  Kommunikation mellan processer.

Liknande presentationer


En presentation över ämnet: "OPERATIVSYSTEM OCH PRAKTISK LINUX Föreläsning 3 – Vecka 45 2010 INNEHÅLL  Processtillstånd  Avslutning av processer  Kommunikation mellan processer."— Presentationens avskrift:

1 OPERATIVSYSTEM OCH PRAKTISK LINUX Föreläsning 3 – Vecka INNEHÅLL  Processtillstånd  Avslutning av processer  Kommunikation mellan processer  Liv och leverne  Prioritering

2 Processtillstånd På en dator körs endast en process/processorkärna åt gången Under tiden gör de andra processerna ingenting annat än väntar på sin tur Två grundläggande tillstånd  Exekvera  Redo att exekveras I figuren ovan delar 3 processer lika på processortiden, de får m.a.o. exekvera 1/3 av tiden och vänta 2/3. Exekvera Process A Redo Exekvera Redo Process B RedoExekvera Redo Process C ExekveraRedo ExekveraRedo

3 Processtillstånd Metoden för att fördela tid mellan processerna, visat i bilden på föregående slide, är fungerande men inte särskilt effektiv. Anta, att vi har två samtidiga processer, den ena processen är en krypteringsalgoritm och den andra processen är en Word-process som strax efter uppstart hämtar ett dokument från hårdskivan.  Krypteringsalgoritmen använder processorn under all sin processeringstid  Word-processen använder inte processorn alls medan den hämtar data från hårddisken I detta fall skulle processorn utnyttjas väldigt ineffektivt om man fördelade processtiden jämnt mellan word- och krypteringsprocessen.

4 Processtillstånd Man introducerade därför ett nytt tillstånd: blockera (eng. Blocking) Att en process är i blockerande tillstånd innebär att den slutar exekvera och frånsäger sig rättigheten att använda processorn tills en viss händelse Inträffat I exemplet beskrivet på föregående slide skulle då Word-processen ge ifrån sej processortiden medan data laddas upp från hårdskivan och i stället låta krypteringsprocessen jobba i processorn.

5 Processavslutning Alla processer som startas upp måste förr eller senare stängas av En process stängs givetvis av om strömtillförseln till datorn avbryts... Andra sätt att avsluta processer på är följande:  När processen gjort det den skall, avslutar den sej själv (alla instruktioner i programmet har utförsts) antingen genom ett s.k. systemanrop (exit()) eller genom att koden helt enkelt tar slut  Processen avslutas av en annan process eller av en användare med hjälp av ett systemanrop eller kommandot kill. Kill skickar en signal till operativsystemet och om den som kör anropet har tillräckliga rättigheter avslutas processen  Processen uppfört sig ”inkorrekt” och operativsystemet låter inte processen fortsätta (t.ex. Ber om mer minne än det finns tillgängligt)

6 Processkommunikation Processer behöver ofta kunna kommunicera sinsemellan på ett eller annat sätt. Exempel:  Processen för filsystemet behöver kommunicera med processen som sköter om kommunikation med hårdskivan IPC (Inter-process Communication) är en samling tekniker för att byta ut data mellan samtidigt exekverande processer

7 Processkommunikation Vanliga IPC tekniker: TeknikBeskrivning SignalerKorta fördefinierade meddelanden. T.ex. STOP (ber en process stanna upp), CONT (ber en stoppad process fortsätta), KILL (slutligen stänga av en process, generaras t.ex. om man trycker ctrl+d på tangentbordet. RörledningAnvänds för att styra om standard-input/standard output mellan processer Delat minneProcesser skriver helt enkelt växelvis till samma minnesplats FilerEn process skriver in data i en vanlig fil, och den andra processen avläser innehållet av filen.

8 Schemaläggning: Round robin Är en schemaläggningsalgoritm i den enklaste formen som helt enkelt tilldelar tidskvanta till alla processer som vill exekvera När alla processer exekverats med sitt tilldelade tidskvanta en gång, får igen den första processen exekvera en andra gång enligt tidskvantat. Detta upprepas tills processerna exekverats klart De flesta operativsystem har en schemaläggningsalgoritm som baserar sej på Round robin Problemet som uppstår när man använder Round robin är att bestämma storleken på kvantan

9 Schemaläggning: Round robin Om kvantan är kort, upplevs systemet som mycket responsivt, men mycket tid går åt till att byta mellan processerna (kontext switching) => hög overhead (kräver prestanda av datorn) Om kvantan är lång känns systemet segt att använda, men processorn används mer effektivt (Linuxkärnan bytte storlek på kvantan mellan version 2.4 och 2.6. Duskussionerna var heta och ledde aldrig någonstans. Detta slutade med att Linus torvalds själv bestämde storleken!!!)

10 Schemaläggning: Prioritering Ett tillägg som ofta används till Round robin Används bl.a. i Linux och i standard-Unix I Linux sätts prioriteterna engligt följande skala: Värde för prioritetBetydelse -20Högsta prioritet 0Medelprioritet (som standard startas alla processer med prioritet 0) 19Lägsta prioritet

11 Schemaläggning: Prioritering Gör det möjligt för användaren att berätta år operativsystemet vilka processer hon/han anser vara viktigast och vilka som är mindre viktiga Prioriteten för en process betyder i praktiken hur stort tidskvanta den får vid exekvering Varför vill vi inte starta alla processer med högsta prioritet?  Vissa serverprocesser/demoner som är ”osynliga” för användaren är onödiga att köra med hög prioritet, t.ex. e-post, kontroll efter uppdateringar. Man kan därför spara processorkraft genom att ställa in lägsta prioritet för dylika processer  Processer för input, t.ex. inmatning från tangentbordet, bör ha högsta prioritet, eftersom det är otroligt störande om ett program inte reagerar genast på ett tangenttryck.

12 Kommandon för processhantering i Linux: ps Listar processer som körs på datorn Exekvering utan flaggor ger följande resultat FörkortningBetydelse PIDEtt unikt ID för precessen TTYNamnet på terminalen varifrån processen startats TIMETotala processortiden som en process tagit i anspråk CMDNamnet på processen

13 Kommandon för processhantering i Linux: ps Exekvering med flaggan -f FörkortningBetydelse UIDAnvändarens unika ID PPIDProcessen som startade denna process CProcent av processorkapaciteten som används STIMEDen tid då processen startades

14 Kommandon för processhantering i Linux: ps Mera användbara flaggor till : FlaggaBetydelse -A/-eVisar info om alla processer som körs på datorn -aVisar processer som är kopplade till en terminal föurtom startsessionen --helpSkriver ut ett hjälpmeddelande om hur ps-kommandot skall användas -lVisar ytterligare info om de körande processerna -NVisar de processer som inte matchar resterande uttryck -pSorterar alla processer enligt process-ID -u #Visar processer som tillhör användaren #

15 Kommandon för processhantering i Linux: top Visar system- och processinformation Information läses av från /proc katalogen (liksom ps) Vid exekvering uppdateras informationen vanligen var femte sekund (uppdateringsfrekvensen kan styras med flaggan -d) Som standard sorteras processerna som visas på så sätt att den mest processorintensiva processen visas högst upp

16 Kommandon för processhantering i Linux: nice Används för att starta upp en process med en viss prioritet Anta t.ex. att du på en server vid jämna mellanrum kontrollerar att användarna har ett tillräckligt bra lösenord genom att köra en lösenordscracker på filen /etc/passwd. En lösenordscracker använder är en storkonsumerare av processorn men det är irrelevant om det tar t.ex. 5 eller 10h innan crackningen är klar. I detta fall vore det vettigt att starta lösenordscrackern med en låg prioritet Nice används enligt följande: nice –n prioritetsnivå program (t.ex. nice –n -20 kör find-kommandot med högsta prioritet

17 Kommandon för processhantering i Linux: kill Används för att stänga av, eller rättare sagt döda processer! Fungerar på så vis att en signal skickas från en process (t.ex. terminalen ifall användaren skriver kill på kommandotolken) till den process som skall dödas Användning av kill: OptionBetydelse kill processnummerStänger av processen med det specifika processnumret ”på ett snällt sätt” (tar t.ex. hand om osparat arbete) killall processnamnStänger av alla processer med det specifika namnet kill –HUP processnummerAnvänds för att starta om en process kill -9 processnummerSlår brutalt ihjäl en process (tar t.ex. ej hand om osparat arbete)! Behövs ofta om en process låst sej och inte svarar på vanlig kill

18 Kommandon för processhantering i Linux: at Gör det möjligt att utföra ett specifikt kommando eller starta ett visst program ”i framtiden” Exempel: at 08: at> echo ”hej på dej” at> ctrl+d  På första raden ställs in att man vill utföra ett kommando kl 8.00  På andra raden definieras att man vill att meddelandet ”hej på dej” skall visas på bildskärmen  ctrl+d avslutar kommandoinmatningen

19 Kommandon för processhantering i Linux: cron Används när man vill utföra ett kommando upprepade gånger efter ett speciellt mönster exempel: man vill automatiskt göra backup på data en gång / dag Den bakomliggande demonen till cron-kommandot heter crond Inställningar till crond finns i crontab-filen /etc/crontab crontab-filen är uppbydd så att den först visar tidpunkten då ett visst kommando skall utföras och sedan visar den vad som skall utföras

20 Kommandon för processhantering i Linux: cron Crontab kommandon: Använd kommandot : export EDITOR=editor för att definiera vilken editor du vill editera crontab filen i när du kör kommandot crontab –e (t.ex. export EDITOR=pico om du vill använda Pico som texteditor) KommandoBetydelse crontab –eEditera crontab filen crontab –lVisa crontab filen crontab –rRadera crontab filen

21 Kommandon för processhantering i Linux: cron Crontab filen: * * * * * command to execute | | | | | | | | | veckodag (0 - 6) (Sunday=0) | | | månad (1 - 12) | | dag (1 - 31) | timmar (0 - 23) minuter (0 - 59) Exempel: * * * rm /tmp/* Raderar innehållet i /tmp katalogen varje dag, kl 18:30


Ladda ner ppt "OPERATIVSYSTEM OCH PRAKTISK LINUX Föreläsning 3 – Vecka 45 2010 INNEHÅLL  Processtillstånd  Avslutning av processer  Kommunikation mellan processer."

Liknande presentationer


Google-annonser