Processes and threads

Samankaltaiset tiedostot
Prosessi perinteisesti

Stallings, Luku 4.1. KJ-I I S2005 / Tiina Niklander, kalvot Auvo HäkkinenH

SÄIKEET, SMP. Sisältöä. Stallings, Luku 4. Prosessi vs. säie Miksi säikeitä? ULT: Käyttäjätason säikeet KLT: Säikeiden toteutus ytimessä

Sisältöä SÄIKEET, SMP

Sisältöä SÄIKEET, SMP

Stallings, Luku 4.1. KJ-I S2004 / Tiina Niklander, kalvot Auvo Häkkinen 4-1. KJ-I I S2004 / Tiina Niklander, kalvot Auvo Häkkinen 12-1

Kernel (Fig 4.10 [Stal 05]) Operating Systems Examples and Process Management

C++11 seminaari, kevät Johannes Koskinen

Tietorakenteet ja algoritmit

On instrument costs in decentralized macroeconomic decision making (Helsingin Kauppakorkeakoulun julkaisuja ; D-31)

Käyttöjärjestelmät II

Windows 2000 (eli W2K)

Käyttöjärjestelmät, Luento 6. Windows 2000 (eli W2K) W2K: Säikeet. W2K: Prosessi ja sen resurssit. Säietoteutuksia: Windows, UNIX

Prosessit, säikeet, samanaikaisuus

Käyttöjärjestelmät II

Rinnakkaisohjelmistot. Liisa Marttinen Tietojenkäsittelytieteen laitos Helsingin yliopisto Kevät 2004

Different language, different terminology. Process and thread

Windows 2000 (eli W2K)

Käyttöjärjestelmät. Windows 2000 (eli W2K) W2K: Säikeet. W2K: Prosessi ja sen resurssit. Säietoteutuksia: Windows, Solaris, UNIX

On instrument costs in decentralized macroeconomic decision making (Helsingin Kauppakorkeakoulun julkaisuja ; D-31)

RINNAKKAINEN OHJELMOINTI A,

Operating Systems, 8 op

Capacity Utilization

On instrument costs in decentralized macroeconomic decision making (Helsingin Kauppakorkeakoulun julkaisuja ; D-31)

