Operativsystemer To eksepmler



Like dokumenter
Oversikt over forelesningen. Operativsystemer To eksepmler. Windows 2000 historie

Funksjonalitet og oppbygning av et OS (og litt mer om Linux)

Kurset består av to relativt uavhengige deler. Foreleser: Hårek Haugerud, rom PS431

Generelt om operativsystemer

Oversikt. Beskrivelse Bash. 1 UNIX shell. 2 Kommandolinje som brukergrensesnitt. 3 Input og output. 4 Bash builtins. 5 Linux utilities.

Filterprogrammer og redirigering av I/O

Filterprogrammer og redirigering av I/O

Hvorfor operativsystemer? Introduksjon til operativsystemer. Samtidighet. Praktiske hensyn. Kjell Åge Bringsrud INF103

Generelt om operativsystemer

Definisjon av prosess

oppgavesett 4 INF1060 H15 Øystein Dale Hans Petter Taugbøl Kragset September 22, 2015 Institutt for informatikk, UiO

Introduksjon til kurset og dets innhold

Oversikt. Historie Struktur Moderne UNIX systemer Moderne UNIX kernel struktur 1 UNIX. 2 Linux. 3 Process. 4 Process models

Operativsystemet Internt

Operativsystemer og grensesnitt

Læringsmål og pensum. Oversikt. Systemprogramvare Operativsystemer Drivere og hjelpeprogrammer. To hovedtyper programvare

Operativsystemer og nettverk

Tildeling av minne til prosesser

Lars Vidar Magnusson. October 11, Lars Vidar Magnusson () Forelesning i Operativsystemer October 11, / 28

Innføring i Linux. Operativsystemer

Scheduling og prosesshåndtering

Tildeling av minne til prosesser

Kommersiell Unix Linux og frie Unix kloner

Operativsystemer: Litt IT-historie

Operativsystemer: Litt IT- og Linux-historie

Filer i Linux og Bourne-again shell

Introduksjon til operativsystemer

D: Ingen trykte eller håndskrevne hjelpemiddel tillatt. Bestemt, enkel kalkulator tillatt.

Filer i Linux og Bourne-again shell

Oppgave 2: Gå til roten (/) av systemet. Finn minst tre forskjellige måter å gå tilbake til hjemmekatalogen din på.

TDT4258 Eksamen vår 2013

Operativsystemer: Litt IT- og Linux-historie

Singletasking OS. Device minne Skjerm minne. Brukerprogram. Brukerdata/heap. Stack. Basis for flerprosess-systemer.

oppgavesett 4 INF1060 H16 Hans Petter Taugbøl Kragset Øystein Dale Christian Resell 27. september 2016 Institutt for informatikk, UiO

6105 Windows Server og datanett

ZFS. Solaris og ZFS som ny hjemmekatalogløsning for ansatte og studenter ved UiB

"How I hate this damned machine, I wish that I could sell it, It never does what I want it to, But only what I tell it".

1. Introduksjon til operativsystemer

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring

Faglig kontakt under eksamen: Orestis Gkorgkas

CORBA Component Model (CCM)

Nadine Pedersen GRIT Datamaskinen- kjenn din Mac

En prosess kan sees på som et stykke arbeid som skal utføres på datamaskinen. Ofte vil det være flere prosesser/tråder på datamaskinen samtidig.

Filer og kataloger, prosesser og jobber

IT1101 Informatikk basisfag, dobbeltime 18/9. Kommunikasjon med perifere enheter. Kontrollere. Kontrollere (2) I/O-instruksjoner

D: Ingen trykte eller håndskrevne hjelpemiddel tillatt. Bestemt, enkel kalkulator tillatt.

Introduksjon til dataanlegget ved Institutt for informatikk. Marc Bezem Institutt for informatikk Universitetet i Bergen

! Ytelsen til I/O- systemer avhenger av flere faktorer: ! De to viktigste parametrene for ytelse til I/O er:

Into da BIOS<3. Bak Skallet

Innhold. Om denne boka 1. Kapittel 1 Operativsystemer og mellomvare 5

Tildeling av minne til prosesser

Generelt om permanent lagring og filsystemer

Håndtering av filer og kataloger

Brukerveiledning For Installasjon Av PCKasse. v1.01

