İnönü Üniversitesi Bilgisayar Mühendisliği Bölümü

Slides:



Advertisements
Benzer bir sunumlar
Bilgi Teknolojisinin Temel Kavramları
Advertisements

Konu: Windows Sistem Araçları
BİLGİSAYAR DONANIM ELEMANLARI
BİLİŞİM TEKNOLOJİLERİ
8259A Programlanabilir Kesme Denetleyicisi (PIC)
İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, Kabuk ve diğer temel kavramlar)
BİLİŞİM TEKNOLOJİLERİ
Dijital Dünyada Yaşamak
BİLGİSAYAR NEDİR?.
Bilgi Teknolojisinin Temel Kavramları
BİLGİSAYAR SİSTEMİ.
Ders Adı: Bilgisayar Donanımına Giriş
Ders Adı: Bilgisayar Donanımına Giriş
Bilgisayar Yapısı-Genel
Bilgi Teknolojisinin Temel Kavramları
Bölüm 1: Introductions (Tanıtım,Tanım)
BTP 108 BİLGİSAYAR AĞ SİSTEMLERİ AĞ KAVRAMI Birden çok bilgisayarın birbirine bağlı olarak kullanılmasıyla oluşturulan çalışma biçimine bilgisayar ağı.
BDEM 105.
BİLGİSAYAR DONANIMI SELİN POSBIYIK 9/H 551 SIDIKA RODOP ANADOLU LİSESİ
BÖLÜM 2: BİLGİSAYAR SİSTEM YAPILARI
BİLGİSAYAR İLE İLGİLİ TEMEL KAVRAMLAR
BİLGİ TEKNOLOJİSİNİN TEMEL KAVRAMLARI
BİLGİSAYARIN AÇILMASI.
Register ve Türleri Nihal GÜNGÖR.
BİLGİSAYAR DONANIM ELEMANLARI
BİLGİSAYARIN MİMARİSİ, TEMEL BİLEŞENLERİ VE ÇALIŞMA MANTIĞI
Bilişim Teknolojilerine Giriş
İŞLETİM SİSTEMLERİ Öğr. Gör. S.Serkan TAN.
CEIT 101 Teorik Vasfi Tuğun - Konu 1- Vasfi Tuğun.
CEIT 101 Teorik Emrah SOYKAN - Konu 1- Emrah Soykan.
Dersin Kapsamı Bilgisayar Nedir, Ne Yapar?
BİLGİSAYAR SİSTEMLERİ
DONANIM NEDİR?.
Tarafından yayınlanmaktadır
Aşağıdakilerden hangisi işletim sistemi değildir?
Denetim Masası Ms. Windows 8.1
DONANIM VE YAZILIM.
Bilgi Teknolojisinin Temel Kavramları
Bilgisayara bilgilerimizi saklayabiliriz.
İÇ VE DIŞ DONANIMLAR.
Bölüm 3: İşletim Sistemi Yapıları
Bölüm 13: I/O Sistemleri Giriş/Çıkış Donanımı
Bilgisayar Mühendisliği Bölümü
Hafta2 Bilgisayar Donanımı Dersi
DONANIM VE YAZILIM Hazırlayan: Ad Soyad.
Bilgi Teknolojisinin Temel Kavramları
Kuzey ve Güney Köprüleri
PROJENİN ADI “Doğrusal Konumlandırıcılar” için Profesyonel Kontrol Ara yüz Tasarımı ve İmalatı.
BİLİŞİM TEKNOLOJİSİNİN TEMELLERİ
BİLGİSAYARI TANIYORUM. MERHABA BENN BİLGİSAYARKURDU ALİCAN.
Bilgisayar Donanımı Dersi
BİLGİSAYARIN YAPISI Donanım ? Yazılım.
Anakart Bilgisayarın tüm parçalarını üzerinde barındıran ve bu parçalar arasında iletişimi sağlayan birincil devre kartıdır. Anakartlar elektriği geçirmeyen.
Bilgisayar Mühendisliğine Giriş
EETE264 – BİLGİSAYAR DONANIMINA GİRİŞ
BİLGİSAYAR NEDİR?.
Bilgisayar Donanımı Dersi
İşletim Sistemleri Hazırlayan Hakan YİĞİT.
Bilgisayar Donanım ve Sistem Yazılımı
TEMEL BİLGİSAYAR TEKNOLOJİLERİ 03- İŞLETİM SİSTEMİ
BİLGİSAYAR DONANIM ELEMANLARI * Fiziksel olarak bir bilgisayarı oluşturan tüm birimlerdir. * Donanım somut bir kavramdır. Bu nedenle donanımı, elle tutulur,
Açılış yoklama İşletim Sistemleri. Bilgisayarlarda işletim sistemi, donanımın doğrudan denetimi ve yönetiminden, temel sistem işlemlerinden ve uygulama.
İşletim Sistemleri (Operating Systems)
İşletim Sistemleri (Operating Systems)
BİLİŞİM TEKNOLOJİLERİ
ETHERNET KARTI(AĞ KARTI)
BİLGİSAYAR DONANIM ELEMANLARI * Fiziksel olarak bir bilgisayarı oluşturan tüm birimlerdir. * Fiziksel olarak bir bilgisayarı oluşturan tüm birimlerdir.
BİLGİSAYAR DONANIM ELEMANLARI * Fiziksel olarak bir bilgisayarı oluşturan tüm birimlerdir. * Fiziksel olarak bir bilgisayarı oluşturan tüm birimlerdir.
Bilgisayar Donanımı Dersi Bilgisayarın Mimarı Yapısı ve Çalışma Mantığı.
Sunum transkripti:

