Giriş. geleneksel işletim sistemlerinde her prosesin. aynı adres uzayında birden fazla akış kontrolü gerekebilir

Benzer belgeler
Giriş. İplik Modeli. geleneksel işletim sistemlerinde her prosesin özel adres uzayı ve tek akış kontrolü var.

Bilgisayar İşletim Sistemleri BLG 312

İşletim Sistemlerine Giriş

Proses. Prosesler 2. İşletim Sistemleri

PROSESLER. Proses. Proses

Bilgisayar İşletim Sistemleri BLG 312

İŞ SIRALAMA. İş Sıralamanın Amaçları. İş Sıralama Türleri - 1. İş Sıralama. İş Sıralama Türleri - 2

Bilgisayar İşletim Sistemleri BLG 312

İŞ SIRALAMA. İş Sıralama 6. İşletim Sistemleri

İŞLETİM SİSTEMLERİ DÖNEMİÇİ SINAVI

Bilgilerin Uzun Vadeli Saklanması

BLG 312 Bilgisayar İşletim Sistemleri 2006 BLG 312. Bilgilerin Uzun Vadeli Saklanması. Dosya Sistemi Görevleri. Dosya Sistemi Özellikleri

Bilgisayar İşletim Sistemleri BLG 312

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

Bilgisayar İşletim Sistemleri BLG 312

Multicore/Multithread Programlama

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

Binnur Kurt İstanbul Teknik Üniversitesi Bilgisayar MühendisliM

İşletim Sistemleri (Operating Systems)

Binnur Kurt İstanbul Teknik Üniversitesi Bilgisayar MühendisliM. About the Lecturer

İŞLETİM SİSTEMLERİNE GİRİŞ. Modern bilgisayar çalışma prensipleri, Von Neumann ın 1945 de geliştirdiği

SPARC v8 İŞLEMCİ SİMÜLASYONU

Dosyaların Özellikleri (Attribute) Dosya İşlemleri. İki Seviyeli Katalog Sistemleri. Tek Seviyeli Katalog Sistemleri. Hiyerarşik Katalog Sistemleri

Bilgisayar Sistemlerine Genel Bakış

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

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

PROCESS YARATIMI (TEKRAR):

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

... ROBOTİK VE KODLAMA EĞİTİMİ ÇERÇEVESİNDE ÖĞRETİM YILI BİLİŞİM TEKNOLOJİLERİ DERSİ ÜNİTELENDİRİLMİŞ YILLIK DERS PLANI

Bilgisayarım My Computer

Küme Bilgisayarlar. Enabling Grids for E-sciencE. Onur Temizsoylu. Grid ve Küme Bilgisayarlarda Uygulama Geliştirme Eğitimi ODTÜ, Ankara

Sanal Bellek (Virtual Memory)

REALTIME LINUX. 3. Linux ve Özgür Yazılım Şenliği Murat Demirten, 16 Mayıs 2004, Ankara

İşletim Sistemlerine Giriş

1 Milyon Kullanıcıya Nasıl Hizmet Veriyoruz? CloudLMS Teknik Alt Yapı ve Mimarimiz

Bilgisayarım My Computer. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

İşletim Sistemlerine Giriş

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

Görüntü Bellek. Ana Bellek. Fiziksel Adres. Belek Uzayı. Bellek hiyerarşisi. Hız Maliyet (+) Ana Bellek. Boyut (+) DISK. Görüntü Adres.

Javascript. 1) Notepad++ aşağıdaki kodları yazıp deneme.html olarak kaydedelim. 2) Biraz önceki sayfa sadece html kodların içeriyordu.

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

İşletim Sisteminin Temel İşlemleri

İşletim Sistemlerine Giriş

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

İşletim Sistemlerine Giriş

Git Sürüm Kontrol Sistemi

İşletim Sistemlerine Giriş

YZM 3102 İşletim Sistemleri

2. hafta Bulut Bilişime Giriş

Video Konferans ve Kurumsal İletişim Sistemi

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

Bölüm 28 ve 29 : İstemci Sunucu Etkileşimi ve Soket API sine Giriş. Internet Protokolleri ve Ağ Uygulamaları. Internet Protokolleri Üzerinden İletişim

Bölüm 28 ve 29 : İstemci Sunucu Etkileşimi ve Soket API sine Giriş

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

Bölüm 7: Kilitlenme (Deadlocks)

