Λ10 Παράλληλος & Κατανεμημένος Προγραμματισμός Μάθημα 5 ο & 6 ο 19 & 24/11/2009
|
|
- Σωφρονία Πολίτης
- 7 χρόνια πριν
- Προβολές:
Transcript
1 Λ10 Παράλληλος & Κατανεμημένος Προγραμματισμός 2009 Μάθημα 5 ο & 6 ο 19 & 24/11/2009 Προγραμματισμός κοινής μνήμης: user-level threads, cilk Β. Δημακόπουλος
2 Νήματα επιπέδου χρήστη (user-level threads)
3 Κατθγορίεσ Νθμάτων Υπάρχουν δφο κατθγορίεσ νθμάτων Νιματα επιπζδου πυρινα (kernel level threads) Νιματα επιπζδου χριςτθ (user level threads) Η διαφορά τουσ βρίςκεται ςτο κατά πόςο το ίδιο το λειτουργικό γνωρίηει τθν φπαρξθ νθμάτων ι όχι #3
4 Νιματα Επιπζδου Πυρινα Τα ςφγχρονα λειτουργικά ςυςτιματα προςφζρουν τθ δυνατότθτα δθμιουργίασ νθμάτων επιπζδου πυρινα (kernel-level threads) Ο πυρινασ διαχωρίηει τθν ζννοια τθσ διεργαςίασ από τα νιματα Διεργαςία: οι πόροι που χρειάηεται ζνα πρόγραμμα για να εκτελεςτεί Νιματα: κατάςταςθ εκτζλεςθσ τθσ διεργαςίασ Ζνα πρόγραμμα αποτελείται από μία διεργαςία και από ζνα ι περιςςότερα νιματα επιπζδου πυρινα Το λειτουργικό ςφςτθμα προςφζρει μια επιπλζον κλιςθ ςυςτιματοσ για τθ δθμιουργία ενόσ νζου νιματοσ επιπζδου πυρινα ςτα πλαίςια μιασ διεργαςίασ Τα νιματα επιπζδου πυρινα είναι οντότθτεσ αναγνωρίςιμεσ από το λειτουργικό ςφςτθμα Ο χρονοπρογραμματιςτισ του λειτουργικοφ ανακζτει τα νιματα ςτουσ φυςικοφσ επεξεργαςτζσ για να εκτελεςτοφν #4
5 Νιματα Επιπζδου Πυρινα Η δθμιουργία, καταςτροφι και διαχείριςθ των νθμάτων επιπζδου πυρινα απαιτεί τθ χριςθ κατάλλθλων κλιςεων ςυςτιματοσ Υψθλόσ κόςτοσ λόγω τθσ μετάβαςθ του επεξεργαςτι από το επίπεδο χριςτθ ςτο επίπεδο πυρινα Κάποιεσ εφαρμογζσ απαιτοφν χριςθ μεγάλου αρικμοφ νθμάτων Εκμετάλλευςθ λεπτά καταμεριςμζνου παραλλθλιςμοφ (fine-grained parallelism) Εκτζλεςθ εμφωλευμζνων (nested) βρόχων παραλλθλιςμοφ Καλφτερθ εξιςορρόπθςθ φορτίου Αξιοποίθςθ αναδρομικϊν αλγορίκμων Επικάλυψθ υπολογιςμϊν με επικοινωνία Το κόςτοσ δθμιουργίασ διαχείριςθσ των νθμάτων επιπζδου πυρινα υπερκαλφπτει το όφελοσ χριςθσ τουσ #5
6 Νιματα Επιπζδου Χριςτθ Εναλλακτικι προςζγγιςθ: δθμιουργία νθμάτων ςτο επίπεδο χριςτθ Τα νιματα αποτελοφνται από ζνα περιγραφζα (descriptor) που περιζχει Τισ τιμζσ των καταχωρθτϊν του νιματοσ (registers, π.χ. τον program counter) Μια περιοχι μνιμθσ που χρθςιμοποιείται ωσ ςτοίβα (stack) Τα νιματα επιπζδου χριςτθ είναι οντότθτεσ μη αναγνωρίςιμεσ από το λειτουργικό ςφςτημα Δθμιουργοφνται, διαχειρίηονται, χρονοδρομολογοφνται και καταςτρζφονται αποκλειςτικά από τον χριςτθ #6
7 Νιματα Επιπζδου Χριςτθ Για κάκε εργαςία που μπορεί να εκτελεςτεί παράλλθλα δθμιουργείται ζνα νιμα επιπζδου χριςτθ Το νιμα αυτό εκτελείται από κάποιο νιμα επιπζδου πυρινα Τα νιματα επιπζδου πυρινα λειτουργοφν ωσ ιδεατοί επεξεργαςτζσ (virtual processors) οι οποίοι εκτελοφν νιματα επιπζδου χριςτθ Αντίςτοιχα οι φυςικοί επεξεργαςτζσ εκτελοφν νιματα επιπζδου πυρινα Επομζνωσ θ δθμιουργία και εκτζλεςθ πολλϊν νθμάτων επιπζδου χριςτθ με ζνα νιμα επιπζδου πυρινα δεν ςθμαίνει παράλλθλθ εκτζλεςθ Τα νιματα επιπζδου χριςτθ κα εκτελεςτοφν ςε ζναν φυςικό επεξεργαςτι #7
8 Βαςικζσ Ιδιότθτεσ Νιματα επιπζδου πυρινα Υψθλόσ κόςτοσ: οι πράξεισ νθμάτων είναι κλιςεισ ςυςτιματοσ Δρομολόγθςθ από το λειτουργικό ςφςτθμα Εκμετάλλευςθ πολλϊν επεξεργαςτϊν Αν ζνα νιμα μπλοκάρει, τα υπόλοιπα νιματα ςυνεχίηουν τθν εκτζλεςθ τουσ Νιματα επιπζδου χριςτθ Χαμθλό κόςτοσ: οι πράξεισ νθμάτων είναι απλζσ κλιςεισ ςυναρτιςεων Δρομολόγθςθ από τθ βιβλιοκικθ, ςτο χρόνο εκτζλεςθσ τθσ διεργαςίασ Δεν εκμεταλλεφονται πολλαπλοφσ επεξεργαςτζσ Αν ζνα νιμα μπλοκάρει, τότε μπλοκάρει όλθ θ διεργαςία Κατθγορίεσ δρομολόγθςθσ Χωρίσ προεκχϊρθςθ: με ελεγχόμενθ εναλλαγι (π.χ. yield) Με προεκχϊρθςθ: αυτόματθ εναλλαγι, π.χ. με κάποιον timer #8
9 Μοντζλα Υλοποίθςθσ Νθμάτων Μοντζλο ζνα-προσ-ζνα (1:1) Κάκε νιμα τθσ διεργαςίασ αντιςτοιχεί ςε ζνα νιμα επιπζδου πυρήνα Μοντζλο πολλά-προσ-ζνα (Μ:1) Κάκε νιμα τθσ διεργαςίασ αντιςτοιχεί ςε ζνα νιμα επιπζδου χρήςτη Υπάρχει ζνα νιμα επιπζδου πυρινα που λειτουργεί ωσ ιδεατόσ επεξεργαςτισ (virtual processor) Μοντζλο πολλά-προσ-πολλά (Μ:Ν) Υβριδικό μοντζλο: Κάκε νιμα τθσ διεργαςίασ αντιςτοιχεί ςε ζνα νιμα επιπζδου χρήςτη Υπάρχουν πολλαπλοί ιδεατοί επεξεργαςτζσ #9
10 Απεικόνιςθ ζνα-προσ-ζνα (1:1) Νιμα 1 Οντότθτα Πυρινα 1 Stack Stack Registers Registers Νιμα 2 Οντότθτα Πυρινα 2 CPU 1 Stack Stack Registers Registers Νιμα 3 Νιμα 4 Οντότθτα Πυρινα 3 Οντότθτα Πυρινα 4 CPU 2 Heap Data Code #10
11 Απεικόνιςθ πολλά-προσ-ζνα (Μ:1) Stack Νιμα 1 Stack Νιμα 2 Νιμα 3 Νιμα 4 Οντότθτα Πυρινα 1 CPU 1 CPU 2 Stack Stack Heap Data Code Registers #11
12 Απεικόνιςθ πολλά-προσ-πολλά (Μ:Ν) Νιμα 1 Stack Stack Registers Νιμα 2 Οντότθτα Πυρινα 1 CPU 1 Stack Stack Registers Νιμα 3 Νιμα 4 Οντότθτα Πυρινα 2 CPU 2 Heap Data Code #12
13 Νιματα Δφο Επιπζδων (Μ:Ν) Πλεονεκτιματα Εκμετάλλευςθ πολλαπλϊν επεξεργαςτϊν του ςυςτιματοσ Η διεργαςία μπλοκάρει αν μπλοκάρουν Ν νιματα Χαμθλό κόςτοσ διαχείριςθσ νθμάτων επιπζδου χριςτθ Δθμιουργία ςυγκεκριμζνου πλικουσ νθμάτων επιπζδου πυρινα Ίςοσ με τον πραγματικό επικυμθτό παραλλθλιςμό Τα νιματα αυτά (ιδεατοί επεξεργαςτζσ) διατθροφνται κακϋ όλθ τθ διάρκεια εκτζλεςθσ του προγράμματοσ Τερματίηουν όταν τελειϊςει όλο το πρόγραμμα Δρομολόγθςθ δφο επιπζδων Λειτουργικό ςφςτθμα ιδεατοί επεξεργαςτζσ Βιβλιοκικθ νθμάτων νιματα χριςτθ Δθμιουργία νθμάτων επιπζδου χριςτθ: όςα είναι απαραίτθτα για να εκφραςτεί ο παραλλθλιςμόσ τθσ εφαρμογισ #13
14 Παραδείγματα Υλοποιιςεων Επιπζδου πυρινα POSIX Threads ςε Linux, Solaris, Windows Win32 Threads Επιπζδου χριςτθ GNU Pth Windows fibers Υβριδικό μοντζλο (Μ:Ν) POSIX Threads ςε AIX (IBM), HPUX PM2 Marcel threads PSthreads #14
15 Μθχανιςμοί για υλοποίθςθ νθμάτων χριςτθ Μθχανιςμοί υλοποίθςθσ μθ-μεταφζρςιμοι (assembly) setjmp/longjmp ucontext_t operations (makecontext, swapcontext) #15
16 setjmp - longjmp #include <setjmp.h> jmpbuf context; int setjmp(jmp_buf env); Αποκθκεφει το context ςτον buffer env και επιςτρζφει 0 Όταν αποκαταςτακεί το context (από τθ longjmp()), κα ςυνεχίςει θ εκτζλεςθ από το ίδιο ςθµείο. Τότε θ setjmp() επιςτρζφει τθν τιµι του ορίςματοσ val τθσ longjmp(). void longjmp(jmp_buf env, int val); Αποκακιςτά το context που ζχει αποκθκευτεί ςτον buffer env από προθγοφμενθ κλιςθ τθσ setjmp() Αν val==0 τότε θ setjmp επιςτρζφει 1 Αν val!=0 τότε θ setjmp επιςτρζφει val #16
17 setjmp - longjmp #include<setjmp.h> #include<stdio.h> int main(void) { int value; jmp_buf environment_buffer; value=setjmp(environment_buffer); if(value!=0) { printf("reached this point with value=%d.\n",value); exit(0); printf("calling function.\n"); some_function(environment_buffer); return 0; void some_function(jmp_buf env_buf) { longjmp(env_buf,5); #17
18 setjmp - longjmp Χριςθ για εναλλαγι από old_thread ςε new_thread switch(old_thread, new_thread) { if (setjmp(old_thread->context)!= 0) { longjmp(new_thread->context, 1); /* δεν επιςτρέφει ποτέ εδώ*/ /* εδώ θα επιςτρέψει η εκτέλεςη του οld_thread μετά από µία κλήςη τησ ςυνάρτηςησ longjmp(old_thread->context, 1); */ old_thread_work(); #18
19 makecontext -swapcontext #include <ucontext.h> ucontext_t context; Πεδία δομισ (μερικά): stack_t uc_stack: Η ςτοίβα που χρθςιμοποιείται από το context ucontext_t uc_mcontext: αναπαράςταςθ ενόσ context που ζχει ςωκεί Κλιςεισ int int getcontext(ucontext_t *ucp); setcontext(const ucontext_t *ucp); void makecontext(ucontext_t *ucp, (void *f)(),int argc,...); int swapcontext(ucontext_t *oucp, const ucontext_t *ucp); #19
20 makecontext -swapcontext #include <ucontext.h> ucontext_t auc,buc,mainuc; int main(void) { printf("start\n"); /* Set up context for thread A */ getcontext(&auc); auc.uc_stack.ss_size = 16 * 1024; auc.uc_stack.ss_sp = malloc(auc.uc_stack.ss_size); makecontext(&auc, a, 0); void a() { int i; for (i = 0; i < 10; i++) { printf("a"); swapcontext(&auc, &buc); /* switch to thread B */ printf("\nswitching to main\n"); swapcontext(&auc, &mainuc); /* switch to main thread */ void b() { int i; /* Set up context for thread B */ getcontext(&buc); buc.uc_stack.ss_size = 16 * 1024; buc.uc_stack.ss_sp = malloc(buc.uc_stack.ss_size); makecontext(&buc, b, 0); for (i = 0; i < 10; i++) { printf("b"); swapcontext(&buc, &auc); /* switch to thread A */ /* Switch to A */ getcontext(&mainuc); /* Save the context of main thread */ swapcontext(&mainuc, &auc); /* Switch to thread A */ printf("done\n"); /* Execution control returned to main thread */ return 0; #20
21 A simple user-level threads facility #include <ucontext.h> ucontext_t context_create(void (*func)(void *), void *arg) { ucontext_t *uc = malloc(sizeof(ucontext_t); getcontext(uc); /* A copy of current context */ uc->uc_stack.ss_size = 65536; /* Change its values */ uc->uc_stack.ss_sp = malloc(65536); makecontext(uc, func, 1, arg); /* Ready to use */ return (uc); void context_switch(ucontext_t *from, ucontext_t *to) { if (from!= NULL) swapcontext(from, to); /* Save current in from */ else setcontext(to); /* Current context is lost */ What happens at thread_exit()? /* There is a ready queue of threads */ thread_create(void (*func)(void *), void *arg) { <enqueue>( context_create(func, arg) ); scheduler() { ucontext_t *uc = <dequeue>(); /* FIFO */ context_switch(current_uc, uc); thread_exit() { <must delete thread s stuff (e.g. stack)> scheduler(); /* Run another thread */ thread_yield() { scheduler(); /* Run another thread */ thread_join(...) { What if the thread function simply returns (i.e. does not call thread_exit())? #21
22 Βιβλιοκικθ PSthreads Παρζχει μθ προεκχωριςιμα (non-preemptive) νιματα επιπζδου χριςτθ Ζνα νιμα δεν μπορεί να ξεκινιςει τθν εκτζλεςι του όςο το προθγοφμενο νιμα δεν ζχει τερματίςει ι δεν ζχει παραχωριςει εκελοντικά τον επεξεργαςτι του Ο ενςωματωμζνοσ χρονοπρογραμματιςτισ καλείται μόνο ςε ςυγκεκριμζνα ςθμεία του κϊδικα τθσ βιβλιοκικθσ και όχι ςε τυχαίεσ χρονικζσ ςτιγμζσ με χριςθ κάποιου timer Εκμετάλλευςθ πολλαπλϊν επεξεργαςτϊν Διακεςιμότθτα #22
23 Οργάνωςθ #23
24 Βιβλιοκικθ psthreads Υλοποιεί ζνα μοντζλο νθμάτων δφο επιπζδων Νιματα επιπζδου χριςτθ εκτελοφνται από νιματα POSIX επιπζδου πυρινα («εικονικοί επεξεργαςτζσ» virtual processors) Διακζτει μια τοπικι ουρά εκτζλεςθσ ανά ιδεατό επεξεργαςτι και μια κακολικι ουρά Τα νιματα επιπζδου χριςτθ ειςάγονται ςε κάποια ουρά εκτζλεςθσ Κάκε εικονικόσ επεξεργαςτισ επιλζγει ζνα νιμα από το ςφνολο των ουρϊν τθσ βιβλιοκικθσ, για να το εκτελζςει Ο αλγόρικμοσ επιλογισ νιματοσ (δρομολόγθςθσ) ενεργοποιείται ςε ςυγκεκριμζνα ςθμεία εκτζλεςθσ του προγράμματοσ (π.χ. τερματιςμόσ νιματοσ) #24
25 Βιβλιοκικθ psthreads Αλγόρικμοσ επιλογισ νιματοσ Αρχικά, ο ιδεατόσ επεξεργαςτισ προςπακεί να εξάγει ζνα νιμα από τθν αρχι τθσ τοπικισ του ουράσ Εφόςον θ τοπικι ουρά είναι άδεια, εξετάηει τθν κακολικι ουρά τθσ βιβλιοκικθσ Εφόςον θ κακολικι ουρά είναι άδεια, εξετάηει διαδοχικά τισ ουρζσ των υπόλοιπων ιδεατϊν επεξεργαςτϊν, προςπακϊντασ να εξάγει ζνα νιμα από το τζλοσ τθσ απομακρυςμζνθσ ουράσ αυτό ονομάηεται κλζψιμο δουλειάσ (work stealing) #25
26 Cilk
27 Cilk A C language for programming dynamic multithreaded applications on shared-memory multiprocessors. Cilk extends the C language with just a handful of keywords. Every Cilk program has a serial semantics. Not only is Cilk fast, it provides performance guarantees based on performance abstractions. Cilk is processor-oblivious. Cilk s provably good runtime system automatically manages low-level aspects of parallel execution, including protocols, load balancing, and scheduling. #27
28 Παράδειγμα Cilk is a faithful extension of C. A Cilk program s serial elision is always a legal implementation of Cilk semantics. Cilk provides no new data types. int fib (int n) { if (n<2) return (n); else { int x,y; x = fib(n-1); y = fib(n-2); return (x+y); C elision Cilk code cilk int fib (int n) { if (n<2) return (n); else { int x,y; x = spawn fib(n-1); y = spawn fib(n-2); sync; return (x+y); #28
29 Basic Cilk Keywords cilk int fib (int n) { if (n<2) return (n); else { int x,y; x = spawn fib(n-1); y = spawn fib(n-2); sync; return (x+y); Control cannot pass this point until all spawned children have returned. Identifies a function as a Cilk procedure, capable of being spawned in parallel. The named child Cilk procedure can execute in parallel with the parent caller. #29
30 Dynamic Multithreading cilk int fib (int n) { if (n<2) return (n); else { int x,y; x = spawn fib(n-1); y = spawn fib(n-2); sync; return (x+y); 3 Example: fib(4) The computation dag unfolds dynamically. #30
31 Cilk DAG task graph initial thread final thread continue edge spawn edge return edge The dag G = (V, E) represents a parallel instruction stream. Each vertex v of V represents a (Cilk) thread: a maximal sequence of instructions not containing parallel control (spawn, sync, return). Every edge e of E is either a spawn edge, a return edge, or a continue edge. #31
32 Cactus Stack Cilk supports C s rule for pointers: A pointer to stack space can be passed from parent to child, but not from child to parent. (Cilk also supports malloc.) A A B C D E A A A A A B C C C C B E D E D Views of stack Cilk s cactus stack supports several views in parallel. #32
33 Parallelizing vector addition C void vadd (real *A, real *B, int n){ int i; for (i=0; i<n; i++) A[i]+=B[i]; Cilk void cilk vadd (real *A, real *B, int n){ if (n<=base) { int i; for (i=0; i<n; i++) A[i]+=B[i]; else { spawn vadd (A, B, n/2; vadd spawn(a+n/2, B+n/2, n-n/2; sync; Parallelization strategy: 1. Convert loops to recursion. 2. Insert Cilk keywords. Side benefit: D&C is generally good for caches! #33
34 Vector Addition cilk void vadd (real *A, real *B, int n){ if (n<=base) { int i; for (i=0; i<n; i++) A[i]+=B[i]; else { spawn vadd (A, B, n/2); spawn vadd (A+n/2, B+n/2, n-n/2); sync; #34
35 Cilk s Work-Stealing Scheduler Each processor maintains a work deque of ready threads, and it manipulates the bottom of the deque like a stack. Spawn! P P P P #35
36 Cilk s Work-Stealing Scheduler Each processor maintains a work deque of ready threads, and it manipulates the bottom of the deque like a stack. Spawn! Spawn! P P P P #36
37 Cilk s Work-Stealing Scheduler Each processor maintains a work deque of ready threads, and it manipulates the bottom of the deque like a stack. Return! P P P P #37
38 Cilk s Work-Stealing Scheduler Each processor maintains a work deque of ready threads, and it manipulates the bottom of the deque like a stack. Return! P P P P #38
39 Cilk s Work-Stealing Scheduler Each processor maintains a work deque of ready threads, and it manipulates the bottom of the deque like a stack. Steal! P P P P When a processor runs out of work, it steals a thread from the top of a random victim s deque. #39
40 Cilk s Work-Stealing Scheduler Each processor maintains a work deque of ready threads, and it manipulates the bottom of the deque like a stack. Steal! P P P P When a processor runs out of work, it steals a thread from the top of a random victim s deque. #40
41 Cilk s Work-Stealing Scheduler Each processor maintains a work deque of ready threads, and it manipulates the bottom of the deque like a stack. P P P P When a processor runs out of work, it steals a thread from the top of a random victim s deque. #41
42 Cilk s Work-Stealing Scheduler Each processor maintains a work deque of ready threads, and it manipulates the bottom of the deque like a stack. Spawn! P P P P When a processor runs out of work, it steals a thread from the top of a random victim s deque. #42
43 Scheduling, cont. Με ποια ςειρά δθμιουργοφνται & εκτελοφνται τα νιματα/tasks? Απάντθςθ: Όταν ο γονζασ δθμιουργιςει ζνα νιμα, τοποκετεί τον εαυτό του ςτθν ουρά και εκτελεί αμέσως το νζο νιμα depth-first Μασ δίνει κάποιο πλεονζκτθμα αυτό; Απάντθςθ: Όλα (ςχεδόν) τα παιδιά ςτθν ίδια ςτοίβα (γριγορο, λίγθ μνιμθ) Πικανϊσ τοπικότθτα Μειονζκτθμα; Απάντθςθ: Δεν μπορεί να υπάρχει global barrier. cilk int fib (int n) { if (n<2) return (n); else { int x,y; x = spawn fib(n-1); y = spawn fib(n-2); sync; return (x+y); #43
44 Operating on Returned Values Programmers may sometimes wish to incorporate a value returned from a spawned child into the parent frame by means other than a simple variable assignment. Example: x += spawn foo(a,b,c); Cilk achieves this functionality using an internal function, called an inlet, which is executed as a secondary thread on the parent frame when the child returns. #44
45 Semantics of Inlets func() { int max, ix = -1; inlet void update ( int val, int index ) { if (idx == -1 val > max) { ix = index; max = val; for (i=0; i< ; i++) update ( spawn foo(i), i ); sync; /* ix now indexes the largest foo(i) */ The inlet keyword defines a void internal function to be an inlet. In the current implementation of Cilk, the inlet definition may not contain a spawn, and only the first argument of the inlet may be spawned at the call site. #45
46 Semantics of Inlets int max, ix = -1; inlet void update ( int val, int index ) { if (idx == -1 val > max) { ix = index; max = val; for (i=0; i< ; i++) { update ( spawn foo(i), i ); sync; /* ix now indexes the largest foo(i) */ 1. The non-spawn args to update() are evaluated. 2. The Cilk procedure foo(i) is spawned. 3. Control passes to the next statement. 4. When foo(i) returns, update() is invoked. #46
47 Semantics of Inlets int max, ix = -1; inlet void update ( int val, int index ) { if (idx == -1 val > max) { ix = index; max = val; for (i=0; i< ; i++) { update ( spawn foo(i), i ); sync; /* ix now indexes the largest foo(i) */ Cilk provides implicit atomicity among the threads belonging to the same frame, and thus no locking is necessary to avoid data races. #47
48 Compiling Cilk Cilk source cilk2c source-to-source translator The cilkc compiler encapsulates the process. C compiler C postsource gcc Cilk RTS cilk2c translates straight C code into identical C postsource. object code ld linking loader binary #48
ΠΛΕ-006 ΠΑΡΑΛΛΗΛΗ ΕΠΕΞΕΡΓΑΣΙΑ Project
ΠΛΕ-006 ΠΑΡΑΛΛΗΛΗ ΕΠΕΞΕΡΓΑΣΙΑ 2012-13 Project Νήματα επιπέδου χρήστη (user-level threads) Νήματα Επιπέδου Χρήστη Τα νήματα αυτά αποτελούνται από ένα περιγραφέα (descriptor) που περιέχει Τις τιμές των καταχωρητών
Διαβάστε περισσότεραΕ-85: Ειδικά Θέµατα Λογισµικού
Ε-85: Ειδικά Θέµατα Λογισµικού Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων Χειµερινό Εξάµηνο 2009-10 «Νήµατα Επιπέδου Χρήστη» Παναγιώτης Χατζηδούκας (Π.Δ. 407/80) E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων
Διαβάστε περισσότεραΚατηγορίες Νηµάτων. Νήµατα Επιπέδου Πυρήνα. Νήµατα Επιπέδου Χρήστη. «Νήµατα Επιπέδου Χρήστη» Ε-85: Ειδικά Θέµατα Λογισµικού
Ε-85: Ειδικά Θέµατα Λογισµικού Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων Χειµερινό Εξάµηνο 2009-10 «Νήµατα Επιπέδου Χρήστη» Κατηγορίες Νηµάτων Υπάρχουν δύο κατηγορίες νηµάτων Νήµατα επιπέδου πυρήνα (kernel
Διαβάστε περισσότεραCilk: Φιλοσοφία και Χρήση
1 Cilk: Φιλοσοφία και Χρήση Παράλληλα Συστήματα Επεξεργασίας 9ο εξάμηνο ΣΗΜΜΥ ακ. έτος 2012-2013 http://www.cslab.ece.ntua.gr/courses/pps Εργαστήριο Υπολογιστικών Συστημάτων ΕΜΠ Δεκέμβριος 2012 Cilk 2
Διαβάστε περισσότεραΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 2 ο Εργαςτιριο Διαχείριςθ Διεργαςιϊν
ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ 2 ο Εργαςτιριο Διαχείριςθ Διεργαςιϊν Τπόβακρο (1/3) τουσ παλαιότερουσ υπολογιςτζσ θ Κεντρικι Μονάδα Επεξεργαςίασ (Κ.Μ.Ε.) μποροφςε κάκε ςτιγμι να εκτελεί μόνο ζνα πρόγραμμα τουσ ςφγχρονουσ
Διαβάστε περισσότεραΔιεργασίες και Νήματα (2/2)
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων Διεργασίες και Νήματα (2/2) Λειτουργικά Συστήματα Υπολογιστών 7ο Εξάμηνο, 2016-2017 Νήματα
Διαβάστε περισσότεραΗ πολυνηματική γλώσσα προγραμματισμού Cilk
Η πολυνηματική γλώσσα προγραμματισμού Cilk Β Καρακάσης Ερευνητικά Θέματα Υλοποίησης Γλωσσών Προγραμματισμού Μεταπτυχιακό Μάθημα (688), ΣΗΜΜΥ Νοέμβριος 2009 Β Καρακάσης (CSLab, NTUA) ΣΗΜΜΥ, Μετ/κό 688 9/2009
Διαβάστε περισσότεραThe Simply Typed Lambda Calculus
Type Inference Instead of writing type annotations, can we use an algorithm to infer what the type annotations should be? That depends on the type system. For simple type systems the answer is yes, and
Διαβάστε περισσότεραInstruction Execution Times
1 C Execution Times InThisAppendix... Introduction DL330 Execution Times DL330P Execution Times DL340 Execution Times C-2 Execution Times Introduction Data Registers This appendix contains several tables
Διαβάστε περισσότεραCilk: Φιλοσοφία και Χρήση
1 Cilk: Φιλοσοφία και Χρήση Παράλληλα Συστήματα Επεξεργασίας 9ο εξάμηνο ΣΗΜΜΥ ακ έτος 2010-2011 http://wwwcslabecentuagr/courses/pps Εργαστήριο Υπολογιστικών Συστημάτων ΕΜΠ Νοέμβριος 2010 Περιεχόμενα 2
Διαβάστε περισσότεραΠρόβλημα 1: Αναζήτηση Ελάχιστης/Μέγιστης Τιμής
Πρόβλημα 1: Αναζήτηση Ελάχιστης/Μέγιστης Τιμής Να γραφεί πρόγραμμα το οποίο δέχεται ως είσοδο μια ακολουθία S από n (n 40) ακέραιους αριθμούς και επιστρέφει ως έξοδο δύο ακολουθίες από θετικούς ακέραιους
Διαβάστε περισσότεραΠαράλληλη Επεξεργασία
Παράλληλη Επεξεργασία Φροντιστήριο: Εισαγωγή στα Πολυεπεξεργαστικά Συστήματα Διερασίες και Νήματα σε Πολυεπεξεργαστικά Συστήματα Εργαστήριο Πληροφοριακών Συστημάτων Υψηλής Επίδοσης Parallel and Distributed
Διαβάστε περισσότεραΔιεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1
Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1 lalis@inf.uth.gr Ο κώδικας δεν εκτελείται «μόνος του» Ο εκτελέσιμος κώδικας αποθηκεύεται σε ένα αρχείο Το αρχείο είναι μια «παθητική» οντότητα
Διαβάστε περισσότεραΠεριγραφή και Έλεγχος ιεργασιών
Περιγραφή και Έλεγχος ιεργασιών Περίληψη ιεργασίες Πολυπρογραµµατισµός Καταστάσεις ιεργασιών Περιγραφή διεργασιών στο ΛΣ Έλεγχος διεργασιών Το ΛΣ Linux 1 ιεργασία (process) ιεργασία είναι κάθε πρόγραµµα
Διαβάστε περισσότεραDynamic types, Lambda calculus machines Section and Practice Problems Apr 21 22, 2016
Harvard School of Engineering and Applied Sciences CS 152: Programming Languages Dynamic types, Lambda calculus machines Apr 21 22, 2016 1 Dynamic types and contracts (a) To make sure you understand the
Διαβάστε περισσότεραΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΠΟΛΙΤΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΤΟΜΕΑΣ ΥΔΡΑΥΛΙΚΗΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΙΚΗΣ ΤΕΧΝΙΚΗΣ. Ειδική διάλεξη 2: Εισαγωγή στον κώδικα της εργασίας
ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΠΟΛΙΤΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΤΟΜΕΑΣ ΥΔΡΑΥΛΙΚΗΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΙΚΗΣ ΤΕΧΝΙΚΗΣ Ειδική διάλεξη 2: Εισαγωγή στον κώδικα της εργασίας Χειμερινό εξάμηνο 2008 Αρχίζοντας... Αρχίζοντας... http://folk.ntnu.no/nilsol/ssiim/
Διαβάστε περισσότεραHY150a Φροντιστήριο 3 24/11/2017
HY150a Φροντιστήριο 3 24/11/2017 1 Assignment 3 Overview Το πρόγραμμα ζητείται να διαβάζει μια λίστα δεδομένων που περιγράφει τα διαθέσιμα τμήματα μνήμης (blocks) ενός ΗΥ. Το πρόγραμμα ζητείται να μεταφορτώνει
Διαβάστε περισσότεραThe challenges of non-stable predicates
The challenges of non-stable predicates Consider a non-stable predicate Φ encoding, say, a safety property. We want to determine whether Φ holds for our program. The challenges of non-stable predicates
Διαβάστε περισσότεραΕΡΓΑΣΤΗΡΙΟ 5 ΣΗΜΕΙΩΣΕΙΣ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2017-2018 ΧΕΙΜΕΡΙΝΟ ΕΞΑΜΗΝΟ ΜΑΘΗΜΑ: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Ουρές ΕΡΓΑΣΤΗΡΙΟ 5 ΣΗΜΕΙΩΣΕΙΣ Μια ουρά αποτελεί μια δομή δεδομένων στη λογική του First-in
Διαβάστε περισσότεραΕισαγωγικά & Βασικές Έννοιες
Εισαγωγικά & Βασικές Έννοιες ΙΙΙ 1 lalis@inf.uth.gr Γιατί πολλές διεργασίες/νήματα; Επίπεδο εφαρμογής Καλύτερη δόμηση κώδικα Αποφυγή μπλοκαρίσματος / περιοδικών ελέγχων Φυσική έκφραση παραλληλισμού Επίπεδο
Διαβάστε περισσότεραΕιςαγωγή ςτην πληροφορική
Ειςαγωγή ςτην πληροφορική Δρ. Θεοδώρου Παύλοσ theodorou@uoc.gr Δομή ηλεκτρονικού υπολογιςτή - Υλικό Μια γενικι διάκριςθ ςυςτατικϊν που ςυνκζτουν ζναν Η/Υ (πόροι *resources]) Μονάδα ειςόδου (Input unit)
Διαβάστε περισσότεραΕισαγωγικά & Βασικές Έννοιες
Εισαγωγικά & Βασικές Έννοιες ΙΙΙ 1 lalis@inf.uth.gr Γιατί πολλές διεργασίες/νήματα; Επίπεδο εφαρμογής Καλύτερη δόμηση κώδικα Αποφυγή μπλοκαρίσματος / περιοδικών ελέγχων Φυσική έκφραση παραλληλισμού Επίπεδο
Διαβάστε περισσότεραΕΝΟΤΗΤΑ 2: ΤΟ ΛΟΓΙΣΜΙΚΟ ΤΟΥ ΥΠΟΛΟΓΙΣΤΗ. ΚΕΦΑΛΑΙΟ 5: Γνωριμία με το λογιςμικό του υπολογιςτι
ΕΝΟΤΗΤΑ 2: ΤΟ ΛΟΓΙΣΜΙΚΟ ΤΟΥ ΥΠΟΛΟΓΙΣΤΗ ΚΕΦΑΛΑΙΟ 5: Γνωριμία με το λογιςμικό του υπολογιςτι Λογιςμικό (Software), Πρόγραμμα (Programme ι Program), Προγραμματιςτισ (Programmer), Λειτουργικό Σφςτθμα (Operating
Διαβάστε περισσότεραΕ-85: Ειδικά Θέµατα Λογισµικού
Ε-85: Ειδικά Θέµατα Λογισµικού Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων Χειµερινό Εξάµηνο 2009-10 «ιεργασίες και Νήµατα» Παναγιώτης Χατζηδούκας (Π.Δ. 407/80) E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων
Διαβάστε περισσότερα16. Πίνακεσ και Συναρτήςεισ
Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων 16. Πίνακεσ και Συναρτήςεισ Ιωάννθσ Κατάκθσ Σιμερα o Κλιςθ με τιμι o Κλιςθ με αναφορά o Πίνακεσ και ςυναρτιςεισ o Παραδείγματα Ειςαγωγι o Στισ προθγοφμενεσ
Διαβάστε περισσότεραΕργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων. Εξάμηνο 7 ο
Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων Εξάμηνο 7 ο Procedures and Functions Stored procedures and functions are named blocks of code that enable you to group and organize a series of SQL and PL/SQL
Διαβάστε περισσότεραΕΙΣΑΓΩΓΗ ΣΤΟN ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ
ΕΙΣΑΓΩΓΗ ΣΤΟN ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ Εμβέλεια Μεταβλητών Εμβέλεια = το τμήμα του προγράμματος στο οποίο έχει ισχύ ή είναι ορατή η μεταβλητή.
Διαβάστε περισσότεραBlock Ciphers Modes. Ramki Thurimella
Block Ciphers Modes Ramki Thurimella Only Encryption I.e. messages could be modified Should not assume that nonsensical messages do no harm Always must be combined with authentication 2 Padding Must be
Διαβάστε περισσότεραΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ
ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Ενότητα 12: Συνοπτική Παρουσίαση Ανάπτυξης Κώδικα με το Matlab Σαμαράς Νικόλαος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.
Διαβάστε περισσότεραΠρογραμματισμός Ταυτόχρονος Προγραμματισμός
Εισαγωγικά & Βασικές Έννοιες ΙΙΙ 1 lalis@inf.uth.gr Γιατί πολλές διεργασίες/νήματα; Επίπεδο εφαρμογής Καλύτερη δόμηση κώδικα Αποφυγή μπλοκαρίσματος / περιοδικών ελέγχων Φυσική έκφραση παραλληλισμού Επίπεδο
Διαβάστε περισσότεραΒασικές Έννοιες Πρ Ταο υγρ τόα χ μ ρ μ ο α ν τισμ ος Π ό ρ ςο ΙΙΙ γραμματισμός 1
Βασικές Έννοιες ΙΙΙ 1 lalis@inf.uth.gr Μονονηματική / πολυνηματική εκτέλεση Μονονηματικό μοντέλο εκτέλεσης (συμβατικό) Οι εντολές του κώδικα εκτελούνται σειριακά Ένα μοναδικό νήμα εκτέλεσης (execution
Διαβάστε περισσότεραΕγχειρίδιο Χριςθσ τθσ διαδικτυακισ εφαρμογισ «Υποβολι και παρακολοφκθςθ τθσ ζγκριςθσ Εκπαιδευτικών Πακζτων»
Εγχειρίδιο Χριςθσ τθσ διαδικτυακισ εφαρμογισ «Υποβολι και παρακολοφκθςθ τθσ ζγκριςθσ Εκπαιδευτικών Πακζτων» Το Πλθροφοριακό Σφςτθμα τθσ δράςθσ «e-κπαιδευτείτε» ζχει ςτόχο να αυτοματοποιιςει τισ ακόλουκεσ
Διαβάστε περισσότεραΠαρουσίαση 5 ης Άσκησης:
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων Παρουσίαση 5 ης Άσκησης: Θέματα Συγχρονισμού σε Σύγχρονα Πολυπύρηνα Συστήματα Ακ. Έτος
Διαβάστε περισσότεραΠαρουσίαση 5 ης Άσκησης:
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων Παρουσίαση 5 ης Άσκησης: Θέματα Συγχρονισμού σε Σύγχρονα Πολυπύρηνα Συστήματα Ακ. Έτος
Διαβάστε περισσότεραΛειτουργικά Συστήματα. Εισαγωγή
Λειτουργικά Συστήματα Εισαγωγή Λειτουργικά Συστήματα Ι 4/10/2016 Περιληπτικά Στο σημερινό μάθημα θα δούμε ποια είναι η θέση του Λειτουργικού Συστήματος στην οργάνωση ενός ηλεκτρονικού υπολογιστή. Σπύρος
Διαβάστε περισσότεραΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 19/5/2007
Οδηγίες: Να απαντηθούν όλες οι ερωτήσεις. Αν κάπου κάνετε κάποιες υποθέσεις να αναφερθούν στη σχετική ερώτηση. Όλα τα αρχεία που αναφέρονται στα προβλήματα βρίσκονται στον ίδιο φάκελο με το εκτελέσιμο
Διαβάστε περισσότεραΕΠΛ232 Προγραμματιστικές Τεχνικές και Εργαλεία Δείκτες και Συναρτήσεις (Κεφάλαιο 11, KNK-2ED)
ΕΠΛ232 Προγραμματιστικές Τεχνικές και Εργαλεία Δείκτες και Συναρτήσεις (Κεφάλαιο 11, KNK-2ED) Τμήμα Πληροφορικής, Πανεπιστήμιο Κύπρου http://www.cs.ucy.ac.cy/courses/epl232 Το μάθημα αυτό δομήθηκε βάση
Διαβάστε περισσότερα6.1. Dirac Equation. Hamiltonian. Dirac Eq.
6.1. Dirac Equation Ref: M.Kaku, Quantum Field Theory, Oxford Univ Press (1993) η μν = η μν = diag(1, -1, -1, -1) p 0 = p 0 p = p i = -p i p μ p μ = p 0 p 0 + p i p i = E c 2 - p 2 = (m c) 2 H = c p 2
Διαβάστε περισσότεραΕισαγωγή στους Η/Υ. Γιώργος Δημητρίου. Μάθημα 3-4: Προγραμματισμός MIPS. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής
Γιώργος Δημητρίου Μάθημα 3-4: Προγραμματισμός MIPS Προγραμματισμός σε Συμβολική Γλώσσα Η συμβολική γλώσσα: δεν έχει τύπους, δεν έχει δηλώσεις μεταβλητών, δεν έχει δομές ελέγχου, δεν έχει εντολές βρόχων,
Διαβάστε περισσότεραΕισαγωγή Βασικές εντολές Εκτέλεση βήµα-βήµα Εξέταση/Ανάθεση GDB-101. Νίκος Ντάρµος Τµήµα Πληροφορικής Πανεπιστήµιο Ιωαννίνων
Νίκος Ντάρµος Τµήµα Πληροφορικής Πανεπιστήµιο Ιωαννίνων Ιωάννινα, Μάιος 2010 Βασικές λειτουργίες ενός debugger: Εκτέλεση προγράµµατος ϐήµα-ϐήµα. Παρακολούθηση τιµών µεταβλητών. Εξέταση
Διαβάστε περισσότεραΔημιουργία & Τερματισμός Διεργασιών. Προγραμματισμός II 1
Δημιουργία & Τερματισμός Διεργασιών Προγραμματισμός II 1 lalis@inf.uth.gr Δημιουργία νέας διεργασίας pid_t fork() Η fork δεν έχει παραμέτρους Δημιουργεί μια νέα διεργασία που είναι ένα αντίγραφο της διεργασίας
Διαβάστε περισσότεραPhysical DB Design. B-Trees Index files can become quite large for large main files Indices on index files are possible.
B-Trees Index files can become quite large for large main files Indices on index files are possible 3 rd -level index 2 nd -level index 1 st -level index Main file 1 The 1 st -level index consists of pairs
Διαβάστε περισσότεραΕΠΛ221: Οργάνωση Υπολογιστών και Συμβολικός Προγραμματισμός. Εργαστήριο Αρ. 2
ΕΠΛ221: Οργάνωση Υπολογιστών και Συμβολικός Προγραμματισμός Εργαστήριο Αρ. 2 Εισαγωγή στην Αρχιτεκτονική ARMv8-A Arithmetic and Logic Instr..data, Branch and Loops, PhD Σελ. 1 Memory Allocation LEGv8 0000
Διαβάστε περισσότεραΠροηγμένοι Μικροεπεξεργαστές. Εργαστήριο 6 C & Assembly
Προηγμένοι Μικροεπεξεργαστές Εργαστήριο 6 C & Assembly Real World Situation Στον πραγματικό κόσμο, κανείς δεν γράφει αποκλειστικά assembly Κουραστικό Δύσκολα συντηρήσιμος κώδικας Μηδενική φορητότητα Μεγάλη
Διαβάστε περισσότεραStatistical Inference I Locally most powerful tests
Statistical Inference I Locally most powerful tests Shirsendu Mukherjee Department of Statistics, Asutosh College, Kolkata, India. shirsendu st@yahoo.co.in So far we have treated the testing of one-sided
Διαβάστε περισσότεραOrdinal Arithmetic: Addition, Multiplication, Exponentiation and Limit
Ordinal Arithmetic: Addition, Multiplication, Exponentiation and Limit Ting Zhang Stanford May 11, 2001 Stanford, 5/11/2001 1 Outline Ordinal Classification Ordinal Addition Ordinal Multiplication Ordinal
Διαβάστε περισσότεραFractional Colorings and Zykov Products of graphs
Fractional Colorings and Zykov Products of graphs Who? Nichole Schimanski When? July 27, 2011 Graphs A graph, G, consists of a vertex set, V (G), and an edge set, E(G). V (G) is any finite set E(G) is
Διαβάστε περισσότεραΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Διεργασίες και Νήματα Εργαστηριακές Ασκήσεις
ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Διεργασίες και Νήματα Εργαστηριακές Ασκήσεις Υλικό από: Modern Operating Systems Laboratory Exercises, Shrivakan Mishra Σύνθεση Κ.Γ. Μαργαρίτης, Τμήμα Εφαρμοσμένης Πληροφορικής, Πανεπιστήμιο
Διαβάστε περισσότεραLab 1: C/C++ Pointers and time.h. Panayiotis Charalambous 1
Lab 1: C/C++ Pointers and time.h Panayiotis Charalambous 1 Send email to totis@cs.ucy.ac.cy Subject: EPL231-Registration Body: Surname Firstname ID Group A or B? Panayiotis Charalambous 2 Code Guidelines:
Διαβάστε περισσότεραΣτο εστιατόριο «ToDokimasesPrinToBgaleisStonKosmo?» έξω από τους δακτυλίους του Κρόνου, οι παραγγελίες γίνονται ηλεκτρονικά.
Διαστημικό εστιατόριο του (Μ)ΑστροΈκτορα Στο εστιατόριο «ToDokimasesPrinToBgaleisStonKosmo?» έξω από τους δακτυλίους του Κρόνου, οι παραγγελίες γίνονται ηλεκτρονικά. Μόλις μια παρέα πελατών κάτσει σε ένα
Διαβάστε περισσότεραιεργασίες και νήµατα Προγραµµατισµός ΙΙΙ 1 lalis@inf.uth.gr
ιεργασίες και νήµατα Προγραµµατισµός ΙΙΙ 1 lalis@inf.uth.gr Η έννοια της διεργασίας ιεργασία (process) είναι ο µηχανισµός εκτέλεσης ενός προγράµµατος σε ένα λειτουργικό σύστηµα. Η διεργασία είναι µια ενεργή
Διαβάστε περισσότεραΔιάλεξη 14: Δομές Δεδομένων ΙΙI (Λίστες και Παραδείγματα)
Τμήμα Πληροφορικής Πανεπιστήμιο Κύπρου ΕΠΛ132 Αρχές Προγραμματισμού II Διάλεξη 14: Δομές Δεδομένων ΙΙI (Λίστες και Παραδείγματα) Δημήτρης Ζεϊναλιπούρ http://www.cs.ucy.ac.cy/courses/epl132 14-1 Περιεχόμενο
Διαβάστε περισσότεραΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Υπεφκυνοι αςκιςεων: Αν. Κακθγθτισ Δ. Σοφντρθσ Μεταδιδάκτορασ Λάηαροσ Παπαδόπουλοσ Αςκήςεισ ςτη Βελτιςτοποίηςη Δυναμικϊν Δομϊν Δεδομζνων (Dynamic Data Type Refinement
Διαβάστε περισσότεραΛειτουργικά Συστήματα
Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Λειτουργικά Συστήματα Ενότητα 3: Διεργασίες. Καταστάσεις Διεργασιών. PCB. Νήματα. Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής
Διαβάστε περισσότεραΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 24/3/2007
Οδηγίες: Να απαντηθούν όλες οι ερωτήσεις. Όλοι οι αριθμοί που αναφέρονται σε όλα τα ερωτήματα μικρότεροι του 10000 εκτός αν ορίζεται διαφορετικά στη διατύπωση του προβλήματος. Αν κάπου κάνετε κάποιες υποθέσεις
Διαβάστε περισσότεραEPL 603 TOPICS IN SOFTWARE ENGINEERING. Lab 5: Component Adaptation Environment (COPE)
EPL 603 TOPICS IN SOFTWARE ENGINEERING Lab 5: Component Adaptation Environment (COPE) Performing Static Analysis 1 Class Name: The fully qualified name of the specific class Type: The type of the class
Διαβάστε περισσότεραΤυπικζσ Γλϊςςεσ Περιγραφισ Υλικοφ Διάλεξθ 4
Τμήμα Μησανικών Πληποφοπικήρ, Τ.Ε.Ι. Ηπείπος Ακαδημαϊκό Έτορ 2016-2017, 6 ο Εξάμηνο Τυπικζσ Γλϊςςεσ Περιγραφισ Υλικοφ Διάλεξθ 4 Διδάςκων Τςιακμάκθσ Κυριάκοσ, Phd MSc in Electronic Physics (Radioelectrology)
Διαβάστε περισσότεραHancock. Ζωγραφάκης Ιωάννης Εξαρχάκος Νικόλαος. ΕΠΛ 428 Προγραμματισμός Συστημάτων
Hancock Ζωγραφάκης Ιωάννης Εξαρχάκος Νικόλαος Χ346339 Τ911778 ΕΠΛ 428 Προγραμματισμός Συστημάτων Ιστορική Αναδρομή Δημιουργήθηκε από την εταιρεία ΑΤ&Τ LAB Αφορμή δημιουργίας: Η ανάγκη για καθαρό και αποδοτικό
Διαβάστε περισσότεραΕργαστήριο ΔΙΕΡΓΑΣΙΕΣ - ΔΙΑΧΕΙΡΙΣΗ
Εργαστήριο ΔΙΕΡΓΑΣΙΕΣ - ΔΙΑΧΕΙΡΙΣΗ Εισαγωγή Σκοπός τόσο αυτού του εργαστηρίου, όσο και των εργαστηρίων που ακολουθούν, είναι να γνωρίσουμε τους τρόπους δημιουργίας και διαχείρισης των διεργασιών (processes)
Διαβάστε περισσότεραΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 133: ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΕΡΓΑΣΤΗΡΙΟ 3 Javadoc Tutorial
ΕΡΓΑΣΤΗΡΙΟ 3 Javadoc Tutorial Introduction Το Javadoc είναι ένα εργαλείο που παράγει αρχεία html (παρόμοιο με τις σελίδες στη διεύθυνση http://docs.oracle.com/javase/8/docs/api/index.html) από τα σχόλια
Διαβάστε περισσότεραOverview. Transition Semantics. Configurations and the transition relation. Executions and computation
Overview Transition Semantics Configurations and the transition relation Executions and computation Inference rules for small-step structural operational semantics for the simple imperative language Transition
Διαβάστε περισσότεραΔημιουργία & Τερματισμός Διεργασιών. Προγραμματισμός II 1
Δημιουργία & Τερματισμός Διεργασιών Προγραμματισμός II 1 lalis@inf.uth.gr Δημιουργία νέας διεργασίας pid_t fork() Η fork δεν έχει παραμέτρους Δημιουργεί μια νέα διεργασία που είναι ένα αντίγραφο της διεργασίας
Διαβάστε περισσότεραSecond Order RLC Filters
ECEN 60 Circuits/Electronics Spring 007-0-07 P. Mathys Second Order RLC Filters RLC Lowpass Filter A passive RLC lowpass filter (LPF) circuit is shown in the following schematic. R L C v O (t) Using phasor
Διαβάστε περισσότεραΔιάλεξη 5: Δείκτες και Συναρτήσεις
Τμήμα Πληροφορικής Πανεπιστήμιο Κύπρου ΕΠΛ132 Αρχές Προγραμματισμού II Διάλεξη 5: Δείκτες και Συναρτήσεις (Κεφάλαιο 11, KNK-2ED) Δημήτρης Ζεϊναλιπούρ http://www.cs.ucy.ac.cy/courses/epl132 5-1 Περιεχόμενο
Διαβάστε περισσότεραΣτοίβες - Ουρές. Στοίβα (stack) Γιάννης Θεοδωρίδης, Νίκος Πελέκης, Άγγελος Πικράκης Τµήµα Πληροφορικής
Στοίβες - Ουρές Γιάννης Θεοδωρίδης, Νίκος Πελέκης, Άγγελος Πικράκης Τµήµα Πληροφορικής οµές εδοµένων 1 Στοίβα (stack) οµή τύπουlifo: Last In - First Out (τελευταία εισαγωγή πρώτη εξαγωγή) Περιορισµένος
Διαβάστε περισσότεραΠαράλληλος Προγραμματισμός με OpenCL
Παράλληλος Προγραμματισμός με OpenCL Συστήματα Παράλληλης Επεξεργασίας 9ο εξάμηνο, ΣΗΜΜΥ Εργαστήριο Υπολογιστικών Συστημάτων (CSLab) Δεκέμβριος 2017 1 Γενικά για OpenCL 2 Platform Model 3 Execution Model
Διαβάστε περισσότεραC.S. 430 Assignment 6, Sample Solutions
C.S. 430 Assignment 6, Sample Solutions Paul Liu November 15, 2007 Note that these are sample solutions only; in many cases there were many acceptable answers. 1 Reynolds Problem 10.1 1.1 Normal-order
Διαβάστε περισσότεραΕισαγωγή εκτελέσιμου κώδικα σε διεργασίες
0x375 - Thessaloniki Tech Talks Sessions Event 0x2 19 Μαρτίου 2010 Περιεχόμενα 1 Εισαγωγή 2 Η κλήση συστήματος ptrace 3 Νήματα 4 Το πρόγραμμα εισαγωγής κώδικα prez 5 Επίλογος Γιατί; Πολλές φορές θέλουμε
Διαβάστε περισσότεραSection 8.3 Trigonometric Equations
99 Section 8. Trigonometric Equations Objective 1: Solve Equations Involving One Trigonometric Function. In this section and the next, we will exple how to solving equations involving trigonometric functions.
Διαβάστε περισσότεραΔιάλεξη 13: Δομές Δεδομένων ΙΙ (Ταξινομημένες Λίστες)
Τμήμα Πληροφορικής Πανεπιστήμιο Κύπρου ΕΠΛ132 Αρχές Προγραμματισμού II Διάλεξη 13: Δομές Δεδομένων ΙΙ (Ταξινομημένες Λίστες) Δημήτρης Ζεϊναλιπούρ http://www.cs.ucy.ac.cy/courses/epl132 13-1 Περιεχόμενο
Διαβάστε περισσότεραOther Test Constructions: Likelihood Ratio & Bayes Tests
Other Test Constructions: Likelihood Ratio & Bayes Tests Side-Note: So far we have seen a few approaches for creating tests such as Neyman-Pearson Lemma ( most powerful tests of H 0 : θ = θ 0 vs H 1 :
Διαβάστε περισσότεραΚατανεμημένα Συστήματα. Javascript LCR example
Κατανεμημένα Συστήματα Javascript LCR example Javascript JavaScript All JavaScript is the scripting language of the Web. modern HTML pages are using JavaScript to add functionality, validate input, communicate
Διαβάστε περισσότεραFinite Field Problems: Solutions
Finite Field Problems: Solutions 1. Let f = x 2 +1 Z 11 [x] and let F = Z 11 [x]/(f), a field. Let Solution: F =11 2 = 121, so F = 121 1 = 120. The possible orders are the divisors of 120. Solution: The
Διαβάστε περισσότεραEE512: Error Control Coding
EE512: Error Control Coding Solution for Assignment on Finite Fields February 16, 2007 1. (a) Addition and Multiplication tables for GF (5) and GF (7) are shown in Tables 1 and 2. + 0 1 2 3 4 0 0 1 2 3
Διαβάστε περισσότερα3.4 SUM AND DIFFERENCE FORMULAS. NOTE: cos(α+β) cos α + cos β cos(α-β) cos α -cos β
3.4 SUM AND DIFFERENCE FORMULAS Page Theorem cos(αβ cos α cos β -sin α cos(α-β cos α cos β sin α NOTE: cos(αβ cos α cos β cos(α-β cos α -cos β Proof of cos(α-β cos α cos β sin α Let s use a unit circle
Διαβάστε περισσότεραHY437 Αλγόριθμοι CAD
HY437 Αλγόριθμοι CAD Διδϊςκων: Χ. Σωτηρύου http://inf-server.inf.uth.gr/courses/ce437/ 1 Περιεχόμενα Στόχοι τθσ Τεχνολογικισ Απεικόνιςθσ Περιγραφι σ ωσ Βαςικοί Γράφοι Μεταςχθματιςμόσ Δυαδικοφ Κυκλϊματοσ
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΥΞΗΣΗΣ ΤΗΣ ΑΠΟΔΟΣΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ I
ΤΕΧΝΙΚΕΣ ΑΥΞΗΣΗΣ ΤΗΣ ΑΠΟΔΟΣΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ I MIPS Η MIPS (Microprocessor without Interlocked Pipeline Stages) είναι μία αρχιτεκτονική συνόλου εντολών (ISA) γλώσσας μηχανής που αναπτύχθηκε από την εταιρεία
Διαβάστε περισσότεραΝιματα - Συγχρονιςμόσ
1 Προγραμματιςμόσ ςε Java Νιματα - Συγχρονιςμόσ Παναγιϊτθσ Αδαμίδθσ Τμιμα Μθχανικϊν Πλθροφορικισ Αλεξάνδρειο ΤΕΙ Θεςςαλονίκθσ adamidis@it.teithe.gr 2 Περιεχόμενα 1. Διεργαςίεσ και Νιματα (Processes and
Διαβάστε περισσότεραΠρογραμματισμός Αναδρομή
Προγραμματισμός Αναδρομή Προγραμματισμός Προγραμματισμός Κλήσεις Συναρτήσεων Όταν καλείται μια συνάρτηση, πρέπει Να θυμάται σε ποιο σημείο του προγράμματος θα επιστρέψει Να δεσμεύσει χώρο για την τιμή
Διαβάστε περισσότεραΒάςεισ Δεδομζνων Ι. Ενότητα 7: Ειςαγωγή ςτην γλώςςα_sql. Δρ. Σςιμπίρθσ Αλκιβιάδθσ Σμιμα Μθχανικϊν Πλθροφορικισ ΣΕ
Βάςεισ Δεδομζνων Ι Ενότητα 7: Ειςαγωγή ςτην γλώςςα_sql Δρ. Σςιμπίρθσ Αλκιβιάδθσ Άδειεσ Χρήςησ Σο παρόν εκπαιδευτικό υλικό υπόκειται ςε άδειεσ χριςθσ Creative Commons. Για εκπαιδευτικό υλικό, όπωσ εικόνεσ,
Διαβάστε περισσότεραΔομθμζνοσ Προγραμματιςμόσ. Βαγγζλθσ Οικονόμου Εργαςτιριο 9
Δομθμζνοσ Προγραμματιςμόσ Βαγγζλθσ Οικονόμου Εργαςτιριο 9 Συναρτιςεισ Αφαιρετικότθτα ςτισ διεργαςίεσ Συνάρτθςεισ Διλωςθ, Κλιςθ και Οριςμόσ Εμβζλεια Μεταβλθτών Μεταβίβαςθ παραμζτρων ςε ςυναρτιςεισ Συναρτιςεισ
Διαβάστε περισσότεραPhys460.nb Solution for the t-dependent Schrodinger s equation How did we find the solution? (not required)
Phys460.nb 81 ψ n (t) is still the (same) eigenstate of H But for tdependent H. The answer is NO. 5.5.5. Solution for the tdependent Schrodinger s equation If we assume that at time t 0, the electron starts
Διαβάστε περισσότεραLab 1: C/C++ Pointers and time.h. Panayiotis Charalambous 1
Lab 1: C/C++ Pointers and time.h Panayiotis Charalambous 1 Send email to totis@cs.ucy.ac.cy Subject: EPL231-Registration Body: Surname Firstname ID Group A or B? Panayiotis Charalambous 2 Code Guidelines:
Διαβάστε περισσότεραTMA4115 Matematikk 3
TMA4115 Matematikk 3 Andrew Stacey Norges Teknisk-Naturvitenskapelige Universitet Trondheim Spring 2010 Lecture 12: Mathematics Marvellous Matrices Andrew Stacey Norges Teknisk-Naturvitenskapelige Universitet
Διαβάστε περισσότεραΠρογραμματισμός ΙΙ (Java) 10. Πολυνηματικές εφαρμογές
Προγραμματισμός ΙΙ (Java) 10. Πολυνηματικές εφαρμογές Multithreading Μulti-processing Πολλές διεργασίες ταυτόχρονα Κάθε διεργασία έχει το δικό της χώρο μνήμης ή ενδέχεται όλες να μοιράζονται και κάποιο
Διαβάστε περισσότεραCHAPTER 25 SOLVING EQUATIONS BY ITERATIVE METHODS
CHAPTER 5 SOLVING EQUATIONS BY ITERATIVE METHODS EXERCISE 104 Page 8 1. Find the positive root of the equation x + 3x 5 = 0, correct to 3 significant figures, using the method of bisection. Let f(x) =
Διαβάστε περισσότερα2 Composition. Invertible Mappings
Arkansas Tech University MATH 4033: Elementary Modern Algebra Dr. Marcel B. Finan Composition. Invertible Mappings In this section we discuss two procedures for creating new mappings from old ones, namely,
Διαβάστε περισσότεραω ω ω ω ω ω+2 ω ω+2 + ω ω ω ω+2 + ω ω+1 ω ω+2 2 ω ω ω ω ω ω ω ω+1 ω ω2 ω ω2 + ω ω ω2 + ω ω ω ω2 + ω ω+1 ω ω2 + ω ω+1 + ω ω ω ω2 + ω
0 1 2 3 4 5 6 ω ω + 1 ω + 2 ω + 3 ω + 4 ω2 ω2 + 1 ω2 + 2 ω2 + 3 ω3 ω3 + 1 ω3 + 2 ω4 ω4 + 1 ω5 ω 2 ω 2 + 1 ω 2 + 2 ω 2 + ω ω 2 + ω + 1 ω 2 + ω2 ω 2 2 ω 2 2 + 1 ω 2 2 + ω ω 2 3 ω 3 ω 3 + 1 ω 3 + ω ω 3 +
Διαβάστε περισσότεραΛΕΙΤΟΥΓΙΚΆ ΣΥΣΤΉΜΑΤΑ. 2 θ Διάλεξθ - Διεργαςίεσ
ΛΕΙΤΟΥΓΙΚΆ ΣΥΣΤΉΜΑΤΑ 2 θ Διάλεξθ - Διεργαςίεσ Υπόβακρο (1/5) Η πλατφόρμα του υπολογιςτι αποτελείται από ςυλλογι πόρων υλικοφ, όπωσ ο επεξεργαςτισ, θ κφρια μνιμθ, οι μονάδεσ Ε/Ε, οι χρονομετρθτζσ, οι δίςκοι,
Διαβάστε περισσότεραΕπιτεύγµατα των Λ.Σ.
Επιτεύγµατα των Λ.Σ. ιεργασίες ιαχείριση Μνήµης Ασφάλεια και προστασία δεδοµένων Χρονοπρογραµµατισµός & ιαχείρηση Πόρων οµή Συστήµατος ιεργασίες Ένα πρόγραµµα σε εκτέλεση Ένα στιγµιότυπο ενός προγράµµατος
Διαβάστε περισσότεραMulti Logo. Προγραμματιςμόσ Η/Υ με Multi Logo. Σχεδίαςη και ανάπτυξη εφαρμογήσ κίνηςησ αντικειμζνου
Multi Logo Βαθμίδα Μάθημα Αντικείμενο Τίτλοσ Διάρκεια Μορφή Διδακτικοί ςτόχοι: Επιδιωκόμενο αποτζλεςμα: Προαπαιτούμενεσ γνώςεισ: Εργαλεία Μζςα: Γυμνάςιο Πληροφορική Προγραμματιςμόσ Η/Υ με Multi Logo Σχεδίαςη
Διαβάστε περισσότεραΣυστήματα Διαχείρισης Βάσεων Δεδομένων
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Συστήματα Διαχείρισης Βάσεων Δεδομένων Φροντιστήριο 9: Transactions - part 1 Δημήτρης Πλεξουσάκης Τμήμα Επιστήμης Υπολογιστών Tutorial on Undo, Redo and Undo/Redo
Διαβάστε περισσότεραΑυτόματη δημιουργία στηλών Αντιστοίχηση νέων λογαριασμών ΦΠΑ
Αυτόματη δημιουργία στηλών Αντιστοίχηση νέων λογαριασμών ΦΠΑ 1 Περίληψη Το ςυγκεκριμζνο εγχειρίδιο δημιουργήθηκε για να βοηθήςει την κατανόηςη τησ διαδικαςίασ αυτόματησ δημιουργίασ ςτηλών και αντιςτοίχιςησ
Διαβάστε περισσότεραΕικονική Μνήμη (Virtual Memory) Προγραμματισμός II 1
Εικονική Μνήμη (Virtual Memory) Προγραμματισμός II 1 lalis@inf.uth.gr Μνήμη και επικοινωνία διεργασιών Κάθε διεργασία έχει δική της ιδιωτική μνήμη Μια διεργασία δεν μπορεί να γράψει/διαβάσει από/σε θέσεις
Διαβάστε περισσότεραΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΔΙΕΡΓΑΣΙΕΣ
ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Διάλεξη 2 ΔΙΕΡΓΑΣΙΕΣ Οι διαφάνειες έχουν καθαρά επικουρικό χαρακτήρα στην παρουσίαση των διαλέξεων του μαθήματος. Δεν αντικαθιστούν σε καμία περίπτωση την παρακάτω βιβλιογραφία που
Διαβάστε περισσότεραΕιδικά Θζματα Βάςεων Δεδομζνων
Ειδικά Θζματα Βάςεων Δεδομζνων Ενότητα 11: Αντικειμενοςτραφήσ και αντικείμενοςχεςιακζσ βάςεισ Δρ. Τςιμπίρθσ Αλκιβιάδθσ Τμιμα Μθχανικϊν Πλθροφορικισ ΤΕ Άδειεσ Χρήςησ Το παρόν εκπαιδευτικό υλικό υπόκειται
Διαβάστε περισσότεραLecture 2. Soundness and completeness of propositional logic
Lecture 2 Soundness and completeness of propositional logic February 9, 2004 1 Overview Review of natural deduction. Soundness and completeness. Semantics of propositional formulas. Soundness proof. Completeness
Διαβάστε περισσότεραΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 9 θ & 10 θ Διάλεξθ Ιδεατι Μνιμθ Μζροσ Β
1 ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ 9 θ & 10 θ Διάλεξθ Ιδεατι Μνιμθ Μζροσ Β 2 ελιδοποίθςθ με Χριςθ Ιδεατισ Μνιμθσ (1/5) Ο όροσ ιδεατή μνήμη ςυνικωσ ςχετίηεται με ςυςτιματα τα οποία εφαρμόηουν ςελιδοποίθςθ, παρόλο που
Διαβάστε περισσότεραΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΛΓΟΡΙΘΜΟΙ ΕΡΓΑΣΤΗΡΙΟ
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΛΓΟΡΙΘΜΟΙ ΕΡΓΑΣΤΗΡΙΟ Κωδικός Θ: ΤΠ3001, Κωδικός Ε: ΤΠ3101 (ΜΕΥ/Υ) Ώρες (Θ - Ε): 4-2 Προαπαιτούμενα: Δρ. ΒΙΔΑΚΗΣ ΝΙΚΟΣ ΕΡΓΑΣΤΗΡΙΟ 6 Στοίβα (Stack) Stack Introduction Stack is one of the
Διαβάστε περισσότεραΕγκατάσταση λογισμικού και αναβάθμιση συσκευής Device software installation and software upgrade
Για να ελέγξετε το λογισμικό που έχει τώρα η συσκευή κάντε κλικ Menu > Options > Device > About Device Versions. Στο πιο κάτω παράδειγμα η συσκευή έχει έκδοση λογισμικού 6.0.0.546 με πλατφόρμα 6.6.0.207.
Διαβάστε περισσότερα