Eksamen DAT 103. Oppgave 2. Kandidatnr.: 145 1) B 2) B 3) A 4) A 5) D 6) C 7) B 8) A 9) A 10) D

Skisse til løsning for eksamensoppgave i TDT4186 Operativsystemer

Læringsmål og pensum. v=nkiu9yen5nc

Kjenn din PC (Windows 7)

iseries Innføring i Client Access Express

INF2270. Input / Output (I/O)

Innhold. 1 Operativsystemet Linux. Operativsystemet Linux. 1.1 Hva er Linux?

Programmeringsspråket C Del 3

Programmeringsspråket C Del 3

TDT4110 Informasjonsteknologi grunnkurs: Kapittel 1 Introduksjon til Programmering og Python. Professor Alf Inge Wang

Samtidige prosesser. Prosessor modus. Hvordan kan OS effektivt kontrollere brukerprosesser? Hvordan kan OS. kontrollere brukerprosesser?

Kjenn din PC (Windows 8.1)

Visma Contracting Oppgradering til versjon 5.20

1. Intro om PowerShell

Kjenn din PC (Windows Vista)

AlgDat 12. Forelesning 2. Gunnar Misund

Eksempler på ikke-blokkerende systemkall:

Tråder og concurrency i Linux

TDT4110 Informasjonsteknologi, grunnkurs Uke 35 Introduksjon til programmering i Python

Anbefalt litteratur: Pensum-bøker: Forelesere: Velkommen til INF Introduksjon til operativsystemer og datakommunikasjon

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring

Ny på nett. Operativsystemer

Kjenn din PC (Windows7)

Dokumentasjon av Git. Vedlegg F

Oracle10g og Oracle9i Grid og RAC, hva er forskjellen?

INF2270. Input / Output (I/O)

Oppsummering av digitalteknikkdelen

Velkommen til INF Introduksjon til operativsystemer og datakommunikasjon

Forelesning ISA-nivået Kap 5.1

Skriverkontrollprogrammet MarkVision

SOLICARD ARX. Adgangssystemet som gir deg ubegrenset frihet. An ASSA ABLOY Group company

Kjenn din PC (Windows7, Vista)

Filsystemet fra innsiden

AlgDat 10. Forelesning 2. Gunnar Misund

Programmeringsspråket C Del 3

Lumia med Windows Phone

1. Hent NotaPlan Online Backup på 2. Trykk på Download i menyen og på Download i linjen med Notaplan Backup

Kjenn din PC (Windows vista)

faks: Avdeling for Ingeniørutdanning. Cart Aælersgate Oslo - tlf 05. iu@hio.no

TDT ITGK - Hardware. Kapittel 9: Følge Instruksjoner - Prinsipper for Datamaskinens Virkemåte. Terje Rydland - IDI/NTNU

Visma Contracting og tilleggsprodukter på en terminalserver. Det anbefales å sette opp egen terminalserver, som kun brukes som terminalserver.

Kjenn din PC (Windows 10)

Programmeringsspråket C Del 3

1. Systemsikkerhet Innledning. Innhold

Brukermanual for Quizbuilder

Forord. Brukerveiledning

Transkript:

Operativsystemer To eksepmler Kjell Åge Bringsrud (med foiler fra Olav Lysne) INF 103 OS tre eksempler 1 Oversikt over forelesningen Dere har nå en oversikt over de forskjellige problemstillingene i et operativsystem. Vi skal nå presentere hvordan flere av disse problemstillingene er løst i to svært mye brukte operativsystemer. Windows 2000 UniX/Linux Både designmålene og historien til disse to har vært svært forskjellige. Begge deler har hatt innvirkning på deres nåværende utforming. OS tre eksempler 2 1

