Repetisjon - Modul 1

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

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

Introduksjon til kurset og dets innhold

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

Concurrency. Lars Vidar Magnusson. September 20, Lars Vidar Magnusson () Forelesning i Operativsystemer September 20, / 17

Oversikt. Introduksjon Kildekode Kompilering Hello world Hello world med argumenter. 1 C programmering. 2 Funksjoner. 3 Datatyper. 4 Pekere og arrays

Deadlocks og mer om concurrencymekanismer

Tråder og concurrency i Linux

Definisjon av prosess

Mer om C programmering og cuncurrency

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

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

Generelt om operativsystemer

P1 P2 P3 P1 P2 P3 P1 P2. OS gjør Contex Switch fra P1 til P2

Prosesstabeller (PCB - Prosess Control Block) Se på PD: kommandoene ps og top Bakgrunnsprosesser Opprettelse av prosesser:

Oppgave 1 - Linux kommandolinje (%)

Operativsystemer og grensesnitt

EKSAMEN. Operativsystemer. 1. Læreboken "A Practical Guide to Red Hat Linux" av Mark Sobell 2. Maks. tre A-4 ark med selvskrevne notater.

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

1,r H øgs kolen i Østfol d

Lynkurs i shellprogrammering under Linux

Oppgave 1 - Java og prosesser (20%)

Scheduling og prosesshåndtering

Dagens program. Operativsystemer Prosesser og systemkall i UNIX Hente prosessens nummer Starte prosesser Vente på prosesser Utføre programmer

Faglig kontakt under eksamen: Orestis Gkorgkas

Operativsystemer og nettverk

Generelt om operativsystemer

EKSAMEN. Operativsystemer. Kontroller at oppgaven er komplett før du begynner å besvare spørsmålene.

Filer og kataloger, prosesser og jobber

Brukerprogram OS hardware

EKSAMEN. Operativsystemer og nettverk

IN 147 Program og maskinvare

1. Introduksjon til operativsystemer

Prøve- EKSAMEN. Operativsystemer med Linux

Filer i Linux og Bourne-again shell

Løsningsforslag til eksamen 24. november 2015

Shellscripting I. Innhold

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

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

AlgDat 10. Forelesning 2. Gunnar Misund

Eksamensinformasjon. Prosesser. Prosesser. Eksamensoppgave. Operativsystemer (DATS/ITPE2500) Bokmål 06. juni 2017 kl

Nyttige Linux-kommandoer. Hvordan du kan jobbe mer effektivt Dag Langmyhr

Kort notat om parallellstyring IN147

Innhold. Introduksjon til parallelle datamaskiner. Ulike typer parallelle arkitekturer. Prinsipper for synkronisering av felles hukommelse

Høgskoleni Østfold. Ny/utsatt EKSAMEN

Læringsmål og pensum. v=nkiu9yen5nc

Prosedyrer. Lars Vidar Magnusson. October 26, Lars Vidar Magnusson () Forelesning i DAS October 26, / 19

TDT4110 Informasjonsteknologi, grunnkurs Uke 35 Introduksjon til programmering i Python

Kommersiell Unix Linux og frie Unix kloner

EKSAMEN Innføring i Linux

Filer i Linux og Bourne-again shell

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

Eksempler på ikke-blokkerende systemkall:

alternativer til felles hukommelse store parallelle datamaskiner Tema for denne forelesningen: in 147, våren 1999 parallelle datamaskiner 1 9

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

Sikkerhet: Virus Sikkerhet i operativsystemet Maskinstøtte for sikkerhet Trojanske hester Ormer. IN 147 Program og maskinvare.

$ls -l $grep -i Olsen adresseliste.txt less #!/bin/sh $echo `ls` $chmod 755. Praktisk Linux. Grunnleggende skall kommandoer. Irene Ludvigsen Husa

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

Tildeling av minne til prosesser

Dokumentasjon av Installasjon

Operativsystemer og nettverk Løsningsforslag til eksamen Oppgave 1. a) Linux-kommando: java Beregn & b) Shellprogram:

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

Eksamensinformasjon. Linux kommandolinje. Linux kommandolinje. Eksamensinformasjon. Fakultet: Teknologi, kunst og design. Tid: 3 t.

HØGSKOLEN I BERGEN Avdeling for ingeniørutdanning Data

Håndtering av filer og kataloger

EKSAMEN Innføring i Linux

