Almindelige ("hårde") links (i filsystemer med i-noder) opg.txt jens: pia: ln /home/pia/opg.txt /home/jens/opg.txt hård link: ny post får i-node-nummer.

Slides:



Advertisements
Lignende præsentationer
Trehøje-Pigerne Side 1 Vejledning til brug af hjemmesiden Det er slet ikke så vanskeligt – så brug hjemmesiden flittigt… Det er.
Advertisements

Kort om JavaScript Afvikles i browser på klienten Sendes fra server (php, asp, aspx, htm) eller startes i klient som htm/html fil. Skabelon: –”main” -
CoDriver Afslut 1 Tastaturet Her kan du få lidt at vide om tastaturet og tasternes funktion. Klik på knapperne nederst til venstre for at bladre frem og.
TEST 2 modul 1 20 spørgsmål. Du skal klikke med musen på det rigtige svar, så kommer du automatisk til næste spørgsmål Klik for start.
Velkommen til Softwarekonstruktion
Vejledning i blog-værktøjet WordPress Opdateret august 2009.
Kan en Internet tilkoblet bruger sende en til andre Internet tilkoblede brugere uafhængig af hvilket operativsystem modtageren har? •Ja •Nej.
Vejledning i blog-værktøjet WordPress Opdateret oktober 2012.
Vejledning i blog-værktøjet WordPress Opdateret februar 2009.
Hvordan bruger jeg First Class konferencerne ?
Symbolsk maskinsprog.
Datastrukturer Simple-type structs
Array vs. ArrayList. Arrays Et array er en struktureret metode til at gemme flere værdier af den samme datatype. Data’en i et array ligger op ad hinanden.
Flerbrugermaskine Fælles maskine Root: webserver Peter: uploader filer Pia: programudvikling 1 langvarig proces, evt. med børneprocesser skiftende behov.
Første generation (maskiner/operativsystemer) 45-55: radiorør Kun maskinsprog programmering = skrivning af nullerog ettaller Intet operativsystem programmør.
DS-kursusgang nr. 4 IPC generelt IPC eksempel: beskedkøer IPC tidsforbrug: kontekstskift, skedulering C: abstraktion, funktionsbiblioteker.
Grundlæggende programmering Efterår 2001
Hvordan man skriver koden.
01 – Java platform for starters. 2 NOEA2009Java-kursus – Java Platform Introduktion til Java Baggrund Hvad er Java? Faciliteter i Java.
Adresserum Adresserum: Det interval af adresser, der kan arbejdes med i den samme proces (fra 0 til største adresse) Lippiatt++: adresser fylder 8 bit.
GP5, Martin Lillholm 1 Grundlæggende Programmering (GP) Efterår 2005 Forelæsning 5 Slides ligger på nettet. Du er velkommen til at printe dem nu. Vi begynder.
Operativsystemer [3]: Synkronisering og baglåse Datalogi 1F: Forår 2003 Jørgen Sværke Hansen
FEN IntroJava AAU1 Opsamling: afvikling af Java-programmer Input fra keyboard og fil Fra en prompt Fra BlueJ Fra NetBeans.
FEN Rekursion og induktion1 Induktion og (især) rekursion Mange begreber defineres ud fra en basis og så en gentagen anvendelse af et antal regler.
Delphi og C++ Builder C++ Referencer og pointere.
Datastrukturer og Collections Rasmus D. Lehrmann DM
1 Sortering I elementære metoder. 2 Plan Terminologi Elementære metoder til sortering -sortering ved udvælgelse -sortering ved indsættelse -Shellsort.
Buttom-up parsning: Hvor er vi Mellem- kode Kald til Runtimesys. Mellemk.- optimering Kode- generering Kode- optimering Leksikalsk- analyse Syntax- analyse.
Delphi og C++ Builder C++ Builder. C++ Historie Sproget blev designet for AT&T af danskeren Bjarne Stoustrup En objektorienteret videreudvikling.
To måder at overføre objekt- referencer mellem processer (1) Via naming service - interface RMISolver (2) Som parametre til fjernprocedurekald - interface.
Program Design – 4 Introduktion til PHP. Dagens lektion Hvad er PHP?  - og lidt historie Hvordan virker PHP? Grundlæggende PHP  Variable  Typer  Løkker.
GP 11, 14/ Grundlæggende programmering Efterår 2001 Forelæsning 11 onsdag 14/ kl. 9:15 – 12:00.
W1b1 PC baseret analyse og simulering. w1b2 Definition Digital Elektronisk beregningsmaskine, der har intern hukommelse til lagring af program og mellem-regninger.
Lektion 7 Læsestof: Kopier fra Caranno
Fundamentale datastrukturer
Beskeder/beskedkøer Afsender- proces hej Modtager- proces.. msgsnd(..,"hej",..);.. msgrcv(..);.. Afsender skal bl.a. angive den besked der ønskes afsendt.
Ingeniørhøjskolen i Århus Slide 1 Newton approximation ”Oversæt” til algoritme - Step 5: Skriv kode - Step 4: Skriv pseudokode - Step 3: Specificér pre-
1 Fundamentale datastrukturer. 2 Definitioner: abstrakt datatype, datastruktur Elementære datastrukturer og abstrakte datatyper : arrays, stakke, køer,
Repetition: Introduktion til OOP med C# og .NET
Procestræ under afvikling af cp init login shell cp cp src dest.
Paradigmer i Programmering 2. Sammensatte typer Tupler og lister Programmering med rekursion Programmering med pipe-lines Programmering med polymorfe.
Comparable Students German Students Composite Pattern State Pattern Observer Pattern Collections Interfaces Abstrakte klasser Design Patterns.
DWDK Øvelsesgang 2. Tegnsæt: utf-8 vs. iso Utf-8 = universelt tegnsæt Giver advarsel i validator Dokument skal gemmes i utf-8 format i notepad.
Begreber og Redskaber 7. Plan for idag Rekursive underprogrammer Rekursive datastrukturer Rekursion vs iteration Rekursivt: Flette sortering.
C#: Udtryk og metoder Kilde: Joe Hummel. 2 Nordjyllands Erhvervakademi – 2008 Indhold “With regards to programming statements and methods, C# offers what.
03 – Udtryk og metoder. 2 NOEA2009Java-kursus – Udtryk og metoder Udtryk i Java Java har standard udtrykene… Værditildeling Subrutiner og funktionskald.
Intro Siden sidst: evaluering på opgaver og virtuel kursus.
Per Printz Madsen 1 Linux kernen Monolithic kernel Support for dynamiske moduler Få kerne tråde Preemptive.
Grundlæggende programmering Forår 2002
Deadlock Definition deadlock (baglås) er en tilstand som en mængde af processer kan være i en mængde processer er i deadlock hvis alle processerne står.
Paradigmer i Programmering 3. Højere ordens funktioner Idag: Højere ordens funktioner Algebraiske datatyper Næste gang: I/O, Filer, interaktive programmer.
Begreber og Redskaber 4. Plan for idag Om metoder, parametre, returværdier Et par ord om objekt-orientering Håndkøring af programmer.
Begreber og Redskaber 3. Plan for idag Om metoder, parametre, returværdier Overblik over klasser,objekter,nedarvning Et par ord om objekt-orientering.
1 Processer. 2 fork int fork(); Danner en ny proces med samme indhold som forældre processen. I begge processer er programtælleren placeret lige efter.
Kjeld Svidt  Institut for Byggeri og Anlæg  Aalborg Universitet IT i Byggeriet Semester kursusgang Projektweb og html (fortsat) Kjeld Svidt.
IT i Byggeriet Semester kursusgang Projektweb og html (fortsat) Kjeld Svidt Kjeld Svidt  Institut for Bygningsteknik  Aalborg.
I o p o DAIMI, AU, November 1999Programkonstruktion I9E.1 Konstruktion og brug af klasser – en stak og en HP-regnemaskine push pop.
DAIMIIntroducerende objektorienteret programmering3B.1 Definition af klasser Klasseskelet, metoder, et eksempel: dato.
 Michael E. Caspersen, 2000Introducerende objektorienteret programmering6A.1 Programmering med interfaces – en stak og en HP-regnemaskine push pop.