Operativsystemer tre eksempler i boken Windows 2000 Ment å støtte både enkeltbrukere og store tjenerapplikasjoner X86 og Alpha-systemer Windows 2000 og dens forgjengere er SVÆRT utbredt UNIX/Linux Mest brukt som servere. En definert standard, og mange implementasjoner (Solaris, IBM AIX, HP-UX ) Flere kloner (Linux er en av dem). OS/390 (Ikke pensum) Går på IBM stormaskiner Et av de viktigste operativsystemene når det gjelder støtte av store applikasjoner. Først utviklet i den tiden da datasystemer var batch - orienterte. OS tre eksempler 3 Windows 2000 historie 1981: MS-DOS Enbruker, ingen skedulering Nesten ikke memory management 16-bit og korte filnavn 1985-1995: Windows (v. 1.0 3.1) Grafisk brukergrensesnitt over MS-DOS. Begrenset av MS-dos. Multitasking begrenset av ikke preemptive skedulering Ingen memoryadressering over 1 MB. 1993: Windows NT. Nytt fra bunnen av (ikke lenger MS-dos) ment for servermarkedet i tillegg til avanserte personlige brukere Preemptiv skedulering, multitasking, 32bit registre, stort adresserom. Windows 3.1 grensesnitt (senere Windows 95 grensesnitt) OS tre eksempler 4 2

Windows 2000 historie forts. 1995: Windows 95. Helt nytt fra bunnen av (ikke lenger MS-dos) Preemptiv skedulering, multitasking, 32bit registre, stort adresserom. Ment for personlige arbeidsplassmaskiner 1998: Windows 98. Mindre forbedringer fra Windows 95: Brukergrensesnitt, multimedia, plug-and-play. 2000: Windows 2000 Var ment å erstatte både Windows 9x, og Windows NT. Best of both systems stabilitet og brukergrensesnitt. Fire varianter en for personlige arbeidsplasser, og tre server varianter med varierende egenskaper. OS tre eksempler 5 Designmål for Windows 2000 Utvidbarhet Objektbasert modulært design enklere å installere modifikasjoner Enkel porting til andre plattformer Skrevet i C og C++ Hardware spesifikk assembly bare i et lite hardwareabstraksjonslag. Pålitelighet Cluster failover Sikkerhetsforanstaltninger i kjernen og i filsystemet Kompatibilitet Programmeringsgrensesnitt (API) som inneholder alle tjenestene til tidligere Windows versjoner Mulighet for å addere andre API-moduler. Skalerbarhet i ytelse Mulighet for symmetrisk multiprosessering. OS tre eksempler 6 3

Windows 2000 tekniske detaljer En-bruker system med preemptive multitasking. Støtte for trådprosessering og interprosesskommunikasjon Kan kjøre de fleste tidligere programmer, og støtter preemptive skedulering av 16 bit programmer. Utnytter de nyeste egenskapene til hardware, innen f. eks. multimedia og plug-and play. Nytt filsystem som bl. a tillater dynamisk diskpartisjonering. OS tre eksempler 7 Windows 2000 brukergrensesnitt Svært likt Windows 98 og Windows 95, som er velkjent for de fleste. Likhetene med grensesnittet til Apple Macintosh er også slående Tilleggene og endringene gjelder i hovedsak funksjonene for systemadministrasjon. Dette er den egenskapen ved WINDOWS 2000 som skiller det skarpest fra de andre operativsystemene vi skal ta opp Kanskje også dens sterkeste konkurransefortrinn? OS tre eksempler 8 4

Intern-organisasjon av W2000 Hardwareabstraksjonslaget inneholder de delene av systemet som er hardwareavhengige. Videre må vindussystemet ha kontakt med hardware (skjermen), og drivere og nettverk må ha kontakt med f. eks. innsatte kort. OS tre eksempler 9 Intern-organisasjon av W2000 Kjernen inneholder avbruddshåndtering, synkronisering, trådskedulering, og interprosesskommunikasjon. Den kan ikke swappes, er ikke trådet, og er nonpreemptible. (forslag på et godt norsk ord mottas!) OS tre eksempler 10 5

Intern-organisasjon av W2000 I/O manager, prosessmanager, virtual memory manager og vindussystemet gjør akkurat det dere tror de gjør! OS tre eksempler 11 Intern-organisasjon av W2000 Filer, mapper, prosesser, tråder, I/O porter, signaler osv. - alt er håndtert som objekter (selv om de strengt tatt ikke er implementert som det i INF 101 forstand). Object manager gir et standardisert grensesnitt til slike objekter, og sjekker blant annet om objektforespørslene er tillatte. OS tre eksempler 12 6

