OPERATIVSYSTEM OCH PRAKTISK LINUX Föreläsning

Slides:



Advertisements
Liknande presentationer
låt oss presentera SLIDEPLAYER.SE
Advertisements

OPERATIVSYSTEM WINDOWS
Syo PRAO ver. 3.0 Välkommen till presentationen av Syo PRAO Vi kommer att gå igenom de flesta funktionerna i Syo PRAO.
Ett webbaserat rekryteringsverktyg för alla branscher!
Access med Sebastian och Robert
Systemprogrammering för ingenjörer TDBB15 – HT03  Lärare och handledare  Thomas Johansson  Samuel Carlsson
Frågor Allmän IT-kunskap avsnitt 1 kapitel 1 Repetition 4
Persondatorer Felsökning och felhantering ”Vista” (Kapitel 10)
Mjukvara och nätverk Vad är det?.
Programmering B PHP Lektion 1
Informationshantering
Programstruktur: C för enchipsdatorer
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 3 ( ) Innehåll: -Namngivna rörledningar -Signaler -Signalhantering.
Översikt av operativsystem (kap 1 & 2)
OPERATIVSYSTEM OCH PRAKTISK LINUX Föreläsning 6 – Vecka INNEHÅLL  Hantering av användarkonton och användargrupper  Användning av Sudo för delgering.
ERGONOMI Vad är det?.
Tentamensdags och lab 3…. Större program delas normalt upp i flera filer/moduler vilket har flera fördelar:  Programmets logiska struktur när man klumpar.
Programmeringsteknik K och Media
Next previous Lite mer om CGI-programmering Innehåll Vad är CGI? Vad är Forms? Vad är Perl? Forms, CGI och Perl Internetprogrammering F 14 Läs också: Kursboken.
Det kognitiva perspektivet (Kapitel 4)
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kapitel 13: I/O-system.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kap 3 & 4: Processer & trådar.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kapitel 11: Implementation av filsystem.
OPERATIVSYSTEM OCH PRAKTISK LINUX
EN KOMPLETT INDUSTRIPARTNER ! ALLMÄNT OM MELSEC STYRSYSTEM.
Programmering B PHP Lektion 2
Tentamensdags och lab 3…. Större program delas normalt upp i flera filer/moduler vilket har flera fördelar:  Programmets logiska struktur när man klumpar.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 6 ( ) INNEHÅLL: -Mera om tabeller.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 7 ( ) Innehåll: -Datakanaler och datakanalpar -Kommunikation på samma dator med datakanaler.
Cellen och dess delar.
Programmering B PHP Lektion 3
Välkommen till Del 1.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 8 ( ) Innehåll: Trådprogrammering i Java - Avbrott (”interrupts”) - Metoden join() -
OPERATIVSYSTEM WINDOWS
UTVECKLING MED RAMVERKET.NET Marcus Medina. Dagens visdomsord ” Ingen vet vad han klarar innan han har försökt. ” - Publilius Syrus (85 f.Kr.-43 f.Kr.).
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 4 ( ) Innehåll: -Programmerade rörledningar -Namngivna rörledningar.
OPERATIVSYSTEM OCH PRAKTISK LINUX Föreläsning 5 – Vecka INNEHÅLL  Filer  Filtyper  Filändelser  Accessrättigheter för filer.
PROCESSPROGRAMMERING Föreläsning ‏ Innehåll: Högnivå objekt för trådprogrammering: - Trådgrupper (”Thread pools”)‏ - Exekverare (Executor.
Mitt första Java program Mahmud Al Hakim Copyright, Mahmud Al Hakim, 1.
Operativsystem i nätverk
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public ITE PC v4.0 Chapter 1 1 Operating Systems Networking for Home and Small Businesses – Chapter.
1969 – Bell Labs Multics utvecklas men läggs ner Thompson & Ritchie skapar Unics (senare Unix) för att spela Space Traveler.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 8 ( ) INNEHÅLL:Klasser: -Konstruktorer -Klassvariabler -Instansmetoder -Privata.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Metoder -Lokala variabler -Mera om klasser: -Nyckelorden.
OPERATIVSYSTEM OCH PRAKTISK LINUX Föreläsning 3 – Vecka
Logikprogrammering 21/10 Binära träd
Next previous RMI, Remote Method Invocation Om du har boken av Marty Hall, läs avsnitt 15.8 För fler exempel se:
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 2 ( ) Innehåll: -Processtruktur -Processklyvning och kodbyte -Avslutning av processer.
INTRODUKTION TILL PROGRAMMERING
Läsbar prolog CM 8.1. allmäna principer correctness user-friendliness efficiency readability modifiability robustness documentation.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 5 ( ) INNEHÅLL: -Metoder.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 8 ( )‏ Innehåll:  Introduktion till Java EE (Enterprise Edition)  Enterprise Java Beans.
NÄTVERKSPROTOKOLL Föreläsning INNEHÅLL - DHCP (Dynamic Host Configuration Protocol)‏
OPERATIVSYSTEM OCH PRAKTISK LINUX Föreläsning 7 – Vecka INNEHÅLL  Uppstartprocessen i Linux  Uppstartskript  Bootladdare  Driftsnivåer  Startskript.
PROCESSPROGRAMMERING Föreläsning 1 ( )‏ Innehåll: Introduktion till paralellprogrammering (“concurrent programming”)‏ Introduktion till parallellprogrammering.
NÄTVERKSPROTOKOLL Föreläsning
OPERATIVSYSTEM OCH PRAKTISK LINUX Föreläsning 10 – Vecka INNEHÅLL  Säkra nätverksförbindelser  SSH (Secure Shell)  SSL (Secure Sockets Layer)
Operating Systems (Operativsystem) Choosing The Operating Systems (Val av operativsystem)
Copyright, Mahmud Al Hakim, Hakimdata.se Agenda  Kunskapstest  Windows Skrivbord (Desktop)  Aktivitetsfält  Fönster och menyer  Systemåterställning.
Föreläsning2 Operativsystem.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 6 ( )‏ Innehåll:  Att designa parallella program - manuell vs. automatisk parallellisering.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 8 ( ) Innehåll: -Exekveringstrådar.
Föreläsning 1 Introduktion till kursen. Algoritmer
Anpassa fri programvara - Frihet ett, hur nyttjar man den? Copyright © 2006, 2007 Marcus Rejås Rejås Datakonsult Jag ger härmed rätten till alla att nyttja.
Operativsystem s63 Win 7 Länken mellan datorn och omvärlden Användare kan ge kommandon till datorn Starta program Skriva text via tangentbordet Matar ut.
IT och medier1 Utgående från boken Computer Science av: J. Glenn Brookshear Grundläggande datavetenskap, 4p Kapitel 3 Operativsystem.
Python.
Datorer och nätverk.
IT Fördjupning Jon Wide
Datorer och nätverk.
Presentationens avskrift:

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

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!!

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

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

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

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)

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)

Arkitekturen i Windows och Linux 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

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

Virtuell omgivning för operativsystem

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 Operativsystem Printerserver Terminal Pico

Processhierarkin i Linux I Linux upprätthålls en processhierarki som ser ut ungefär som ett släktträd: Föräldraprocess Barnprocess Barnprocess Barnbarnproc. Barnbarnproc. Barnbarnproc. Barnbarnproc.

Processhierarkin i Linux Init-processen är förälder till alla processer i Linux-systemet Init (process 1) Barnprocess Barnprocess Barnbarnproc. Barnbarnproc. Barnbarnproc. Barnbarnproc.

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

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

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

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

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.

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

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.)‏

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

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

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

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)‏

Distansinloggning med Putty

Distansinloggning med Putty