Bilgisayar İşletim Sistemleri BLG 312



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

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

PROSESLER. Proses. Proses

Proses. Prosesler 2. İşletim Sistemleri

İşletim Sistemlerine Giriş

Bilgisayar İşletim Sistemleri BLG 312

Bilgisayar İşletim Sistemleri BLG 312

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

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

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

Bilgisayar İşletim Sistemleri BLG 312

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

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

Multicore/Multithread Programlama

Bilgisayar İşletim Sistemleri BLG 312

Bilgilerin Uzun Vadeli Saklanması

İşletim Sistemlerine Giriş

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

Bilgisayar Sistemlerine Genel Bakış

Binnur Kurt İstanbul Teknik Üniversitesi Bilgisayar MühendisliM

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

Bölüm 7: Kilitlenme (Deadlocks)

İşletim Sistemleri (Operating Systems)

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

İşletim Sistemlerine Giriş

... 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

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

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

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

Git Sürüm Kontrol Sistemi

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

PROCESS YARATIMI (TEKRAR):

Çekirdek Nedir? Ne yapar?

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

İşletim Sisteminin Temel İşlemleri

Yazılım Destek Hizmeti

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

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

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

SPARC v8 İŞLEMCİ SİMÜLASYONU

İşletim Sistemlerine Giriş

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

Sanal Bellek (Virtual Memory)

İletişim Birimleri. Çıkış Birimleri. Giriş Birimleri. İşlem Birimi. Depolama Birimleri. Bellek Birimleri

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

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

Von Neumann Mimarisi. Mikroişlemciler ve Mikrobilgisayarlar 1

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

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

İşlem Yönetimi (Process Management)

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

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

Veritabanı. Ders 2 VERİTABANI

İşletim Sistemlerine Giriş

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

YZM 3102 İşletim Sistemleri

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

BELLEK YÖNETY. Bellek Yönetimi

Versiyon Kontrol Sistemleri

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

JAVA DÖNGÜ DEYİMLERİ. For Döngüsü

BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

Fatura Dosyalarını Yükleme ile ilgili Detaylar. 14 Temmuz 2014

Üniversal Takma Birimi, USB Type-C

1.1. Yazılım Geliştirme Süreci

Bilgisayarım My Computer

İşletim Sistemlerine Giriş

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

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

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

Hafta 7 C Programlama Diline Giriş ve C Derleyicisi

WebInstaller. 1. Kurulum Đçin Gereksinimler

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

Demetleme Yönteminin Y 3-Katmanlı Mimari Yapı ile Gerçeklenmesi. eklenmesi. KalacakYer.com

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

ProFTPD FTP Sunucusu. Devrim GÜNDÜZ. TR.NET Sistem Destek Uzmanı.

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 TEKNOLOJİLERİ VE YAZILIM DERSİ

DEMİRBAŞ ALIŞ VE SATIŞ MUHASEBE ENTEGRASYONU

YZM 3102 İşletim Sistemleri

DERS 10 İŞLETİM SİSTEMİ ÇALIŞMA PRENSİBLERİ VE HATA MESAJLARI

Video Konferans ve Kurumsal İletişim Sistemi

HAFTA 1 KALICI OLMAYAN HAFIZA RAM SRAM DRAM DDRAM KALICI HAFIZA ROM PROM EPROM EEPROM FLASH HARDDISK

Servis olarak Altyapı

BM-311 Bilgisayar Mimarisi

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

1. Medisoft ile ETS arasındaki bütünle ik yapı : hatasız ve hızlı ETS hastane otomasyonu için neden çok önemlidir :

BLG 1306 Temel Bilgisayar Programlama

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

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

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

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

İşletim Sistemi. BTEP205 - İşletim Sistemleri

RightFax'e Tara. Yönetici Kılavuzu

Yazılım Güncelleştirmeleri Kullanıcı Kılavuzu

Powered by

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

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

Renk kalitesi kılavuzu

Üst Düzey Programlama

Transkript:

