Datorsystem 5. På denna föreläsning skall vi prata om Operativsystem Exempel på tenta (typ fjolårets)



Relevanta dokument
Operativsystem. Innehåll. Operativsystemets funktion. Vad är ett OS? Vart hittar men ett OS? OS hanterar processorns resurser

Innehåll. Programmeringsteknisk översiktskurs för yrkeshögskoleprogram. Operativsystem. Vad är/gör en processor? Klockhastighet

Programmeringsteknisk översiktskurs för yrkeshögskoleprogram

Operativsystem. Informationsteknologi sommarkurs 5p, Agenda. Slideset 7. Exempel på operativsystem. Operativsystem

Operativsystem Lektion 1. Lärare. Schema. Kurssajten Finns på adressen. Jan Erik Moström. Set Norman

Introduktion till hårdvara, mjukvara och operativsystem

Fö 7: Operativsystem. Vad är ett operativsystem? Målsättning med operativsystem. Styr operativsystemet datorn?

Definition DVG A06. Varför operativsystem? Operativsystem. Översikt. - Vad är ett operativsystem?

DVG A06. Operativsystem, mm. Karlstads universitet Datavetenskap. DVG A06 Johan Eklund. Datavetenskap, Karlstads universitet 1

Operativsystem DVG A06. Definition. Varför operativsystem? - Vad är ett operativsystem?

Operativsystem Introduktion

Lärare. Operativsystem. Handledning. Kurssajt. Schema. Lektioner. Jan Erik Moström

Vad är en dator? Introduktion till datorer och nätverk. Pontus Haglund Institutionen för datavetenskap (IDA) 21 augusti 2018

Föreläsning 2. Operativsystem och programmering

Datorteknik ERIK LARSSON

Författare: Juha Söderqvist IT-GUI. Version 1.0. Datum

UNIX Introduktion UNIX. Datorerfarenhet. Vad menar man med operativsystem

Operativsystem. Hierarkin för hårdvara läses nerifrån

En Von Neumann-arkitektur ( Von Neumann-principen i föreläsning 1) innebär:

DVA315 Operativsystem

Operativsystem - input/output, skydd, virtualisering

Operativsystem och användargränssnitt

DIG IN TO Dator och nätverksteknik

DVA315 Operativsystem. Mats Björkman Mälardalens högskola

Allmänt om programvaror och filer i Windows.

Tentamen i ID2206, ID2200 samt IS1350 Operativsystem

SMD 134 Objektorienterad programmering

Operativsystem ID hp, ID2200 6hp

Outline. Datorsystemtekni. Kravspecifikation. Kravspecifikation (forts.)

Datorsystem. Laboration 3: Operativsystem Senast uppdaterad: 14 oktober 2012 Version 1.3. Student: Underskrift: Underskrift: Datum:

Fö 8: Operativsystem II. Minneshantering. Minneshantering (1) Minneshantering (2) Minneshantering och Virtuelltminne.

DIG IN TO Dator och nätverksteknik

Systembeskrivning. Systemskiss. Moduler.

TDDIU81. Processer och trådar. Andreas Dahlberg, Jonathan Doherty, Tony Magnusson, Patrik Ottosson, Rasmus Siljedahl

HF0010. Introduktionskurs i datateknik 1,5 hp

Operativsystem. IS hp. Jim Dowling Docent, PhD [Bilder av Robert Rönngren]

Reservföreläsningen inställd

Datorer och datoranvändning Föreläsningar 2014/15. Föreläsning 1 Unix. Operativsystem. Unix

Introduktion till Linux. TDDC66 Datorsystem och programmering Föreläsning (i) Peter Dalenius Institutionen för datavetenskap

TDDC77 Objektorienterad Programmering

Introduktion till Unix och Linux

Grundkurs i programmering - intro

Vad händer när man kör ett program? Program och processer. Funktionsanrop. Avsluta programmet

KURSMÅL WINDOWS STARTA KURSEN

Introduktion till Linux. TDDC66 Datorsystem och programmering Föreläsning 1 Peter Dalenius Institutionen för datavetenskap

Flera processer. Minneshantering. Trashing kan uppstå ändå. Ersätta globalt

Filsystem. Varför? Hur? För att kunna lagra data mer permanent än i RAM. Vettig organisation Vettiga namn

Projekt Fake för Virtutech

Introduktion till programmering. Undervisning. Litteratur och examination. Lärare. Föreläsning 1

Objektorienterad programmering i Java I