İnönü Üniversitesi Bilgisayar Mühendisliği Bölümü Giriş/Çıkış Yönetimi İnönü Üniversitesi Bilgisayar Mühendisliği Bölümü

G/Ç yönetimi İşletim sisteminin tasarımı ve faaliyetinin önemli bir bileşenidir. G/Ç aygıtları çok çeşitlidir. Bunları denetlemek için değişik yöntemler vardır. Ayrıca yeni tür aygıtlara da uyumluluk gerekir. Aygıtlar portlar, veri yolları, aygıt denetleyicilerle bağlanırlar. Aygıt sürücüleri aygıt detaylarını kapsüller. G/Ç altsistemine tekdüze erişim arayüzü sağlarlar. Sürücü olmadan bir aygıtın çoğu özelliğini kullanamayabiliriniz.

G/Ç Aygıtlarının Sınıflandırılması Blok aygıtları Bilgi sabit boyutlu bloklarda saklanır. Blok boyutları 512-32768 bayt aralığında değişebilir. G/Ç, blokları okuyarak/bloklara yazarak yapılır. Sabit diskler (HDD-SSD), CD/DVD ROM’lar, USB flash diskler bu kategoridedir. Karakter aygıtları G/Ç, karakterler şeklinde yapılır, bloklar yoktur. Terminaller, yazıcılar, fare, joystick, çizim tabletleri bu kategoridedir.

Bazı Aygıtlar ve Veri Aktarım Oranları

Tipik bir PC Veri Yolu Yapısı

Aygıt Denetleyicileri Şu işleri yapan elektronik kart (PC) veya birimlerdir (anaçatı sistemler). Seri bit akımından gelen verileri bloklama Disk kolunu hareket ettirme, CRT tüplerini yürütme vb. durumlar için analog sinyal oluşturma G/Ç komutlarını yerini getirme Disk CPU Bellek Denetleyici Denetleyici Denetleyici Sistem veri yolu Ana Kart

Programlanmış G/Ç İşlemci bir süreç adına bir G/Ç modülüne bir G/Ç komutu gönderir. Süreç devam etmeden önce işlemin tamamlanmasını meşgulde bekler. (busy waiting)