Intern-organisasjon av W2000 Local Procedure Call (LPC) fasiliteten er en sentral for kall på forskjellige tjenester, og for interprosesskommunikasjon OS tre eksempler 13 Intern-organisasjon av W2000 Security reference monitor har ansvar for tilgangskontroll og monitorering av aksess til objekter som filer, I/Oenheter, prosesser og minne. OS tre eksempler 14 7

Intern-organisasjon av W2000 Environmental subsystem inneholder forskjellige grensesnitt som emulerer andre operativsystemer Standard er Win32, Win16, POSIX og MS-DOS. Andre tilgjengelig fra 3. parts leverandører. OS tre eksempler 15 Intern-organisasjon av W2000 System support prosesser inkluderer prosesser for pålogging og brukersesjon Server prosesser inkluderer prosesser for logging av eventer, samt for eksempel SQLserver, X-server etc. OS tre eksempler 16 8

UNIX/Linux Flerbruker/multitasking Mange versjoner av UNIX, men de fleste er såpass like at programmer bare trenger rekompilering for å portes Integrert nettverksstøtte og støtte for distribuert prosessering. Det er få forskjeller mellom UNIX og Linux. Vi vil behandle dem som ekvivalente. Forskjellene ligger hovedsakelig i implementasjonsdetaljer. OS tre eksempler 17 UNIX historie Først utviklet av Bell Labs i 1969-70 av En enkelt programmerer Ken Thompson. Basert på et tidligere større prosjekt Multics Kjørte på en liten maskin - ment for personlig interaktiv databehandling. Programmeringsspråket C utviklet i 71-72, og en ny versjon av UNIX programmert i C dukket opp. Flerbruker Multitasking/timesharing Dokumentprosessering OS tre eksempler 18 9

UNIX historie forts. 1974-78 spredte UNIX på PDP-11 maskinger fra Digital seg til forskningsinstitusjoner jorden rundt. BSD (Berkeley Software Distribution) lager en ny UNIX distribusjon. Basert på C og derfor lett å porte. Basis for suksessen til SUN, Hewlett Packard. Virtuelt minne TCP/IP Lange filnavn etc. OS tre eksempler 19 UNIX historie forts. 1991 Linus Torvalds har første versjon av Linux-kjernen ferdig. Basert på X86 prosessorer Legges gratis ut på nettet Trekker raskt til seg svært mange programmerere tester, de-bugger og som utfyller Linux med nye fasiliteter og drivere. Er nå basis for en voksende industri som tilbyr installasjonsprogrammer, brukergrensesnitt, teknisk støtte etc. OS tre eksempler 20 10

UNIX idag Flere varianter: Linux, Solaris (Sun), AIX (IBM), Mac OSX, To standarder UNIX - Open Systems Group. De fleste (F. eks AIX og Solaris) støtter denne. POSIX (Portable Operating System-IX) IEEE, et mindre sett av kommandoer og operativsystemtjenester. Bl. a støttet av et environmental subsystem i Windows 2000. Hovedsakelig benyttet i servere. Men fremdeles førstevalg som arbeidsplassmaskin og utviklingsplattform for enkelte. OS tre eksempler 21 UNIX Målseting (fra 70-tallet) Interaktivt kraftig og enkelt brukergrensesnitt Kraftige programmeringsvertøy, kompilatorer, og tekstbehandling Enkle verktøy for å utføre enkle oppgaver. Enkel måte å sette disse verktøyene sammen på (piping). Liten og enkel kjerne, sammen med et separat, utskiftbart brukergrensesnitt (shell) Logisk filsystem, hvor filene er identifisert med navn, og ikke fysisk beliggenhet på disken. Flerbruker, multitasking, støtte for gruppesamarbeid (e-post, gruppebegrepet i filtilgang) Enkel portabilitet programmert i C som er et språk på relativt høyt abstraksjonsnivå. OS tre eksempler 22 11