HØGSKOLEN I SØR-TRØNDELAG

Dagens tema. Nyttige programmer Programmet make. Hvis én fil endres, hvilke filer må da kompileres på nytt?

Videregående shellprogrammering i Linux

STE6221 Sanntidssystemer LØSNINGSFORSLAG TIL EKSAMEN

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

Debugging. Tore Berg Hansen, TISIP

Betinget eksekvering og logiske tester i shell

EKSAMENSFORSIDE Skriftlig eksamen med tilsyn

Håndtering av filer og kataloger

Minnehåndtering. Lars Vidar Magnusson. October 4, Lars Vidar Magnusson () Forelesning i Operativsystemer October 4, / 20

DAT kandidatnummer: 142

Dagens tema. Nyttige programmer Programmet make. Flyt-tall Representasjon av flyt-tall. Standarden IEEE 754. Systemkall i Unix

TDT4258 Eksamen vår 2013

Programmering i C++ Løsningsforslag Eksamen høsten 2005

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

Del 1 En oversikt over C-programmering

Nybegynnerkurs i C. Øyvind Grønnesby. 14. oktober Introduksjon Typer Operatorer Kontrollstrukturer Pekere Makroer Lenker

Oving 2. Oppgave 1. #include <stdio.h> int main(int argc, char **argv) { char *navn = argv[1]; printf ("Navnet ditt er %s\n", navn); } Oppgave 2

Dagens tema: Parallellstyring

Minnehåndtering i operativsystemer

Introduksjon til programmering og programmeringsspråk

Tildeling av minne til prosesser

Operativsystemer To eksepmler

Introduksjon til programmering og programmeringsspråk. Henrik Lieng Høgskolen i Oslo og Akershus

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

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

Kapittel 1 En oversikt over C-språket

Høgskolen i Telemark Fakultet for allmennvitenskapelige fag

Repetisjon fra sist - 1: Plan for dagen. Repetisjon fra sist 2: Hva jeg glemte sist: Nyttige Kommandoer

Linux-programmer som bruker regulæruttrykk: grep, sed, awk

Hvorfor lære om maskinvare*?

Generelt om shell / skall

i=0 Repetisjon: arrayer Forelesning inf Java 4 Repetisjon: nesting av løkker Repetisjon: nesting av løkker 0*0 0*2 0*3 0*1 0*4

Forelesning inf Java 4

Transkript:

Repetisjon - Modul 1 Lars Vidar Magnusson October 7, 2011 Lars Vidar Magnusson () Forelesning i Operativsystemer 07.10.2011 October 7, 2011 1 / 18

Forelesning 1 - Maskinvare De fire hovedkomponentene i en datamaskin og deres funksjon Prosessor, minne, I/O moduler og systembuss Prosessorregistere To typer: bruker og kontroll Instruksjoner Assemblykode som forteller en prosessor skal operere Iterrupts (avbrudd) Hardwaremekanisme for å bryte normal operasjonsekvens Minne hierarki Cache, RAM, og virtuelt minne, strukturert som en pyramide Lars Vidar Magnusson () Forelesning i Operativsystemer 07.10.2011 October 7, 2011 1 / 18

Forelesning 1 - Operativsystem De tre nevnte fordelene ved bruk av et operativsystem Abstraksjon fra hardware. Utnyttelse av resurser. Enklere oppgradering av maskinvare. Historien til operativsystem Utviklet seg fra batch til time-sharing Viktige milepæler Prosessen Minnehåndtering Sikkerhet (innsyn og integritet) Resursstyring Det moderne operativsystemet Tråder, SMP, objektorientert... Lars Vidar Magnusson () Forelesning i Operativsystemer 07.10.2011 October 7, 2011 2 / 18

Forelesning 2 - UNIX Historien til UNIX Unix System III... SVR4 og 4.4BSD Strukturen til et UNIX system Maskinvare, Kernel, Systemkallgrensesnitt, UNIX kommandoer og applikasjoner Moderne UNIX systemer Modulisert og oppgradert Linux, SVR4, 4.4BSD og Solaris 10 Lars Vidar Magnusson () Forelesning i Operativsystemer 07.10.2011 October 7, 2011 3 / 18

Forelesning 2 - Linux Historien til Linux Linus Thorvalds, FSF og Richard Stallman Åpen kildekode med mange bidragsytere Linux kjernen (kernel) Monolithic med lastbare moduler (preemptive) GNU/Linux Linux står for kommunikasjon med maskinvaren. GNU kommuniserer med kjernen Lars Vidar Magnusson () Forelesning i Operativsystemer 07.10.2011 October 7, 2011 4 / 18