DAIMIIntroducerende objektorienteret programmering4B.1 Grundlæggende og Reference Typer i Java Typer, tilstand, erklæring, reference- og værdi semantik,
Indledende Programmering Uge 6 - Efterår 2006
Programmering med interfaces Separering af specifikation, anvendelse og implementation.
Programmering med interfaces – en stak og en HP-regnemaskine push pop.
Multiple processer på web-site Web- server filer Kunde 1 Kunde 2 Kunde p1p2p internet.
Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence s; int i; int j; Sequence s; String s; int i; int j;
Programmering med interfaces – en stak og en HP-regnemaskine push pop.
Deadlock Definition deadlock (baglås) er en tilstand som en mængde af processer kan være i en mængde processer er i deadlock hvis alle processerne står.
Embedded SW – C & picoBlaze
Integration med adgangskontrol
Programmering.
Præsentationens transcript:

Almindelige ("hårde") links (i filsystemer med i-noder) opg.txt jens: pia: ln /home/pia/opg.txt /home/jens/opg.txt hård link: ny post får i-node-nummer på eksisterende i-node link-count bruges til at beslutte hvornår filen skal slettes opg.txt 1 2 pia

Symbolske links (stadig i-noder) opg.txt jens: pia: ln -s /home/pia/opg.txt /home/jens/opg.txt symbolsk link: ny post får ny i-node og ny blok, som indeholder filnavn. efter sletning af /home/pia/opg.txt peger link-filen på ikke-eksisterende fil. opg.txt 1 pia /home/pia/opg.txt 1 jens

