Bölüm 4: İş Parçacıkları. Operating System Concepts with Java 8 th Edition



Benzer belgeler
Bölüm 4: İş Parçacıkları. Operating System Concepts with Java 8 th Edition

Bölüm 4: Threads (İş Parçaları)

İşletim Sistemleri. Hazırlayan: M. Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü

İşletim Sistemleri (Operating Systems)

YZM 3102 İşletim Sistemleri

Problem - Unix / Windows PROCESS-Süreçleri "ağır" dır. Hafta 07: Threads (İş Parçacıkları) Örnek - 1. Proses=Bir iş parçacığı (single thread)

BMS-302 İleri Web Programlama. İş Parçacığı (Thread) ve Soket (Socket) Programlama

Bölüm 5: İşlemci Zamanlaması. Operating System Concepts with Java 8 th Edition

Multicore/Multithread Programlama

İşletim Sistemlerine Giriş

Bölüm 3: İşlemler Operating System Concepts with Java 8th Edition 3.1 Silberschatz, Galvin and Gagne 2009

Bölüm 3: İşlemler Operating System Concepts with Java 8th Edition 3.1 Silberschatz, Galvin and Gagne 2009

İşletim Sistemleri. Hazırlayan: M. Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü

Bölüm 5: İşlemci Zamanlaması. Operating System Concepts with Java 8 th Edition

Bölüm 3: İşlemler Operating System Concepts with Java 8th Edition 3.1 Silberschatz, Galvin and Gagne 2009

PROCESS YARATIMI (TEKRAR):

Süreç 1 Kavramı ve Oluşturma Yöntemleri

İŞLETİM SİSTEMLERİ. (Operating Systems)

Bölüm 2 İşletim Sistemi Yapıları

ÇOK ÇEKİRDEKLİ İŞLEMCİLER VE PARALEL YAZILIM GELİŞTİRME OLANAKLARI HAKKINDA BİR İNCELEME

İşletim Sistemlerine Genel Bakış

YZM 3102 İşletim Sistemleri

YZM 3102 İşletim Sistemleri

BİT in Temel Bileşenleri (Yazılım-1)

İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, kabuk ve diğer temel kavramlar) Bir işletim sisteminin yazılım tasarımında ele alınması gereken iki önemli konu

İşletim Sistemlerine Giriş 2. Kaynakların Paylaşımı. Öğr.Gör. Dr. Şirin KARADENİZ

Android e Giriş. Öğr.Gör. Utku SOBUTAY

İŞLETİM SİSTEMİ İşletim sistemi kullanıcıyla bilgisayar donanımı arasında iletişim sağlayan programdır.

İşletim Sistemleri. Hazırlayan: M. Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü

İŞLETİM SİSTEMLERİ (POSIX THREADS v1)

YRD. DOÇ. DR. AGÂH TUĞRUL KORUCU Kernel çeşitleri

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 7. LINUX OS (Sistem Yapısı) BİLGİ & İLETİŞİM TEKNOLOJİLERİ. LINUX Yapısı

YZM 3102 İşletim Sistemleri Uygulama

Java ve Linux. Bora Güngören Portakal Teknoloji Akademik Bilişim

Sistem Programlama. (*)Dersimizin amaçları Kullanılan programlama dili: C. Giriş/Cıkış( I/O) Sürücülerinin programlaması

Background (Arka Plan)

İşletim Sistemleri. Discovering Computers Living in a Digital World

Montoya

İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, Kabuk ve diğer temel kavramlar) Öğr.Gör. Dr. Dr. Şirin KARADENİZ

Matlab & Simulink MATLAB SIMULINK

Virtualmin'e Yeni Web Sitesi Host Etmek - Domain Eklemek

Android Platformunda Uygulama Geliştirme.

Bilgisayar İşletim Sistemleri BLG 312

İşletim Sistemleri. Bilgisayar Mühendisliğine Giriş. Teknoloji Fakültesi / Bilgisayar Mühendisliği. Öğr.Gör.Günay TEMÜR