Forelesning 2 - Prosessen Prosessens oppbygning og funksjone ID, status, program counter, memory, I/O status... Gjør det mulig å kjøre flere prosesser (programmer) samtidig Struktureres i process control blocks Prosessens image Inneholder programmet, minnet (stack og heap) og control block Starte prosesser Ny batch, ny interaktiv bruker, spawned fra eksisterende Stoppe prosesser Normal avslutting, segmentation error, divide by zero... Lars Vidar Magnusson () Forelesning i Operativsystemer 07.10.2011 October 7, 2011 5 / 18

Forelesning 2 - Prosessmodeller Hva er en prosessmodell? I hvilke tilstander en prosess kan være Two-state modellen Not running og Running Five-state modellen New, Ready, Running, Blocked og Exit Suspended states Flytte låste prosesser til virtuelt minne. Utvide Ready og Blocked med Ready/Suspend og Blocked/Suspend Lars Vidar Magnusson () Forelesning i Operativsystemer 07.10.2011 October 7, 2011 6 / 18

Forelesning 2 - Kjøring av OS Kjøring av operativsystemet Kernelen ligger på utsiden/separat fra prosessene Brorparten av operativsystemet kjøre i prosessene Operativsystemet består bare av prosesser Lars Vidar Magnusson () Forelesning i Operativsystemer 07.10.2011 October 7, 2011 7 / 18

Forelesning 2 - Prosesshåndtering i SVR4 Kompleks prosessmodell Created, Ready to run in Memory, Ready to run Swapped, Asleep in Memory, Sleep Swapped, Kernel running, User running, Preempted and Zombie Hvordan en prosess startes 1 Alloker plass 2 Lag identifier 3 Kopier image fra forelder 4 Øk tellere 5 Sett til Ready 6 Return 0 og ny PID Lars Vidar Magnusson () Forelesning i Operativsystemer 07.10.2011 October 7, 2011 8 / 18

Forelesning 3 - UNIX Shells og Kommandolinje grensesnitt Beskrivelse Command-line interpreter (kommandolinjetolker) Bourne, Korn, C, Bash... Definisjon Et kommandonavn og et valgfritt antall elementer Tolking (parsing) av kommandolinjen Les inn kommandonavn og argumenter, Sjekk om programmet eksisterer i PATH, Kjør kommando eller meld i fra om feil. Kjøring av kommandolinjen Lag ny prosess, Legg alle argumenter til på programstack, Start kommando Kjøre en kommando i bakgrunnen En i forgrunn, mange i bakgrunnen (&) Pathname expansion Wildcards som erstattes med filer (? * []) Lars Vidar Magnusson () Forelesning i Operativsystemer 07.10.2011 October 7, 2011 9 / 18

Forelesning 3 - Input og Output Standard Input og Output Standard er keyboard og terminal Redirection Standard Input og Output kan flyttes (><) Appending/Legge til Output Legge til i stedet for å skrive over med >> Pipes Output fra et program til Input til et annet Kan brukes som et filter Lars Vidar Magnusson () Forelesning i Operativsystemer 07.10.2011 October 7, 2011 10 / 18

Forelesning 3 - Bash builtins og GNU/Linux utitilities Bash builtins Innebygde verktøy i Bash Vises med help og help KOMMANDO cd, echo, kill... GNU/Linux har en rekke verktøy Filhåndtering, Søking/Sortering... cp, mv, cat, man, ls, more, grep... Lars Vidar Magnusson () Forelesning i Operativsystemer 07.10.2011 October 7, 2011 11 / 18

Forelesning 4 - Bash-skripting Beskrivelse av et Bash-skript En samling kommandoer i en og samme fil Hvordan lage et Bash-skript? Starte filen med #!/bin/bash og endre rettigheter med chmod Avansert redirecting Standard Error redirectes med 2> Oppstartskript /etc/profile,.bash profile,.profile... Separere kommandoer NEWLINE \; & Command line expansion (kommandolinje utvidelser) Brace, Tilde, Parameter, Variable, Command substitution, Arithmetic, Word splitting og Pathname Lars Vidar Magnusson () Forelesning i Operativsystemer 07.10.2011 October 7, 2011 12 / 18

