GİRİŞ/ÇIKIŞ SİSTEMLERİ

Slides:



Advertisements
Benzer bir sunumlar
Bilgi Teknolojisinin Temel Kavramları
Advertisements

İşletim Sistemleri.
Anakartlar Sistemin merkezi bileşenidir.
GENEL OLARAK Ana kart Nedir? Ana kartın Yapısı
8259A Programlanabilir Kesme Denetleyicisi (PIC)
İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, Kabuk ve diğer temel kavramlar)
BİLGİSAYAR NEDİR?.
BLG 201 ŞAHİN AKDAĞ.
Windows işletim sistemi ve sürümlerinin incelenmesi
İşletim Sistemlerine Giriş – 2 Kaynakların Paylaşımı
Öğr.Gör. Dr. Şirin KARADENİZ
Bölüm 1: Introductions (Tanıtım,Tanım)
MİMARİ ESASLAR Bir bilgisayarın komut kümesi, programcının makineyi programlarken kullanabileceği ilkel emirleri veya makine komutlarının tamamının oluşturduğu.
Programlamanın Yapı Taşları
TEMEL BİLGİ TEKNOLOJİSİ KULLANIMI
BÖLÜM 2: BİLGİSAYAR SİSTEM YAPILARI
Chapter 8: Deadlocks (ölümcül kilitlenmeler)
CEIT 101 Teorik Emrah Soykan - Konu 2 -.
CEIT 101 Teorik Vasfi Tuğun - Konu 2 -.
BİLGİ TEKNOLOJİSİNİN TEMEL KAVRAMLARI
Depolama Alan Ağları – SAN Ağa Bağlı Depolama - NAS
Bilgisayara Giriş Doç. Dr. Mehmet S. İlkay.
İşletim Sistemleri Hazırlayan Hakan YİĞİT.
DONANIM. Donanım nedir? Donanım bilgisayarı oluşturan her türlü fiziksel parçaya verilen verilen addır. Donanım bir merkezi işlem biriminden (Central.
MART 2013 İŞLETİM SİSTEMLERİ.
BİLGİSAYAR AĞLARI.
BİLGİSAYARIN MİMARİSİ, TEMEL BİLEŞENLERİ VE ÇALIŞMA MANTIĞI
İŞLETİM SİSTEMLERİ Öğr. Gör. S.Serkan TAN.
Ders 2 Donanım Birimleri.
BİLGİSAYAR SİSTEMLERİ
İŞLETİM SİSTEMLERİ İşletim sisteminin, kolay ve hızlı kullanım, kaynak verimliliği gibi kıstasların dışında, ortamında saklanan bilgilerin, gerekse izinsiz.
İŞLETİM SİSTEMİ.
EYLÜL 2014 İŞLETİM SİSTEMLERİ Bilgisayar Uygulamaları.
İŞLEMCİ MİMARİLERİ – Derya Işık
BİLGİSAYAR SİSTEMLERİ
Sistem Çağrıları Proses Kontrol Çağrıları Bellek Yönetim Çağrıları
İşletim Sistemleri Operation Systems Fon müziği.
Bilgi Teknolojisinin Temel Kavramları
Chapter 14: Files and Streams. 2Microsoft Visual C# 2012, Fifth Edition Dosyalar, Dosya Ve dizin Sınıfları Geçici Depolama – Genellikle bilgisayar belleği.
Ethernet Anahtarlama.
Bölüm 13: I/O Sistemleri Giriş/Çıkış Donanımı
Bilgisayar Sistemlerine Giriş
Bilgisayar Mühendisliği Bölümü
Hafta2 Bilgisayar Donanımı Dersi
Bilgi Teknolojisinin Temel Kavramları
BELLEK YÖNETİMİ Memory Management
Kuzey ve Güney Köprüleri
İŞLETİM SİSTEMLERİ ISE 206 DR. TUĞRUL TAŞCI. Dersin Amacı Bilgisayar sistemlerinin temel organizasyonunu tanımak İşletim sistemlerinin ana bileşenlerini.
Genel Kavramlar Bölüm - 1. YAZILIM Bilgisayara işlemler yaptırabilmek ve karar verdirtebilmek için yazılan kalıplara denir. Yazılım, genel olarak donanım.
Barış Ceviz Yazılım Geliştiricisi Yazılım, Yazılımcı, Yazılım Dilleri.
Ağ Donanımları Ağ Nedir ? Ağ Donanımları Bridge Hub Switch Router
Bilgisayar Donanımı Dersi
SANALLAŞTIRMA ÇEŞİTLERİ VE YAZILIMLARI
EETE264 – BİLGİSAYAR DONANIMINA GİRİŞ
BİLGİSAYAR NEDİR?.
Bilgisayar Donanımı Dersi
Mikrobilgisayar Tasarım Yapıları
Bilgisayar Donanım ve Sistem Yazılımı
İşletim Sistemleri Hazırlayan Hakan YİĞİT.
Kaynakların Paylaşımı
Bir İşletim Sisteminin Mantıksal Yapısı
Açılış yoklama İşletim Sistemleri. Bilgisayarlarda işletim sistemi, donanımın doğrudan denetimi ve yönetiminden, temel sistem işlemlerinden ve uygulama.
Bilgisayara Giriş Seyfullah BAŞKÖYLÜ.
İşletim Sistemleri (Operating Systems)
Mikrobilgisayar Tasarım Yapıları
İşletim Sistemleri (Operating Systems)
BİLİŞİM TEKNOLOJİLERİ
Öğr.Gör. Dr. Şirin KARADENİZ
BİLGİSAYAR MÜHENDİSLİĞİNE GİRİŞ
Bilgisayar Donanımı Dersi Bilgisayarın Mimarı Yapısı ve Çalışma Mantığı.
Sunum transkripti:

GİRİŞ/ÇIKIŞ SİSTEMLERİ Bölüm 14 GİRİŞ/ÇIKIŞ SİSTEMLERİ

Giriş Bilgisayara bağlı olan aygıtların kontrolünün sağlanması işletim sistemi tasarımcılarının öncelikli hedeflerindendir. G/Ç cihazları, fonksiyonları ve hızlarına göre çok geniş bir yelpazade değişirler. (mouse, harddisk, cd-rom...). Bunların kontrolü için çeşitli metotlar gerekmektedir. Bu metotlar, Kernel’ın I/O alt sistemini kurarlar. Bu alt sistem karmaşık I/O düzenleme işlerini kernel’ın geri kalan işlemlerinden ayırmış olmaktadır.

I/O Yönetimi Gereksinimler I/O Devices: Aygıtlar olmadan bilgisayar(CPU, DRAM vb) kullanılamaz. Geniş yelpazede değişen aygıtlar Nasıl standart bir arayüz sağlanacak? Güvenilmeyen aygıtlar (phsycical failures or transmission errors) Nasıl güvenilir yapılacaklar? Unpredictable/slow aygıtlar Hangi işlemi nasıl gerçekleştireceklerini bilmiyorsak onları nasıl yöneteceğiz? Bazı Operasyonel Parametreler: Byte/Blok Bazı aygıtlar byte erişimi sağlarlar (klavye,mouse) Bazıları blok erişimi sağlarlar (disk) Sequential/Random Bazı aygıtlara sıralı erişim yapılabilir (tape) Bazılarına random şekilde erişilir (disk, cd) Polling/Interupts (hangisi daha etkin) Bazı aygıtlar devam eden izlenmeye e ihtiyaç duyarlar (işletim sistemi sürekli keypressed oldumu diye çok kısa aralıklarla kontrol eder) Bazıları servise ihtiyaç duyduklarında interrupt oluştururlar (OS keypressed interruptı ile aygıta yönelir) Keyboard için hangisi daha etkin? Gigabit ethetnet için hangisi daha etkin? Genelde aygıtlar polling ve interruptları kombine ederler.

I/O Donanımı Cihazlar birkaç kategoriye ayrılırlar: Depolama birimleri(disk driverlar, CD-Rom) transfer birimleri (network cards, modems) insan-etkileşimliler (ekran, klavye, mouse). özel amaçlar için geliştirilmiş cihazlar

I/O Donanımı Çeşitli G/Ç Cihazları Genel içerik Port (bilgisayarın bir cihaza erişimi için bağlantı noktası) Bus (birkaç cihaz bir grup genel hattı paylaşıyorsa) Controller(host adapter) (bus, aygıtları yönetmek üzere kurulmuş elektronik sistem) I/O talimatları için kontrolör cihazlar(cihazlara ait registerlar) Cihazlar adreslere sahiptir, adresler şunlar tarafından kullanılır: Direk I/O talimatları (in, out,..) Memory-mapped I/O (move, load, store,..)

I/O Hardware

I/O Hardware (direct I/O)

I/O Hardware (memory mapped I/O)

Port Yapısı

PC lerde I/O port yerleşimi

G/Ç Portu G/Ç portu tipik olarak 4 register saklar: Status register, birtakım bitler içerir. Bu bitler, mevcut komut tamamlandı mı, Cihaz meşgul mü (busy bit), bir device error var mı gibi durum bilgileri içerirler. Control register, bir komuta başlamak yada cihazın modunu değiştirmek üzere yazılabilir.(comment bit, comment ready bit içerir) Data-in register, inputu almak üzere hazır bekler. Data-output register, outputu göndermek üzere yazılan registerdır.

Tipik Bus Yapısı

Aygıtlar için Standart Arayüzler Block Devices (disk, tape, dvd-rom drivers) Veri bloklarına erişim vardır Komutlar open(), read(), write(), seek() ins.içerir. Dosya sistemi erişimi Memory-Mapped dosya erişimi olanaklıdır Character Devices (klavye, mouse, seri port, USB) Belirli bir zamanda tekil karakter erişimi Komutlar get(), put() içerir Network Devices (ethernet, wireless, bluetooth) Kendi arayüzü olacak kadar blok ve karakter erişimli olanlardan farklılık gösterir Unix ve Windows soket arayüzü içerir Kullandıkları: streams, queues, mailboxes

Zamanlama? Blocking Interface: Bekle Non-Blocking Interface: Bekleme Veri isteğinde bulunulduğunda (read() sistem çağrısı gibi), veri hazır olana kadar prosesi sleep modunda beklet Veriyi yazdığın zaman (write() çağrısı), cihaz veri için hazır olana kadar prosesi sleep modunda beklet. Non-Blocking Interface: Bekleme Read() yada write() çağrılarından beklemeden başarı ile transfer edilmiş byte sayıları ile döner. Asynchronous Interface: Daha sonra hatırlat Veri isteğinde bulunulduğunda, pointer’ı user buffer alanına al, return immediately; sonrasında kernel buffer alanını doldurur ve kullanıcıyı uyarır. Veri gönderildiğinde, pointer’ı user buffer alanına al; return immediately; sonrasında kernel veriyi alır ve kullanıcıyı uyarır.

İşlemci Aygıtlar ile Konuşur CPU bir kontrolör ile etkileşimdedir. Okunan ve yazılabilen register setleri içerir Request kuyrukları için bellek içerebilir I/O Instructions: in/out Örn: Intel mimarisi: out 0x21, AL Memory Mapped I/O: load/store Registers/bellek fiziksel adres alanında görünür I/O load ve store instruction ları ile gerçekleşir.

Aygıt Yönetimi G/Ç sistemi düzeni Sorgulamalı doğrudan G/Ç Aygıt yönetimi G/Ç işlemleri yapan uygulamaların kullandığı kaynakların, birinci seviyede sanal tanımını yapmayı sağlar. Sanal tanımlama ile uygulama yazılımı geliştiren programcılar donanımın nasıl yönetildiği bilmeden, donanımla ilgili işlemleri İşletim sistemi yardımıyla yapabiliriler. Aygıt yönetimi tarafından, çeşitli G/Ç işlemleri için tanımlanan teknikler: G/Ç sistemi düzeni Sorgulamalı doğrudan G/Ç Kesme Yönelimli G/Ç Bellek eşleşmeli G/Ç Doğrudan bellek erişimi

G/Ç Sistemi Düzeni Modern işletim sistemlerinde aygıt yönetimi: aygıt sürücüsü ve kesme yordamı (kesme-yönelimli denilen) etkileşimiyle yürütülür. Kesmeler kullanılmazsa aygıt sürücüsü aygıt yönetimini tamamen yürütür. Uygulama işlemi bir aygıtı, komut vererek ve veriyi aygıt sürücüsü ile dönüşümlü olarak kullanır. Aygıt sürücüsünün iki ana sorumluluğu vardır: Uygulama işlemine bir Uygulama Programı Arayüzü(API) uygulamak API'de tanımlanan fonksiyonları yürütmek için uygun komutlar vererek aygıta özgü operasyonları yapmak.

... Farklı aygıt sürücüleri arasındaki API'ler mümkün olduğunca benzer olmalıdır. Bu durum uygulama programcısının aygıtı kullanmak için gereken aygıta özgü bilgilerin miktarını azaltacaktır. Ancak aygıt denetleyicileri o aygıta özgü olduğundan, sürücünün denetleyiciye doğru komutları verebilmesi, denetleyici durum yazmacındaki bilgileri doğru bir şekilde yorumlaması ve hatasız aygıt fonksiyonu için bilginin denetçi veri yazmacına veya yazmacından iletilmesi için sürücü uygulaması sürücüye ve donanıma özel olmalıdır.

Sorgulamalı Doğrudan G/Ç Doğrudan G/Ç; makinenin ana belleği ve aygıt denetleyicisinin veri yazmaçları arasındaki veri iletiminin CPU ‘nun sorumluluğunda olan bir G/Ç yöntemi belirtir. G/Ç yapılırken, aygıt yöneticisi aygıtın meşgul-bitti işaretlerini sorgulayabilir veya fonksiyonun tamamlandığını anlamak için kesmeleri kullanabilir. Bu bölüm çok basit teknikler üzerine yoğunlaşmıştır; yani, CPU aygıtı başlatır ve sonra fonksiyonun ne zaman bittiğini sorgulamak için durum yazmaçlarını sorgular. CPU sürekli olarak denetleyicinin durumunu gözetlediğinden, bu teknikle verimli bir şekilde CPU’yu çalıştırmak oldukça zordur

... bir giriş fonksiyonunu başarmak için gereken adımlar: Uygulama işlemi bir oku fonksiyonu ister. Aygıt sürücüsü aygıtın boş olup olmadığını belirlemek için durum yazmacını araştırır. Eğer aygıt meşgulse, sürücü aygıt boş olana dek bekler. Sürücü aygıtı başlatmak için aygıt denetleyicisinin komut yazmacına bir giriş komutu koyar. Aygıtın fonksiyonunu tamamlamasını beklerken sürücü defalarca durum yazmacını okur. Sürücü denetleyicinin veri yazmaçlarının içeriğini kullanıcı işleminin sahasına kopyalar.

Programmed I/O

CPU zamanı Printer saniyede 100 karakter print etsin. Her karakter için 10msaniye geçsin. Bu durumda her karakter printer’ın data register’ına yazıldıktan sonra CPU 10 Msec idle-loop’da beklemek zorunda kalacaktır.(bir sonraki karakterin print edilip edilmeyeceğini kontrol)

Kesme-Yönelimli G/Ç Bilgisayar donanımına kesmelerin konulmasının nedeni aygıt sürücüsünün sürekli olarak denetçinin durum yazmacını sorgulamasını ortadan kaldırmak içindir.(CPU nun busy-wait döngüsünü kırmak) Bunun yerine aygıt denetleyicisi, otomatik olarak fonksiyon bitiminde aygıt sürücüsünü uyarır. Kesmeleri kullanan bu modelde, aygıt yönetimi işlevselliği dört farklı bölüme ayırır.Bunlar: Sürücünün fonksiyonu başlattığı üst kısım Aygıt durum tablosu Kesme işleyici Aygıt işleyici

Kesmeler Temel bir interrupt mekanizması şu şekilde çalışır. CPU, işletilen her işlemden sonra CPU’nun sezdiği “interrupt-request-line” olarak adlandırılan bir hatta sahiptir. CPU, kontrolörün interrupt request line’da bir sinyal bildirdiğini tesbit ettiğinde, CPU, durumu (state’in) kaydeder ve interrupt-handler prosesine atlar. Interrupt-handler, kesmenin nedenini tespit eder, gerekli işlemleri yapmaya başlar. Kısaca şunu diyebiliriz: aygıt kontrolörü, interrupt-request-line’a bir sinyal bırakarak kesme bildirir, CPU kesmeyi yakalar ve kontrolü kesme işlemciye geçirir, Kesme işlemci(interrupt handler), aygıta gerekli hizmeti sunarak kesmeyi silmiş olur Kesme mekanizması bunlara ek olarak bir de kesme öncelik seviyeleri sistemi barındırır.

...

Kesme Vektörü Kesme mekanizması, bir adres – küçük bir kümeden özel bir interrupt-handler seçen bir numara- kabul eder. Bir çok mimaride, bu adres “kesme vektörü” olarak adlandırılan bir tablodaki bir ofset değeridir. Bu vektör, interrupt handlerların bellek adreslerini içerirler. Vektör haline getirilmiş bir kesme mekanizmasının amacı, tek bir interrupt-handlerın tüm olası kesme kaynaklarını hangisinin servise ihtiyacı var şeklinde bir arama ihtiyacını azaltmaktır

Intel Pentium da Event-Vector(Kesme Vektörü) Tablosu

Bellek Eşlemeli G/Ç Bir G/Ç aygıtı denetleyicinin yazmaçlarına veya denetleyicinin yazmaçlarından bilgiyi okuyan/yazan yazılıma sahip olmalıdır. Bilgisayar tasarımcısı denetçinin yazmaçlarını işleyebilecek hangi komutları kullanacağına karar vermelidir. Her kontrol yazmacının bir port(kapı) numarası vardır. I/O işlemleri için özel assembly kodlar kullanılır. Bu sistemde bellek ve I/O için kullanılacak adres uzayı farklıdır. makine komut kümesi bu işi başarmak için özel G/Ç komutlarını içerir. Örneğin, komut kümesi G/Ç fonksiyonlarını yapmak için aşağıdaki komutları bulundurmalıdır:

... input aygıt_adresi output copy_in MIÜ_yazmacı, aygıt_adresi, denetleyici_yazmacı copy_out test MIÜ_yazmacı, aygıt_adresi

... Copy_in R3, 0x012, 4 : 0x012 aygıt adresli denetleyicinin 4 nolu veri yazmacını 3 nolu MIÜ yazmacına kopyalar.

Example: Memory-Mapped Display Controller 0x8000F000 0x80010000 Physical Address Space Status 0x0007F000 Command 0x0007F004 Graphics Queue 0x80020000 Memory-Mapped: Kontrol registerları ve görüntü belleği fiziksel adres alanına map edilir Adresler boot zamanında set edilmişlerdir. display memory alanına yazmak ( “frame buffer” olarak da adlandırılır) ekrandaki image’i değiştirir. Addr: 0x8000F000—0x8000FFFF Komut kuyruğu alanına grafik tanımını yazmak Addr: 0x80010000—0x8001FFFF Komut registerına yazmak on-board graphics donanımında şunun yapılmasına neden olabilir Addr: 0x0007F004 Fiziksel sayfalar page table lar ile korunurlar

Doğrudan Bellek Erişimi Sürücü G/Ç fonksiyonunu başlattıktan sonra doğrudan bellek erişimi (DMA) denetçileri MIÜ müdahalesi olmadan doğrudan bilgiyi bellek adresine iletir veya bellek adresinden okuyabilir veya yazabilir DMA denetçisi, yazılımın veriyi bellek ve denetleyici arasında iletmek için kullandığı fonksiyonların aynısını yapan bir mantık içerir. Fakat bunu yaparken sadece denetçinin donanımını kullanır. DMA donanımı hiç CPU kullanmaksızın veri iletimini yapabilir. DMA makinenin G/Ç başarımını önemli derecede arttırabilir. DMA ile denetçi, aygıt ve bellek arasında doğrudan okuyup yazabildiğinden, denetçinin mantıksal olarak veri yazmaçlarına bile ihtiyacı yoktur. Ancak, DMA denetçisi ilgili bellek bloğunu gösteren sürücü tarafından yüklenilen adres yazmacını içermelidir. Bu gösterge ana belleğe hedef bloğu yerleştirmek için denetçi tarafından kullanılır.

DMA Adımları

Aygıt Sürücüleri Her aygıt bilgisayara bağlandıktan sonra kendisine özgü bazı kodlara ihtiyaç duyar bu kod device driver olarak adlandırılır. Aygıt üreticisi tarafından yazılır. Aygıt sürücüleri G/Ç fonksiyonunu çağırmak için uygulama işlemi tarafından kullanılan aygıt yöneticisinin bir bölümüdür. İşlem aygıt sürücüsünü istediğinde, sürücü denetçi-bağımsız talebi iletişim kurmak için denetçi-bağımlı eylemlere dönüştürür. Aygıt-sürücü katmanının amacı, kernel’ın alt sistemlerinden device-kontrolörlerin arasındaki farkları kaldırmaktır. I/O sistemini donanımdan bağımsız yapabilmek işletim sistemi tasarımcıları ve donanım parçası imalatçıları için çok kolaylıklar sağlamaktadır. Her işletim sistemi device-driver arayüzü için kendi standartlarına sahiptir.

… Bu fonksiyonlar aç, kapat, oku, yaz, ara gibi kavramları içerirler. Aygıt sürücüsü kavramı oldukça karmaşık ve soyut bir kavramdır. Bu bilgisayarın yazılımı üzerinde en alt seviyede çalışır. Çünkü aygıt sürücü kavramı tamamen aygıtın donanım özelliklerine bağlıdır. Eğer herhangi bir uygulama bir aygıta ihtiyaç duyuyorsa; çekirdek uygun aygıt sürücüsüyle iletişime geçer. Sonra, sürücü uygun komutları aygıt üzerinde uygular. Aslında aygıt sürücüsü bir çeşit fonksiyonlar serisidir. Bu fonksiyonlar aç, kapat, oku, yaz, ara gibi kavramları içerirler.

Aygıt Sürücü Arayüzü İşletim sistemleri aygıt yönetimi sistemi için bir mimari tanımlar. Bu tasarımlar sistemden sisteme değişiklik gösterir; bu yüzden evrensel bir organizasyon yoktur. Bu sistemlerin her biri aygıt yöneticisi için iki önemli arayüze sahiptir API (blok, karakter, network) Sürücü ve İşletim sistemi çekirdeği arasındaki arayüz

Aygıt Sürücülerinin Yerleşimi

Kernel I /O Yapısı

KERNEL I/O Alt Sistemi Buffering: Buffer verilerin iki cihaz arasında transferi ya da bir cihazla uygulama arasında transferi sırasında kullanılan bellek alanlarıdır. Performansın anahtarıdır. Caching: Cache, verinin bir kopyasını taşıyan ve çok hızlı erişilebilen bir bellek türüdür. Cached kopyaya erişmek verinin orjinaline erişmekten çok daha etkin bir yöntemdir. Spooling: Bir cihaz için çıkış verisi içeren bir çeşit bufferdır. Bir printer bir zamanda yalnızca bir işe cevap verebilirken, birden çok uygulama farklı çıktılar almak isteyebilir. Ve bu işlerin birbirine karışmamalarını isterler. Her uygulamanın çıkışı ayrı bir disk dosyasına spool edilir. Error handling (hata yakalama):Aygıtlar ve I/O transferi birçok bozulmaya uğrayabilir. Genel bir kural olarak, bir I/O sistem çağrısı bir bilgi biti ile geri döner. Bu bit sistem çağrısının durumunu bildirir. Başarılı ya da başarısız şekilde.

Kernel Veri Yapıları Dosya ve aygıtlara erişim kontrolü Dosya sistemi yerleşimi Aygıt yerleşimi Buffering, caching, spooling I/O düzenleme Aygıt durumlarını görüntüleme, hata yakalama, hatadan geri dönüş Aygıt sürücü konfigürasyonu ve başlatılması, çalıştırılması

I/O Döngüsü

I/O System Özeti

Sistemin Performansını Etkileyenler CPU nun aygıt sürücüyü işletmesi ve kernel In I/O kodu işletmesine göre değişir kesmelere göre Context switch ler Veri kopyalama Network trafiği

Performansı Artırmak için İçerik anahtarlamanın sayısı azaltılmalı Veri kopyalama azaltılmalı Bir kere de daha çok transfer ile kesmeler azaltılmalı DMA kullanılmalı CPU, bellek, bus ve I/O lar yüksek through put için ayarlanmalı.