Yazılım Mühendisliğine Giriş 2018 GÜZ

=~ Metodu 92 Karakter Sınıfları 94 sub ve gsub metotları 101 Hızlı Tekrar 102 Kontrol Noktası 103 Düello 106 Sonraki Bölümde 109

Ünite-3 Bilgisayar Yazılımı.

Bölüm 2 İşletim Sistemi Yapıları

Bölüm 7: Kilitlenme (Deadlocks)

Makul cevaplama süresi içerisinde, birkaç görevi aynı anda yürüterek işlemciden maksimum faydalanmayı sağlamak

Big Endian & Little Endian K.Atilla Toker İzmir Üniversitesi Meslek Yüksek Okulu Bilgisayar Programcılığı Ver:01

İşletim Sistemleri. Dr. Binnur Kurt Omega Eğitim ve Danışmanlık İşletim Sistemleri

API(Application Programming Interface) Fonksiyonları:

İşletim Sistemleri. Hazırlayan: M. Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü

BİLGİ İŞLEM DERS 1. Yrd Doç Dr. Ferhat ÖZOK MSGSU FİZİK BÖLÜMÜ MSGSU FİZİK BÖLÜMÜ

Kemalettin YıldY KADIR HAS UNIVERSITY. UNIX SYSTEM ADMINISTRATOR

Paralel Programlama Ortamları

PyQt ile İş Uygulaması Geliştirimi

Bölüm 13: Giriş-Çıkış (I/O) Sistemleri

Linux Assembly Programlamaya Giriş

Kepware Veritabanı Ürünleri. Teknolojiye Genel Bir Bakış

İŞLETİM SİSTEMLERİNE GİRİŞ - 2. Sistem, sistem kaynaklarını belli bir hiyerarşi içinde kullanıcının hizmetine

Multithreading & Asynchronous Programlama

YZM 3102 İşletim Sistemleri

YZM 3102 İşletim Sistemleri Uygulama

Her işletim sisteminin tasarımında olan üç temel unsur ise şunlardır;

Python GELECEK. Barış Metin Linux Sistemleri. Python Programlama Dili

Seri kablo bağlantısında Windows95/98/ME'ten Windows 2000'e bağlantı Windows95/98/ME - NT4 bağlantısına çok benzer.

Kurumsal Kimlik Yönetimi ve Güçlü Kimlik Doğrulama. Yılmaz Çankaya

Akıllı telefonlar, avuçiçi bilgisayarlar ile taşınabilir (cep) telefonların özelliklerini birleştiren cihazlardır. Akıllı telefonlar kullanıcıların

Linux işletim sistemlerinde dosya hiyerarşisinde en üstte bulunan dizindir. Diğer bütün dizinler kök dizinin altında bulunur.

Simatic PCS7 Eğitimleri

Windows'da çalışırken pek çok durumda bir işe başlamadan önce işletim sisteminin o işe ilişkin bilgileri depolayacağı bir alan yaratması gerekir.

JAVA API v2.0 Belge sürümü: 2.0.2

Linux ve Windows Üzerinde C ve C++ Kullanımı

Büyük, Dağıtık, Veri Yoğunluklu Uygulamalarda Programlama Paradigmaları

Bölüm 5. Adlar(Names), Bağlamalar(Binding s),tip Kontrolleri (Type Checking), ve Etki Alanları ( Scopes) ISBN

Açık Kod VPN Çözümleri: OpenVPN. Huzeyfe ÖNAL

Ü ş ş ö ş ş ş ş ş ö ş ö ö ş ş ö ş ö ö ö ö ş ö ş ş ö ş ş ş ö ş ş ş ş Ç ş Ç ş ş Ö ö ö ş ş ş ö ş ş ö ö ö ö ö ş ö ş ş ş ş ş ş ş ş ş ö ş

İşletim Sistemleri. Hazırlayan: M. Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü

Bilgisayar Sistemlerine Genel Bakış

Bölüm 8: Ana Bellek. Operating System Concepts with Java 8 th Edition

