Διαχείριση Διεργασιών και Διαδιεργασιακή Επικοινωνία

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Διαχείριση Διεργασιών και Διαδιεργασιακή Επικοινωνία"

Transcript

1 Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων 2 η Εργαστηριακή Άσκηση: Διαχείριση Διεργασιών και Διαδιεργασιακή Επικοινωνία Λειτουργικά Συστήματα Υπολογιστών 7ο Εξάμηνο,

2 Σύνοψη Χρήση του make, Makefile Διαχείριση διεργασιών στο UNIX fork(), wait(), waitpid(), explain_wait_status() Σήματα στο UNIX kill(), signal(), sigaction(), race conditions Χειρισμός του σήματος SIGCHLD Ασύγχρονη ειδοποίηση γονικής διεργασίας non-blocking waitpid() Διαδιεργασιακή επικοινωνία με UNIX pipes

3 Makefile

4 Makefile <Tab> <Tab> <Tab> <Tab>

5 Makefile $ cat Makefile # a simple Makefile CC = gcc CFLAGS = -Wall -O2 all: proc-example proc-example: proc-example.o proc-common.o $(CC) -o proc-example proc-example.o proc-common.o <Tab> proc-common.o: proc-common.c proc-common.h $(CC) $(CFLAGS) -o proc-common.o -c proc-common.c <Tab> proc-example.o: proc-example.c proc-common.h $(CC) $(CFLAGS) -o proc-example.o -c proc-example.c <Tab> clean: <Tab> rm -f proc-example proc-common.o proc-example.o $ make gcc -Wall -O2 -o proc-example.o -c proc-example.c gcc -Wall -O2 -o proc-common.o -c proc-common.c gcc -o proc-example proc-example.o proc-common.o

