Java Threadleri

advertisement
Chapter 5: Threads (İş Parçacıkları)
 Overview (Genel Bakış)
 Multithreading Models (Çoklu Thread Modelleri)
 Threading Issues (Thread Sorunları)
 Pthreads (Pthreadler)
 Solaris 2 Threads (Solaris 2 Threadleri)
 Windows 2000 Threads (Windows 2000 Threadleri)
 Linux Threads (Linux Threadleri)
 Java Threads (Java Threadleri)
Operating System Concepts
5.1
Silberschatz, Galvin and Gagne 2002
Single and Multithreaded Processes
(Tek ve Çoklu Thread Süreçleri)
Operating System Concepts
5.2
Silberschatz, Galvin and Gagne 2002
Benefits (Faydaları)
 Responsiveness (Yanıt verme kabiliyeti)
 Resource Sharing (Kaynak Paylaşımı)
 Economy (Ekonomik)
 Utilization of MP Architectures (MP Mimarilerinin kullanımı)
Operating System Concepts
5.3
Silberschatz, Galvin and Gagne 2002
User Threads(Kullanıcı Threadleri)
 Thread management done by user-level threads library
(Thread yönetimi kullanıcı-seviye threadleri kütüphanesi
tarafından yapılır.)
 Examples (Örnekler)
- POSIX Pthreads (POSIX Pthreadleri)
- Mach C-threads (Mach C-threadleri)
- Solaris threads (Solaris threadleri)
Operating System Concepts
5.4
Silberschatz, Galvin and Gagne 2002
Kernel Threads(Çekirdek Thredleri)
 Supported by the Kernel (Çekirdek tarafından desteklenir)
 Examples (Örnekler)
- Windows 95/98/NT/2000
- Solaris
- Tru64 UNIX
- BeOS
- Linux
Operating System Concepts
5.5
Silberschatz, Galvin and Gagne 2002
Multithreading Models
(Çoklu Thread Modelleri)
 Many-to-One (Çoka Bir)
 One-to-One (Bire Bir)
 Many-to-Many (Çoka Çok)
Operating System Concepts
5.6
Silberschatz, Galvin and Gagne 2002
Many-to-One (Çoka Bir)
 Many user-level threads mapped to single kernel thread.
(Çok sayıda kullanıcı-seviye threadleri tek çekirdek thread’i
ile eşlenir.)
 Used on systems that do not support kernel threads.
(Çekirdek threadlerini desteklemeyen sistemlerde kullanılır.)
Operating System Concepts
5.7
Silberschatz, Galvin and Gagne 2002
Many-to-One Model (Çoka Bir Modeli)
Operating System Concepts
5.8
Silberschatz, Galvin and Gagne 2002
One-to-One (Bire Bir)
 Each user-level thread maps to kernel thread.
(Her kullanıcı-seviye thread’i çekirdek thread’i ile eşlenir.)
 Examples (Örnekler)
- Windows 95/98/NT/2000
- OS/2
Operating System Concepts
5.9
Silberschatz, Galvin and Gagne 2002
One-to-one Model (Bire Bir Modeli)
Operating System Concepts
5.10
Silberschatz, Galvin and Gagne 2002
Many-to-Many Model
(Çoka Çok Modeli)
 Allows many user level threads to be mapped to many
kernel threads.
(Çok sayıda kullanıcı-seviye threadlerinin, çok sayıda
çekirdek threadleri ile eşleşmesini sağlar.)
 Allows the operating system to create a sufficient number
of kernel threads.
(İşletim sisteminin yeterli sayıda çekirdek threadi
oluşturmasını sağlar. )
 Solaris 2
 Windows NT/2000 with the ThreadFiber package
(ThreadFiber paketi ile Windows NT/2000)
Operating System Concepts
5.11
Silberschatz, Galvin and Gagne 2002
Many-to-Many Model
(Çoka Çok Modeli)
Operating System Concepts
5.12
Silberschatz, Galvin and Gagne 2002
Threading Issues
(Threading Sorunları)
 Semantics of fork() and exec() system calls




(fork() ve exec() sistem çağrılarının semantiği)
Thread cancellation (Thread iptal etme)
Signal handling (Sinyal işleme)
Thread pools (Thread havuzları)
Thread specific data (Thread özel verisi)
Operating System Concepts
5.13
Silberschatz, Galvin and Gagne 2002
Pthreads
 a POSIX standard (IEEE 1003.1c) API for thread creation
and synchronization.
(Thread yaratma ve senkronizasyon için bir POSIX
standartı(IEEE 1003.1c) vardır.)
 API specifies behavior of the thread library,
implementation is up to development of the library.
(API thread kütüphanesinin davranışını belirtir,
uygulama kütüphanenin gelişmesine bağlıdır.)
 Common in UNIX operating systems.
(Unix işletim sistemlerinde yaygın olarak kullanılır)
Operating System Concepts
5.14
Silberschatz, Galvin and Gagne 2002
Solaris 2 Threads
(Solaris 2 Threadleri)
Operating System Concepts
5.15
Silberschatz, Galvin and Gagne 2002
Solaris Process (Solaris Süreci)
Operating System Concepts
5.16
Silberschatz, Galvin and Gagne 2002
Windows 2000 Threads
(Windows 2000 Threadleri)
 Implements the one-to-one mapping.
(Bire Bir eşlemede uygulanır.)
 Each thread contains (her thread şu özellikleri içerir)
- a thread id (thread id’si)
- register set (belirlenen kayıt)
- separate user and kernel stacks
(ayrı kullanıcı ve çekirdek yığınları )
- private data storage area (özel veri depolama alanı)
Operating System Concepts
5.17
Silberschatz, Galvin and Gagne 2002
Linux Threads (Linux Threadleri)
 Linux refers to them as tasks rather than threads.
(Linux onları threadler yerine görevler olarak içerir)
 Thread creation is done through clone() system call.
(Thread oluşturulması clone() sistem çağrısı tarafından
yapılır)
 Clone() allows a child task to share the address space of
the parent task (process)
(Clone() çocuk görevin, ana görevin adres alanını
paylaşmasını sağlar.)
Operating System Concepts
5.18
Silberschatz, Galvin and Gagne 2002
Java Threads (Java Threadleri)
 Java threads may be created by:
(Java threadleri aşağıdakiler tarafından oluşturulabilir:)
 Extending Thread class
(Thread sınıfına uzanma)
 Implementing the Runnable interface
(Çalıştırılabilir ara yüzleri yürütme)
 Java threads are managed by the JVM.
(Java threadleri JVM tarafından yönetilir.)
Operating System Concepts
5.19
Silberschatz, Galvin and Gagne 2002
Java Thread States
(Java Thread Durumu)
Operating System Concepts
5.20
Silberschatz, Galvin and Gagne 2002
Download