Bölüm 28 ve 29 : İstemci Sunucu Etkileşimi ve Soket API sine Giriş. Internet Protokolleri ve Ağ Uygulamaları. Internet Protokolleri Üzerinden İletişim

Öğr. Gör. Serkan AKSU 1

Internet Programming II

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

2N EasyGate 2 E a E s a y s G y a G t a e Anal a o l g F CT

MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş

YMT219 VERİ YAPILARI ÖDEV-1

Çekirdek Nedir? Ne yapar?

BM-311 Bilgisayar Mimarisi. Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü

İŞ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

Bitirme Ödevi Sunumu PLATFORM BAĞIMSIZ BENZETİM PROGRAMI. Danışman : Yrd.Doç.Dr. D Feza BUZLUCA Gökhan Akın ŞEKER

Lab Notları 4. for ( ilklenme yeri bir kez çalışır ; Kontrol yeri her döngüde bakılır ; Güncelleme yeri her döngüde )

PHP I PHP I. E. Fatih Yetkin. 26 Eylül 2011

BELLEK YÖNETY. Bellek Yönetimi

BİLGİ TEKNOLOJİLERİ VE UYGULAMALARI

İşletim Sistemlerinde Çok Prosesli Çalışma

İŞLETİM SİSTEMİNİN TEMELLERİ VE POST (İLK AÇILIŞ)

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.

PAPERWORK TEKNİK MİMARİ

İşletim Sistemlerine Giriş

Java da Program Denetimi ve Operatörler

PostgreSQL 9.3 Kullanılabilirlik ve Başarım

«BM364» Veritabanı Uygulamaları

Background (Arka Plan)

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

Akademik Dünyada Özgür Yazılım. Akademik Dünyada. Onur Tolga Şehitoğlu

HAKKARİ ÜNİVERSİTESİ Bilgi İşlem Daire Başkanlığı Hizmet Envanteri Tablosu Hizmetin Sunum Sürecinde. Hizmetin Dayanağı Mevzuatın Adı

Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

Google Dokümanları Kullanmak

Temel Bilgisayar (Basic Computer) Yazılım (Software)

void setup() fonksiyonu: Bu fonksiyon program ilk açıldığında bir kere çalışır ve gerekli kalibrasyon, setup komutlarını buraya yazarız.

İşletim Sistemleri. B L M Mesleki Te r minoloji I I Ö ğ r e n c i S unumu

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

BİLİŞİM TEKNOLOJİLERİ VE YAZILIM DERSİ

MY RENAULT KULLANIM KILAVUZU RENAULT ŞEBEKESINE MÜŞTERI VE KALITE GENEL MÜDÜRLÜĞÜ KASIM 2016 ÖZEL

Renk kalitesi kılavuzu

BM-311 Bilgisayar Mimarisi

EKLER EK 12UY0106-5/A4-1:

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

LASERJET ENTERPRISE M4555 MFP SERIES. Yazılım Yükleme Kılavuzu

İNÖNÜ ÜNİVERSİTESİ MALATYA MESLEK YÜKSEKOKULU DERS TANITIM FORMU. Kredisi AKTS Eğitim Dili Tipi: Zorunlu/ Saat

Ağ Bağlantılarında Windows Kullanan Müşteriler için

Versiyon Kontrol Sistemleri

Bu amaçla, if ve switch gibi karar verme deyimleri, for, while, do..while gibi döngü deyimleri kullanılır.

BİLECİK ÜNİVERSİTESİ IP TELEFON SİSTEMİ

Transkript:

3 İPLİKLER

Giriş geleneksel işletim sistemlerinde her prosesin özel adres uzayı ve tek akış kontrolü var. aynı adres uzayında birden fazla akış kontrolü gerekebilir aynı adres uzayında çalışan paralel prosesler gibi 84

İplik Modeli iplik = hafif proses aynı adres uzayını paylaşan paralel prosesler benzeri aynı proses ortamında birden fazla işlem yürütme imkanı iplikler tüm kaynakları paylaşır: adres uzayı, bellek, açık dosyalar,... çoklu iplikli çalışma iplikler sıra ile koşar 85

İplik Modeli Proses Modeli İplik Modeli iplik kullanıcı uzayı Proses 1 Proses 2 Proses 3 Proses çekirdek çekirdek uzayı çekirdek 86

İplik Modeli iplikler prosesler gibi birbirinden bağımsız değil: adres uzayı paylaşır global değişkenleri de paylaşırlar birbirlerinin yığınını değiştirebilir koruma yok çünkü: mümkün değil gerek yok 87