Veritabanı. Ders 2 VERİTABANI

Bilgi güvenliği konusunda farkındalık yaratmak. Mobil cihazlardaki riskleri anlatmak. Mobil uygulamaların bilgi güvenliği açısından incelemek 2

İşletim Sistemlerine Genel Bakış

Eskişehir Osmangazi Üniversitesi, Fen Edebiyat Fakültesi Matematik- Bilgisayar Bölümü, Eskişehir 2

Bilgisayar Mühendisliğine Giriş. Yrd.Doç.Dr.Hacer KARACAN

Ders Adı Kodu Yarıyılı T+U Saati Ulusal Kredisi AKTS

İnternet Programcılığı

USB KVM Uzatıcı. Hızlı Kurulum Kılavuzu DS-51200

Bağlantı Kılavuzu. Desteklenen işletim sistemleri. Yazıcıyı Yazılım ve Belgeler CD'sini kullanarak kurma. Bağlantı Kılavuzu

WEEK 11 CME323 NUMERIC ANALYSIS. Lect. Yasin ORTAKCI.

FONKSİYONLAR. Gerçek hayattaki problemlerin çözümü için geliştirilen programlar çok büyük boyutlardadır.

ANDROID AÇIK AKSESUAR API & AKSESUAR GELİŞTİRME. Dr. Fatma Cemile Serçe

CmpE 320 Spring 2008 Project #2 Evaluation Criteria

PROGRAMLAMAYA GİRİŞ DERS 2

PlaceCam Desktop Video Konferans

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Elbistan Meslek Yüksek Okulu Güz Yarıyılı

İşletim Sistemlerine Giriş

Transkript:

Bölüm 4: İş Parçacıkları 14.1 Silberschatz, Galvin and Gagne 2009

Bölüm 4: İş Parçacıkları Genel Bakış Çoklu İş Parçacığı Modelleri İş Parçacığı Kütüphaneleri İş Parçacıkları ile İlgili Meseleler İşletim Sistemi Örnekleri 14.2 Silberschatz, Galvin and Gagne 2009

Hedefler İş parçacığı kavramını tanıtmak Pthreads, Win32, ve Java iş parçacığı kütüphanelerinin tanıtımı Çok iş parçacıklı programlamada ortaya çıkan meselelerin irdelenmesi 14.3 Silberschatz, Galvin and Gagne 2009

Tek ve Çok İş Parçacıklı İşlemler 14.4 Silberschatz, Galvin and Gagne 2009

Faydalar Cevap Verebilirlik (Responsiveness) Kaynak Paylaşımı (Resource Sharing) Ekonomi (Economy) Ölçeklenebilirlik (Scalability) 14.5 Silberschatz, Galvin and Gagne 2009

Çok İş Parçacıklı Sunucu Mimarisi 14.7 Silberschatz, Galvin and Gagne 2009

Kullanıcı İş Parçacıkları İş parçacığı yönetimi kullanıcı seviyesinde tanımlı iş parçacığı kütüphaneleri ile sağlanır Üç ana iş parçacığı kütüphanesi: POSIX Pthreads Win32 iş parçacıkları Java iş parçacıkları 14.10 Silberschatz, Galvin and Gagne 2009

Çekirdek İş Parçacıkları Çekirdek tarafından yönetilir, Kullanıcı modu ile kernel modu geçişleri maliyetlidir. Örnekler Windows XP/2000 Linux Mac OS X 14.11 Silberschatz, Galvin and Gagne 2009

Çoklu İş Parçacığı Modelleri Çoktan-Teke (Many-to-One) Teke-Tek (One-to-One) Çoktan-Çoka (Many-to-Many) 14.12 Silberschatz, Galvin and Gagne 2009

Çoktan-Teke (Many-to-One) Pek çok kullanıcı seviyesindeki iş parçacığı tek bir çekirdek iş parçacığı ile eşleşir Çoklu işlemcikleri desteklemeyen çekirdeklerde kullanılır. 14.13 Silberschatz, Galvin and Gagne 2009