Kesme Güdümlü G/Ç İşlemci bir süreç adına G/Ç komutu gönderir. Süreç askıya alınır ve G/Ç başlar. İşlemci bu arada başka bir süreç çalıştırabilir. Denetleyici sürücüden seri olarak bir bloğu denetleyicinin dahili tamponuna bit bit okur. Okuma hatası olmadığını doğrulamak için checksum hesaplanır. G/Ç bittiğinde, işlemciye G/Ç bitişini bildiren bir kesme gönderilir. İşletim sistemi denetleyicinin tamponunu bellek tamponuna bir anda bir bayt veya kelime olarak okur.

Doğrudan Bellek Erişimi (Direct Memory Access – DMA) Bir G/Ç aygıtının belleğe doğrudan erişimine imkan vermektir. DMA modülü de G/Ç aygıtı ve ana bellek arasındaki veri değiş-tokuşunu denetler. İşlemci bir veri bloğunun aktarımı için DMA modülüne bir istek (blok adresi, bellek adresi ve aktarılacak bayt sayısı) gönderir ve kendi işine bakar. Bütün blok aktarıldığında DMA modülü işlemciye kesme gönderir. İşletim sistemi devraldığında disk bloğunu belleğe kopyalaması gerekmez, zaten belleğe aktarılmıştır. DMA birimi veriyi doğrudan bellekten G/Ç aygıtına aktarabilir. DMA biriminin işi bitene kadar işlemciye veri yolunu kullandırtmamasına çevrim çalma (cycle stealing) denir. Talimat yürütme çevrimi kesilmez, askıya alınır.

Doğrudan Bellek Erişimi DMA daha az sayıda kesme içerir. (genelde doğrulama için 1 kez) Eğer aygıtın hiç dahili tamponu yoksa kesme güdümlü G/Ç her karakter için bir kesmeye ihtiyaç duyabilir.

G/Ç Donanımı Aygıtlar G/Ç talimatlarıyla yönetilir. Aygıtların genelde aygıt sürücüsünün komutları, adresleri, yazılacak veya okunacak verileri yerleştirdiği yazmaçları vardır. Gelen veri (data-in), giden veri (data-out), durum ve denetim yazmaçları Aygıtların doğrudan G/Ç talimatları ve bellek eşlenmiş G/Ç tarafından kullanılan adresleri vardır. Aygıt verileri ve komut yazmaçları işlemcinin adres uzayına eşlenmiştir. Bu eşleme bilhassa geniş adres uzayları içindir. (grafik içeren uygulamalar)

Aygıt G/Ç Bağlantı Noktası Konumları G/Ç Adres Menzili (Onaltılık) Aygıt 000 – 00F DMA denetleyici 020 – 021 Kesme denetleyici 040 – 043 Zamanlayıcı (timer) 200 – 20F Oyun denetleyici (joystick vb.) 2F8 – 2FF Seri bağlantı noktası (ikincil) 320 – 32F Hard disk denetleyici 378 – 37F Paralel bağlantı noktası 3D0 – 3DF Grafik denetleyici 3F0 – 3F7 Disket sürücü denetleyici 3F8 – 3FF Seri bağlantı noktası (birincil)

Uygulama G/Ç Arayüzü G/Ç sistem çağrıları genel (generic) sınıflardaki aygıt davranışlarını kapsüllerler. Aygıt-sürücü katmanı çekirdekle G/Ç denetleyicileri arasındaki farkı gizler. Yeni aygıtlar zaten kodlanmış protokollerle iletişim kurar. Her İS kendi G/Ç alt sistem yapısı ve aygıt sürücü çerçeve yapısına (framework) sahiptir.

Bir Çekirdek (Kernel) G/Ç Yapısı

Saat ve Zamanlayıcılar O anki zamanı, geçen zamanı ve zamanlayıcı sağlarlar. Normal hassasiyeti saniyenin yaklaşık 1/60’ ı kadardır. Bazı sistemlerde yüksek hassasiyetli zamanlayıcılar bulunur. Zamanlama ve periyodik kesmeler için programlanabilir aralık zamanlayıcı kullanılır.

Vektörlü G/Ç Bir sistem çağrısının çok sayıda G/Ç işlemi yapmasını sağlar. Dağıt – topla mantığıyla çalışan bu yöntem, çok sayıda bireysel G/Ç çağrısından daha iyidir. Değişme (context switching) ve sistem çağrısı ek iş yükünü azaltır. Bazıları atomiktir, okuma/yazma olurken çok sayıda ipliğin verileri değiştirmesinin önlenmesi gibi.