6 PID=981 Δημιουργία στο μοντέλο του UNIX: fork() Δεδομένα : p =? mypid =? Κείμενο: pid_t p, mypid; p = fork(); if (p < 0) { perror( fork ); else if (p == 0) { mypid = getpid(); child(); else { father();

7 PID=981 Δημιουργία στο μοντέλο του UNIX: fork() Δεδομένα : p =? mypid =? Κείμενο: pid_t p, mypid; p = fork(); if (p < 0) { perror( fork ); else if (p == 0) { mypid = getpid(); child(); else { father();

8 PID=981 Δημιουργία στο μοντέλο του UNIX: fork() Δεδομένα : p =? mypid =? Κείμενο: pid_t p, mypid; p = fork(); if (p < 0) { perror( fork ); else if (p == 0) { mypid = getpid(); child(); else { father();

9 PID=981 Δημιουργία στο μοντέλο του UNIX: fork() Δεδομένα : p = -1? mypid =? Κείμενο: pid_t p, mypid; p = fork(); p = -1, errno = if (p < 0) { ENOMEM perror( fork ); else if (p == 0) { mypid = getpid(); child(); else { father();

10 PID=981 Δημιουργία στο μοντέλο του UNIX: fork() Δεδομένα : p = -1? mypid =? Κείμενο: pid_t p, mypid; p = fork(); p = -1, errno = if (p < 0) { ENOMEM perror( fork ); else if (p == 0) { mypid = getpid(); child(); else { father();

11 PID=981 Δημιουργία στο μοντέλο του UNIX: fork() Δεδομένα : p = -1? mypid =? Κείμενο: pid_t p, mypid; p = fork(); p = -1, errno = if (p < 0) { ENOMEM perror( fork ); else if (p == 0) { mypid = getpid(); child(); else { father();

12 PID=981 Δημιουργία στο μοντέλο του UNIX: fork() Δεδομένα : p = -1? mypid =? Κείμενο: pid_t p, mypid; p = fork(); p = -1, errno = if (p < 0) { ENOMEM perror( fork ); else if (p == 0) { mypid = getpid(); child(); else { father();

13 Δημιουργία στο μοντέλο του UNIX: fork()

14 PID=981 Δημιουργία στο μοντέλο του UNIX: fork() Δεδομένα : p =? mypid =? Κείμενο: pid_t p, mypid; p = fork(); if (p < 0) { perror( fork ); else if (p == 0) { mypid = getpid(); child(); else { father();

15 PID=981 Δημιουργία στο μοντέλο του UNIX: fork() Δεδομένα : p =? mypid =? Κείμενο: pid_t p, mypid; p = fork(); if (p < 0) { perror( fork ); else if (p == 0) { mypid = getpid(); child(); else { father();

16 PID=981 PID=987 Δημιουργία στο μοντέλο του UNIX: fork() Δεδομένα : p =? mypid =? Κείμενο: pid_t p, mypid; p = fork(); if (p < 0) { perror( fork ); else if (p == 0) { mypid = getpid(); child(); else { father(); Δεδομένα : p =? mypid =? Κείμενο: pid_t p, mypid; p = fork(); if (p < 0) { perror( fork ); else if (p == 0) { mypid = getpid(); child(); else { father();

17 PID=981 PID=987 Δημιουργία στο μοντέλο του UNIX: fork() Δεδομένα : p = 987? mypid =? Κείμενο: pid_t p, mypid; p = fork(); p = 987 if (p < 0) { perror( fork ); else if (p == 0) { mypid = getpid(); child(); else { father(); Δεδομένα : p = 0? mypid =? Κείμενο: pid_t p, mypid; p = fork(); p = 0 if (p < 0) { perror( fork ); else if (p == 0) { mypid = getpid(); child(); else { father();

18 PID=981 PID=987 Δημιουργία στο μοντέλο του UNIX: fork() Δεδομένα : p = 987? mypid =? Κείμενο: pid_t p, mypid; p = fork(); p = 987 if (p < 0) { perror( fork ); else if (p == 0) { mypid = getpid(); child(); else { father(); Δεδομένα : p = 0? mypid =? Κείμενο: pid_t p, mypid; p = fork(); p = 0 if (p < 0) { perror( fork ); else if (p == 0) { mypid = getpid(); child(); else { father();

19 PID=981 PID=987 Δημιουργία στο μοντέλο του UNIX: fork() Δεδομένα : p = 987? mypid =? Κείμενο: pid_t p, mypid; p = fork(); p = 987 if (p < 0) { perror( fork ); else if (p == 0) { mypid = getpid(); child(); else { father(); Δεδομένα : p = 0? mypid =? Κείμενο: pid_t p, mypid; p = fork(); p = 0 if (p < 0) { perror( fork ); else if (p == 0) { mypid = getpid(); child(); else { father();

20 PID=981 PID=987 Δημιουργία στο μοντέλο του UNIX: fork() Δεδομένα : p = 987? mypid =? Κείμενο: pid_t p, mypid; p = fork(); p = 987 if (p < 0) { perror( fork ); else if (p == 0) { mypid = getpid(); child(); else { father(); Δεδομένα : p = 0? mypid =? Κείμενο: pid_t p, mypid; p = fork(); p = 0 if (p < 0) { perror( fork ); else if (p == 0) { mypid = getpid(); child(); else { father();

21 PID=981 PID=987 Δημιουργία στο μοντέλο του UNIX: fork() Δεδομένα : p = 987? mypid =? Κείμενο: pid_t p, mypid; p = fork(); p = 987 if (p < 0) { perror( fork ); else if (p == 0) { mypid = getpid(); child(); else { father(); Δεδομένα : p = 0? mypid = 987? Κείμενο: pid_t p, mypid; p = fork(); p = 0 if (p < 0) { perror( fork ); else if (p == 0) { mypid = getpid(); child(); else { father();

22 PID=981 PID=987 Δημιουργία στο μοντέλο του UNIX: fork() Δεδομένα : p = 987? mypid =? Κείμενο: pid_t p, mypid; p = fork(); p = 987 if (p < 0) { perror( fork ); else if (p == 0) { mypid = getpid(); child(); else { father(); Δεδομένα : p = 0? mypid = 987? Κείμενο: pid_t p, mypid; p = fork(); p = 0 if (p < 0) { perror( fork ); else if (p == 0) { mypid = getpid(); child(); else { father();

23 PID=981 PID=987 Δημιουργία στο μοντέλο του UNIX: fork() Δεδομένα : p = 987? mypid =? Κείμενο: pid_t p, mypid; p = fork(); p = 987 if (p < 0) { perror( fork ); else if (p == 0) { mypid = getpid(); child(); else { father(); Δεδομένα : p = 0? mypid = 987? Κείμενο: pid_t p, mypid; p = fork(); p = 0 if (p < 0) { perror( fork ); else if (p == 0) { mypid = getpid(); child(); else { father();

24 Δημιουργία στο μοντέλο του UNIX: fork() Όλες οι διεργασίες προκύπτουν με fork() [σχεδόν όλες] Ίδιο πρόγραμμα με γονική διεργασία, αντίγραφο χώρου μνήμης, κληρονομεί ανοιχτά αρχεία, συνδέσεις, δικαιώματα πρόσβασης Αντικατάσταση προγράμματος διεργασίας: execve() Η γονική διεργασία ενημερώνεται για το θάνατο του παιδιού με wait() συλλογή τιμής τερματισμού (exit status) Μέχριτότε, παιδίπουέχεικαλέσειτηνexit() είναιzombie Αν ο γονέας πεθάνει πρώτα, η διεργασία γίνεται παιδί της init (PID = 1), που κάνει συνεχώς wait() prog-a 981 fork Prog-A 981 wait Prog-A 987 execve Prog-B 987 Prog-B exit 987 (zombie)

25 wait() / waitpid() Για κάθε fork() πρέπει να γίνει ένα wait() wait(&status) Μπλοκάρει έως οποιουδήποτ παιδί πεθάνει Το status κωδικοποιεί πώς πέθανε η διεργασία Κανονικά (exit()), λόγω κάποιου σήματος (SIGTERM, SIGKILL) Χρήσιμες μακροεντολές για την ερμηνεία του status WIFEXITED(), WEXITSTATUS(), WIFSIGNALED(), WTERMSIG() σας δίνεται η explain_wait_status() Μια πιο ευέλικτη wait(): waitpid() Περιμένει για αλλαγή κατάστασης συγκεκριμένου ή οποιουδήποτε PID διεργασίας-παιδιού Συμπεριφορά ελεγχόμενη από flags (WNOHANG, WUNTRACED)

26 explain_wait_status() void explain_wait_status(pid_t pid, int status) { if (WIFEXITED(status)) fprintf(stderr, "Child with PID = %ld terminated normally, exit status = %d\n", (long)pid, WEXITSTATUS(status)); else if (WIFSIGNALED(status)) fprintf(stderr, "Child with PID = %ld was terminated by a signal, signo = %d\n", (long)pid, WTERMSIG(status)); else if (WIFSTOPPED(status)) fprintf(stderr, "Child with PID = %ld has been stopped by a signal, signo = %d\n", (long)pid, WSTOPSIG(status)); else { fprintf(stderr, "%s: Internal error: Unhandled case, PID = %ld, status = %d\n", func, (long)pid, status); fflush(stderr);

27 explain_wait_status() void explain_wait_status(pid_t pid, int status) { if (WIFEXITED(status)) fprintf(stderr, "Child with PID = %ld terminated normally, exit status = %d\n", (long)pid, WEXITSTATUS(status)); else if (WIFSIGNALED(status)) fprintf(stderr, "Child with PID = %ld was terminated by a signal, signo = %d\n", (long)pid, WTERMSIG(status)); else if (WIFSTOPPED(status)) fprintf(stderr, "Child with PID = %ld has been stopped by a signal, signo = %d\n", (long)pid, WSTOPSIG(status)); else { fprintf(stderr, "%s: Internal error: Unhandled case, PID = %ld, status = %d\n", func, (long)pid, status); fflush(stderr); Παράδειγμα: pid = wait(&status); explain_wait_status(pid, status); if (WIFEXITED(status) WIFSIGNALED(status)) --processes_alive;

28 Κώδικας: παράδειγμα fork() / wait() void child(void) { compute(10000); exit(7); int main(void) { pid_t p; int status; p = fork(); if (p < 0) { perror("fork"); if (p == 0) { child(); p = wait(&status); explain_wait_status(p, status); return 0;

29 Αποστολή (kill(), raise()) Σήματα στο UNIX (1)

30 Αποστολή (kill(), raise()) Παράδειγμα: Σήματα στο UNIX (1) if (kill(pid, SIGUSR1) < 0) { perror( kill );

31 Αποστολή (kill(), raise()) Παράδειγμα: Σήματα στο UNIX (1) if (kill(pid, SIGUSR1) < 0) { perror( kill ); Χειρισμός (signal(), με SIG_IGN, SIG_DFL ή handler)

32 Αποστολή (kill(), raise()) Παράδειγμα: Σήματα στο UNIX (1) if (kill(pid, SIGUSR1) < 0) { perror( kill ); Χειρισμός (signal(), με SIG_IGN, SIG_DFL ή handler) Παράδειγμα: void sighandler(int signum) { got_sigusr1 = 1; if (signal(sigusr1, sighandler) < 0) { perror( could not establish SIGUSR1 handler );

33 Σήματα στο UNIX (2)

34 Σήματα στο UNIX (2) Αναξιόπιστα Τιθαγίνειανέρθουνπολλάσήματα; Η συνάρτηση χειρισμού θα τρέξει από 1 έως n φορές Τι θα γίνει αν το σήμα έρθει ενώ η συνάρτηση χειρισμού εκτελείται; Race conditions: αυτό θα δουλέψει;

35 Σήματα στο UNIX (2) Αναξιόπιστα Τιθαγίνειανέρθουνπολλάσήματα; Η συνάρτηση χειρισμού θα τρέξει από 1 έως n φορές Τι θα γίνει αν το σήμα έρθει ενώ η συνάρτηση χειρισμού εκτελείται; Race conditions: αυτό θα δουλέψει; Παράδειγμα: void sighandler(int signum) { got_sigusr1 = 1;... got_sigusr = 0; while (!got_sigusr1) pause(); /* Αναμονή έως ότου ληφθεί κάποιο σήμα */

36 Σήματα στο UNIX (3) Η signal() δεν είναι φορητή Ο handler ακυρώνεται όταν εκτελείται (System V) καιπρέπειναεπανεγκατασταθεί ή όχι BSD. Στο Linux; εξαρτάται libc vs. kernel Καλύτερη, φορητή λύση: sigaction()

37 Σήματα στο UNIX (3) Η signal() δεν είναι φορητή Ο handler ακυρώνεται όταν εκτελείται (System V) καιπρέπειναεπανεγκατασταθεί ή όχι BSD. Στο Linux; εξαρτάται libc vs. kernel Καλύτερη, φορητή λύση: sigaction() Παράδειγμα: struct sigactionsa; sigset_t sigset; sa.sa_handler = sigchld_handler; sa.sa_flags = SA_RESTART; sigemptyset(&sigset); sa.sa_mask = sigset; if (sigaction(sigchld, &sa, NULL) < 0) { perror("sigaction");

38 Σήματα στο UNIX (4) Χρήσιμες εντολές kill, ps, pstree, killall, grep

39 Σήματα στο UNIX (4) Χρήσιμες εντολές kill, ps, pstree, killall, grep $ kill -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2... $ ps ef grep vkoukis grep bash vkoukis :17 pts/0 00:00:00 bash $ kill -TERM 4277 $ kill $ killall -9 bash

40 Σήματα στο UNIX (4) Χρήσιμες εντολές kill, ps, pstree, killall, grep $ kill -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2... $ ps ef grep vkoukis grep bash vkoukis :17 pts/0 00:00:00 bash $ kill -TERM 4277 $ kill $ killall -9 bash Όλες οι λεπτομέρειες στα manual pages

41 SIGCHLD

42 SIGCHLD SIGCHLD: ένα παιδί άλλαξε κατάσταση Πέθανε κανονικά τερματίστηκε από σήμα έχει σταματήσει λόγω σήματος (SIGTSTP, SIGSTOP) Επιτρέπει στη γονική διεργασία να κάνει waitpid() ασύγχρονα, όταν χρειάζεται Κάτι συμβαίνει σε ένα παιδί Ο πατέρας λαμβάνει SIGCHLD Εκτελεί waitpid() Ιδανικά: πολλές φορές, με WNOHANG

43 Κώδικας: παράδειγμα χειρισμού SIGCHLD

44 Κώδικας: παράδειγμα χειρισμού SIGCHLD void sigchld_handler(int signum) { pid_t p; int status; /* * Something has happened to one of the children. * We use waitpid() with the WUNTRACED flag, instead of wait(), because * SIGCHLD may have been received for a stopped, not dead child. * * A single SIGCHLD may be received if many processes die at the same time. * We use waitpid() with the WNOHANG flag in a loop, to make sure all * children are taken care of before leaving the handler. */ do { p = waitpid(-1, &status, WUNTRACED WNOHANG); if (p < 0) { perror("waitpid"); explain_wait_status(p, status); if (WIFEXITED(status) WIFSIGNALED(status)) /* A child has died */ if (WIFSTOPPED(status)) /* A child has stopped due to SIGSTOP/SIGTSTP, etc... */ while (p > 0);

45 Σωληνώσεις στο UNIX (1) Διεργασία write fd[1] M άκρο εγγραφής read fd[0] Χώρος Χρήστη Χώρος Πυρήνα άκρο ανάγνωσης Ένας από τους βασικότερους μηχανισμούς στο UNIX Μονόδρομη μεταφορά δεδομένων Απότοάκροεγγραφής στο άκρο ανάγνωσης Δημιουργία με pipe(), επικοινωνία με write() και read() Αν η σωλήνωση είναι άδεια; η read() μπλοκάρει

46 Σωληνώσεις στο UNIX (1) Διεργασία Χώρος Χρήστη Χώρος Πυρήνα int fd[2]; int num1, num2; pipe(fd); write(fd[1], &num1, sizeof(num1)); read(fd[0], &num2, sizeof(num2));

47 Σωληνώσεις στο UNIX (1) Διεργασία Χώρος Χρήστη Χώρος Πυρήνα άκρο εγγραφής άκρο ανάγνωσης int fd[2]; int num1, num2; pipe(fd); write(fd[1], &num1, sizeof(num1)); read(fd[0], &num2, sizeof(num2));

48 Σωληνώσεις στο UNIX (1) Διεργασία write fd[1] M άκρο εγγραφής Χώρος Χρήστη Χώρος Πυρήνα άκρο ανάγνωσης int fd[2]; int num1, num2; pipe(fd); write(fd[1], &num1, sizeof(num1)); read(fd[0], &num2, sizeof(num2));

49 Σωληνώσεις στο UNIX (1) Διεργασία write fd[1] M άκρο εγγραφής int fd[2]; int num1, num2; read fd[0] Χώρος Χρήστη Χώρος Πυρήνα άκρο ανάγνωσης pipe(fd); write(fd[1], &num1, sizeof(num1)); read(fd[0], &num2, sizeof(num2));

50 Σωληνώσεις στο UNIX (1) Διεργασία write fd[1] read fd[0] Χώρος Χρήστη Χώρος Πυρήνα άκρο εγγραφής άκρο ανάγνωσης int fd[2]; int num1, num2; pipe(fd); write(fd[1], &num1, sizeof(num1)); read(fd[0], &num2, sizeof(num2));

51 Σωληνώσεις στο UNIX (2) Διεργασία πατέρας Χώρος Χρήστη Χώρος Πυρήνα pipe(fd); fork(); ο πατέρας κλείνει το άκρο ανάγνωσης τοπαιδίκλείνειτοάκροεγγραφής

52 Σωληνώσεις στο UNIX (2) Διεργασία πατέρας write fd[1] read fd[0] Χώρος Χρήστη Χώρος Πυρήνα άκρο εγγραφής άκρο ανάγνωσης pipe(fd); fork(); ο πατέρας κλείνει το άκρο ανάγνωσης τοπαιδίκλείνειτοάκροεγγραφής

53 Σωληνώσεις στο UNIX (2) Διεργασία πατέρας write fd[1] read fd[0] Χώρος Χρήστη Χώρος Πυρήνα άκρο εγγραφής άκρο ανάγνωσης pipe(fd); fork(); ο πατέρας κλείνει το άκρο ανάγνωσης τοπαιδίκλείνειτοάκροεγγραφής

54 Σωληνώσεις στο UNIX (2) Διεργασία πατέρας write fd[1] read fd[0] Διεργασία παιδί write fd[1] read fd[0] Χώρος Χρήστη Χώρος Πυρήνα άκρο εγγραφής άκρο ανάγνωσης pipe(fd); fork(); ο πατέρας κλείνει το άκρο ανάγνωσης τοπαιδίκλείνειτοάκροεγγραφής

55 Σωληνώσεις στο UNIX (2) Διεργασία πατέρας write fd[1] Διεργασία παιδί write fd[1] read fd[0] Χώρος Χρήστη Χώρος Πυρήνα άκρο εγγραφής άκρο ανάγνωσης pipe(fd); fork(); ο πατέρας κλείνει το άκρο ανάγνωσης τοπαιδίκλείνειτοάκροεγγραφής

56 Σωληνώσεις στο UNIX (2) Διεργασία πατέρας write fd[1] Διεργασία παιδί read fd[0] Χώρος Χρήστη Χώρος Πυρήνα άκρο εγγραφής άκρο ανάγνωσης pipe(fd); fork(); ο πατέρας κλείνει το άκρο ανάγνωσης τοπαιδίκλείνειτοάκροεγγραφής

57 Σωληνώσεις στο UNIX (2) Διεργασία πατέρας write fd[1] M άκρο εγγραφής Διεργασία παιδί read fd[0] Χώρος Χρήστη Χώρος Πυρήνα άκρο ανάγνωσης pipe(fd); fork(); ο πατέρας κλείνει το άκρο ανάγνωσης τοπαιδίκλείνειτοάκροεγγραφής

58 Σωληνώσεις στο UNIX (2) Διεργασία πατέρας write fd[1] Διεργασία παιδί read fd[0] Χώρος Χρήστη Χώρος Πυρήνα άκρο εγγραφής άκρο ανάγνωσης pipe(fd); fork(); ο πατέρας κλείνει το άκρο ανάγνωσης τοπαιδίκλείνειτοάκροεγγραφής

59 Κώδικας: παράδειγμα IPC με UNIX pipes

60 Κώδικας: παράδειγμα IPC με UNIX pipes double value; int pfd[2]; pid_t p; if (pipe(pfd) < 0) { perror( pipe ); p = fork(); if (p < 0) { perror( fork ); else if (p == 0) { if (read(pfd[0], &value, sizeof(value))!= sizeof(value)) { perror( read from pipe ); printf( child received value: value = %f\n, value); exit(0); else { compute_value(&value); if (write(pfd[1], &value, sizeof(value))!= sizeof(value)) { perror( write to pipe ); exit(0);

61 Κώδικας: παράδειγμα IPC με UNIX pipes double value; int pfd[2]; pid_t p; if (pipe(pfd) < 0) { perror( pipe ); p = fork(); if (p < 0) { perror( fork ); else if (p == 0) { if (read(pfd[0], &value, sizeof(value))!= sizeof(value)) { perror( read from pipe ); printf( child received value: value = %f\n, value); exit(0); else { compute_value(&value); if (write(pfd[1], &value, sizeof(value))!= sizeof(value)) { perror( write to pipe ); exit(0);

62 Ερωτήσεις;

63 Ερωτήσεις; και στη λίστα:

Διαχείριση Διεργασιών και Διαδιεργασιακή Επικοινωνία

Διαχείριση Διεργασιών και Διαδιεργασιακή Επικοινωνία Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων 2 η Εργαστηριακή Άσκηση: Διαχείριση Διεργασιών και Διαδιεργασιακή Επικοινωνία Λειτουργικά

Διαβάστε περισσότερα

UNIX System Programming

UNIX System Programming UNIX System Programming Processes Objectives look at how to program UNIX processes fork( ), wait( ) Overview 1. What is a Process? 2. fork() 3. wait() 4. Process Data 1. What is a Process? A process is

Διαβάστε περισσότερα

Χρονοδρομολογητής Κυκλικής Επαναφοράς

Χρονοδρομολογητής Κυκλικής Επαναφοράς Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων 4 η Εργαστηριακή Άσκηση: Χρονοδρομολογητής Κυκλικής Επαναφοράς Λειτουργικά Συστήματα Υπολογιστών

Διαβάστε περισσότερα

Διεργασίες και Νήματα (1/2)

Διεργασίες και Νήματα (1/2) Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων Διεργασίες και Νήματα (1/2) Λειτουργικά Συστήματα Υπολογιστών 7ο Εξάμηνο, 2016-2017 Διεργασίες

Διαβάστε περισσότερα

Εργαστήριο 5 fork(), exec(), signals

Εργαστήριο 5 fork(), exec(), signals Εργαστήριο 5 fork(), exec(), signals Στο εργαστήριο θα μελετηθούν: Παραδείγματα χρήσης των συναρτήσεων fork και exec Συνάρτηση waitpid Συνάρτηση WIFEXITED Συνάρτηση WEXITSTATUS Παράδειγμα χρήσης σημάτων

Διαβάστε περισσότερα

Εργαστήριο 7 fork(), exec(), signals

Εργαστήριο 7 fork(), exec(), signals Εργαστήριο 7 fork(), exec(), signals Στο εργαστήριο θα μελετηθούν: Παραδείγματα χρήσης των συναρτήσεων fork και exec Συνάρτηση waitpid Συνάρτηση WIFEXITED Συνάρτηση WEXITSTATUS Παράδειγμα χρήσης σημάτων

Διαβάστε περισσότερα

Διεργασίες - Σύνοψη. Διακοπές, προνομιούχος κατάσταση Κλήσεις συστήματος. Ορισμός, μεταβάσεις κατάστασης κύκλος ζωής

Διεργασίες - Σύνοψη. Διακοπές, προνομιούχος κατάσταση Κλήσεις συστήματος. Ορισμός, μεταβάσεις κατάστασης κύκλος ζωής Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άδεια χρήσης άλλου τύπου, αυτή πρέπει να αναφέρεται ρητώς. Διεργασίες

Διαβάστε περισσότερα

Ντίρλης Νικόλαος- ΕΤΥ 2 ο Φροντιστήριο Παρασκευή, 18/10/2013 Β4. Λειτουργικά Συστήματα- Φροντιστήριο 2

Ντίρλης Νικόλαος- ΕΤΥ 2 ο Φροντιστήριο Παρασκευή, 18/10/2013 Β4. Λειτουργικά Συστήματα- Φροντιστήριο 2 Ντίρλης Νικόλαος- ΕΤΥ 2 ο Φροντιστήριο Παρασκευή, 18/10/2013 Β4 Φροντιστήριο 2 1 Λειτουργικό Σύστημα -> Multitasking Κάθε διεργασία μπορεί να ειδωθεί σαν μία δέσμη στοιχείων που διατηρούνται από τον πυρήνα

Διαβάστε περισσότερα

Δίκτυα Επικοινωνιών ΙΙ: Network Programming UDP Sockets, Signals

Δίκτυα Επικοινωνιών ΙΙ: Network Programming UDP Sockets, Signals Δίκτυα Επικοινωνιών ΙΙ: Network Programming UDP Sockets, Signals Δρ. Απόστολος Γκάμας Διδάσκων 407/80 gkamas@uop.gr Δίκτυα Επικοινωνιών ΙΙ Διαφάνεια 1 1 UDP vs TCP Το UDP είναι ένα connectionless, μη αξιόπιστο,

Διαβάστε περισσότερα

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΔΙΕΡΓΑΣΙΕΣ

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΔΙΕΡΓΑΣΙΕΣ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΔΙΕΡΓΑΣΙΕΣ Πολυεπεξεργασία Διεργασία (process) Νήμα (thread) Εργασία (task/job) Διεργασίες Διεργασία είναι μια (συγκεκριμένη) εκτέλεση κάποιου προγράμματος για λογαριασμό κάποιου

Διαβάστε περισσότερα

Εργαστήριο ΔΙΕΡΓΑΣΙΕΣ - ΔΙΑΧΕΙΡΙΣΗ

Εργαστήριο ΔΙΕΡΓΑΣΙΕΣ - ΔΙΑΧΕΙΡΙΣΗ Εργαστήριο ΔΙΕΡΓΑΣΙΕΣ - ΔΙΑΧΕΙΡΙΣΗ Εισαγωγή Σκοπός τόσο αυτού του εργαστηρίου, όσο και των εργαστηρίων που ακολουθούν, είναι να γνωρίσουμε τους τρόπους δημιουργίας και διαχείρισης των διεργασιών (processes)

Διαβάστε περισσότερα

Δημιουργία & Τερματισμός Διεργασιών. Προγραμματισμός II 1

Δημιουργία & Τερματισμός Διεργασιών. Προγραμματισμός II 1 Δημιουργία & Τερματισμός Διεργασιών Προγραμματισμός II 1 lalis@inf.uth.gr Δημιουργία νέας διεργασίας pid_t fork() Η fork δεν έχει παραμέτρους Δημιουργεί μια νέα διεργασία που είναι ένα αντίγραφο της διεργασίας

Διαβάστε περισσότερα

Προγραμματισμός συστημάτων UNIX/POSIX. Σήματα (signals)

Προγραμματισμός συστημάτων UNIX/POSIX. Σήματα (signals) Προγραμματισμός συστημάτων UNIX/POSIX Σήματα (signals) Σήματα (signals) Τα σήματα είναι «διακοπές» λογισμικού (software interrupts) οι οποίες διακόπτουν την κανονική λειτουργία μίας διεργασίας. Προκαλούνται

Διαβάστε περισσότερα

Πανεπιστήμιο Θεσσαλίας Τμήμα Πληροφορικής

Πανεπιστήμιο Θεσσαλίας Τμήμα Πληροφορικής Πανεπιστήμιο Θεσσαλίας Τμήμα Πληροφορικής ΕΥ311-Διαδικτυακός και Ταυτόχρονος Προγραμματισμός Εργαστήριο: Παραδείγματα δημιουργίας διεργασιών στο Linux Ένα πρόγραμμα (το στιγμιότυπο της εκτέλεσης του οποίου

Διαβάστε περισσότερα

Δημιουργία & Τερματισμός Διεργασιών. Προγραμματισμός II 1

Δημιουργία & Τερματισμός Διεργασιών. Προγραμματισμός II 1 Δημιουργία & Τερματισμός Διεργασιών Προγραμματισμός II 1 lalis@inf.uth.gr Δημιουργία νέας διεργασίας pid_t fork() Η fork δεν έχει παραμέτρους Δημιουργεί μια νέα διεργασία που είναι ένα αντίγραφο της διεργασίας

Διαβάστε περισσότερα

Προγραμματισμός συστημάτων UNIX/POSIX

Προγραμματισμός συστημάτων UNIX/POSIX Προγραμματισμός συστημάτων UNIX/POSIX Προχωρημένη διαδιεργασιακή επικοινωνία: επώνυμοι αγωγοί (FIFOs) ουρές μηνυμάτων (message queues) κοινόχρηστη μνήμη (shared memory) σήματα (signals) Ανάγκη Ότι είδαμε

Διαβάστε περισσότερα

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ II. Υφαντόπουλος Νικόλαος Υποψήφιος Διδάκτορας Contact:

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ II. Υφαντόπουλος Νικόλαος Υποψήφιος Διδάκτορας Contact: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ II Υφαντόπουλος Νικόλαος Υποψήφιος Διδάκτορας Contact: nifantop@unipi.gr Περιεχόμενα ενότητας Διεργασίες Κλήσεις δημιουργίας και τερματισμού διεργασιών Επικοινωνία διεργασιών μέσω

Διαβάστε περισσότερα

Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος

Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ KΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ http://www.cslab.ece.ntua.gr Λειτουργικά

Διαβάστε περισσότερα

Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκό Έτος 2011-2012

Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκό Έτος 2011-2012 ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ KΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ http://www.cslab.ece.ntua.gr Λειτουργικά

Διαβάστε περισσότερα

Εζληθό Μεηζόβην Πνιπηερλείν Σρνιή Ηιεθηξνιόγσλ Μερ. θαη Μεραληθώλ Υπνινγηζηώλ Εξγαζηήξην Υπνινγηζηηθώλ Σπζηεκάησλ.

Εζληθό Μεηζόβην Πνιπηερλείν Σρνιή Ηιεθηξνιόγσλ Μερ. θαη Μεραληθώλ Υπνινγηζηώλ Εξγαζηήξην Υπνινγηζηηθώλ Σπζηεκάησλ. Εζληθό Μεηζόβην Πνιπηερλείν Σρνιή Ηιεθηξνιόγσλ Μερ. θαη Μεραληθώλ Υπνινγηζηώλ Εξγαζηήξην Υπνινγηζηηθώλ Σπζηεκάησλ 4 ε Εξγαζηεξηαθή Άζθεζε: Φξνλνδξνκνιόγεζε Λεηηνπξγηθά Σπζηήκαηα Υπνινγηζηώλ 6ν Εμάκελν,

Διαβάστε περισσότερα

Σήματα (Signals) Προγραμματισμός II 1

Σήματα (Signals) Προγραμματισμός II 1 Σήματα (Signals) Προγραμματισμός II 1 lalis@inf.uth.gr Τι είναι ένα σήμα; Το σήμα είναι μια ειδοποίηση που στέλνεται στην διεργασία που εκτελεί ένα πρόγραμμα Μπορεί να προκύψει για διάφορους λόγους, π.χ.

Διαβάστε περισσότερα

Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος

Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ KΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ http://www.cslab.ece.ntua.gr Λειτουργικά

Διαβάστε περισσότερα

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Διεργασίες και Νήματα Εργαστηριακές Ασκήσεις

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Διεργασίες και Νήματα Εργαστηριακές Ασκήσεις ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Διεργασίες και Νήματα Εργαστηριακές Ασκήσεις Υλικό από: Modern Operating Systems Laboratory Exercises, Shrivakan Mishra Σύνθεση Κ.Γ. Μαργαρίτης, Τμήμα Εφαρμοσμένης Πληροφορικής, Πανεπιστήμιο

Διαβάστε περισσότερα

Προγραμματισμός συστημάτων UNIX/POSIX. Διεργασίες (processes)

Προγραμματισμός συστημάτων UNIX/POSIX. Διεργασίες (processes) Προγραμματισμός συστημάτων UNIX/POSIX Διεργασίες (processes) Δομή αρχείου προγράμματος Πρόγραμμα (program) ονομάζεται το εκτελέσιμο αρχείο που βρίσκεται αποθηκευμένο στο δίσκο (π.χ. το a.out, ή το ls ή

Διαβάστε περισσότερα

Σήματα (Signals) Προγραμματισμός II 1

Σήματα (Signals) Προγραμματισμός II 1 Σήματα (Signals) Προγραμματισμός II 1 lalis@inf.uth.gr Τι είναι ένα σήμα; Το σήμα είναι μια ειδοποίηση Μπορεί να προκύψει για διάφορους λόγους Π.χ., εξαίρεση αριθμητικής πράξης, τερματισμός διεργασίας

Διαβάστε περισσότερα

Προγραμματισμός συστημάτων UNIX/POSIX. Διαδιεργασιακή επικοινωνία: αγωγοί (IPC inter-process communication: pipes)

Προγραμματισμός συστημάτων UNIX/POSIX. Διαδιεργασιακή επικοινωνία: αγωγοί (IPC inter-process communication: pipes) Προγραμματισμός συστημάτων UNIX/POSIX Διαδιεργασιακή επικοινωνία: αγωγοί (IPC inter-process communication: pipes) Επικοινωνία μεταξύ διεργασιών γονέα-παιδιού Κατά κάποιο τρόπο, θα δημιουργήσουμε ένα τύπο

Διαβάστε περισσότερα

Σήματα (Signals) Προγραμματισμός II 1

Σήματα (Signals) Προγραμματισμός II 1 Σήματα (Signals) Προγραμματισμός II 1 lalis@inf.uth.gr Τι είναι ένα σήμα; Το σήμα είναι μια ειδοποίηση που στέλνεται στην διεργασία που εκτελεί ένα πρόγραμμα Μπορεί να προκύψει για διάφορους λόγους, π.χ.

Διαβάστε περισσότερα

Εκφωνήσεις ασκήσεων εργαστηρίου 1

Εκφωνήσεις ασκήσεων εργαστηρίου 1 Τμήμα Μηχανικών Πληροφορικής Τ.Ε. Σχολή Τεχνολογικών Εφαρμογών Ακαδημαϊκό έτος 2016-2017 ΤΕΙ Ηπείρου - Άρτα Κατανεμημένα και Παράλληλα Συστήματα (εργαστήριο) Γκόγκος Χρήστος Εκφωνήσεις ασκήσεων εργαστηρίου

Διαβάστε περισσότερα

Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκό Έτος Κανονική Εξέταση Λύσεις

Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκό Έτος Κανονική Εξέταση Λύσεις ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ KΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ http://www.cslab.ece.ntua.gr Λειτουργικά

Διαβάστε περισσότερα

Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος

Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ KΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ http://www.cslab.ece.ntua.gr Λειτουργικά

Διαβάστε περισσότερα

Διάλεξη 14: Διεργασίες: Έλεγχος & Σήματα (Processes: Control & Signals)

Διάλεξη 14: Διεργασίες: Έλεγχος & Σήματα (Processes: Control & Signals) ΕΠΛ371 - Προγραμματισμός Συστημάτων Διάλεξη 14: Διεργασίες: Έλεγχος & Σήματα (Processes: Control & Signals) (Κεφάλαιο 8,10 - Stevens & Rago) Δημήτρης Ζεϊναλιπούρ 14-1 Περιεχόμενο Διάλεξης A. Η οικογένεια

Διαβάστε περισσότερα

Λειτουργικά Συστήματα (ΗΥ-345) Χειμερινό Εξάμηνο

Λειτουργικά Συστήματα (ΗΥ-345) Χειμερινό Εξάμηνο Λειτουργικά Συστήματα (ΗΥ-345) Χειμερινό Εξάμηνο 2018-2019 Άσκηση 1 Φροντιστήριο: 05/10/2018 Παράδοση: 18/10/2018 Υλοποίηση Linux C Shell ΤΑ : shevtsov(shevtsov@csd.uoc.gr) Ώρες Γραφείου : Δευτέρα 14:00-16:00

Διαβάστε περισσότερα

Λειτουργικά Συστήματα

Λειτουργικά Συστήματα Λειτουργικά Συστήματα Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No:07 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής Υπολογιστών

Διαβάστε περισσότερα

Λύβας Χρήστος Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος

Λύβας Χρήστος Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ IΙ Λύβας Χρήστος chrislibas@ssl-unipi.gr Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος >_ ΔΙΕΡΓΑΣΙΕΣ +- Με τον όρο διεργασία στο UNIX εννοούμε τη δυναμικη πράξη της

Διαβάστε περισσότερα

Εργαστήριο Λειτουργικών Συστημάτων 8ο εξάμηνο, Ακαδημαϊκή περίοδος

Εργαστήριο Λειτουργικών Συστημάτων 8ο εξάμηνο, Ακαδημαϊκή περίοδος ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ KΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ http://www.cslab.ece.ntua.gr Εργαστήριο

Διαβάστε περισσότερα

Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκό Έτος 2011-2012

Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκό Έτος 2011-2012 ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ KΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ http://www.cslab.ece.ntua.gr Λειτουργικά

Διαβάστε περισσότερα

Διεργασίες και Νήματα (2/2)

Διεργασίες και Νήματα (2/2) Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων Διεργασίες και Νήματα (2/2) Λειτουργικά Συστήματα Υπολογιστών 7ο Εξάμηνο, 2016-2017 Νήματα

Διαβάστε περισσότερα

Θέτοντας και επιστρέφοντας την τιµή της προτεραιότητας διεργασίας

Θέτοντας και επιστρέφοντας την τιµή της προτεραιότητας διεργασίας Θέτοντας και επιστρέφοντας την τιµή της προτεραιότητας διεργασίας Το επίπεδο προτεραιότητας µιας διεργασίας µπορεί να αλλάξει µε χρήση της συνάρτησης nice. Κάθε διεργασία διαθέτει µια τιµή που καλείται

Διαβάστε περισσότερα

4 η ιάλεξη: Signals UDP Sockets

4 η ιάλεξη: Signals UDP Sockets Εργαστήριο ικτύων Υπολογιστών 4 η ιάλεξη: ικτυακός Προγραμματισμός Signals UDP Sockets TCP sockets και signals Όταν σε ένα TCP server κάνουμε fork (γεννάμε διεργασίες-παιδιά servers για να εξυπηρετήσουμε

Διαβάστε περισσότερα

Εισαγωγή εκτελέσιμου κώδικα σε διεργασίες

Εισαγωγή εκτελέσιμου κώδικα σε διεργασίες 0x375 - Thessaloniki Tech Talks Sessions Event 0x2 19 Μαρτίου 2010 Περιεχόμενα 1 Εισαγωγή 2 Η κλήση συστήματος ptrace 3 Νήματα 4 Το πρόγραμμα εισαγωγής κώδικα prez 5 Επίλογος Γιατί; Πολλές φορές θέλουμε

Διαβάστε περισσότερα

Κεφάλαιο 11 Διαχείριση Διεργασιών

Κεφάλαιο 11 Διαχείριση Διεργασιών Κεφάλαιο 11 Διαχείριση Διεργασιών Κάθε πρόγραμμα που τρέχει λέγεται διεργασία. Οι διεργασίες ποικίλουν από πράγματα σαν το X παραθυρικό σύστημα εως προγράμματα συστήματος (δαίμονες) που ξεκινούν με την

Διαβάστε περισσότερα

Εργαστήριο Λειτουργικών Συστημάτων 8ο εξάμηνο, Ακαδημαϊκή περίοδος

Εργαστήριο Λειτουργικών Συστημάτων 8ο εξάμηνο, Ακαδημαϊκή περίοδος ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ KΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ http://www.cslab.ece.ntua.gr Εργαστήριο

Διαβάστε περισσότερα

Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκό Έτος

Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκό Έτος ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ KΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ http://www.cslab.ece.ntua.gr Λειτουργικά

Διαβάστε περισσότερα

Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος 2010-2011

Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος 2010-2011 ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ KΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ http://www.cslab.ece.ntua.gr Λειτουργικά

Διαβάστε περισσότερα

ιεργασίες και νήµατα Προγραµµατισµός ΙΙΙ 1 lalis@inf.uth.gr

ιεργασίες και νήµατα Προγραµµατισµός ΙΙΙ 1 lalis@inf.uth.gr ιεργασίες και νήµατα Προγραµµατισµός ΙΙΙ 1 lalis@inf.uth.gr Η έννοια της διεργασίας ιεργασία (process) είναι ο µηχανισµός εκτέλεσης ενός προγράµµατος σε ένα λειτουργικό σύστηµα. Η διεργασία είναι µια ενεργή

Διαβάστε περισσότερα

Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκό Έτος

Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκό Έτος ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ KΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ http://www.cslab.ece.ntua.gr Λειτουργικά

Διαβάστε περισσότερα

Λειτουργικά Συστήματα (ΗΥ321)

Λειτουργικά Συστήματα (ΗΥ321) Λειτουργικά Συστήματα (ΗΥ321) Διάλεξη 2: Διεργασίες και Νήματα Διαδικαστικά 2 Γραφτήκατε στη λίστα; Σχηματίστε ομάδες (για το project)! Στο προηγούμενο επεισόδιο 3 Τι είναι λειτουργικό; Γενιές ΛΣ Βασικές

Διαβάστε περισσότερα

Παράδειγµα χρήσης perror, errno (πρόγραµµα errors_demo.c)

Παράδειγµα χρήσης perror, errno (πρόγραµµα errors_demo.c) Χειρισµός Λαθών 1 Παράδειγµα χρήσης perror, errno (πρόγραµµα errors_demo.c) 2 Είσοδος/Έξοδος Χαµηλού Επιπέδου 3 Είσοδος/Έξοδος Χαµηλού Επιπέδου (συν.) Αυτό αργότερα στο εξάµηνο 4 Κλήση συστήµατος open

Διαβάστε περισσότερα

$./jms console -w <jms in> -r <jms out> -o <operations file> namedpipe. (standard input).

$./jms console -w <jms in> -r <jms out> -o <operations file> namedpipe. (standard input). Κ24: Προγραμματισμός Συστήματος 2η Εργασία Εαρινό Εξάμηνο 2017 Προθεσμία Υποβολής: Κυριακή 30 Απριλίου 2017 Ωρα 23:59 Εισαγωγή στην Εργασία: Ο στόχος της εργασίας αυτής είναι να εξοικειωθείτε με την δημιουργία

Διαβάστε περισσότερα

Εικονική Μνήμη (1/2)

Εικονική Μνήμη (1/2) Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων Εικονική Μνήμη (1/2) Λειτουργικά Συστήματα Υπολογιστών 7ο Εξάμηνο, 2016-2017 Εικονική Μνήμη

Διαβάστε περισσότερα

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ II. Υφαντόπουλος Νικόλαος Υποψήφιος Διδάκτορας Contact:

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ II. Υφαντόπουλος Νικόλαος Υποψήφιος Διδάκτορας Contact: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ II Υφαντόπουλος Νικόλαος Υποψήφιος Διδάκτορας Contact: nifantop@unipi.gr It seems very simple. It is very simple. But if you don t know what the key is its virtually indecipherable.

Διαβάστε περισσότερα

Λειτουργικά Συστήματα

Λειτουργικά Συστήματα Λειτουργικά Συστήματα Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No:09 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής Υπολογιστών

Διαβάστε περισσότερα

Προγραμματισμός Διαχείρισης Συστημάτων ΙΙ

Προγραμματισμός Διαχείρισης Συστημάτων ΙΙ Προγραμματισμός Διαχείρισης Συστημάτων ΙΙ Μάθημα 3ο Έλεγχος διεργασιών και Χρονοπρογραμματισμός εργασιών Μιχαηλίδης Παναγιώτης Περιεχόμενα Έλεγχος διεργασιών Συστατικά μιας διεργασίας Κύκλος ζωής μιας

Διαβάστε περισσότερα

Προγραμματισμός συστημάτων UNIX/POSIX

Προγραμματισμός συστημάτων UNIX/POSIX Προγραμματισμός συστημάτων UNIX/POSIX Προχωρημένη διαδιεργασιακή επικοινωνία: επώνυμοι αγωγοί (FIFOs) ουρές μηνυμάτων (message queues) κοινόχρηστη μνήμη (shared memory) Ανάγκη Ότι είδαμε μέχρι τώρα μπορεί

Διαβάστε περισσότερα

Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος 2010-2011

Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος 2010-2011 ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ KΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ http://www.cslab.ece.ntua.gr Θέμα

Διαβάστε περισσότερα

Παράλληλη Επεξεργασία

Παράλληλη Επεξεργασία Παράλληλη Επεξεργασία Φροντιστήριο: Εισαγωγή στα Πολυεπεξεργαστικά Συστήματα Διερασίες και Νήματα σε Πολυεπεξεργαστικά Συστήματα Εργαστήριο Πληροφοριακών Συστημάτων Υψηλής Επίδοσης Parallel and Distributed

Διαβάστε περισσότερα

Λειτουργικά Συστήματα (Λ/Σ)

Λειτουργικά Συστήματα (Λ/Σ) Λειτουργικά Συστήματα (Λ/Σ) Βασικές Έννοιες Λειτουργικών Συστημάτων Βασίλης Σακκάς 13/11/2013 1 ΒασικέςΈννοιεςΛ/Σ Η επικοινωνία μεταξύ Λ/Σ και των προγραμμάτων του χρήστη γίνεται μέσω του συνόλου των «εκτεταμένων

Διαβάστε περισσότερα

Unix: Εντολές, οργάνωση και χειρισµός αρχείων, διεργασίες

Unix: Εντολές, οργάνωση και χειρισµός αρχείων, διεργασίες Unix: Εντολές, οργάνωση και χειρισµός αρχείων, διεργασίες Σύνταξη εντολών Περιεχόµενα Οργάνωση και χειρισµός αρχείων Μπαλαντέρ ικαιώµατα χρήσης αρχείων και οµάδες χρηστών Έλεγχος διεργασιών Σύνταξη εντολών

Διαβάστε περισσότερα

Τµήµα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Σεπτέµβριος 2013

Τµήµα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Σεπτέµβριος 2013 Γράψτε όλες τις απαντήσεις σας σε αυτό το φυλλάδιο Οδηγίες για Α: Διαβάστε προσεκτικά όλες τις επιλογές σηµειώστε µε Χ (το πολύ) µια από αυτές. Μην επιλέγετε «στην τύχη» οι λανθασµένες απαντήσεις βαθµολογούνται

Διαβάστε περισσότερα

Αγωγοί/Σωλήνες (Pipes) Προγραμματισμός II 1

Αγωγοί/Σωλήνες (Pipes) Προγραμματισμός II 1 Αγωγοί/Σωλήνες (Pipes) Προγραμματισμός II 1 lalis@inf.uth.gr Τι είναι ένας αγωγός; Μηχανισμός/συσκευή επικοινωνίας διεργασιών Μετάδοση μιας ροής από bytes (μονής κατεύθυνσης) First-in-first-out (FIFO):

Διαβάστε περισσότερα

Διαδιεργασιακή επικοινωνία (inter-process communication IPC) Προγραμματισμός II 1

Διαδιεργασιακή επικοινωνία (inter-process communication IPC) Προγραμματισμός II 1 Διαδιεργασιακή επικοινωνία (inter-process communication IPC) Προγραμματισμός II 1 lalis@inf.uth.gr Συνεργασία ανάμεσα σε διεργασίες Για ασφάλεια/ανεξαρτησία, το ΛΣ εξασφαλίζει πλήρη απομόνωση ανάμεσα στις

Διαβάστε περισσότερα

make Προγραμματισμός II 1

make Προγραμματισμός II 1 make Προγραμματισμός II 1 lalis@inf.uth.gr myprog.c preprocessor (cc1) /tmp/cczxt.i assembler (as) compiler (cc1) /tmp/cczxt.o /tmp/cczxt.s linker (ld) myprog Προγραμματισμός II 2 lalis@inf.uth.gr Δοκιμάστε

Διαβάστε περισσότερα

Προγραμματισμός Ι. Πολλαπλά Αρχεία. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Πολλαπλά Αρχεία. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Πολλαπλά Αρχεία Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Πολλαπλά Αρχεία Όταν γράφουμε μεγάλα προγράμματα θέλουμε να έχουμε ανεξάρτητα κομμάτια κώδικα

Διαβάστε περισσότερα

Λειτουργικά Συστήματα

Λειτουργικά Συστήματα Λειτουργικά Συστήματα Δρ. Βασίλης Ταμπακάς Δρ. Ιωάννης Ε. Λιβιέρης Τμήμα Μηχανικών Πληροφορικής Τ.Ε. Περιεχόμενα Περιεχόμενα... 1 1. Εισαγωγή, Θεωρητική Υποδομή της Εργαστηριακής Άσκησης... 2 2. Εργαστηριακή

Διαβάστε περισσότερα

Εργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ

Εργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ Σχεδιασμός και υλοποίηση υποδομής σημείωσης διεργασιών στον

Διαβάστε περισσότερα

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ & ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Εισαγωγή στην χρήση πρωτογενών κλήσεων του UNIX Γ. ΠΑΠΑΚΩΝΣΤΑΝΤΙΝΟΥ

Διαβάστε περισσότερα

Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων. Συγχρονισμός

Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων. Συγχρονισμός Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων 3 η Εργαστηριακή Άσκηση: Συγχρονισμός Λειτουργικά Συστήματα Υπολογιστών 7ο Εξάμηνο, 2016-2017

Διαβάστε περισσότερα

Λειτουργικά Συστήματα. Ενότητα # 10: Προγραμματισμός UNIX Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Λειτουργικά Συστήματα. Ενότητα # 10: Προγραμματισμός UNIX Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής Λειτουργικά Συστήματα Ενότητα # 10: Προγραμματισμός UNIX Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του

Διαβάστε περισσότερα

Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων. Συγχρονισμός

Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων. Συγχρονισμός Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων 3 η Εργαστηριακή Άσκηση: Συγχρονισμός Λειτουργικά Συστήματα Υπολογιστών 7ο Εξάμηνο, 2017-2018

Διαβάστε περισσότερα

ΕΡΓΑΣΤΗΡΙΟ 1 - ΣΗΜΕΙΩΣΕΙΣ

ΕΡΓΑΣΤΗΡΙΟ 1 - ΣΗΜΕΙΩΣΕΙΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2017-2018 ΧΕΙΜΕΡΙΝΟ ΕΞΑΜΗΝΟ ΜΑΘΗΜΑ: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Εισαγωγή ΕΡΓΑΣΤΗΡΙΟ 1 - ΣΗΜΕΙΩΣΕΙΣ Ένα πρόγραμμα σε C περιλαμβάνει μια ή περισσότερες συναρτήσεις

Διαβάστε περισσότερα

ΙΩΑΝΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΥ 2ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΠΑΡΑΣΚΕΥΗ 26 ΟΚΤΩΒΡΙΟΥ 2012 ΑΙΘΟΥΣΑ Β4

ΙΩΑΝΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΥ 2ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΠΑΡΑΣΚΕΥΗ 26 ΟΚΤΩΒΡΙΟΥ 2012 ΑΙΘΟΥΣΑ Β4 ΙΩΑΝΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΥ 2ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΠΑΡΑΣΚΕΥΗ 26 ΟΚΤΩΒΡΙΟΥ 2012 ΑΙΘΟΥΣΑ Β4 1 Διαχείριση εργασιών fork(), exit(), exec() Επικοινωνία διεργασιών signals, sockets και client/server, shared memory Συγχρονισμός

Διαβάστε περισσότερα

Λειτουργικά Συστήματα. Διεργασίες & Inter-Process Communication

Λειτουργικά Συστήματα. Διεργασίες & Inter-Process Communication Λειτουργικά Συστήματα Διεργασίες & Inter-Process Communication Unix Processes Programs vs. Processes Οι υπολογιστές εκτελούν προγράμματα Μία διεργασία (process) είναι ένα instance ενός προγράμματος, καθώς

Διαβάστε περισσότερα

ΕΝΟΤΗΤΑ 4 Λήψη Αποφάσεων και Συναρτήσεις Ελέγχου

ΕΝΟΤΗΤΑ 4 Λήψη Αποφάσεων και Συναρτήσεις Ελέγχου ΕΝΟΤΗΤΑ 4 Λήψη Αποφάσεων και Συναρτήσεις Ελέγχου Σκοπός και περίγραμμα της Ενότητας 4 Σκοπός της παρουσίασης Να μελετήσουμε τις συναρτήσεις που ελέγχουν την ροή και την εκτέλεση ενός προγράμματος Σύνοψη

Διαβάστε περισσότερα

Ιδιοκτησία Αντικειµένου

Ιδιοκτησία Αντικειµένου Software Transactional Memory H STM υποστηρίζει την εκτέλεση δοσοληψιών από τις διεργασίες, οι οποίες περιέχουν λειτουργίες που ο χρήστης θέλει να εκτελέσει στα διαµοιραζόµενα αντικείµενα. H STM εγγυάται

Διαβάστε περισσότερα

Δομημένος Προγραμματισμός

Δομημένος Προγραμματισμός ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Δομημένος Προγραμματισμός Ενότητα: Συναρτήσεις θεωρία Δ. Ε. Μετάφας Τμ. Ηλεκτρονικών Μηχ. Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

Σημειώσεις όγδοης εβδομάδας

Σημειώσεις όγδοης εβδομάδας Σημειώσεις όγδοης εβδομάδας Για να την δημιουργία σειριακών αρχείων, χρησιμοποιείται η fopen(filename, w ). Το αρχείο δημιουργείται στον ίδιο φάκελο που τρέχει το εκτελέσιμο πρόγραμμα. Το παρακάτω πρόγραμμα,

Διαβάστε περισσότερα

ΠΕΡΙΕΧΟΜΕΝΑ ΜΕΡΟΣ I. 1. Εισαγωγή 3 ΠΡΟΛΟΓΟΣ

ΠΕΡΙΕΧΟΜΕΝΑ ΜΕΡΟΣ I. 1. Εισαγωγή 3 ΠΡΟΛΟΓΟΣ ΠΕΡΙΕΧΟΜΕΝΑ ΠΡΟΛΟΓΟΣ xiii ΜΕΡΟΣ I 1. Εισαγωγή 3 1.1 Περί Λειτουργικών Συστημάτων 3 1.1.1 Τι είναι Λειτουργικό Σύστημα (Operating System) 3 1.1.2 To UNIX 4 1.1.3 Η δομή ενός Λειτουργικού Συστήματος 5 1.2

Διαβάστε περισσότερα

Εικονική Μνήμη (Virtual Memory) Προγραμματισμός II 1

Εικονική Μνήμη (Virtual Memory) Προγραμματισμός II 1 Εικονική Μνήμη (Virtual Memory) Προγραμματισμός II 1 lalis@inf.uth.gr Μνήμη και επικοινωνία διεργασιών Κάθε διεργασία έχει δική της ιδιωτική μνήμη Μια διεργασία δεν μπορεί να γράψει/διαβάσει από/σε θέσεις

Διαβάστε περισσότερα

Λειτουργικά Συστήματα

Λειτουργικά Συστήματα Δρ. Βασίλης Ταμπακάς Δρ. Ιωάννης Ε. Λιβιέρης Τμήμα Μηχανικών Πληροφορικής Τ.Ε Περιεχόμενα Περιεχόμενα... 1 1. Εισαγωγή, Θεωρητική Υποδομή Εργαστηριακής Άσκησης... 2 2. Εργαστηριακή υποδομή εργαστηριακής

Διαβάστε περισσότερα

Μεταγλωττιστές 2018 Θέμα εργασίας

Μεταγλωττιστές 2018 Θέμα εργασίας Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Τομέας Τεχνολογίας Πληροφορικής & Υπολογιστών Εργαστήριο Τεχνολογίας Λογισμικού Μεταγλωττιστές 0 Θέμα εργασίας (1 ) https://courses.softlab.ntua.gr/compilers/

Διαβάστε περισσότερα

Το λειτουργικό σύστημα. Προγραμματισμός II 1

Το λειτουργικό σύστημα. Προγραμματισμός II 1 Το λειτουργικό σύστημα Προγραμματισμός II 1 lalis@inf.uth.gr Συστήματα υπολογιστών Ειδικού σκοπού συστήματα για μια συγκεκριμένη εφαρμογή η εφαρμογή είναι γνωστή εκ των προτέρων περιορισμένοι υπολογιστικοί

Διαβάστε περισσότερα

Παρουσίαση 5 ης Άσκησης:

Παρουσίαση 5 ης Άσκησης: Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων Παρουσίαση 5 ης Άσκησης: Θέματα Συγχρονισμού σε Σύγχρονα Πολυπύρηνα Συστήματα Ακ. Έτος

Διαβάστε περισσότερα

CE121 Προγραµµατισµός 2. Εισαγωγή σε Makefiles. CE121 -

CE121 Προγραµµατισµός 2. Εισαγωγή σε Makefiles. CE121 - CE121 Προγραµµατισµός 2 Εισαγωγή σε Makefiles 1 Η διαδικασία µεταγλώττισης myprog.c gcc myprog 2 Η διαδικασία µεταγλώττισης myprog.c preprocessor (cc1) /tmp/cczxt.i assembler (as) compiler (cc1) /tmp/cczxt.o

Διαβάστε περισσότερα

Παρουσίαση 5 ης Άσκησης:

Παρουσίαση 5 ης Άσκησης: Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων Παρουσίαση 5 ης Άσκησης: Θέματα Συγχρονισμού σε Σύγχρονα Πολυπύρηνα Συστήματα Ακ. Έτος

Διαβάστε περισσότερα

Εργαστήριο Λειτουργικών Συστημάτων. Minix Overview

Εργαστήριο Λειτουργικών Συστημάτων. Minix Overview Εργαστήριο Λειτουργικών Συστημάτων Minix Overview Σύνοψη 5ης ιάλεξης Λειτουργικό Σύστημα Minix Οργάνωση του Λειτουργικού Συστήματος Οργάνωση πηγαίου κώδικα Minix recompilation Σύνοψη Μαθήματος Σύνοψη Μαθήματος

Διαβάστε περισσότερα

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΔΗΜΙΟΥΡΓΙΑ ΔΙΕΡΓΑΣΙΑΣ WEB-SERVER ΜΕ ΝΗΜΑΤΑ (THREADS) ΣΕ LINUX ΚΑΛΟΠΗΤΑΣ ΚΩΝΣΤΑΝΤΙΝΟΣ - 4190 ΣΒΕΝΤΖΟΥΡΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ - 4086 ΔΗΜΟΚΡΙΤΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΡΑΚΗΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΞΑΝΘΗΣ

Διαβάστε περισσότερα

File Management και I/O στο UNIX

File Management και I/O στο UNIX File Management και I/O στο UNIX Λειτουργικά Συστήματα Ντίρλης Νικόλαος- ΕΤΥ Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πάτρας Συστήματα 2013-2014 1 Εισαγωγή Ένα από τα βασικά στοιχεία της επιστήμης της Πληροφορικής

Διαβάστε περισσότερα

Πρότυπη Εργαστηριακή Άσκηση

Πρότυπη Εργαστηριακή Άσκηση Πρότυπη Εργαστηριακή Άσκηση Στα πλαίσια της παρούσας προπαρασκευαστικής άσκησης καλείστε να υλοποιήσετε μία κλήση συστήματος (system call) η οποία θα δέχεται ως είσοδο το path ενός αρχείου και θα επιστρέφει

Διαβάστε περισσότερα

Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi

Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi Προϋποθέσεις για Αµοιβαίο Αποκλεισµό Μόνο µία διεργασία σε κρίσιµο τµήµασεκοινό πόρο Μία διεργασία που σταµατά σε µη κρίσιµο σηµείο δεν πρέπει να επιρεάζει τις υπόλοιπες διεργασίες εν πρέπει να υπάρχει

Διαβάστε περισσότερα

Κεφάλαιο , 3.2: Συναρτήσεις II. (Διάλεξη 12)

Κεφάλαιο , 3.2: Συναρτήσεις II. (Διάλεξη 12) Κεφάλαιο 3.5-3.6, 3.2: Συναρτήσεις II (Διάλεξη 12) 12-1 Ανασκόπηση Δομής Προγράμματος με Συναρτήσεις 1 void PrintMessage (); Πρότυπο (Δήλωση) Συνάρτησης (Δηλώνουν τι επιπλέον συναρτήσεις θα χρησιμοποιήσουμε

Διαβάστε περισσότερα

ΤΕΙΘ ΣΤΕΦ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΑ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ (UNIX) ΕΡΓΑΣΤΗΡΙΟ. 6o ΕΡΓΑΣΤΗΡΙΟ

ΤΕΙΘ ΣΤΕΦ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΑ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ (UNIX) ΕΡΓΑΣΤΗΡΙΟ. 6o ΕΡΓΑΣΤΗΡΙΟ 6o ΕΡΓΑΣΤΗΡΙΟ ΣΤΟΧΟΣ Διεργασίες, ανακατεύθυνση, διασωλήνωση, φίλτρα. ΑΣΚΗΣΗ 1 1. Να χρησιμοποιήσετε την εντολή ps για να δείτε τις διεργασίες που εκτελούνται στο σύστημα με όλες τις δυνατές επιλογές (π.χ.

Διαβάστε περισσότερα

Εισαγωγή στην Πληροφορική

Εισαγωγή στην Πληροφορική Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Εισαγωγή στην Πληροφορική Ενότητα 8: Λειτουργικά Συστήματα Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά

Διαβάστε περισσότερα

Εργαστήριο Λειτουργικών Συστημάτων. Inside System Calls

Εργαστήριο Λειτουργικών Συστημάτων. Inside System Calls Εργαστήριο Λειτουργικών Συστημάτων Inside System Calls Ιεράρχηση των επιπέδων του Minix Οι user processes χρησιμοποιούν το 2ο επίπεδο για να αξιοποιήσουν τις λειτουργίες του Λ.Σ. Οι shared libraries κάνουν

Διαβάστε περισσότερα

Εικονική Μνήμη (Virtual Memory) Προγραμματισμός II 1

Εικονική Μνήμη (Virtual Memory) Προγραμματισμός II 1 Εικονική Μνήμη (Virtual Memory) Προγραμματισμός II 1 lalis@inf.uth.gr Μνήμη και επικοινωνία διεργασιών Κάθε διεργασία έχει δική της ιδιωτική μνήμη Μια διεργασία δεν μπορεί να γράψει/διαβάσει από/σε θέσεις

Διαβάστε περισσότερα

Προγραμματισμός συστημάτων UNIX/POSIX. Ανακατευθύνσεις (redirections)

Προγραμματισμός συστημάτων UNIX/POSIX. Ανακατευθύνσεις (redirections) Προγραμματισμός συστημάτων UNIX/POSIX Ανακατευθύνσεις (redirections) Shell & ανακατεύθυνση εισόδου Κατά την εκτέλεση ενός προγράμματος, η είσοδος και η έξοδος ενός προγράμματος μπορούν να ανακατευθυνθούν

Διαβάστε περισσότερα

Μερικές άλλες χρήσιμες εντολές

Μερικές άλλες χρήσιμες εντολές 1 Μερικές άλλες χρήσιμες εντολές whoami (Εμφανίζει το όνομα του τρέχοντος χρήστη) pwd (Εμφανίζει το όνομα του τρέχοντος καταλόγου) cat text file name (Παρουσιάζει στην οθόνη το περιεχόμενο ενός αρχείου

Διαβάστε περισσότερα

Εργαστήριο ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ UNIX

Εργαστήριο ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ UNIX Εργαστήριο ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ UNIX Εισαγωγή Ξεκινάμε την εργαστηριακή μελέτη των Λειτουργικών Συστημάτων των Υπολογιστικών Συστημάτων εξετάζοντας αρχικά το λειτουργικό σύστημα Unix. Σκοπός του εργαστηρίου

Διαβάστε περισσότερα

Κεφάλαιο 3.5-3.6, 3.2: Συναρτήσεις II. ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Κεφάλαιο 3.5-3.6, 3.2: Συναρτήσεις II. ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Κεφάλαιο 3.5-3.6, 3.2: Συναρτήσεις II ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ 12-1 Ανασκόπηση οµής Προγράµµατος µε Συναρτήσεις #include 1 void PrintMessage (); Πρότυπο ( ήλωση) Συνάρτησης (

Διαβάστε περισσότερα

Μεταγλωττιστές 2017 Θέμα εργασίας

Μεταγλωττιστές 2017 Θέμα εργασίας Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Τομέας Τεχνολογίας Πληροφορικής & Υπολογιστών Εργαστήριο Τεχνολογίας Λογισμικού Μεταγλωττιστές 2017 Θέμα εργασίας (1932

Διαβάστε περισσότερα

ιαφάνειες παρουσίασης #6 (β)

ιαφάνειες παρουσίασης #6 (β) ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ http://www.softlab.ntua.gr/~nickie/courses/progtech/ ιδάσκοντες: Γιάννης Μαΐστρος (maistros@cs.ntua.gr) Στάθης Ζάχος (zachos@cs.ntua.gr) (nickie@softlab.ntua.gr) ιαφάνειες παρουσίασης

Διαβάστε περισσότερα