Nuku hyvin, pieni susi -????????????,?????????????????. Kaksikielinen satukirja (suomi - venäjä) ( (Finnish Edition)

1. SIT. The handler and dog stop with the dog sitting at heel. When the dog is sitting, the handler cues the dog to heel forward.

7.4 Variability management

Salasanan vaihto uuteen / How to change password

The CCR Model and Production Correspondence

Choose Finland-Helsinki Valitse Finland-Helsinki

Results on the new polydrug use questions in the Finnish TDI data

National Building Code of Finland, Part D1, Building Water Supply and Sewerage Systems, Regulations and guidelines 2007

LYTH-CONS CONSISTENCY TRANSMITTER

FinFamily PostgreSQL installation ( ) FinFamily PostgreSQL

TIEKE Verkottaja Service Tools for electronic data interchange utilizers. Heikki Laaksamo

Curriculum. Gym card

Encapsulation. Imperative programming abstraction via subprograms Modular programming data abstraction. TTY Ohjelmistotekniikka

anna minun kertoa let me tell you

Information on preparing Presentation

OSA I: Sisältöä. Atomisuus (atomic action) v Poissulkeminen ja synkronointi. Kriittinen (koodi)alue (critical section)

OSA I: Yhteisten muuttujien käyttö. Prosessit samassa koneessa. Rio 2004 / Auvo Häkkinen 2-1

OSA I: Yhteisten muuttujien käyttö. Sisältöä. Prosessit samassa koneessa. Poissulkeminen ja synkronointi. Semaforit ja rinnakkaisuuden hallinta

OSA I: Yhteisten muuttujien käyttö Prosessit samassa koneessa. Sisältöä. Poissulkeminen. Halutut ominaisuudet 2-1. Rinnakkaiset, atomiset operaatiot

Other approaches to restrict multipliers

Efficiency change over time

Uusi Ajatus Löytyy Luonnosta 4 (käsikirja) (Finnish Edition)

Intel Threading Building Blocks

Returns to Scale II. S ysteemianalyysin. Laboratorio. Esitelmä 8 Timo Salminen. Teknillinen korkeakoulu

Prosessit ja säikeet SMP, Mikroytimet W2K säikeet

Käyttöjärjestelmät: poissulkeminen ja synkronointi

16. Allocation Models

Alternative DEA Models

OFFICE 365 OPISKELIJOILLE

Information on Finnish Language Courses Spring Semester 2018 Päivi Paukku & Jenni Laine Centre for Language and Communication Studies

Microsoft Lync 2010 Attendee

Security server v6 installation requirements

Tarua vai totta: sähkön vähittäismarkkina ei toimi? Satu Viljainen Professori, sähkömarkkinat

Monitorit. Monitori Synkronointimenetelmiä Esimerkkejä. Andrews , Stallings 5.5

Monitorit. Tavoite. Monitori Synkronointimenetelmiä Esimerkkejä. Andrews , Stallings 5.5. Minimoi virhemahdollisuuksia

Security server v6 installation requirements

FIS IMATRAN KYLPYLÄHIIHDOT Team captains meeting

Guidebook for Multicultural TUT Users

EUROOPAN PARLAMENTTI

SIMULINK S-funktiot. SIMULINK S-funktiot

Rekisteröiminen - FAQ

Gap-filling methods for CH 4 data

Use of spatial data in the new production environment and in a data warehouse

6.3. AVR_rauta. EEPROM-muisti pva

Information on Finnish Language Courses Spring Semester 2017 Jenni Laine

7. Product-line architectures

FinFamily Installation and importing data ( ) FinFamily Asennus / Installation

Käyttöjärjestelmät II. SMP, Mikroytimet. Prosessit yleensä. UNIX prosessit. UNIX SVR4 Prosessit. UNIX prosessin kuvaaja

Käyttöjärjestelmät: prosessit

KJ-II K2006 / Auvo Häkkinen - Teemu Kerola

Sisältöä. Tietokoneen rakenne. Ch 1 - Ch 8 [Sta06] Valikoituja paloja TITO-kurssista. Tietokonejärjestelmä

4x4cup Rastikuvien tulkinta

1.3 Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

Voice Over LTE (VoLTE) By Miikka Poikselkä;Harri Holma;Jukka Hongisto

Oma sininen meresi (Finnish Edition)

Olet vastuussa osaamisestasi

Ajettavat luokat: SM: S1 (25 aika-ajon nopeinta)

Ch [Stal 05] Ch , [Tane 01] Ch 20.7 [DDC 04] Ch [Stal05]

Data Quality Master Data Management

812336A C++ -kielen perusteet,

OSA II: Hajautettu ympäristö. Sisältö, osa II. Ei yhteistä muistia. Sanomanvälitys. Etäproseduurikutsu. Rendezvous. Rio 2004 / Auvo Häkkinen

TERO MAARANEN Implementing a Multithreading Framework in C++ Master of Science Thesis

You can check above like this: Start->Control Panel->Programs->find if Microsoft Lync or Microsoft Lync Attendeed is listed

Tietokonejärjestelmä. Tietokoneen rakenne. Ch 1 - Ch 8 [Sta06] Valikoituja paloja. TITO-kurssista. John von Neumann ja EDVAC, 1949.

Statistical design. Tuomas Selander

1.3Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

Väite Argument "Yhteiskunnan velvollisuus on tarjota virkistysalueita ja -palveluita." "Recreation sites and service

Travel Getting Around

TW-WLAN g/n MIMO USB-sovitin Asennusohje

make and make and make ThinkMath 2017

Tietokonearkkitehtuuri 2 TKT-3201 (5 op)

Sähköjärjestelmän käyttövarmuus & teknologia Käyttövarmuuspäivä

Semaforit ja rinnakkaisuuden hallinta. Tuottajat ja kuluttajat. Lukijat ja kirjoittajat. Andrews 4.2, Rio 2004 / Auvo Häkkinen

Capacity utilization

OSA II: Hajautettu ympäristö. Ei yhteistä muistia. Rio 2004 / Auvo Häkkinen

Rinnakkaisohjelmointi

Transkriptio:

WEEK 3 Threads Stallings, Chapter 4 Also: Chapter 1 Processes and threads Yksiajo MS-DOS??? Moniajo vanha UNIX Solaris & Uudet 2 Syksy 2007, Tiina Niklander 5-1

Threads Own TCB, stack, state, storage location for registers 3 Why threads? Faster to create one thread than a whole process Dispatching threads of one process faster than dispatching processes When one thread waits, another might be able to execute Easier to finish a thread than a process Easier programming models are possible 4 Syksy 2007, Tiina Niklander 5-2

Why to use threads? Efficient resource sharing by thread of one process Easy communication between threads of one process: shared data area. BUT Mutual exclusion and syncronisation are fully programmer s responsibility (no support from OS or anything else) RIO-kurssi 5 User-level vs kernel-level threads Tan01 kuva 2-13 6 Syksy 2007, Tiina Niklander 5-3

KÄYTTÄJÄTASON SÄIKEET ULT, User Level Threads 7 User-level threads Kernel (or OS) is not aware of threads, it controls and dispatches only processes User process uses a thread library to control threads User porocess must dispatch threads itself Programmer s task Not done by the kernel Not based on interrupts 8 Syksy 2007, Tiina Niklander 5-4

POSIX threads (pthreads) pthread_create() parametrina funktio, josta suoritus alkaa pthread_exit() lopeta säikeen suoritus pthread_join() odota parametrina annetun säikeen loppumista Synkronointi, poissulkeminen (semaforit) pthread_mutex_init() / _destroy() pthread_mutex_lock() / _trylock() / _unlock() Ynnä muita funktioita sched_yield(): luovu vapaaehtoisesti CPU:sta 9 Example void main() { pthread_t thr1, thr2; char *msg1 = "Hello"; char *msg2 = "World"; pthread_create(&thr1, pthread_attr_default, (void*)&print_message_function,(void*)msg1); pthread_create(&thr2, pthread_attr_default, (void*)&print_message_function,(void*)msg2); exit(0); } void print_message_function(void *ptr){ char *message; message = (char *) ptr; printf("%s ", message); } 10 Syksy 2007, Tiina Niklander 5-5

User level thread s and process states are separate User-level threads Advantages Fast dispatching No mode switch No interrupt No process switch! Programmer can freely choose the scheduling mechanism Disadvantages When one thread is blocked on system call, it blocks the whole process (and all other threads) Threads of one process cannot be executed on several processors concurrently Remember: kernel dispatches only processes! 12 Syksy 2007, Tiina Niklander 5-6

Kernel-level threads All thread control done by the kernel TCB and PCB maintained by kernel Kernel dispatches the threads now No control on the user level (thus no need for user-level thread library to control execution) 13 Kernel-level threads Advantages Threads of one process can be executed simultaneously on multiple processors If one thread is Blocked, the other threads of this process may still continue Often also the kernel implementation is multithreaded Disadvantages Dispatching a thread has two phases: Interrupt +, interrupt handling and mode switch Dispatcher (and return to user mode) Slower than in user-level threads 14 Syksy 2007, Tiina Niklander 5-7

Solaris combining user-level and kernel-level threads Ch 4.5 4.6 [Stal05] 15 Solaris 16 Syksy 2007, Tiina Niklander 5-8

Solaris: ULT state transitions Fig 4.17 upper [Stal05] wait for someone (ULT) wait for synchr dispatchable on LWP (running?) LWP tilat Binding user-level threads with kernel-level threads? 17 Solaris: LWP state transitions ULT Active state Fig 4.17 lower [Stal05] 18 Syksy 2007, Tiina Niklander 5-9

You also need to read: Windows 2000 (eli W2K) & Linux Ch 4.4-4.6 [Stal 05] 19 Concurrency and synchronization mechanisms in different OSes. Ch 6.7-10 [Stal05] 20 Syksy 2007, Tiina Niklander 5-10

IPC and Unix 21 Concurrency mechanisms in Linux Ch 6.8 [Stal 05] As other UNIX Pipes, messages, shared memory, signals, semaphores In kernel mode also atomic int- and bitmap-operaations spinlock to protect critical areas spinlock variants to protect critical areas of interrupt handlers reader-writer spinlock for multiple reader one writer kernel semaphore barrier to enforce the instruction execution order (information for compiler and processor hardware), not to allow reordering 22 Syksy 2007, Tiina Niklander 5-11

spinlock Spinlock implementation depends on the number of processors (and pre-emption) Uniprocessor If kernel non-preemptable, no locks needed, omitted by the compiler If kernel preemptable, replaced with disable/enable interrupts. Multiprocessor, SMP Spinlock implemented as busy-wait NOTICE: No changes to the actual code, only to the compilation 23 Solaris Mutexes, semaphores and reader/writer lock have a special nonblocking operation (in addition to the more traditional operations) Mutex_tryenter, sema_tryp, rw_tryenter Relate this to the solaris multilevel thread model to understand, why it is provided 24 Syksy 2007, Tiina Niklander 5-12

Solaris condition variables Any condition (even if non atomic calculation) Must be protected with dedicated mutex cv_wait(&cv, &mutex) releases the mutex for the wait Condition must be retested once more after the wait, the reacquiring of the mutex might have taken time Many try, only one can pass mutex_enter(&mutex); while ( complex condition ) cv_wait( &cv, &mutex) critical region mutex_exit(&mutex) kriitt. vaihe I kriitt. vaihe III kriitt. vaihe II 25 Windows Ch 6.10 [Stal05] (+ Sect 11.4 [Tane91]) 26 Syksy 2007, Tiina Niklander 5-13

Uncolored (upper rows) 27 Syksy 2007, Tiina Niklander 5-14