Jonny Karlsson 22.11.2005 PROCESSPROGRAMMERING Föreläsning 11 (22.11.2005) Innehåll: - Förmedling av fildeskriptorer.

Slides:



Advertisements
Liknande presentationer
Leverantör.
Advertisements

void hittaMax(int tal[], int antal, int *pmax) { int i; ??=tal[0]; for(i=1;i??) ??=tal[i]; } int main() { int v[]={1,2,3,4,2}; int.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Datastrukturer och algoritmer Föreläsning
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 1 ( ) Innehåll: -Introduktion av kursen -Program och processer -Fildeskriptorer -Filhantering.
Informationshantering
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 3 ( ) Innehåll: -Namngivna rörledningar.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 3 ( ) Innehåll: -Namngivna rörledningar -Signaler -Signalhantering.
Enkel dator teknik Tips och tricks.
1 Ingenjörsmetodik IT & ME 2009 Föreläsare Dr. Gunnar Malm.
Filhantering Grundprincipen för filhantering Öppna filen
Presentation för FOV-nätverket
C-programmering ID120V William Sandqvist Länkad lista
Distribuerade filsystem
NÄTVERKSPROTOKOLL Föreläsning INNEHÅLL - Routingprotokoll - Interior gateway protocols - Exterior gateway protocols - Link state routing.
DAV B04 - Databasteknik Indexering (kap 14).
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, Kapitel 11: Implementation av filsystem.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2004 Datastrukturer och algoritmer Föreläsning 3.
Föreläsning 5.  Idag  Kap 7 i Dawson  Filer  Felhantering med try…except.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Klasser och instansvariabler -Tabeller av klassobjekt.
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.
Pekare och speciell programstruktur i inbyggda system
Pointers. int a=5; int f(int b) { a--; b++; return b; } int main() { int a=3; printf("%d,",f(a)); printf("%d",a); return 0; }
Föreläsning 4 Kö Implementerad med array Implementerad med länkad lista Djup kontra bredd Bredden först mha kö.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 8 ( ) Innehåll: Trådprogrammering i Java - Avbrott (”interrupts”) - Metoden join() -
Picsara DICOM Modulen Från Picsara Picsara DICOM Modulen Från Picsara 10.1.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 4 ( ) Innehåll: -Programmerade rörledningar -Namngivna rörledningar.
PROCESSPROGRAMMERING Föreläsning ‏ Innehåll: Högnivå objekt för trådprogrammering: - Trådgrupper (”Thread pools”)‏ - Exekverare (Executor.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 4 ( ) INNEHÅLL: -Logiska opertorer -Poster.
Databashantering Do it Max-style!. SELECT SELECT vad FROM tabellnamn Exempel: ◦ SELECT * FROM stralin_max  * = Välj allt som finns i tabellen ◦ SELECT.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Klasser -Att definiera egna klasser -Klassvariabler -Klassmetoder.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 4 ( ) Innehåll: - Förening av dataströmmar - Signaler - Signalhantering.
LUNET: MLS och speglade paket vers 1.0
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 6 ( ) Innehåll: -Producent – konsument problemet -Förmedling av fildeskriptorer.
KVALITATIV ANALYS - FACKVERK
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Metoder -Lokala variabler -Mera om klasser: -Nyckelorden.
Jonny Karlsson GRUNDKURS I PROGRAMMERING MED JAVA Föreläsning 9 ( ) INNEHÅLL: -Tabeller av klassobjekt -Användning av Java API specifikationen.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 12 ( ) Innehåll: -Datakanaler och datakanalpar -Kommunikation på samma dator med datakanaler.
1 Föreläsning 6 Programmeringsteknik och Matlab 2D1312/2D1305 Metoder & parametrar Array API och klassen ArrayList.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 2 ( ) Innehåll: -Processtruktur -Processklyvning och kodbyte -Avslutning av processer.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 3 ( ) Innehåll: -Processtruktur -Processklyvning och kodbyte -Avslutning av processer.
INTRODUKTION TILL PROGRAMMERING
Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 11 C# I/O Streams C# använder “strömmar” för in- och utmatningsoperationer.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 2 ( ) INNEHÅLL: -Variabler och datatyper -Tilldelning av variabler -Aritmetiska.
Kenneth Wilhelmsson 1 Logikprogrammering 10 P Onsdag 20 november 2002.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 5 ( ) Innehåll: -Signaler -Signalhantering.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 3 ( ) INNEHÅLL: -Tabeller -Villkorssatser -Repetitionssatser.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 5 ( ) INNEHÅLL: -Metoder.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 5 ( ) Innehåll: IPC: meddelandeköer IPC: delat minne.
Initiera nätverket med nollflöde. Kapaciteterna i svart ovan bågarna och flödet i grönt nedan bågarna. Skicka igenom ett enhetsflöde genom nätverket. Flödesvägen.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 4 ( ) INNEHÅLL: -Logiska operatorer och logiska uttryck -Referenstyper.
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)‏
1 Sockets Traditionellt har UNIX varit svag på IPC, InterProcess Communication. I augusti 1983 kom en ny IPC-mekanism i 4.2BSD som var enkel om konsistent.
INTRODUKTION TILL PROGRAMMERING
PROCESSPROGRAMMERING Föreläsning 1 ( )‏ Innehåll: Introduktion till paralellprogrammering (“concurrent programming”)‏ Introduktion till parallellprogrammering.
Återblick. Vad är en databas? ”En samling information som är organiserad på ett sådant sätt att det är lätt att söka efter och hämta enskilda bitar information”
Länkade listor Binära träd
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 7 ( ) Innehåll: -IPC: Meddelandeköer.
Uppgift 5 Tekniska rapporten En beskrivning av ett uppdrag ni har gjort i er grupp. Du ska bifoga en programmeringshandledning som visar hur man programmerar.
F. Drewes, Inst. f. datavetenskap1 Föreläsning 9: Implementering av underprogram Aktiveringsposter Exekveringsstacken Implementera dynamisk räckvidd.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 9 ( ) Innehåll: - IPC: Semaforer.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 6 ( ) Innehåll: - Förening av dataströmmar -Blockerande I/O multiplexering -Icke blockerande.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 2 ( )‏ Innehåll:Trådar: - Avbrott (”interrupts”)‏ - Metoden join()‏ Högnivå objekt för.
NÄTVERKSPROTOKOLL Föreläsning INNEHÅLL - Routingprotokoll - Interior gateway protocols - Exterior gateway protocols - Link state routing.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 2 ( ) Innehåll: -Fildeskriptorer -Filhantering -Felhantering.
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.
Enkel dator teknik Tips och tricks. Välja storlek och radavstånd Här väljer du storlek på texten vi vill att ni använder 14 p till rubriker och 12 p till.
Presentationens avskrift:

Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 11 ( ) Innehåll: - Förmedling av fildeskriptorer

Jonny Karlsson Förmedling av fildeskriptorer En process skapar en fildeskriptor och den öppna fildeskriptorn skickas över till en/flera andra processer. Mycket användbart vid programmering av klient-server applikationer. Mycket typiskt går det till så att serverprocessen gör allt som behövs för att öppna en fil och sedan skickas den öppna fildeskriptorn över till anropande klientprocesser.

Jonny Karlsson Filhantering Kerneln använder 3 datastrukturer för filhantering och relationerna mellan dessa bestämmer hurdan effekt en process har på en annan vid delning av öppna fildeskriptorer: Processtabell (process table) Filtabell (file table) v-nod tabell (v-node table) Varje process är associerad med en processtabell vilken innehåller en tabell med öppna fildeskriptorer för varje process. Associerade med varje fildeskriptor är: Flaggor för fildeskriptorerna En pekare till en filtabell Kerneln uppehåller en filtabell för alla öppna filer. Varje filtabell innehåller: Filstatusflaggan för filen (read, write, append, nonblocking, m.m.) Nuvarande ”file offset” (bestämmer var följande read/write operation startar) En pekare på v-nod tabellen för filen

Jonny Karlsson Filhantering Varje öppen fil har en v-nod tabell. V-noden innehåller information om filtypen och pekare på funktioner som hanterar filen. V-nod tabellen innehåller även I-nod information vilket berättar bl.a. filägaren och filstorleken.

Jonny Karlsson Fildelning Två processer delar en öppen fil genom att använda två sparata filtabeller (båda processerna skapar en egen fildeskriptor med open())

Jonny Karlsson Fildelning Två processer delar en öppen fil genom att den ena processen skapar fildeskriptorn och överför denna till den andra processen

Jonny Karlsson Överföring av fildeskriptorer Det man egentligen vill åstadkomma vid överföring av fildeskriptorer är att två eller flere processer delar samma filtabell. Det som egentligen sker tekniskt är att man överför en pekare till en filtabell från en process till en annan. Dena pekare får första tillgängliga deskriptorvärde. Observera att båda processerna har inte samma deskriptornummer eftersom de fortfarande har skilda processtabeller. Om ena processen stänger sin fildeskripor är filen ändå fortfarande öppen för den andra processen.

Jonny Karlsson Att sända en fildeskriptor En fildeskriptor kan sändas över till en annan process genom en rörledning genom att använda ioctl() funktionen: ioctl(pd[1], I_SENDFD, deskr); pd[1]Deskriptorn för skrivändan i den rörledning genom vilken deskriptorn skall skickas. I_SENDFDKommandoflagga som berättar att en deskriptor skall skickas. deskrDen fildeskriptor som skall skickas.

Jonny Karlsson Att ta emot en fildeskriptor En fildeskriptor kan tas emot från en annan process från en rörledning genom att använda ioctl() funktionen: ioctl(pd[1], I_RECVFD, &deskrpek); pd[0]Deskriptorn för läsändan i den rörledning varifrån deskriptorn skall tas emot. I_RECVFDKommandoflagga som berättar att en deskriptor skall skickas. deskrpekEn pekare på en post av typen struct strrecvfd (Se nästa slide)

Jonny Karlsson Att ta emot en fildeskriptor struct strrecvfd { int fd;//den nya deskriptorn uid_t uid;//användar ID för avsändaren gid_t gid;//grupp ID för avsändaren char fill[8]; }