This is an old revision of the document!


Curs 08 - Fire de execuție

  • Suport curs
    • Operating Systems Concepts
      • Capitolul 4 - Threads
    • Modern Operating Systems
      • Capitolul 2 - Processes and Threads
        • Secțiunea 2.2 - Threads
    • Beginning Linux Programming
      • Capitolul 12 - POSIX Threads
    • Windows System Programming
      • Capitolul 7 - Threads and Scheduling
      • Capitolul 8 - Thread Synchronization

Demo-uri

Pentru parcurgerea demo-urilor, folosiți arhiva aferentă.

  1. Overhead proces/thread
    • Deschideți directorul 0-overhead/.
    • Consultați fișierele process-overhead.c și thread-overhead.c.
    • Folosiți comanda make pentru a obține executabilele process-overhead și thread-overhead.
    • Rulați cele două executabile și contorizați statistici de rulare:
      /usr/bin/time -v ./process-overhead  > /dev/null
      /usr/bin/time -v ./thread-overhead  > /dev/null
      • Urmăriți diferențele din ieșirea celor două comenzi.
        • Urmăriți dimensiunea maximă a memoriei rezidente, numărul de page fault-uri, numărul de schimbări de context.
        • Explicați diferențele între ieșiri.
  2. Partajarea informației între thread-uri
    • Deschideți directorul 1-process_thread/.
    • Consultați fișierele process.c și thread.c.
    • Se incrementează o variabilă globală dintr-un thread nou (thread.c) sau dintr-un proces nou (process.c).
    • Folosiți comanda make pentru a obține executabilele thread și process.
    • Rulați cele două executabile:
      ./thread
      ./process
      • Observați valoarea variabilei data_var, afișată prin rularea celor două executabile.
      • Observați că thread-urile partajează secțiunea de date a procesului, în vreme ce procesele au o zonă de date proprie.
so/cursuri/curs-08.1396897925.txt.gz · Last modified: 2014/04/07 22:12 by razvan.deaconescu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0