İplik Modeli ipliklerin paylaştıkları: adres uzayı global değişkenler açık dosyalar çocuk prosesler bekleyen sinyaller sinyal işleyiciler kullanıcı bilgileri her bir ipliğe özel: program sayacı saklayıcılar yığın durum 88

İplik Modeli işler birbirinden büyük oranda bağımsız ise proses modeli işler birbirine çok bağlı ve birlikte yürütülüyorsa iplik modeli iplik durumları = proses durumları koşuyor bloke bir olay bekliyor: dış olay veya bir başka ipliği bekler hazır 89

İplik Modeli her ipliğin kendi yığını var yığında çağrılmış ama dönülmemiş yordamlarla ilgili kayıtlar ve yerel değişkenler her iplik farklı yordam çağrıları yapabilir geri dönecekleri yerler farklı ayrı yığın gerekli 90

İplik Modeli prosesin başta bir ipliği var iplik kütüphane yordamları ile yeni iplikler yaratır örn: thread_create parametresi: koşturacağı yordamın adı yaratılan iplik aynı adres uzayında koşar bazı sistemlerde iplikler arası anne çocuk hiyerarşik yapısı var çoğu sistemde tüm iplikler eşit 91

İplik Modeli işi biten iplik kütüpane yordamı çağrısı ile sonlanır örn: thread_exit zaman paylaşımı için zamanlayıcı yok iplikler işlemciyi kendileri bırakır örn: thread_exit iplikler arası senkronizasyon ve haberleşme olabilir 92

İplik Modeli ipliklerin gerçeklenmesinde bazı sorunlar: örn. UNIX te fork sistem çağrısı anne çok iplikli ise çocuk proseste de aynı iplikler olacak mı? olmazsa doğru çalışmayabilir olursa örneğin annedeki iplik giriş bekliyorsa çocuktaki de mi beklesin? giriş olunca her ikisine de mi yollansın? benzer problem açı ağ bağlantıları için de var 93

İplik Modeli ( sorunlar devam) bir iplik bir dosyayı kapadı ama başka iplik o dosyayı kullanıyordu bir iplik az bellek olduğunu farkedip bellek almaya başladı işlem tamamlanmadan başka iplik çalıştı yeni iplik de az bellek var diye bellek istedi iki kere bellek alınabilir çözümler için iyi tasarım ve planlama gerekli 94

İpliklerin Kullanımı neden iplikler? bir proses içinde birden fazla işlem olabilir bazı işlemler bazen bloke olabilir; ipliklere bölmek performansı arttırır ipliklerin kendi kaynakları yok yaratılmaları / yok edilmeleri proseslere göre kolay ipliklerin bazıları işlemciye yönelik bazıları giriş-çıkış işlemleri yapıyorsa performans artar hepsi işlemciye yönelikse olmaz çok işlemcili sistemlerde faydalı 95

İplik Kullanımına Örnek 3 İplikli Kelime İşlemci Modeli document file being edited iplik 2 proses 3 iplik yerine 3 proses olsa? iplik 1 iplik 3 user input (keyboard) çekirdek disk 96

İplik Kullanımına Örnek Web Sitesi Sunucusu iş dağıtıcı iplik web sunucusu prosesi işçi iplikler web sunucusunda iplikler kullanılmasaydı? kullanıcı uzayı web sayfası cebi Ağ Bağlantısı çekirdek çekirdek uzayı 97

