Get-id.c main( ) { printf( "My PID is %d\n", getpid( ) ); printf( "My parent's PID is %d\n", getppid( ) ); printf( "My User ID (UID) is %d\n", getuid(

Slides:



Advertisements
Liknande presentationer
Föreläsning 9 Programmeringsteknik och Matlab 2D1312/2D1305
Advertisements

Anders Sjögren Lagringsklasser •en variabel i C har två attribut –type( int, float, char..... ) –lagringsklass( auto, extern, register, static ) •lagringsklassens.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 3 ( ) Innehåll: -Namngivna rörledningar -Signaler -Signalhantering.
Funktioner och programorganisation
Programmeringsteknik
Logikprogrammering Ons, 25/9
#include void fun(char s[]) { int i=-1; while(s[++i]!=0) { if('a'
Tentamensdags och lab 3…. Större program delas normalt upp i flera filer/moduler vilket har flera fördelar:  Programmets logiska struktur när man klumpar.
Arrays Indicerade variabler.
2D1311 Programmeringsteknik med PBL Föreläsning 4 Skolan för Datavetenskap och kommunikation.
Programmeringsteknik för K och Media
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kap 3 & 4: Processer & trådar.
Flödeskontroll Satser i ett program utförs en och en efter varandra. Detta kallas sekvensiell flödeskontroll. Ofta är det dock nödvändigt att modifiera.
Programmering B PHP Lektion 2
Tentamensdags och lab 3…. Större program delas normalt upp i flera filer/moduler vilket har flera fördelar:  Programmets logiska struktur när man klumpar.
Anders Sjögren Selektion i C ”vägval” if och switch - satserna.
Detection of similarity between documents Axel Bengtsson Ola Olsson
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ö.
Programmering B PHP Lektion 3
int res2=Math.max(tal1,tal2);
Föreläsning 2 Kort Översikt Över Javaspråket. Källkodsformat Unicode används åäöμψζ tillåtna Inte alla miljöer klarar av det Källkod Bytekod Java VM för.
Mer om arv - Polymorfism Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David J. Barnes & Michael Kölling Fredric Ragnar
Deklarera en struct som kan användas för att representera en rät linje Använd den I main för att deklarera en variabel som du initierar så att den representerar.
William Sandqvist C:s minnesmodell.
1 Föreläsning 3 programmeringsteknik och Matlab 2D1312/ 2D1305 Matlab fortsättning Funkioner, styrstrukturer, manipulering av matriser.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 4 ( ) Innehåll: - Förening av dataströmmar - Signaler - Signalhantering.
Modulär programutveckling
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 6 ( ) Innehåll: -IPC: Semaforer -Exekveringstrådar (threads) -Introduktion till Java.
Namnrum, räckvidd och rekursion Linda Mannila
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.
Anders Sjögren ANSI - standard ?. Anders Sjögren ANSI - standard ? Om man skriver ett bra C-program och kompilerar fram ”exe”-filen så vore det ju trevligt.
INTRODUKTION TILL PROGRAMMERING
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.
F4 - Funktioner & parametrar 1 Programmeringsteknik, 4p vt-00 Modularisering ”svarta lådor” Väl definierade arbetsuppgifter Enklare validering Enklare.
William Sandqvist C-programmering ID120V Stack och Kö William Sandqvist
Anders Sjögren Selektion i C ”vägval” if och switch - satserna.
Rekursion. En metoddefinition som innehåller ett anrop av sig själv kallas rekursiv.
2D1311 Programmeringsteknik med PBL Föreläsning 4 Skolan för Datavetenskap och kommunikation.
F. Drewes, Inst. f. datavetenskap1 Föreläsning 9: Implementering av underprogram Aktiveringsposter Exekveringsstacken Implementera dynamisk räckvidd.
Anders Sjögren Deklarationsområde och funktioner.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 9 ( ) Innehåll: - IPC: Semaforer.
OOP F5:1 Stefan Möller OOP Objekt-orienterad programmering Föreläsning 5 Klasser och objekt Skapa objekt - new Referenser Konstruktorer Inkapsling.
1 Objektorienterad programmering för ingenjörer, VT04 Kort repetition av C-programmering och nyttiga verktyg. Tomas Larsson B439.
Procedurellt potpurri Dagens samtalsämnen –Klipp (Cut) –If-then-else –fail/0 –repeat/0 Att läsa –The Art of Prolog, kapitel 11 –Relevant avsnitt i Learn.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Datastrukturer och algoritmer Gruppövning 0.
William Sandqvist Funktionsbibliotek När man utvecklat en funktion så långt att den är "färdigutvecklad" kan man lika gärna spara den på.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 8 ( ) Innehåll: -Exekveringstrådar.
Föreläsning 7 programmeringsteknik och Matlab 2D1312/2D1305 Metoddeklaration och parametrar Arrayer och ArrayList.
Mer om operatorer logiska operatorer bit-operatorer adress-operatorn ”komma”-operatorn punkt - operatorn.
Föreläsning4 Repetition slingor Metoder. while-sats består av följande delar: 1. while 2. Villkor-sats (condition) 3. uttryck (statement) while-sats int.
OOP&M - teori1 OOPM del II – Föreläsning vecka Abstrakta klasser/metoder igen Gränssnitt/Interface klasser igen tillämpat.
Anders Sjögren Programmering i ANSI-C Ett första program för att se vart vi ska...
William Sandqvist Några experiment med XPortPro.
Anders Sjögren Funktioner något in och något annat ut.
Musikkompendium Test. Musikkompendium Test 2 Musikkompendium Test 3.
This is a lie 404 Web page does not exist.
This is a lie 404 Web page does not exist.
KPP053, HT2015 MATLAB, Föreläsning 4
Lektion 4.
Jimmy Hedman South Pole AB Linuxkonsult sedan -00
Work of a Family law attorney Jagianilaw.com. A Family Law Attorney basically covers a wide range spectrum of issues that a family may face with difficulty.
Meeting singles had never been so easy before. The growing dating sites for singles have given a totally new approach to getting into relationships. ‘Singles.
Välkommna till BE Nej jag bara skoja det är bildspel vecka ® BrucElvis
Vad gäller för Mätbrev? Varför skall det vara så komplicerat med mätbrev för optimistseglare? Svaret är enkelt. Optimist är världens största klass med.
Practice and challenges in involving fathers
Föreläsning 8: Exempel och problemlösning
The “MiGreat Project”- n
Presentationens avskrift:

get-id.c main( ) { printf( "My PID is %d\n", getpid( ) ); printf( "My parent's PID is %d\n", getppid( ) ); printf( "My User ID (UID) is %d\n", getuid( ) ); printf( "My Group ID (GID) is %d\n", getgid( ) ); }

Test: get-id.c $ id uid=500(f) gid=500(f) groups=500(f) $ gcc -o get-id get-id.c $./get-id My PID id 653 My parent's PID is 636 My User ID (UID) is 500 My Group ID (GID) is 500 $

Före fork zfork() klonar en process zPå bilden är processen mitt i systemanropet program PC Anrop till fork() fork() Här kommer den nya processen att skapas

Efter fork program PC Anrop till fork() fork() program PC Anrop till fork() fork() Parent processChild process (ny!) Returnerar barnets PID Returnerar noll Här skapades nya processen

Test: fork main( ) { int kidpid; printf( "Single process with pid %d\n", getpid( ) ); kidpid = fork( ); if( kidpid < 0 ) { printf( "Fail: cannot fork\n" ); exit( 1 ); } if( kidpid > 0 ) /* parent */ { printf( "P: This is the parent with pid: %d\n", getpid( ) ); printf( "P: My child process has pid: %d\n", kidpid ); } else /* kidpid == 0, child */ { printf( "C: This is the child with pid: %d\n", getpid( ) ); printf( "C: My parent has pid: %d\n", getppid( ) ); }

Test: fork $ gcc -o forktest forktest.c $./forktest Single process with pid 800 P: This is the parent with pid: 800 C: This is the child with pid: 801 C: My parent has pid: 800 P: My child process has pid: 801 $

Före och efter exec Prog- ram 1 PC Anrop till exec exec Prog- ram 2 PC processprocess (samma gamla!) Returnerar inte! Här utförs exec

Signaler zEn signal bryter det program processen kör och startar processens signal-handler zDet finns en standard-handler som används om man inte skrivit någon egen zDet går att returnera från signal-handler och fortsätta där programmet var zAlla signaler har någon egenhet - se upp!

wait tid process fork() child process exit() wait() sleeping SIGCHLD

zombie tid process fork() child process exit() wait() zombie SIGCHLD

Bad parent (never waits) tid process fork() child process exit() init blir styvförälder zombie SIGCHLD exit()