Tjek af konsistens af filsystem Blok-konsistens: For hver blok udregn: X = antal filer der bruger blokken Y = antal gange blokken optræder i listen over ledige blokke. Krav: X+Y=1. Fil-konsistens: For hver fil X = antal kataloger der indeholder filen Krav: X = "link count" i filens i-node.

Blokstørrelse K bytes/blok R omdr./millisek. B bytes/spor S søgetid (spor) i millisek Fordelen ved små blokke: mindre spild i en fils sidste blok Fordelen ved store blokke: tidsforbrug til at finde og læse 1 blok (jf. Tanenbaum s. 171): S + (1/2)*R + (K/B)*R

Blok cache hdRAM read.. write.. read: læser fra cache i stedet for hd hvis blokken ikke er i cache, læses den fra hd write: skriver til cache i stedet for hd hvor tit skal en "dirty blok" i cachen skrives ud på hd-en ?

Løsning (?) Systemkald: do_not_interrupt_me();

Problem: race conditions Program "MitProgram" Pseudokode 1: Hvis reservation < pladser, så reserver Pseudokode 2: 1. Læs fil 2. If (pladser = reservationer) 3. then skriv på stdout: "fully booked" 4. else {skriv på stdout: "OK"; 5. skriv i fil: "reservationer = 100"} Fil "MineData": pladser = 100 reservationer = 99

Kritisk region - påbegyndes kun hvis fil ikke er låst Program Pseudokode 1: Hvis reservation < pladser, så reserver Pseudokode 2:.. 1. Læs fil 2. If (pladser = reservationer) 3. then skriv på stdout: "fully booked" 4. else {skriv på stdout: "OK"; 5. skriv i fil: "reservationer = 100"}.. Kritisk region Er filen låst ? Hvis ikke, så lås den ! Lås filen op igen

Løsning: Låsning af filer Udvider den almindelige adgangsregulering (jf. filers beskyttelsesbits) en fil kan være låst for en proces, som om processen ellers har ret til at læse/skrive i filen Fleksibilitet: låsning af en del af en fil delte låse Frivillighedsprincip

Systemkald til låsning Unix systemkald dedikeret til låsning fcntl(..) diverse faciliteter til findelt låsning m.m. yderligere konvention om navngivning af låse m.m. ikke nødvendig Det almindelige systemkald open (eller creat ) kan også bruges en ekstra fil bruges som låsefil låsefilen er tom hvis låsefilen "MineData.lock" findes, er filen "MineData" låst.. = open("MineData.lock",… | O_EXCL,..)