Viktige UNIX-karakteristika i dag Preemptiv multitasking Ett eller flere shell gir fleksibelt brukergrensesnitt, programmeringsverktøy som shell-scripts Støtte for interaktiv oppretting og kontroll av prosesser, dispatch-prioriteter etc. Trestrukturert filsystem med støtte for nettverksaksesser av filer. Virtuelt minne, og ressursdeling. OS tre eksempler 23 UNIX brukergrensesnitt Starter med login En maskin som ikke er i bruk er i en modus hvor den kan ta imot innlogginger. Hver enkelt bruker har sitt eget login script som kjører når vedkommende logger inn. Dette scriptet setter opp omgivelsene slik den brukeren har spesifisert. Shell: linjeorienterte kommandotolkere Flere varianter UNIX: Bourne shell, C shell, Korn shell... Linux: bash, tosh, pdksh Disse har alle en felles kjerne av operatorer, men alle har noe funksjonalitet som er unik for hver enkelt. Kan bytte mellom shell på kommandolinjen. OS tre eksempler 24 12

UNIX brukergrensesnitt-strømmer Et basalt begrep i UNIX grensesnitt er byte-strøm Filer, input fra tastatur, nettverkstraffikk etc. alt sees som strømmer. Brukergrensesnittet har svært fleksible verktøy for å manipulere strømmer Piping, redirection (omdirigering) Tre predefinerte strømmer er stdin (som regel tastatur) stdout (som regel terminalen) stderr (ofte, men ikke alltid terminalen) OS tre eksempler 25 Piping Output fra en kommando kan benyttes som input til en annen: history kommandoen gir deg historien over de siste shell kommandoer du har gitt grep print gir deg bare de linjene i en strøm som inneholder ordet print. history grep print gir deg alle printkommandoene du har gitt siden sesjonen startet. OS tre eksempler 26 13

Pipe Hva gjør følgende kommando? ls -l grep rwxrwxrwx grep oblig1.c OS tre eksempler 27 Omdirigering OS tre eksempler 28 14

Omdirigering av strømmer Strømmer kan omdirigeres til og fra stdin og stdout (og stderr) på kommandolinjen. who skriver til stdout hvem som er logget inn på maskinen. who > minfil gir deg en fil ved navn minfil som inneholder output fra kommandoen who. cat minfil skriver ut innholdet på filen minfil. cat minfil>dinfil kopierer filen minfil over i dinfil. Omdirigering av input til stdin gjøres oftest ved å utelate et filnavn i kommandolinjen cat>dinfil leser fra stdin og skriver det du taster ut på fil. (Bør avsluttes med ctrl-d). OS tre eksempler 29 UNIX - Internt design OS tre eksempler 30 15

UNIX kjernen. Minnehåndtering virtuelt minne, sidetabeller, minnebeskyttelse Prosesshåndtering skedulering/dispatching, oppretting og fjerning av prosesser, interprosess kommunikasjon etc. Filhåndtering Lagring og henting, filsystem, filbeskyttelse, tilgang til fjerne filsystemer (muliggjør diskløse areidsstasjoner) I/O håndtering Kommunikasjon og nettverkshåndtering (støtte for distribuert prosessering RPC ) OS tre eksempler 31 UNIX-internt design Liten kjerne. Brukergrensesnitt (Xwindows, shell, e-post etc.) er ikke en del av kjernen, men tilleggsprogrammer. Dette gir en voldsom fleksibilitet i oppbyggingen av et UNIX system. Et shell kan lett utvides og berikes med nye fasiliteter laget av brukeren. Det er lett å designe egne fasiliteter og brukergrensesnitt. Systemkallene til UNIX-variantene er forholdsvis like. POSIX spesifikasjonen definerer et standard-bibliotek. OS tre eksempler 32 16

UNIX-prosesser Prosesser er den basale arbeidsenheten i UNIX En prosess sitt minneområde er delt i et tekstsegment av fast størrelse (inneholder programkode) en stack og et datasegment (som begge inneholder programdata) OS tre eksempler 33 UNIX prosesser En del av prosessene utfører systemoppgaver disse kalles daemons Vedlikehold av printerkø, e-post daemon, netverks-daemon, batch-jobb kontroll (cron) Noen av systemprosessene startes opp når systemet bootes. Alle andre prosesser må startes ved å bruke et fork kall. Andre utfører brukeroppgaver En prosess for hvert shell fork(); exec(); wait() sykel OS tre eksempler 34 17