Introduktion till datoranvändning. Välkomna till NADA. (Numerisk Analys och DAtalogi) och kursen. Datalogi, grundkurs 1, 15hp

Datorsystemteknik DAVA14 Föreläsning 10

Realtidssystem HT03. Vad är realtidssystem? Inbyggda system. Att programmera, Tasks (Uppgifter) Realtidssystem kräver analys

Kort-kort om utdelade användarkonton och datormiljön på NADA

Datorsystemteknik DAV A14 Föreläsning 1

Föreläsning 3. Programmering, C och programmeringsmiljö

Översikt. Datorarkitekturer med operativsystem. Inledning. Inledning

Lunds Tekniska Högskola Datorarkitektur med operativsystem EITF60. Superscalar vs VLIW. Cornelia Kloth IDA2. Inlämningsdatum:

Välkomna till NADA. Datalogi, grundkurs 1, 15hp. (Numerisk Analys och DAtalogi) och kursen. DA2001 (Föreläsning 1) Datalogi 1 Hösten / 28

Kursansvarig. Välkomna till NADA. Datorn som verktyg. Datalogi, grundkurs 1, 15hp

Trådar och Multiprocessorer. Föreläsning 6

Fö 5+6 TSEA81. Real-time kernel + Real-time OS

Introduktion till Linux. TDDE23 Funktionell och imperativ programmering, del 1 Föreläsning 1 Peter Dalenius Institutionen för datavetenskap

Introduktion till programmering, hösten 2011

Datorsystem och programmering

IDE USB kabel Windows XP, Vista 7 löäzxcvbnmqwertyuiopåasdfghjklöäz [Version 1.4, ]

Minnesisolering för virtuella maskiner en hypervisorstudie

Minnets komponenter. Digitala System: Datorteknik. Programexekvering. Programexekvering. Enhet för utdata. Enhet för indata CPU.

Dagens OS. Unix, Linux och Windows. Unix. Unix. En översikt av dagens OS Titt på hur de gör. Många varianter Mycket gemensamt. En del som skiljer

Handbok Fjärranslutning till skrivbord. Brad Hards Urs Wolfer Översättare: Stefan Asserhäll

Objektorienterad Programmering (TDDC77)

Dedikerad Server Vilket operativsystem ska jag välja? Är ni i startgroparna och ska beställa en dedikerad server eller en virtuell server?

LABBINTRODUKTION. Laboranter: Kurs: - Sonny Johansson, Sigurd Israelsson. Utskriftsdatum:

Välkomna till NADA. Datalogi, grundkurs 1, 15hp. (Numerisk Analys och DAtalogi) och kursen. DA2001 (Föreläsning 1) Datalogi 1 Hösten / 28

Filöverföring i Windowsmiljö

Din manual HP COMPAQ EVO D310 MICROTOWER

Introduktion till användning av linux-servern sledge och några övningsuppgifter

Unix-miljöer i större sammanhang

Operativsystem (ID2200/06) XX XX:00-XX:00

Datorsystem 2 CPU. Förra gången: Datorns historia Denna gång: Byggstenar i en dators arkitektur. Visning av Akka (för de som är intresserade)

Elektroteknik MF1016 föreläsning 9 MF1017 föreläsning 7 Mikrodatorteknik