Giriş Bilgisayar İşletim Sistemleri BLG 312 İplikler geleneksel işletim sistemlerinde her prosesin özel adres uzayı ve tek akış kontrolü vardır bazı durumlarda, aynı adres uzayında birden fazla akış kontrolü gerekebilir aynı adres uzayında çalışan paralel prosesler durumunda olduğu gibi iplik = hafif proses iplikler, aynı adres uzayını paylaşan ve çalışmalarını eşzamanlı yürüten proseslere benzetilebilir iplikler ile aynı proseste birden fazla işlem yürütme imkanı oluşur iplikler içinde yaratıldıkları prosesin tüm kaynaklarına erişebilir ve paylaşırlar: adres uzayı, bellek, açık dosyalar,... çoklu iplikli çalışma: proses birden fazla ipliğe sahip iplikler sıra ile yürütülürler Proses Modeli Proses 1 Proses 2 Proses 3 iplik kullanıcı uzayı Proses iplikler prosesler gibi birbirinden bağımsız değil: aynı adres uzayını paylaşırlar global değişkenleri paylaşırlar birbirlerinin yığınını değiştirebilir koruma yok çünkü: mümkün değil gerek yok uzayı 1

ipliklerin paylaştıkları: adres uzayı global değişkenler açık dosyalar çocuk prosesler bekleyen sinyaller sinyal işleyiciler muhasebe bilgileri her bir ipliğe özel: program sayacı saklayıcılar yığın durum işler birbirinden büyük oranda bağımsız ise proses modeli uygun işler birbirine çok bağlı ve birlikte yürütülüyorsa iplik modeli uygun iplik durumları = proses durumları koşuyor askıda bir dış olayı veya bir başka ipliği bekler (olay bekleme) hazır Yığın Kullanımı 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 yer alır her iplik farklı yordam çağrıları yapabilir geri dönecekleri yerler farklı ayrı yığın gerekli İpliklerin Yaratılması prosesin başta tek ipliği var iplikler kütüphane yordamları ile yeni iplikler yaratırlar örn: thread_create parametresi: koşturacağı yordamın adı yaratılan yeni iplik aynı adres uzayında koşar bazı sistemlerde iplikler arası anne çocuk hiyerarşisi yer alır çoğu sistemde tüm iplikler eşit İpliklerin Yokedilmesi işi biten iplikler kütüphane yordamı çağrısı ile sonlanırlar örn: thread_exit zaman paylaşımı için zamanlayıcı yok iplikler işlemciyi kendileri bırakır örn: thread_exit 2

İplikler Arası Etkileşim iplikler arasında senkronizasyon ve haberleşme olabilir İpliklerin ndeki Sorunlar örn. UNIX te fork sistem çağrısında anne çok iplikli ise çocuk proseste de aynı iplikler bulunacak mı? HAYIR ise program doğru çalışmayabilir EVET ise, örneğin annedeki iplik giriş bekliyorsa çocuktaki de mi beklesin? giriş bilgisi hazır olunca her ikisine de mi yollansın? benzer problem açık olan ağ bağlantıları için de var İpliklerin ndeki Sorunlar bir iplik bir dosyayı kullanırken, bir diğer iplik dosyayı kapatırsa ne olur? bir iplik yetersiz bellek olduğunu farkedip bellek isteğinde bulunursa ne olur? işlem tamamlanmadan bir başka iplik çalışır ve yeni iplik de belleğin yetersiz olduğunu farkedip istekte bulunursa iki kere bellek alınabilir çözümler için iyi tasarım ve planlama gerekli İplik Kullanımının Yararları bir proses birlikte yürütülebilecek olan birden fazla işlem içerebilir işlemlerden bazıları bloke olursa diğerleri çalışabilir ipliklere bölmek performansı arttırır ipliklerin kendilerine ait kaynakları yoktur yaratılmaları / yokedilmeleri proseslere göre kolay ve hızlı İplik Kullanımının Yararları ipliklerin bazıları işlemciye yönelik işlemler, bazıları giriş-çıkış işlemleri yapıyorsa performans artar hepsi işlemciyi yoğun olarak kullanıyorsa performans artışı gözlenemez çok işlemcili sistemlere uygun farklı işlemcilere farklı iplikler atanabilir (paralel çalışma) İplik Kullanımına Örnek 3 İplikli Kelime İşlemci Modeli giriş verisi (dış ortamdan) iplik 1 üzerinde çalışılan metin iplik 2 proses iplik 3 3 iplik yerine 3 proses olsa? disk 3