Todelt prosesskontrollblokk Prosess kontroll-blokken er todelt En enkelt global prosesstabell som holder oversikt over lokasjon (memory/disk) til hver prosess, samt dens status. Denne tabellen blir aldri swappet. En brukertabell for hver prosess som inneholder tilstandsinformasjon (prosessdata, programteller, åpne filer etc.) Dette tillater deling av plass til programkode i minnet Entry i prosesstabellen for hver prosess peker på samme kodedel av minnet og effektiv swapping Når en prosess swappes ut er det bare informasjonen i prosesstabellen som forblir i minnet. OS tre eksempler 35 UNIX-prosesser Høy-nivå skedulering Generering av prosesser skjer automatisk Skedulering er bare nødvendig dersom prosesstabellen blir sprengt, eller det ikke finnes ledige minneressurser. Lav-nivå skedulering (dispatching) Kan skje på prosessnivå (Linux) eller på trådnivå (SUN-solaris) OS tre eksempler 36 18

UNIX/Linux Dispatching Vanligvis dispatching ved dynamisk prioritet LINUX har tre typer dispatching FIFO Kaster ut (preempter) andre prosesser, og kjører vanligis til de selv er ferdige (kan dog kastes ut av andre FIFO prosesser med høyere prioritet). Reservert for (få) sanntidsprosesser og prosesser av ekstrem viktighet. Round Robin er ment for prosesser med krav over gjennomsnittet (vanlige sanntidsprosesser) Other resten av brukerprosessene. Det finnes dessuten en systemfuksjonalitet (nice) som tillater prosesser og brukere å redusere prioriteten til en prosess innenfor sin dispatchtype. OS tre eksempler 37 Linux dispatching forts. Innenfor Round-robin og other gruppene blir dispatching kontrollert av en timer som gir et avbrudd hvert 10. millisekund. Dette avbruddet dekrementerer en teller i den kjørende prosessen. Telleren settes lik prosessens prioritetsnivå når den får tilgang til prosessoren. Når telleren har nådd 0 blir prosessen kastet ut (preempted), og vi får en reskedulering. OS tre eksempler 38 19

Linux dispatching forts. For hver reskedulering hvor en prosess ikke får tilgang til prosessoren oppdateres dens prioritetsnivå: teller = (forrige tellerverdi)/2 + prioritet. For en prosess med prioritet 50 gir det følgende sekvens av tellersettinger gitt at den ikke får tilgang til prosessoren etter 8 skeduleringer: 50 75 87 93 96 98 99 99 For en prosess med prioritet N konvergerer denne rekken mot 2N. Ved reskedulering velges den prosessen som har høyest prioritet. Dette er velegnet for interaktiv bruk en prosess som har måttet vente lenge får høyere prioritet. OS tre eksempler 39 UNIX- filsystem Hierarkisk struktur velkjent for de fleste Ordinære filer pluss fem typer av spesialfiler. Directory filer inneholder informasjon for mapper Symbolske linker pekere til andre steder i filstrukturen Block devices og character devices drivere som gir tilgang til I/O komponenter. Named pipes brukes til interprosess kommunikasjon. OS tre eksempler 40 20

UNIX- filsystem OS tre eksempler 41 UNIX filsystem forts. /home inneholder brukerområdene et subtre for hver bruker /bin inneholder programmer for de mest brukte kommandoer /etc inneholder administrative filer, startup filer og systemfiler. /usr inneholder forskjellige biblioteker, bl. annet programmer for kommandoer som ikke brukes så ofte. /dev inneholder filene som representerer devicedrivere. /tmp inneholder midlertidige filer for forskjellige programmer. OS tre eksempler 42 21

Nettverkstjenester. Datakommunikasjonstjenester har lenge vært en integrert del av de fleste UNIXomgivelser. De fleste, inkludert Solaris og Linux implementerer nettverkstjenester ved hjelp av et Socket grensesnitt. TCP/IP ble opprinnelig designet for UNIX. OS tre eksempler 43 Oppsummering Vi har i noen detalj gått igjennom de to operativsystemfamiliene som er mest vanlige på PC er og arbeidsstasjoner i dag. Det finnes en lang rekke av andre typer OS er f. eks. for mobiltelefoner, set-top bokser, spillmaskiner, etc. Disse tar vi ikke opp her. Forhåpentligvis har du nå en oversikt over de problemer og designvalg som inngår i byggingen av et operativsystem, samt en ide om hvilke valg som er gjort i henholdsvis Windows og UNIX-verden. OS tre eksempler 44 22