Çekirdek G/Ç Alt Sistemi Zamanlama: Bazı G/Ç aygıt başına kuyruklu sıralama ister. Bazı işletim sistemleri adil davranmaya çalışırken bazıları hizmet kalitesi (Quality of Service) geliştirir. Tamponlama: Aygıtlar arası aktarımda veriyi bellekte saklamaktır. Aygıt hızının ve aktarım boyutunun tutarsızlığıyla başa çıkma ve kopyalama semantiğini muhafaza etme amaçlanır. Çift tamponlamada verinin iki kopyası vardır. Önbellekleme: Aygıtın verinin bir kopyasına sahip olduğu, başarımı arttıran ve hızlı çalışan bir yapıdır. Bazen tamponlama ile birlikte kullanılır. Kuyruklama (Spooling): Eğer aygıt bir anda sadece bir isteğe hizmet ediyorsa aygıtın çıktısını bekletir. (Yazdırma) Aygıt rezervasyonu: Bir aygıta ayrıcalıklı erişim sağlar. Tahsis ve tahsisin bitişi için sistem çağrıları kullanılır. Ölümcül kilitlenme riski söz konusudur.

Hata Yönetimi ve G/Ç Koruması İşletim sistemi disk okuma, aygıtın müsait olmaması, geçici yazma başarısızlıkları gibi olumsuzluklardan geri dönebilir. İşlemin tekrarlanması gibi Bazı sistemlerde hata sıklıkları kaydedilir, yeniden denemelerle artan hata sıklığındaki aygıtların kullanımı durdurulur. Bir G/Ç isteği başarısız olduğunda bir hata numarası veya kodu dönmelidir. Sistem hata kayıtları problem raporlarını içerir. Bütün G/Ç talimatları imtiyazlı olarak tanımlandığından kullanıcı süreçleri geçersiz G/Ç talimatlarıyla kazara veya kasten normal işleyişi bozmaya çalışabilir. Bu yüzden G/Ç sistem çağrıları üzerinden yapılmalıdır. Bellek eşlenmiş ve G/Ç bağlantı noktası konumları da korunmalıdır.

Güç Yönetimi G/Ç alanına çok girmese de alakası çoktur. Bilgisayarlar ve aygıtlar elektrik kullandıklarından ısı üretirler ve sıklıkla soğutulmaları gerekir. İşletim sistemleri güç kullanımını yönetip geliştirebilir. Bulut hesaplama ortamları sunucular arasında sanal makineleri taşıdığından başarısız güç yönetimi bütün sistemlerin tahliyesine ve kapanmalarına yol açabilir. Mobil sistemlerde güç yönetimi işletim sisteminin öncelikli meselelerindedir.

Güç Yönetimi Mesela Android bileşen seviyesinde güç yönetimi sağlar. Bileşenler arasındaki ilişkileri anlar, fiziksel aygıt topolojisini gösteren aygıt ağacı oluşturur. Aygıt sürücüsü aygıtın kullanımda olup olmadığını takip eder. Kullanılmayan bileşen kapatılır. Ağaç dalındaki bütün aygıtlar kullanılmıyorsa dal toptan kapatılır. Aygıtın uyumasını engelleyen uyandırma kilitleri vardır. Aygıtı çok derin bir uykuya yatıran güç çökmesi de kullanılır. Bir aygıt bu durumdaysa sadece harici bir etmene (düğmeye basma, gelen çağrı vb.) cevap verecek kadar uyandırılır.

Başarımı Geliştirme G/Ç sistemin başarımında ilk planda yer alır. Aygıt sürücüsünü çalıştırma için işlemci talebi, çekirdek G/Ç kodu, kesme nedeniyle iş değişimi, veri kopyalama başarımı doğrudan etkiler. Ağ trafiği de ayrıca uğraştırıcıdır. Başarımı arttırmak için iş değişimi, veri kopyalama ve kesmeler azaltılmalıdır. Geniş aktarımlar, akıllı denetleyiciler, akıllı donanım aygıtları, DMA ile sağlanabilir. En yüksek iş hacmi için işlemci, bellek, veri yolu ve G/Ç başarımı dengelenmelidir. Kullanıcı modu süreçler çekirdek ipliklerine taşınabilir.