Forelesning 4 - Parametere, Variabler og Kontrollstrukturer Flere måter å lage og bruke variable i Bash VAR=value, $VAR, declare, unset... Kommandlinje variable $0, $1, $2,... $N Antall argumenter i $# Andre viktige parametere og variabler PID i $$, Exit status i $?, Hjemmekatalog i $HOME Kontrollstrukturer if TEST then COMMANDS fi for LOOPINDEX in ARGUMENTLIST do COMMANDS done while TEST do COMMANDS done until TEST do COMMANDS done case TEST in PATTERN1) COMMANDS1 ;; PATTERN2) COMMANDS2 ;; esac... Lars Vidar Magnusson () Forelesning i Operativsystemer 07.10.2011 October 7, 2011 13 / 18

Forelesning 5 - C programmering C er et kompilert språk Kildekode Header- og Source-filer som knyttes sammen med #include Kompilering Preprocessing, Compiling, Assembling og Linking Funksjoner Består av header og body Innebygde datatyper int, float, char, long,... Egendefinerte datatyper Enumerations, Unions og Structures Pekere, Arrays og teskstrenger Representert som adresser til begynnelsen av elementet Kontrollstrukturer if, switch, for, while, do-while... Lars Vidar Magnusson () Forelesning i Operativsystemer 07.10.2011 October 7, 2011 14 / 18

Forelesning 6 - Tråder Beskrivelse av en tråd Støtte for flere parallelle eksekveringer i samme prosess Deler samme minneområde Oppdaterte prosess-modeller og -design Deler minne, separate stacks og programteller Fordeler med tråder Mindre tid å starte, mindre tid å bytte, trenger ikke involvere kernel User-level tråder Trådene blir kontrollert helt og holdent i prosessene Kernel-level tråder Gjør det mulig å fortsette kjøring av andre tråder i samme prosess selv om en skulle bli låst. Solaris tråder Bruker en kombinasjon Linux tråder Linux skiller ikke mellom prosesser og tråder, men kan plassere flere prosesser i samme gruppe Lars Vidar Magnusson () Forelesning i Operativsystemer 07.10.2011 October 7, 2011 15 / 18

Forelesning 7 og 8 - Systemkall Arkitekturen til et standard UNIX system Systemkallene kan struktureres i kategorier Filsystem, Prosess, IPC, Nettverk, Scheduling,... Dokumentasjon Den mest detaljerte dokumentasjonen finnes i manualsidene (man) Filsystem open, creat, close, write, read... Prosesskontroll fork, wait, waitpid, exit, kill, execve Interprocess communication (IPC) msgget, msgctl, msgsnd, msgrcv, shmget, shmat Pthreads (-lpthreads) pthread create, pthread join, pthread exit Lars Vidar Magnusson () Forelesning i Operativsystemer 07.10.2011 October 7, 2011 16 / 18

Forelesning 9 - Concurrency/Samtidighet Concurrency begrepet Kjør flere programmer samtidig, Fordele et program utover flere prosessorer eller maskiner Essensielle prinsipper Critical section, deadlock/vranglås, mutual exclusion, race conditions Vanskeligheter med concurrency Deling av globale resurser. Vanskelig å finne feil. Vanskelig å fordele jevnt Økte arbeidsoppgaver for OS Kjøretiden må være uavhengig av andre samtidige programmer/prosesser Prosesser i konkurranse Deadlock, Starvation Prosesser med delte resurser Deadlock, Starvation og Coherency Prosesser som kommuniserer Ingen delte resurser borsett fra kommunikasjonskanalen, så ingen mutual exlusion nødvendig Lars Vidar Magnusson () Forelesning i Operativsystemer 07.10.2011 October 7, 2011 17 / 18

Forelesning (9)10 - Concurrency mekanismer Krav til mutual exclusion Må opprettholde ekslusiviteten, at ingen antagelse blir gjort i forhold til ytelse,... Interrupt disabling Sørger for mutual exclusion Maskinkode instruksjon Kan brukes til mutual exclusion Det finnes mange typer mekanismer Semaphore, Binary semaphore, Mailbox, Spinlock... Lars Vidar Magnusson () Forelesning i Operativsystemer 07.10.2011 October 7, 2011 18 / 18

Deadlock og Minnehåndtering Disse ble temaene ble akkurat presentert. Lars Vidar Magnusson () Forelesning i Operativsystemer 07.10.2011 October 7, 2011 19 / 18