.. 1. Læs fil 2. If (pladser = reservationer).. Er filen låst ? Hvis ikke, så lås den ! Problem: Race conditions ved evaluering af indgangsbetingelse til kritisk region Kontekst- skift ?!? Løsning: systemkald er atomiske test og "låsning" udføres uden afbrydelse

Kontrol af password ved login init login shell beder om brugernavn og password password krypteres krypteret password sammenlignes hvis OK startes shell

/etc/passwd ls -l /etc/passwd -????????? … root …. cat /etc/passwd | grep root root: :…: :/bin/bash "Knækning" af password: Alle kan kopiere password-filen og gætte passwords med trial-and-error program.

Genbrug af klasser/funktioner Java: Klasser samles i pakker (og evt. jar-filer) Genbrugs-program (inkl. packageerklæring) oversættes Bruger-program (inkl. importsætning) oversættes g.javag.class b.javab.class

Oversættelse i C = egentlig oversættelse + linkning myprogr.cmyprogr.omyprogr cc -c myprogr.ccc -o myprogr myprogr.o.o-filer = objektfiler = maskinkode men ikke linket, dvs. har hverken definitioner eller adresser på eksterne funktioner flaget -c betyder: spring link-fasen over flaget -o betyder: placer output i den angivne fil (første parameter) hvorvidt cc -o er oversættelse eller oversættelse+linkning afgør oversætteren ud fra endelsen af inputfil (anden parameter) cc -o myprogr myprogr.c

Genbrug af C-funktion uden bibliotek getline.c myprogr.c getline.o myprogr.omyprogr cc -c getline.c cc -c myprogr.ccc -o myprogr myprogr.o getline.o Ved at liste getline.o som parameter til linkningen kommer definitionerne i getline.o med i myprogr (statisk linkning)

Genbrug af C-funktioner v.hj.a. biblioteker f2.c p.c f2.o p.op ar crv lib.a f1.o f2.o Ved at liste lib.a som parameter til linkningen kommer de relevante definitionerne i lib.a med i p (stadig statisk linkning) f1.cf2.olib.a cc -o p p.o lib.a

Arrays i C - erklæring og initialisering // med angivelse af overgrænse int a[10]; char b[256]; // uden angivelse af overgrænse (skal fremgå implicit) int c[] = {2,4,8,16,32,64,128,256,512,1024}; char e[] = "hello\n"; char d[] = {´h´, ´e´, ´l´, ´l´, ´o´, ´\n´, ´\0´}; int getline(char s[],..) // prototype & def. af fkt. Der kan erklæres arrays af alle typer. Første element har altid indeks 0. Arrays er ikke klasser - et array har ikke tilknyttet felter/metoder. Tekststrenge repræsenteres som array af tegn afsluttet med ´\0´.

Arrays i C - brug // Kernighan/Ritchie s. 29: #define MAXLINE 1000 main (..).. char line[MAXLINE]; while … getline(line,MAXLINE).. // kald int getline(char s[],int lim).. // def. Arrays parameteroverføres via pointer (jf. objektreferencer i Java). Ingen tjek af array-grænser. main getline line s

Internet-ormen Cracker: vil udføre et program - f.eks. sekvensen xy på en maskine hvor han ikke er oprettet som bruger kan kalde programmer f.eks. "finger" på maskinen fra fjern maskine x = "start unix shell", y = "der gør det og det" Ide: kald "finger" med for en for lang parameter, der ender på "xy": finger Forudsætninger bl.a. at C ikke har automatisk tjek af om et array-indeks er udenfor arrayets grænser.

Implementation af CALL og RETURN (med rekursion) CALL PR.. PR:.. RETURN Retur-adresser for mere end et procedurekald gemmes på stakken. Indholdet af SP-registret er adressen på toppen af stakken. [[SP]] <- [PC] [SP] <- [SP]-1 [PC] <- PR [SP] <- [SP]+1 [PC] <- [SP] !!!!!!!!

Brug af stakken til implementation af RETURN IR IP SP stak tekst (program) data Plads til næste ret.adr. Returadresse CALL.. ?!?

Stak i Linux stak Returadresse adresse på shellen tekst data /bin/finger USER PATH CLASSPATH Environment- variable Parametre til programmet SP Filnavn