Program kan beskrivas på olika abstrak3onsnivåer. Högnivåprogram: läsbart (för människor), hög abstrak3onsnivå, enkelt a> porta (fly>a 3ll en annan ar

Lösningsförslag till tentamen i IS1350 Operativsystem

Introduktion till processer

Grundkurs i Informationsbehandling Del II (1119) Tentamen

Övning 1. Datateknik A, Java I, 5 poäng. Att ladda hem och installera Java Att skriva ditt första Javaprogram Att kompilera och exekvera ditt program

Datorhistoria Introduktion till PBL

Apple Remote Desktop 3. Viktor Glemme Systemingenjör - Apple glemme.v@euro.apple.com

LABORATIONSRAPPORT Operativsystem 1 Laboration 1, Ghost, pingpong och Windows 2003 installation

In- och Utenheter. Fö 3: In/Ut matning och kopplingsstruktur. Några exempel. Egenskaper. In- och Utenheter. Styrning.

Handbok Dela Skrivbord. Brad Hards Översättare: Stefan Asserhäll

Grundläggande datorkunskap

Program & programmering

Webservice & ERP-Integration Rapport

Omkoppling av in- och utmatning. In- och utmatning i Unix. Kommando exempel, ls, pipe forts. Kommando exempel, ls, pipe

Grundläggande datavetenskap, 4p

Datorteknik ERIK LARSSON

DATORLÄRA Christophe Clément - Fysikum

Institutionen för elektro- och informationsteknologi, LTH

Datorteknik. Föreläsning 5. Realtidssystem och realtidsprogrammering. Institutionen för elektro- och informationsteknologi, LTH.

Transkript:

Datorsystem 5 På denna föreläsning skall vi prata om Operativsystem Exempel på tenta (typ fjolårets)

Vad är ett operativsystem (OS)? Syfte Att tillåta flera program att köra samtidigt Att fungera som ett abstraktionslager mot hårdvaran Att hantera olika resurser

Operativsystemets funktion Ett operativsystem (OS) är det som kontrollerar alla aktiviteter som sker i en dator Operativsystemet interagerar både med datorn och de olika applikationerna Hanterar processorns resurser Hanterar RAM-minnet Håller koll på lagringsresurserna Ser till att input och output fungerar som det ska Etablerar grunderna för användarytan

Var hittar man ett OS? Persondatorer Handdatorer/Mobiltelefoner Stordatorer Inbyggda system (embedded systems) Radarsystem Symaskin Tryckpress Olika krav på operativsystemet beroende på var de finns

OS hanterar processorns resurser Ett OS styr också processorn lite, fast på en högre nivå. Många aktiviteter = många processer som behöver CPU-kraft. Kommandon för program/process kontroll, input från mus och tangentbord, information till skärm, skrivare, nätverk OS hjälper processorn att fördela arbetet så att alla processer får utnyttja CPUn. Alla ska få lika mycket kraft och CPUn ska inte vara sysslolös. Idealt ser det ut som att datorn gör flera saker samtidigt...

OS och minnet När processorn jobbar lagras information i RAM-minnet När flera applikationer körs samtidigt måste OS:et se till att alla får var sitt område i RAM-minnet att programmen bara kommer åt sitt eget område i minnet (om minnet inte ska vara delat) Om ett program petar utanför sitt eget minne kan data förstöras, och något annat program krascha, därför tillåts man bara peta på sitt eget minne Ofta får man felmeddelanden som General Protection Fault, Segmentation Fault eller Bus Error Datorns övriga program klarar sig från programmet det gått fel i.

Direkt interaktion med OS? Ja, ibland. Oftast via nyttoprogrammen (utilities) när man startar upp program hanterar filer (skapar, flyttar, döper om) använder hjälpen förändrar den grafiska användarytan konfigurerar utrustning (hårdvara och externa enheter)

Hur kommunicerar våra program med OS? Systemanrop Särskilda funktioner som ett program kan anropa för att be operativsystemet utföra en tjänst åt programmet (som programmet inte själv får utföra) Används tex för: lågnivå fil I/O (inte typ printf utan på lägre nivå än så) process kontroll (avsluta program) processkommunikation (kommunicera med andra program) Ser ut som vanliga funktionsanrop i C, men själva uppgiften kommer att utföras av operativsystemet

Systemanrop För det mesta så behöver våra program inte direkt använda sig av systemanropen utan vi kan använda oss av mer användarvänliga biblioteksfunktioner (som i sin tur använder sig av systemanropen) På kursen Systemnära programmering kommer ni få skriva program som jobbar mer intimt med operativsystemet

Unixarkitektur För att få en flexibel lösning med möjlighet till bra design bygger man operativsystemet i lager Kärnan (kernel) den lägsta nivån av abstraktionslager som är implementerat i mjukvara vid bootning (uppstart) lämnas kontrollen över till kärnan som i sin tur startar upp nödvändiga processer systemanrop Kernel biblioteksrutiner

Unixarkitektur Systemanrop fungerar som ett gränssnitt mellan applikationer och kärnan det är den lägsta nivå som vanliga programmerare kommer åt Biblioteksrutiner systemanropen paketeras i sin tur i standardbibliotek med utökad funktionalitet denna nivå är vanligast för vanliga programmerare systemanrop Kernel biblioteksrutiner

Unixarkitektur Shell används främst för att kunna hantera filsystemet i kommandoradsbaserade shell finns ofta möjligheter att skripta kommandon för att automatisera olika uppgifter tex bat-filer i DOS miljö systemanrop Kernel biblioteksrutiner

Exempel på systemanrop (Solaris) Systemanrop för lågnivå I/O int creat(const char *path, mode_t mode) int open(const char *path, int oflag, /* mode_t mode */...) int close(int fildes) ssize_t read(int fildes, void *buf, size_t nbyte) ssize_t write(int fildes, const void *buf, size_t nbyte) Systemanrop för process kontroll pid_t fork(void) int execvp(const char *file, char *const argv[]) void exit(int status)

Exempel på systemanrop (Solaris) Systemanrop för rättighetshantering int setuid(uid_t uid) int chmod(const char *path, mode_t mode) I/O funktionerna ovan används tex av printf

OS och input och output Alla enheter kopplade till en dator ses som en resurs. OS håller reda på dessa och använder drivrutiner för att kunna prata med dem på ett enkelt sätt Varnar om något gått fel Ser till att informationen till och från enheterna lagras i buffrar så att inget tappas bort och för att öka prestanda.

OS och användarytan Användaryta (user interface) definieras som den kombination av hårdvara och mjukvara som hjälper människa och dator att kommunicera Ett OS kan antingen ha en grafisk användaryta - Graphical user interface (GUI) Xerox, Apple (Macintosh) 1984, PC-datorer ca 1992 vara kommandoradsbaserad - Command-line user interface

Var lagras OS? På handdatorer/speldatorer ryms hela OS i ROM På de flesta datorer ryms endast ett litet program som kallas bootstrap-program i ROM. Ger instruktioner om vilka program som ska lagras in i RAM när datorn startar upp (bootar) Minneshantering och filaccess laddas alltid in, andra delar laddas när de behövs Den del av OS som alltid är inladdat kallas som sagt kärnan (kernel).

OS och lagringsresurser OS beter sig som en arkivarie Kommer ihåg namnet och platsen för alla dina filer. Filsystemet Håller koll på tomma utrymmen där nytt data kan lagras.

Filsystem Initialt var filsystem platta (flat), dvs alla filer lagrades i en katalog Så småningom slog det hierarkiska filsystemet igenom, dvs filer ligger i kataloger som kan ligga i kataloger etc. I unix skapas ett filsystem med en rot, detta filsystem kan ligga på många diskar, på olika datorer, över hela nätverk

Filsystem Typiskt för filsystem är att Filer ockuperar hela block En fil kan behöva flera block Blocken lagras inte nödvändigtvis konsekutivt på mediat En tabell (tex FAT) eller index (tex inode) håller reda på en fils alla delar De filsystem vi har idag bygger i mångt och mycket på att filer skall lagras på media där söktiden är hög (tex band eller hårddiskar).

Filsystem I traditionella filsystem läggs mycket fokus på hur filerna lagras Det finns filsystem som fokuserar mer på filernas innehåll och deras relationer, dessa filsystem kan närmast liknas vid databaser Moderna media, tex flashdiskar, som i mångt och mycket saknar söktid kommer att driva utvecklingen mot nya typer av filsystem

Typer av operativsystem Single-user operating system Förutsätter att en enda person använder datorn handdatorer och en del persondatorer DOS Multi-user operating system en dator kan användas av flera personer samtidigt IBMs OS/390 Network operating system/server operating system fleranvändarsystem där man dessutom kan dela på resurser som skrivare, data, program UNIX, LINUX, Solaris Dessa är både server och multi-user OS!

Typer av operativsystem Multitasking operating system kan hantera två eller flera processer samtidigt, de flesta OS är detta! Desktop operating system utvecklad för en enskild datoranvändare men har också nätverkshantering ofta två typer av OS Home och Professional där Home har mindre nätverkshanteringsverktyg Windows och MacOS

Fleranvändarsystem Operativsystemet ansvarar för att de olika användarna kan jobba med datorn samtidigt Måste hantera säkerhet mellan användarna internt på datorn Måste tex. hantera filrättigheter, vilka program som får köras av en viss användare etc.

Olika operativsystem DOS är det första OS som använts av många personer DOS (Disk Operating System) utvecklades 1982 av Microsoft och var kärnan i Windows 3.1, 95, 98 och ME Mac OS är det första kommersiella OS:et med grafisk användaryta Utvecklades tidigare (ca 1984) än Windows och har samma uppbyggnad med fönster, ikoner, menyer och muspekare Sedan 2000 MacOS X som är ett unix-system i grunden. Windows utvecklades från DOS och blev populärt ca 1992 80% av persondatorerna kör ett Windows OS (data från 2004)

Olika operativsystem UNIX/LINUX UNIX utvecklades redan 1969 medan Linux utvecklades 1991 LINUX är gratis och distribueras under en speciell licens General Public License (GPL). Alla får vara med och skriva på OS-koden Red Hat Linux, Caldera OpenLinux, Debian GNU/Linux PalmOS och Windows MobileOS är exempel på OS till handdatorer

Multitasking Multitasking är en metod som tillåter flera program (processer), att dela på gemensamma resurser som tex en CPU. Om vi bara har en CPU kan endast en process köras samtidigt vid varje given tidpunkt på processorn. Multitasking löser problemet genom att bestämma vilket program som ska få köra vid varje tillfälle, och när nästa program ska få chans att köras.

Multitasking Bytet mellan program som får köra på processorn kallas en context switch. När detta sker nog ofta ges illusionen av att programmen körs parallellt (samtidigt). Vid en context switch sparas programmets tillstånd undan (tex register) Ibland finns inbyggt stöd i processorn för detta Även på system med flera processorer används context switchar för att man ska kunna köra fler program än man har processorer.

Hur schemalägger man processer? Hushålla med olika resurser Att tänka på Minimera responstiden Maximera CPU effektiviteten Rättvisa mellan olika program

Interaktiva system Svarstid Användarna accepterar inte fördröjningar Förväntad svarstid Mycket subjektiv Kopiera till en annan maskin jmf. lokalt Maxtiden en process får köra innan man måsta byta måste hållas relativt kort

Flera program samtidigt Cooperative multitasking/time-sharing Tidiga operativsystem som tillät att flera program körde samtidigt bestod av grupper av program som frivilligt gav exekveringstid till varandra. Denna strategi stöddes tillslut av många operativsystem. Idag känt som cooperative multitasking och används i stort sett inte längre Användes bla av: Microsoft Windows innan Windows 95 och Windows NT MacOS innan MacOSX Förutsätter att varje applikation regelbundet ger tid till andra applikationer att exekvera. Ett enda program kan få allt att sluta fungera genom att inte låta de andra fortsätta

Flera program samtidigt Preemptive multitasking/time-sharing Timer avbryter processen som körs och ger kontrollen till operativsystemet Operativsystemet kan då avgöra vilket program som ska få exekvera härnäst Olika system kan användas för vilket program som ska köras. Tex kan olika program ges olika prioritet I ett sådant här system kan inte ett enskilt program blockera hela datorn. Vanligast idag

Batchsystem I ett batchsystem system ställer man sin applikation på kö för att köras, och kör en (eller ett fåtal) applikationer tills de har exekverat färdigt och meddelar sedan användaren vad resultatet blev av programkörningen. Fyller sedan på med nya applikationer när det blir ledigt Används på datorer där det är viktigt att hålla CPU:n arbetande (med att lösa problem) hela tiden, och där användaren inte måste interagera med programmet under körningen

TENTAÅNGEST??

Examination Momentet examineras med Laboration, inlämning 3/12 Tenta, 5/12, 9-15 i Hörsal B På samma skrivtid tenteras även GPT-delen, se till att ni får rätt tenta, dvs och datorsystem Omtenta, 10/1-2009, 9-15, ÖP 6 Uppsamling, 16/4-2009, 9-15, ÖP 6 KOM IHÅG ATT ANMÄLA ER TILL TENTORNA!!

Fjolårets ordinarie tenta Uppgift 1. Begrepp (6p) Förklara följande begrepp GPU Systembuss Benchmark Assembler-instrunktion ALU Pipelining Uppgift 2. CPU (2+4) Nämn fyra typer av operationer som det är vanligt att en processor kan utföra med en maskinistruktion (dvs ange fyra typer av maskininstruktioner) Nämn fyra faktorer i designen av en CPU som kan påverka en dators hastighet samt förklara hur just dessa fyra faktorer påverkar

Fjolårets ordinarie tenta Uppgift 4. Operativsystem (3+3) Förklara vad ett systemanrop är för något, samt ge exempel på en uppgift som brukar lösas med hjälp av dessa Många operativsystem för system med begränsade resurser som tex PDA:er har operativsystem som använder sig av cooperativ multitasking. Vilket problem kan detta medföra? Uppgift 6. Datorns historia (4) Vad skiljer von Neumann arkitekturen från tidigare datorers arkitektur? Vad hette den första svenska datorn?

Fjolårets ordinarie tenta Uppgift 5, Minne (1+3+2+2) I en funktion deklareras och initieras följande variabler int a=1; short int b=2; char c=4; I vilken del av minnet kommer variablerna att lagras? Hur kommer de att lagras (förklara antaganden)? Varför bygger man upp en minneshierarki? Vad innebär tids- och rumslokalitet och hur påverkar det prestanda för våra program?