Teke-Tek (One-to-One) Her bir kullanıcı seviyesi iş parçacığı tek bir çekirdek iş parçacığı ile eşleşir Örnekler Windows NT/XP/2000 Linux Solaris 9 ve sonrası 14.15 Silberschatz, Galvin and Gagne 2009

Çoktan-Çoka (Many-to-Many) Pek çok kullanıcı seviyesi iş parçacığı pek çok çekirdek iş parçacığı ile eşleşir İşletim sisteminin yeterince çekirdek iş parçacığı oluşturmasını sağlar ThreadFiber paketi ile Windows NT/2000 14.17 Silberschatz, Galvin and Gagne 2009

İş Parçacığı Kütüphaneleri İş parçacığı kütüphanesi programcıya iş parçacıklarının oluşturulmasını ve yönetilmesini sağlayan bir API sunar Gerçekleştirim için iki temel yol Kütüphane tamamen kullanıcı alanında İşletim sistemi tarafından desteklenen çekirdek seviyesinde kütüphane 14.21 Silberschatz, Galvin and Gagne 2009

Pthreads Kullanıcı seviyesinde veya çekirdek seviyesinde sunulabilir İş parçacığı oluşturmak ve iş parçacıklarının senkronizasyonunu sağlamak için bir POSIX standardı (IEEE 1003.1c) UNIX işletim sistemlerinde genel olarak kullanılıyor (Solaris, Linux, Mac OS X) 14.22 Silberschatz, Galvin and Gagne 2009

Pthreads Example All Pthreads programs must include the pthread.h header file. The statement pthread_t tid declares the identifier for the thread we will create. Each thread has a set of attributes, including stack size and scheduling information. A separate thread is created with the pthread_create() function call.

Pthreads Example the program has two threads: the initial (or parent) thread in main() and the summation (or child) thread performing the summation operation in the runner() function. This program follows the fork-join strategy described earlier: after creating the summation thread, the parent thread will wait for it to terminate by calling the pthread join() function. The summation thread will terminate when it calls the function pthread exit(). Once the summation thread has returned, the parent thread will output the value of the shared data sum.

Pthreads Example

Pthreads Example (Cont.)

Windows threads The technique for creating threads using the Windows thread library is similar to the Pthreads technique in several ways. Threads are created in the Windows API using the CreateThread() function, a set of attributes for the thread is passed to this function. We illustrate the Windows thread API in the C program. Notice that we must include the windows.h header file when using the Windows API. NOTE: the DWORD data type is an unsigned 32-bit integer

Windows threads Recall that the POSIX Pthread program had the parent thread wait for the summation thread using the pthread join() statement. We perform the equivalent of this in the Windows API using the WaitForSingleObject() function, which causes the creating thread to block until the summation thread has exited. In situations that require waiting for multiple threads to complete, the WaitForMultipleObjects() function is used.

Win32 threads Example

Win32 API Multithreaded C Program (Cont.)

İş Parçacıkları ile İlgili Mevzular Hedef iş parçacığının iptali Asenkron veya ertelenen İş parçacığı havuzları 14.30 Silberschatz, Galvin and Gagne 2009

İş Parçacığı İptali Bir iş parçacığının işi bitmeden sonlandırılması İki genel yaklaşım: Asenkron iptal hedef iş parçacığını anında iptal eder Ertelenen iptal hedef iş parçacığının düzenli olarak iptal edilmesi gerekip gerkmediğini kontrol etmesini sağlar 14.32 Silberschatz, Galvin and Gagne 2009

İş Parçacığı Havuzları Bir havuzda, kendilerine atanacak işleri beklemek üzere belli sayıda iş parçacığı oluştur Avantajlar: Genellikle varolan bir iş parçacığı ile bir isteği gerçekleştirmek, yeni bir iş parçacığı oluşturarak gerçekleştirmekten biraz daha hızlı Uygulamalardaki iş parçacıklarının sayısı iş parçacığı havuzunun boyutu ile sınırlandırılır 14.34 Silberschatz, Galvin and Gagne 2009