Aygıt Durum Tablosu Örneği

Kullanıcı uzayı yazılımı G/Ç Yazılımı Yapısı Donanım Kesme işleyicler Aygıt sürücüleri Aygıttan bağımsız yazılım Kullanıcı uzayı yazılımı G/Ç isteği G/Ç cevabı G/Ç sistem çağrıları (kütüphane) Adlandırma, koruma, bloklama, tamponlama, tahsis Aygıt yazmaçlarını ayarla; durumu kontrol et G/Ç tamamlandığında sürücüyü uyandır. G/Ç işlemini yap

Kullanıcı Uzayı G/Ç Yazılımı G/Ç prosedürlerinin (sistem çağrıları gibi) kütüphanesi şeklindedir. Okunan baytlar = read(dosya tanımlayıcı, tampon, okunacak baytlar) Kuyruklama (spooling) ile sanal G/Ç aygıtları oluşturulabilir.

Aygıttan Bağımsız G/Ç Yazılımı Farklı aygıt sürücüleri için tekdüze bir arayüz tanımlanabilir. Aygıt isimlendirme: Belli aygıt sürücülerine sembolik aygıt isimleri eşlemektir. Çok kullanıcılı bir sistemde bütün kullanıcıların bütün G/Ç aygıtlarına erişimine izin vermeyerek aygıtı korumanız gerekir. Farklı aygıtlar için fiziksel blok boyutları farklılık gösterir, bu yüzden aygıttan bağımsız blok boyutu için aynı mantıksal blok boyutu verilir. Disk gibi blok aygıtlarında yer tahsisi Çoğu işletim sistemi bu kapsamda CD/DVD ROM, flash disk gibi atanmış aygıtları tahsis etme ve serbest bırakabilmektedir. Bozuk bir bloğa rastlandığında sürücü G/Ç isteğini defalarca tekrarlar ve eğer veri alınamazsa bir hata mesajı gönderir.

Aygıt Sürücüleri Genelde aygıt veya aygıt sınıfı başına bir sürücü tanımlıdır. Aygıt sürücüleri G/Ç komutlarını yürütür, G/Ç aygıtının durumunu kontrol eder (yazıcıda kağıt var mı, toner/mürekkep bitti mi vb.) ve G/Ç isteklerini kuyruğa alır.

Kesme İşleyicileri (Interrupt Handlers) Bir G/Ç yerine getirildiğinde G/Ç bitene kadar süreç askıya alınır. G/Ç bittiğinde donanım bir kesmeye yol açar ve yürütme özel bir rutine (kesme işleyiciye) yönlendirilir. Kesme işleyici üst katmanlara bunu geçmek üzere aygıt sürücüsüne bildirir.

Denetim Akışı Bilgisayarın açılmasından itibaren işlemciler aynı işi yapar, bir anda bir talimat olmak üzere bir talimatlar dizisini yorumlar/çalıştırır. Bu diziye işlemcinin denetim akışı (control flow) denir. Fiziksel denetim akışı <başlangıç> inst1 inst2 inst3 … instn <kapanış> Zaman

Denetim Akışını Değiştirme Denetim akışını değiştirmek için atlamalar ve dallar, çağırma ve dönme program durumundaki değişimlere karşılık verilir. Kullanışlı bir sistem için bunlar yetersiz kalır zira sistem durumundaki disk veya ağdan veri gelmesi, sıfıra bölme talimatı, kullanıcının klavyeden Ctrl+C’ ye basması, sistem zamanlayıcının süresinin dolması tarzı değişikliklere bu mekanizmalarla karşılık vermek zordur. Bu yüzden istisnai (exceptional) denetim akışı sağlayan mekanizmalar gerekir.