İplik Kullanımına Örnek Web Sitesi Sunucusu İplik Kullanımına Örnek Web Sitesi Sunucusu iş dağıtıcı iplik web sunucusu prosesi web sunucusunda iplikler kullanılmasaydı? İş dağıtıcı iplik kodu İşçi ipliklerin kodu web sayfası cebi işçi iplikler while TRUE { sıradaki_isteği_al(&tmp); işi_aktar(&tmp); } 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); } Ağ Bağlantısı uzayı İpliklerin iki türlü gerçekleme mümkün nda uzayında hibrid bir gerçekleme de olabilir proses iplik uzayı ipliklerin üzerinde koştuğu sistem iplik tablosu proses tablosu ipliklerden haberdar değildir çoklu iplik yapısını desteklemeyen işletim sistemlerinde de gerçeklenebilir ipliklerin üzerinde koştuğu sistem uygun bir çalışma ortamı sunar iplik yönetim yordamları thread_create, thread_exit, thread_yield, thread_wait,... iplik tablosu program sayacı, saklayıcılar, yığın işaretçisi, durum bilgisi,... iplik askıya alınmasına neden olacak bir işlem yürütürse (örneğin bir başka ipliğin bir işi bitirmesini beklemek gibi..) çağrılan iplik yönetim yordamının yürüttüğü işlemler: ipliğin durumunu askıda olarak değiştirir 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 4

nin Avantajları ipliklere ait ayrı bir iş sıralama algoritması bulunabilir te iplik tablosu için alan ayırmaya gerek kalmaz tüm çağrılar yerel yordamlar çekirdeğe çağrı (sistem çağrısı) yapmaktan daha hızlı ve maliyet düşük ndeki Problemler askıya alınmayla sonuçlanacak sistem çağrılarının gerçeklenmesi iplik doğrudan bu tür bir sistem çağrısı yürütemez çünkü işlem tüm ipliklerin askıya alınmalarına neden olur ipliği değil, onu içeren prosesi askıya alacaktır nde Problemler çözüm 1: sistem çağrıları değiştirilebilir ancak işletim sisteminin değiştirilmesi istenmez kullanıcı programlarının da değişmesi gerekir çözüm 2: bazı sistemlerde, yapılan çağrının askıya alınmaya neden olup olmayacağı bilgisini döndüren sistem çağrıları var sistem çağrılarına ara-birim (wrapper) yazılır önce kontrol edilir, askıya alınma söz konusu olacaksa sistem çağrısı yapılmaz ve iplik bekletilir nde Problemler sayfa hataları programın yürütülmesi gereken kod parçasına ilişkin kısmı ana bellekte yoksa sayfa hatası olur proses bloke olur gereken sayfa ana belleğe alınır proses çalışabilir sayfa hatasına iplik sebep olduysa ipliklerden habersiz olduğundan tüm proses bloke edilir nde Problemler İpliklerin Çekirdek Uzayında 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ışıklık olabilir proses iplik uzayı iplik tablosu proses tablosu 5

İpliklerin Çekirdek Uzayında ipliklerden haberdardır iplik tablosu te yer alır yeni iplik yaratmak için bir sistem çağrısı yürütülür İpliklerin Çekirdek Uzayında ipliğin askıya alınmasına neden olabilecek tüm çağrılar sistem çağrılarıdır işletim sistemi hangi ipliğin koşacağına karar verir seçilen iplik aynı prosese ait olmayabilir İpliklerin Çekirdek Uzayında İpliklerin Hibrit Yapıda ipliğin askıya alınmasına neden olabilecek sistem çağrılarının yeniden yazılması gerekmez sayfa hatası durumu da sorun yaratmaz sayfa hatası olunca aynı prosesin koşabilecek bir başka ipliği varsa, onu ç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 bir ipliği üzerinde çoklu kullanıcı iplikleri iplikleri uzayı İpliklerin Hibrit Yapıda sadece düzeyi ipliklerden haberdar olur bir düzeyi iplik üzerinde birden fazla kullanıcı düzeyi iplik sıra ile çalışır kullanıcı düzeyi iplik işlemlerinde sözü edilen yarar ve sorunlar yine geçerlidir 6