İplik Kullanımına Örnek Web Sitesi Sunucusu İş dağıtıcı iplik kodu while TRUE { sıradaki_isteği_al(&tmp); işi_aktar(&tmp); } İşçi ipliklerin kodu while TRUE { iş_bekle(&tmp); sayfayı_cepte_ara(&tmp,&sayfa); if (sayfa_cepte_yok(&sayfa) sayfayı_diskten_oku(&tmp,&sayfa); sayfayı_döndür(&sayfa); } 98

İpliklerin Gerçeklenmesi iki türlü gerçekleme mümkün kullanıcı uzayında çekirdek uzayında hibrid bir gerçekleme de olabilir 99

İpliklerin Kullanıcı Uzayında Gerçeklenmesi proses iplik kullanıcı uzayı çekirdek çekirdek uzayı ipliklerin üzerinde koştuğu sistem iplik tablosu proses tablosu 100

İpliklerin Kullanıcı Uzayında Gerçeklenmesi çekirdeğin ipliklerden haberi yok çoklu iplik yapısını desteklemeyen işletim sistemlerinde de gerçeklenebilir ipliklerin üzerinde koştuğu sistem iplik yönetim yordamları örn. thread_create, thread_exit, thread_yield, thread_wait,... iplik tablosu program sayacı, saklayıcılar, yığın işaretçisi, durumu,... 101

İpliklerin Kullanıcı Uzayında Gerçeklenmesi iplik bloke olacak bir işlem yürüttüyse örneğin bir başka ipliğin bir işi bitirmesini beklemek bir rutin çağırır rutin ipliği bloke durum sokar ipliğin program sayacı ve saklayıcı içeriklerini iplik tablosuna saklar sıradaki ipliğin bilgilerini tablodan alıp saklayıcılara yükler sıradaki ipliği çalıştırır hepsi yerel yordamlar sistem çağrısı yapmaktan daha hızlı 102

İpliklerin Kullanıcı Uzayında Gerçeklenmesi avantajları: ipliklerin ayrı bir iş sıralama algoritması olabilir çekirdekte iplik tablosu yeri gerekmiyor tüm çağrılar yerel rutinler çekirdeğe çağrı yapmaktan daha hızlı 103

İpliklerin Kullanıcı Uzayında Gerçeklenmesi Problemler: bloke olan sistem çağrılarının gerçeklenmesi iplik doğrudan bloke olan bir sistem çağrısı yapamaz tüm iplikler bloke olur sistem çağrıları değiştirilebilir işletim sisteminin değiştirilmesi istenmez kullanıcı programlarının da değişmesi gerekir bazı sistemlerde yapılan çağrının bloke olup olmayacağını döndüren sistem çağrıları var sistem çağrılarına ara-birim (wrapper) yazılır önce kontrol edilir, bloke olunacaksa sistem çağrısı yapılmaz, iplik bekletilir 104

İpliklerin Kullanıcı Uzayında Gerçeklenmesi (problemler devam) sayfa hataları programın çalışması gereken kod parçasına ilişkin kısım ana bellekte değilse sayfa hatası olur proses bloke olur gereken sayfa ana belleğe alınır proses çalışabilir sayfa hatasına iplik sebep olduysa çekirdek ipliklerden habersiz tüm proses bloke edilir 105

İpliklerin Kullanıcı Uzayında Gerçeklenmesi (problemler devam) işsıralama iplik kendisi çalışmayı bırakmazsa diğer iplikler çalışamaz altta çalışan sistem belirli sıklıkta saat kesmesi isteyebilir» ipliklerin de saat kesmesi ile işi varsa karışır çok iplikli çalışma istendiği durumlarda sıkça bloke olan ve sistem çağrısı yapan iplikler olur çekirdek düzeyinde işlemek çok yük getirmez çekirdeğe 106

İpliklerin Çekirdek Uzayında Gerçeklenmesi proses iplik kullanıcı uzayı çekirdek çekirdek uzayı iplik tablosu proses tablosu 107

İpliklerin Çekirdek Uzayında Gerçeklenmesi çekirdek ipliklerden haberdar iplik tablosu çekirdekte yeni iplik yaratmak için çekirdeğe sistem çağrısı ipliği bloke edebilecek tüm çağrılar çekirdeğe sistem çağrısı işletim sistemi hangi ipliğin koşacağına karar verir aynı prosesin ipliği olmayabilir 108

İpliklerin Çekirdek Uzayında Gerçeklenmesi bloke olan sistem çağrılarının yeniden yazılması gerekmez sayfa hatası durumu da sorun yaratmaz sayfa hatası olunca çekirdek aynı prosesin koşabilir baka ipliği varsa çalıştırır sistem çağrısı gerçekleme ve yürütme maliyetli çok sık iplik yaratma, yoketme,... işlemleri varsa vakit kaybı çok 109

İpliklerin Hibrit Yapıda Gerçeklenmesi bir çekirdek ipliği üzerinde çoklu kullanıcı iplikleri kullanıcı uzayı çekirdek çekirdek iplikleri çekirdek uzayı 110

İpliklerin Hibrit Yapıda Gerçeklenmesi çekirdek sadece çekirdek düzeyi ipliklerden haberdar bir çekirdek düzeyi iplik üzerinde birden fazla kullanıcı düzeyi iplik sıra ile çalışır kullanıcı düzeyi iplik işlemleri aynı şekilde 111