İstisnai Denetim Akışı Bir bilgisayar sisteminin bütün seviyelerinde yer alır. İstisnalar (exceptions) düşük seviyededir ve bir sistem olayına karşılık olarak denetim akışında değişime neden olur. Donanım ve İS yazılımının birleşimi ile tanımlanır. Süreç değişimi yüksek seviyededir, İS yazılımı ve donanım zamanlayıcıyla birlikte tanımlanır. Sinyaller yüksek seviyededir ve İS yazılımı tarafından tanımlanır. Yerel olmayan atlamalar yüksek seviyededir, setjmp() ve longjmp() C çalışma zamanı kütüphanesi tarafından tanımlanır.

İstisnalar (Exceptions) Bir olaya (işlemci durumu değişikliği vb.) karşılık olarak denetimin işletim sistemi çekirdeğine verilmesidir. Sıfıra bölme, aritmetik taşma (overflow), sayfa hatası, G/Ç isteğinin tamamlanması, bellek erişim ihlali (NullReferenceException) Kullanıcı kodu Çekirdek kodu Olay İstisna I_current I_next İstisna işleyici tarafından istisna işlenir. I_current ’ a dön I_next’ e dön Çık

İstisna Tabloları Her olay türünün kendine ait bir istisna numarası vardır. Bu numara istisna tablosunun indeks değeridir. (kesme vektörü de denir) Her k türünden bir istisna olduğunda, k işleyicisi (handler)çağırılır. İstisna numaraları 0. istisna işleyicinin kodu İstisna Tablosu 1. istisna işleyicinin kodu 1 2. istisna işleyicinin kodu 2 ... n-1 ... n-1. istisna işleyicinin kodu

Asenkron İstisnalar (Kesmeler) İşlemcinin haricinde olan olaylar yüzünden olur. İşlemcinin kesme pini ayarlanarak belirtilir. İşleyici (handler) «sonraki» talimata döner. Zamanlayıcı (timer) kesmesi: Milisaniye mertebesinde, harici bir zamanlayıcı çipi kesme tetikler. Bu sayede çekirdek kullanıcı programlarından denetimi geri alır. Harici aygıttan gelen G/Ç kesmesi: Klavyeden Ctrl+C’ ye basmak, ağdan/diskten bir paketin/verinin gelmesi vb. durumlarda olur.

Senkronize İstisnalar Bir talimatı yürütme sonucunda oluşan olaylar sebep olur. Tuzaklar: Kastidir, sistem çağrıları, durma noktası, özel talimatlar bu türdendir. Denetimi «sonraki» talimata devreder. Hatalar: Kasti değildir ama geri dönülmesi muhtemeldir. Sayfa hatalarından dönülebilmekle birlikte koruma hatalarından dönülemez. Ondalıklı sayı istisnaları da bu türdendir. Hata veren talimat ya tekrar çalıştırılır veya çıkılır. Çıkışlar (Abort): Kasti değildir ve geri dönüşü yoktur. Geçersiz işlem, parite hatası, makine denetimi bu türdendir. Mevcut programdan çıkmak dışında bir seçenek yoktur.

Sayfa Hatası Örneği Kullanıcı bellek konumuna yazmak ister, bellek sayfası disktedir. int a[1000]; main () { a[500] = 13; } 80483b7: c7 05 10 9d 04 08 0d movl $0xd,0x8049d10 Kullanıcı kodu Çekirdek kodu İstisna: sayfa hatası movl Diskten belleğe sayfa kopyala Dön ve movl’ yi yeniden çalıştır

Geçersiz Bellek Referansı Hatası Örneği Kullanıcı tahsis edilmemiş belleğe erişmeye kalkar. Sürece SIGSEGV sinyali gönderilir ve süreç «bölütleme hatası» ile çıkar. int a[1000]; main () { a[5000] = 13; } 80483b7: c7 05 60 e3 04 08 0d movl $0xd,0x804e360 Kullanıcı kodu Çekirdek kodu İstisna: sayfa hatası movl Geçersiz adresi teşhis et Sürece sinyal gönder