book1.pdf
Document Details
Uploaded by ManeuverableLouvreMuseum
2006
Tags
Related
Full Transcript
T.C. FIRAT ÜNİVERSİTESİ TEKNİK EĞİTİM FAKÜLTESİ ELEKTRONİK VE BİLGİSAYAR BÖLÜMÜ BİL391 İŞLETİM SİSTEMLERİ (Ders Notları) İbrahim TÜRKOĞLU ELAZIĞ- 2006 İÇİNDEKİLER 1. Bilgisayar Sistemlerinin Yapısı 2. İşletim Sistemlerine Bakış 3. İşletim Sistemlerinin Bileşenleri 4. İşletim Sistemlerinin Yapıs...
T.C. FIRAT ÜNİVERSİTESİ TEKNİK EĞİTİM FAKÜLTESİ ELEKTRONİK VE BİLGİSAYAR BÖLÜMÜ BİL391 İŞLETİM SİSTEMLERİ (Ders Notları) İbrahim TÜRKOĞLU ELAZIĞ- 2006 İÇİNDEKİLER 1. Bilgisayar Sistemlerinin Yapısı 2. İşletim Sistemlerine Bakış 3. İşletim Sistemlerinin Bileşenleri 4. İşletim Sistemlerinin Yapısı ve Sunduğu Hizmetler 5. Görev Yönetimi 6. Bellek Yönetimi 7. Kütük Sistemleri 8. Giriş/Çıkış İşlemleri 9. Dağıtılmış İşletim Sistemleri 10. Güvenlik ve Koruma İbrahim Türkoğlu – Fırat Üniversitesi, Elektronik ve Bilgisayar Eğitimi Bölümü – 2006 2 1. BİLGİSAYAR SİSTEMLERİNİN YAPISI İşletim sistemleri, bir veya daha fazla sürecin (proses) donanım kaynaklarını kullanmasını sağlayarak, bilgisayar sistemi kullanıcılarına çeşitli hizmetler sunar. 1.1. Bilgisayar Sisteminin Temel Elemanları • İşlemci (Ana işlem birimi – AİB) • Ana Hafıza • • – Gerçek hafıza veya birincil hafıza olarak da bilinir. – Elektrik kesildiğinde bilgileri kaybolduğundan, uçucu bir hafızadır. G/Ç modülleri – İkincil hafıza sürücüleri – Haberleşme birimleri – Terminaller (uç birimler) Sistem BUS (Adres yolu, Veri Yolu, Denetim yolu) – Süreçler, hafıza ve G/Ç modülleri arasında haberleşmeyi sağlar. Şekil. Bilgisayar Sistemi İbrahim Türkoğlu – Fırat Üniversitesi, Elektronik ve Bilgisayar Eğitimi Bölümü – 2006 3 1.2. Bilgisayar Sisteminin Üst Seviye Bileşenleri A. İşlemci (CPU) kayıtçıları Kullanıcıya görünen kayıtçılar: ¾ Bunlar ile programcı, kayıtçı kullanımını en iyi şekilde organize ederek ana hafıza kullanımı minimize eder. ¾ Makine dili (asembly) tarafından kullanılabilir. ¾ Tüm programlar (uygulama programları, sistem programları) ile kullanılabilirler. ¾ Kayıtçı türleri : Veri ve adres kayıtçıları • Veri Kayıtçısı : Verileri üzerinde tutar. • Adres Kayıtçıları: Adresleri üzerinde tutar. – İndisli :Bir adrese ulaşmak için taban bir değere bir indis eklemede kullanılır. – Segment pointer (Segment göstericisi): Hafıza segmentlere bölündüğü zaman, hafızaya bir segment ve ofset değeri ile ulaşılabilmesini sağlar. – Stack pointer (Yığın göstericisi) : Yığının en üstüne işaret eder. Kontrol ve durum kayıtçıları : İşletim sistemi aracılığı ile işlemci tarafından kullanılarak, programların düzenli olarak çalışmasını sağlamak için işlemciyi kontrollü bir şekilde çalıştırır. Bunlar: • Program Sayacı (Pogram Counter, PC): Çalıştırılacak olan bir komutun adresini içerir. • Komut Kayıtçısı (Instruction Register, IR) : Çalıştırılacak komutu içerir. • Program durum sözcüğü (status word, PSW): Şartlı işlemleri, kesme kullanımı ve yönetim/kullanıcı modunu kontrol eder. Şöyleki; yapılan işlemlerin sonucunda işlemci donanımı tarafından PSW bitler kurulur. Bu bitlere, bir program tarafından erişilebilir fakat değiştirilemezler. Örnek: pozitif, negatif, sıfır ve taşma sonuçları gibi İbrahim Türkoğlu – Fırat Üniversitesi, Elektronik ve Bilgisayar Eğitimi Bölümü – 2006 4 Şekil. Üst seviye bileşenler B. Komut alma ve yürütme stratejisi 1.İşlemci, PC nin gösterdiği hafıza adresinden çalıştırılacak olan komutu alır. 2.Sonrasında PC bir sonraki alınacak olan komutun adresini tutmak üzere içeriğini artırır. Şekil. Bir komut saykılı İbrahim Türkoğlu – Fırat Üniversitesi, Elektronik ve Bilgisayar Eğitimi Bölümü – 2006 5 C. Komut kayıtçısı Hafızadan alınan komutlar, komut kayıtçısına (IR) yerleştirilir. Komut türleri: – İşlemci – Hafıza : İşlemci ve hafıza arasında veri transferini sağlarlar. – İşlemci - G/Ç : Bir çevresel birim ile veri transferi yapılamasını sağlarlar. – Veri İşleme : Veri üzerinde aritmetik ve lojik işlemler yapılmasıdır. – Kontrol : Yürütüm sırasını değiştirirler. D. Program yürütüm örnekleri E. Doğrudan hafıza erişimi (Direct Memory Access, DMA) Hafıza ile G/Ç birimleri arasında doğrudan veri değişimlerinin yapılmasıdır. İşleyiş tarzı: İbrahim Türkoğlu – Fırat Üniversitesi, Elektronik ve Bilgisayar Eğitimi Bölümü – 2006 6 • İşlemci G/Ç modülünü hafızaya yazma veya hafızadan okuma ile yetkilendirir. • Değişim esnasında işlemci sorumluluğu devreder. • Bu değişim esnasında, işlemci diğer işleri yapabilir. F. Kesmeler İşlemcinin, normal yürütüm sırasını değiştirmek ve gereksinim duyulan başka bir işi varsa onu yerine getirmek için kesme programları kullanılır. Kesme sürecinde kontrolü kesme programı devralır. Kesmeler işletim sistemlerinin genel bir parçasıdırlar. Kesmeler: • İşlemcinin etkinliğini artırır. • Bir G/Ç işlemi yapılırken, işlemcinin diğer komutları yürütmesine olanak verir. • Bir sürecin geçici olarak durdurulmasına (sonradan çalıştırılmak üzere) sebep olurlar. Kesme türleri: • Program – Aritmetik taşma – Sıfıra bölme – İllegal komut yürütme – Kullanıcının hafıza alanının dışına çıkması • Zamanlayıcı (Timer) • G/Ç • Donanım hatası Kesme saykılının yürütümü: • İşlemci, kesmeleri kontrol eder. • Eğer kesme yoksa, mevcut program içinde işlemci bir sonraki komut alır. • Eğer kesme varsa, mevcut çalışan program olduğu yerde bırakılır (çalışmasını bitirmeyi beklemeksizin) ve kesme programı idareyi ele alır. İbrahim Türkoğlu – Fırat Üniversitesi, Elektronik ve Bilgisayar Eğitimi Bölümü – 2006 7 Şekil. Kesmeli bir komut saykılı Kesme ve kesmesiz programların yürütüm akışları: G. Çoklu Kesmeler Bir kesme süreci başlamışken, gelebilecek diğer kesmeler kabul edilmez. İşlemci yeni gelebilecek herhangi bir kesme isteğini dikkate almaz. Kesme devre dışı kaldığında, işlemci kaldığı yerden görevini tamamlayabilir. İşlemci kesmelere izin verinceye kadar kesmeler devreye girmezler. Kesme kullanıcısının programı rutini tamamlandıktan sonra, işlemci ilave kesmeleri kontrol eder. İbrahim Türkoğlu – Fırat Üniversitesi, Elektronik ve Bilgisayar Eğitimi Bölümü – 2006 8 En yüksek öncelikli (imtiyazlı) kesme, düşük imtiyazlı kesmenin beklemesine neden olur. Yada düşük öncelikli kesme devrede ise kesilmesine neden olur. H. Çoklu programlama İşlemci yürütmek için birden çok programa sahiptir. Ardışıl programlar onların öncelik durumuna ve G/Ç için bekleyip beklemeyeceği durumuna bağlı olarak yürütülür. Bir kesme programı tamamlandıktan sonra, kontrol kesme anında çalışan programa devredilmeyebilir (kesme programı öncelikleri değiştirebilir). I. Hafıza hiyerarşisi Hafıza hiyerarşisinin getirdiği avantajlar: İbrahim Türkoğlu – Fırat Üniversitesi, Elektronik ve Bilgisayar Eğitimi Bölümü – 2006 9 • Bit başına maliyet düşer. • Kapasite artar. • Zaman erişimi artar. • Mikroişlemci tarafından hafızaya erişim sıklığı düşer. – Yerellikten söz edilebilir. J. Ön-bellek (Cache) Geçici olarak bilgilerin tutulmasına yönelik kullanılan ana hafızanın bir kısmıdır. Diskteki sık kullanılan kümelerin tutar. Veriye disk ten yavaş ulaşmak yerine yazılım ön belleğinden daha hızlı ulaşılabilir. Özellikleri: • İşletim sistemine görünmez • İşlemci hızı hafıza hızından çok daha fazladır. Önbellek kullanımı ile hafıza kullanım hızı artar. • İşlemci ilk önce ön belleği kontrol eder; gerek duyulan bilginin hafıza bloğu önbellekte yoksa, ön-belleğe taşınır. • Önbellek kapasite büyüklüğü, performans üzerinde önemli bir etkiye sahiptirler. Daha geniş blok büyüklüğü, aranılan yeni bilginin ön-bellekte bulunma ihtimalini artırır. İbrahim Türkoğlu – Fırat Üniversitesi, Elektronik ve Bilgisayar Eğitimi Bölümü – 2006 10 (a) (b) Şekil. Ön bellek kullanımı 1.3. Bilgisayar Sistemlerinde Ağ Yapısı • Yerel alan ağları (LAN) • Geniş alan ağları (WAN) İbrahim Türkoğlu – Fırat Üniversitesi, Elektronik ve Bilgisayar Eğitimi Bölümü – 2006 11 Şekil. Yerel alan ağ yapısı Şekil. Geniş alan ağ yapısı İbrahim Türkoğlu – Fırat Üniversitesi, Elektronik ve Bilgisayar Eğitimi Bölümü – 2006 12 2. İŞLETİM SİSTEMLERİNE BAKIŞ İşletim sistemi kullanıcıyla bilgisayar donanımı arasında iletişim sağlayan programdır. Programın amacı kullanıcı programlarını çalıştırmak için kullanıcıya ortam oluşturmaktır. İşletim sistemi bilgisayarı, yazılım ve donanımlarını kullanmak için elverişli duruma getirir ve donanımı etkili kullanır. Buna göre işletim sistemlerinin başlıca amaçları: 1. Kullanıcı programlarını çalıştırılması 2. Kullanıcı problemlerinin çözümünün kolaylaştırılması 3. Bilgisayar sisteminin kullanımını daha elverişli hale getirilmesi 4. Bilgisayar kaynaklarının verimli bir şekilde kullanılması (Çok kullanıcılı sistemlerde önem kazanır) ¾ İşletim sistemi, donanımla yazılım arasında bir yönetici arayüzü olarak görev yapar. Her bir donanım birimi, tüm kaynakları erişip yönetebilmektedir. ¾ Çalışma sırasında oluşan hataların ve çakışmaların önlenmesi işletim sisteminin görevidir. ¾ İşletim sistemleri bilgisayar kullanıcısı ile donanım arasında çalışan bir yazılımdır. Amacı kullanıcının programlarını çalıştırabilmesi için ortam sağlamaktır. Şekil: İşletim sisteminin konumu İbrahim Türkoğlu – Fırat Üniversitesi, Elektronik ve Bilgisayar Eğitimi Bölümü – 2006 13 ¾ İşletim sistemi faklı kullanıcıların uygulama programlarının donanım kaynaklarını kullanımını kontrol eder ve koordine eder. ¾ Bilgisayar kaynaklarının dağıtımı için şu problemlerin çözümü gerektirir: - Ana işlem biriminin zamana göre paylaşımı - Disk alanının yönetilmesi - Giriş/Çıkış aygıtlarının yönetimi ¾ İşletim Sistemi Tarafından Sağlanan Hizmetler: - Program geliştirme - Editörler ve Debuggerlar - Program yürütme - G/Ç sürücülerine erişim - Dosyalara erişimi kontrol etme - Hata denetimi ve cevaplama o Dahili ve harici donanım hataları - Hafıza hataları - Sürücü arızaları o Yazılım hataları - Aritmetik taşma - Yasaklanmış hafıza bölgelerine erişim o İşletim sisteminin, uygulama isteklerini yerine getirememesi - Muhasebe (hesaplama) o İstatistik toplama o Kullanıcı hesaplarını sağlama ¾ İşletim sistemleri, sıradan bilgisayar yazılımları gibi aynı tarz fonksiyonlara sahiptirler. Örn: Programları yürütür. 2.1. İşletim Sistemlerinin Sınıflandırılması ¾ Büyük Bilgisayarlar için Sistemler Basit toplu işlem sistemleri Benzer işlerin toplu işlenmesi sonucu işlem zamanının kısalması Otomatik iş ardışıklığı: bir işten diğerine otomatik geçmek (İlk basit işletim sistemidir). Kalıcı monitör İbrahim Türkoğlu – Fırat Üniversitesi, Elektronik ve Bilgisayar Eğitimi Bölümü – 2006 14 o Monitör’de başlangıç denetimi yapılır. o Denetim, yapılacak işe devredilir o İş bittikte denetim monitöre tekrar devredilir. ¾ Masaüstü Sistemler Kişisel bilgisayarlar – tek kullanıcıya ayrılmış bilgisayar sistemi. G/Ç aygıtları – klavye, fare, monitör, yazıcı. Kullanma rahatlığı sağlar. Birkaç farklı işletim sistemleri çalışabilir (Windows, MacOS, UNIX, Linux) ¾ Çok İşlemcili Sistemler Şekil: Çok işlemcili mimari Çok işlemcili sistemler – birden fazla AİB’nin yakın iletişimde bulunduğu sistemlerdir. Sıkıca birleştirilmiş sistem – işlemciler belleği ve saati paylaşıyorlar; İletişim, genelde ortak bellek aracılığıyla gerçekleştiriliyor. Paralel sistemlerin üstünlükleri: o Yüksek işlem yeteneği o Yüksek güvenilirlik Simetrik çoklu işlem (Symmetric multiprocessing -SMP) o Her işlemci işletim sisteminin aynı kopyasını çalıştırır. o Başarım düşmeden, çoklu işlemci yapısı çalışabilir. o Pek çok işletim sistemi SMP’yi destekliyor Simetrik olmayan çoklu işlem (Asymmetric multiprocessing) o Her işlemci özel bir probleme tahsis edilir; ana işlemci işleri planlaştırır ve diğer işlemciler arasında dağıtır o Genelde, çok büyük sistemler için kullanılmaktadır. ¾ Dağıtık Sistemler İşlem, birkaç fiziki işlemci arasında dağıtılır. İbrahim Türkoğlu – Fırat Üniversitesi, Elektronik ve Bilgisayar Eğitimi Bölümü – 2006 15 Zayıf birleştirilmiş sistem – her işlemcinin kendi yerel belleği bulunur; işlemciler birbirleriyle yüksek hızlı ana iletişim yolları üzerinden veya telefon hatları gibi çeşitli iletişim hatlarıyla iletişim kurarlar. Dağıtık sistemlerin üstünlükleri: o Kaynakların ortaklaşa kullanımı o İşlem hızının yükselmesi - yükün paylaşımı o Güvenilirlik o İletişim Ağ yapısı gerektirmektedir: Yerel alan ağları veya Geniş alan ağları Ağ için, ya istemci-sunucu, yada eşit bağlantı (peer-to-peer) modeli kullanılabilir. Şekil: İstemci-Sunucu Modelinin Genel Yapısı ¾ Kümeleşmiş Sistemler Kümeleşme, bellek alanını ortak kullanmaya izin veriyor. Yüksek güvenilirliği sağlıyor. Asimetrik kümeleşme: bir sunucu uygulamayı çalıştırdığı zaman, diğer sunucular yedek kalıyor. Simetrik kümeleşme: tüm ana makineler uygulamayı çalıştırıyor. ¾ Gerçek Zaman Sistemler Bilimsel denemelerde, fabrikalarda üretimin otomatik denetiminde, tıbbi görüntü sitemleri gibi uygulamalarda kontrol amacı ile sıkça kullanılmaktadır. Önemli özelliği, iyi tanımlanmış belirli zaman kısıtlamalarının bulunmasıdır. Gerçek zaman sistemleri ya sert (hard), yada hafif (soft) gerçek zamanlı olabilir: Sert gerçek zaman sistemleri: o İkinci bellek sınırlıdır veya yoktur, veriler kısa süreli bellekte, veya sabit bellekte saklanır. o Zaman paylaşımlı çalışmalar genel amaçlı işletim sistemleri tarafından desteklenmiyor. İbrahim Türkoğlu – Fırat Üniversitesi, Elektronik ve Bilgisayar Eğitimi Bölümü – 2006 16 Hafif gerçek zaman sistemleri: o Sanayi robotlarının denetiminde sınırlı kullanılmaktadır. o Gelişmiş işletim sistemlerinin özelliklerini gerektiren uygulamalarda yararlıdır. ¾ “El” Sistemleri Kişisel rakamlı yardımcılar (Personal Digital Assistant (PDA)) Hücresel telefonlar (Cellular telephones) Özellikleri: o Sınırlı bellek o Düşük hızlı işlemciler o Küçük ekran. ¾ İşlem Ortamları Web tabanlı işlemler Gömülmüş işlemler 2.2. İşletim Sisteminin Gelişimi İşletim sistemlerinin gelişim süreci aşağıdaki aşamalardan geçmiştir: • Basit toplu işletim sistemleri • Zaman paylaşım tabanlı çoklu programlama • Kişisel bilgisayarların işletim sistemleri • Paralel sistemler • Dağıtık sistemler (Paylaşılmış sistemler) • Gerçek zaman sistemleri 2.2.1. Basit toplu işletim sistemleri (Batch Systems) İlk bilgisayarların genelde işletim sistemleri yoktu. İşletim sistemleri bilgisayarların donanımları geliştikten sonra ortaya çıkmaya başlamıştır. Bu tür sistemlerde işlemcinin zamanının büyük kısmı giriş çıkış işlemlerini beklemekle geçer. Çünkü, G/Ç aygıtlarının hızı işlemcinin hızından düşük olduğu için işlemci bu aygıtları beklemek zorundadır. Bunu önlemek için Spooling tekniği (Ana işlem birimini giriş çıkış biriminden ayırma işlemi) kullanılır. Böylece CPU gelen girişi ya doğrudan, yada işleyip çıkışa aktarır. İbrahim Türkoğlu – Fırat Üniversitesi, Elektronik ve Bilgisayar Eğitimi Bölümü – 2006 17 Spooling G AIB Ç 2.2.2.Zaman Paylaşım Tabanlı Çoklu Programlama Aynı zaman diliminde bellekte birkaç iş bulunur. İşlerin hangisinin ve hangi ardışıklıkla çalıştırılacağının belirlenmesi için iş planlanması (job schduling) yapılır. Kaynaklar paylaştırılarak kullanılır. Bu sistemlerde AİB (CPU)’nun çalışma zamanı küçük zaman aralıklarına bölünür, ve bu zaman aralıkları ardışık olarak programlar tarafından kullanılır. Onun için ayrılan zaman aralığı bittiğinde bu iş kuyruğa geçer ve yeniden işlenmek için bekler. Şekil: Tek program; İşlemci G/Ç biriminden gelebilecek olanı bekler Şekil: Çoklu programlama; Bir iş G/Ç birimini beklediği zaman, işlemci başka bir işe yönelebilir. İbrahim Türkoğlu – Fırat Üniversitesi, Elektronik ve Bilgisayar Eğitimi Bölümü – 2006 18 Şekil: Yapılacak işler (operation system = monitor) Şekil: Belleğin işler arasında paylaşımı; işletim sistemi belleği birkaç iş arasında paylaştırabilmektedir. 2.2.3.Kişisel bilgisayarların işletim sistemleri En önemli özelliği kullanıcı kolaylığını sağlamasıdır. Çoklu ortamda çalışması ve güvenilir olması önemlidir. Tek kullanıcılı sistem olduğu için kaynakların paylaşımı mekanizmasına gerek yoktur. İbrahim Türkoğlu – Fırat Üniversitesi, Elektronik ve Bilgisayar Eğitimi Bölümü – 2006 19 2.2.4.Paralel işletim sistemleri Paralel sistemlerde birden fazla işlemci olur. Bu işlemciler bazı kaynakları (ana veri yolu, saat (cp), bazen de ana belleği, G/Ç kaynakları) ortak kullanırlar. Böyle sistemlere güçlü bağlı sistem denir. CPU1 Disk CPU2 I/O Mem Çok işlemcili sistemlerin oluşturulma nedeni işlem hızının ve güvenirliğinin arttırılmasıdır. İşlemci sayısı arttıkça işlem hızı artar ancak bir noktada sabitlenir. İş. hızı doyma noktası . . . . . İş. sayısı 2.2.5.Dağıtık sistemler Bu sistemlere ağ sistemler de denir. Burada herbir bilgisayar sisteminin kendi kaynakları, işlemcisi, I/O aygıtları ve fonksiyonları bulunur. Bunlara zayıf bağlı sistemler denir. Ağ ortamında çalışan bilgisayarlardan oluşur. Bilgisayarlar arasında iletişim, ağ ortamı ile gerçekleşir. Bu sistemlerin oluşturulma nedenleri; • Kaynakların paylaşımı • Işlem hızının yükseltilmesi • Güvenilirlik • Yeni iletişim olanaklarının sağlanması İbrahim Türkoğlu – Fırat Üniversitesi, Elektronik ve Bilgisayar Eğitimi Bölümü – 2006 20 2.2.6.Gerçek zaman sistemleri Bu sistemlerde işlemlere uygulama alanlarına bağlı olarak zaman sınırlamaları getirilir. Böyle sistemler sanayi kontrol sistemlerinde, bilimsel araştırmalarda kullanılır. Bu tür sistemlerde çok gerekli olmamakla beraber disk belleği kullanılır. Daha fazla ROM (sabit bellek) kullanılır. İşletim sistemi Giriş parametresi Kontrol Nesnesi Kontrol parametreleri İbrahim Türkoğlu – Fırat Üniversitesi, Elektronik ve Bilgisayar Eğitimi Bölümü – 2006 21 3. İŞLETİM SİSTEMLERİNİN BİLEŞENLERİ Birbirinden farklı çeşitli işletim sistemleri bulunmasına rağmen, bunlar arasında ortak yapı özellikleri ve bileşenleri vardır. Fonksiyonel bakımdan işletim sistemlerinin bileşenleri: Görev yönetimi (Process manager) Ana bellek yönetimi (Memory manager) Kütük yönetimi (File manager) Disk (2. bellek) yönetimi (Second Storage) Ağ üzerinde çalışma (Ağ fonksiyonları yönetimi: Networking) Sistem koruması Komut derleyici sistemler Bu bileşenler aşağıda kısaca açıklanmaktadır. Daha ileri ki bölümlerde, her biri ayrıntılı bir şekilde verilecektir. 3.1.Görev Yönetimi Genel halde görev çalışır durumda olan programdır. Bu program pasif bir varlıktır. Görev ise aktiftir. Görevler, AİB zamanı, bellek, kütükler, G/Ç aygıt kaynakları gerektirir. Bu kaynaklar ilgili göreve onun oluştuğu anda aktarılır. Görev sonlandıktan veya kesildikten sonra, işletim sistemi bu kaynakları görevden alır ve bir diğer görevle arasında paylaştırır. Görevin çalışması ardışık işlemlerdir. Her bir zaman diliminde ana işlem birimi tarafından görevi bir komut çalıştırır. İki görev aynı programa ait olsa da ayrı görevler gibi bakılır ve çalıştırılır. Görev işletim sisteminde bir iş birimidir. İşletim sistemi, farklı görevlerin aynı zamanda çalışmasını ve kaynakların ortak kullanımını kontrol eder. İşletim sistemi, görev yönetiminde aşağıdaki işleri icra eder: Kullanıcı ve sistem birimlerinin oluşturulması, silinmesi Görevlerin oluşturulması, durdurulması ve yeniden çalıştırılması Görevlerin zamana uyum sağlama mekanizmasının gerçekleştirilmesi Görevler arasında iletişim sağlanması Kilitlenmelerin yönetimi İki görev aynı zamanda çalıştırıldığında aynı kaynakları kullanmak isteyebilirler. Bu durumda, zamana uyum sağlama mekanizması kullanılır. (Örneğin, araçların trafikte yeşil yanıncaya kadar bekleyip sonra geçmesi gibi) İbrahim Türkoğlu – Fırat Üniversitesi, Elektronik ve Bilgisayar Eğitimi Bölümü – 2006 22 Ortak kaynakların kullanımında her iki görev de bekleme durumuna geçerse (bu sonsuz döngü oluşturur) kilitlenme olur. Yani, biri diğerinin sonucunu beklerken, diğeri de ötekinin sonucunu bekler. 3.2.Ana Belleğin Yönetimi Bellek her birisinin kendi adresi olan baytlar veya kelimelerden oluşan büyük dizidir. Bellek AİB ve G/Ç aygıtlarının paylaştığı ve hızlı erişilebilen bir veri ambarıdır. Ana Bellek geçici bellektir. Ana işlem biriminin (AİB) verimliliğini ve kullanıcı sorgularına yanıt verme hızını yükseltmek için, bellekte aynı zamanda birden fazla program saklanması gereklidir. Bu halde belleğin yönetimi için farklı yaklaşımlar ve algoritmalar kullanılmaktadır. Bu yaklaşımların seçimi, birçok farklı özellikte sistemin donanım tasarımına bağlıdır. Bellek yönetimiyle ilgili her bir algoritma özel donanım desteği gerektirir. Bellek yönetimi ile ilgili, işletim sistem aşağıdakilerden sorumludur: Belleğin şimdiki durumda, hangi kısmının ve kim tarafından kullanıldığı hakkında bilginin elde edilmesi Bellek alanı boş olduğunda bu alana hangi görevlerin yüklenmesi hakkında, karar oluşturulması 3.3.Kütük Yönetimi Kütük, oluşturucusu tarafından belirlenmiş ilişkili bilgiler topluluğudur. Çoğunlukla, kütükler kaynak ve nesne türünde programları ve verileri ifade ederler. Görev ve bellek yönetimi kullanıcı için sanaldır. Kütük yönetimi ise kullanıcıyı görsel olarak ilgilendirir. Örneğin; diske yazılan kütükle, CD’ye yazılan kütük birbirinden farklıdır. Ancak İşletim Sistem bu ayrıntıları saklar ve aynıymış gibi görüntülenmesini sağlar. Yani, bilgi istenilen kütükte amacına uygun bir şekilde depolanır. Bilgisayar sisteminin kullanımı kolaylaştırmak için İşletim Sistemi veri depolarını aynı biçimli mantıksal görünümde olmasını sağlar. Mantıksal depolama (kaydetme, saklama) birimini tanımlamak için uygun aygıtların fiziki nitelikleri boyutlanır (sektör, track,.vs.). Bu mantıksal depolama (kayıt) birimine kütük denir. Kütüğün oluşturulması, silinmesi ve adının değiştirilmesi kütük yönetimine aittir. Genel halde kütükler programları ve verileri ifade eder. Kütüklerin yönetimini kolaylaştırmak için dizinler oluşturulur. İbrahim Türkoğlu – Fırat Üniversitesi, Elektronik ve Bilgisayar Eğitimi Bölümü – 2006 23 İşletim Sistem kütük yönetiminde aşağıdakilerden sorumludur. Kütüklerin oluşturulması ve silinmesi Dizinlerin oluşturulması ve silinmesi Kütük ve dizinlerin yönetimi Kütüklerin disk belleğine (2.belleğe) haritalanması (kaydedilmesi) Kütüklerin 2. bellekte yedeklenmesi (back up) 3.4.Giriş / Çıkış (I/O) Sistemlerinin Yönetimi Giriş/Çıkış sisteminin yönetimi, içerdiği birimlerle aşağıdaki fonksiyonları gerçekleştirir: Bileşenleri oluşturur. (Tampon önbellekleme sistemi) Ön belleğe yazıp-okuma Spooling işlemlerinin gerçekleştirilmesi Aygıt-sürücü (device driver) arayüzlerinin yönetimi Belirli donanım aygıtları için sürücülerin yönetimi 3.5.Disk (2. Bellek) Yönetimi Ana belleğin, geçici ve tüm veri-programların sürekli saklanılması için çok küçük olması nedeniyle bilgisayar sistemleri ikincil belleğe ihtiyaç duymaktadırlar. İşletim Sistem ikincil belleğe bağlı aşağıdaki girişimlerden sorumludur: Boş disk alanı yönetimi Diskin paylaşımı Diskin planlanması 3.6.Ağ Fonksiyonları Yönetimi Ağ ortamı veya dağıtık sistem, ortak giriş-çıkış aygıtları, saati ve ana belleği olmayan işlemciler (bilgisayarlar) topluluğundan oluşur. Her işlemcinin kendine ait belleği bulunur. Birbirlerine iletişim hatları aracılığıyla bağlanırlar ve iletişimi protokollerle gerçekleştirirler. Ağ kullanıcıları aynı ortak kaynaklara erişebildiği gibi, kullanıcı bazında erişimde mümkündür.Bu durum: Hesaplama (bilgi-işleme) hızını yükseltir. Verilerin kullanılabilirlik alanını genişletir Güvenilirliği yükseltir Burada, İşletim Sisteminin en önemli görevi ortak kaynaklara erişimi sağlamaktır. İbrahim Türkoğlu – Fırat Üniversitesi, Elektronik ve Bilgisayar Eğitimi Bölümü – 2006 24 3.7.Koruma Sistemi İşletim Sistemlerinde koruma; koruma ve güvenlik olarak iki çeşittir. Eğer bilgisayarın birden fazla kullanıcısı varsa ve çoklu görevin birden fazla çalışmasına izin verilirse bu görevler birbirlerin girişimlerinden korunmalıdır. Bu amaçla İşletim Sistemi; kütüklere, bellek kesimlerine (segment), işlemciye ve diğer kaynaklara görevlerin kontrollü erişimini sağlar. Örneğin; görev yalnız kendisi için ayrılmış adres alanında çalışabilir yada zamanlama görevin belirlenmiş zaman içerisinde ana işlemcinin de çalışmasını sağlamalıdır. Koruma mekanizması İşletim Sistemi bileşenleri arasındaki arayüzlerinde oluşabilecek hataları önlemekle güvenliği yükseltir. İşletim Sisteminin koruma sistemi aşağıdaki işlemlerden sorumludur: Erişim Kontrolü o Sisteme kullanıcı erişimini düzenler; İzinli ve izinsiz kullanımları ayırt edebilme. Bilgi Erişim Kontrolü o Sistem içindeki veri akışını ve verinin kullanıcılara dağıtımını düzenler; Denetimleri belirleme. Sertifikasyon o Sertifikasyonlara göre erişim ve akış kontrol performansı sağlanır; İzinsiz erişimleri engelleyebilme. 3.8.Komut Derleyicisi Sistemin kullanıcı ve İşletim Sistemi arasında arayüz oluşturan yorumlayıcı sistem programıdır. Gelişmiş sistemlerde kullanıcı arkadaşlığı bulunan, komut derleyicilerin tasarımına önem verilir. Böyle arkadaş arayüzler, pencerelerin ve menü sistemlerinin oluşmasını destekler, görevlerin oluşturulması ve yönetimi, giriş-çıkış yönetimi, kütük sistemlerine erişim, koruma ve ağ üzerinde çalışma, bu komutlarla gerçekleştirilir. İşletim Sisteminin Komut Derleyicisi aşağıdaki işlemlerden sorumludur: Pek çok komut, işletim sistemine denetim fonksiyonları amacı ile yönlendirilir. Bu komutlar aşağıdaki işlemleri gerçekleştirir: - Görev oluşumu ve yönetimi - G/Ç yönetimi - Bellek yönetimi - Ana belleğin yönetimi İbrahim Türkoğlu – Fırat Üniversitesi, Elektronik ve Bilgisayar Eğitimi Bölümü – 2006 25 - Kütük sistemlerine erişim - Koruma - Ağ ortamında çalışma Denetim fonksiyonlarını okuyan ve derleyen programa - Komut satırının derleyicisi veya - Çekirdek (Kernel) (UNIX sisteminde) denir. Komut derleyicisinin işlevi, komut fonksiyonunu okumak ve yürütmektir. İbrahim Türkoğlu – Fırat Üniversitesi, Elektronik ve Bilgisayar Eğitimi Bölümü – 2006 26 4. İŞLETİM SİSTEMLERİNİN YAPISI VE SUNDUĞU HİZMETLER 4.1. İşletim Sistemi Tasarım Hiyerarşisi Sistemin Tasarım Hedefleri: - Kullanıcıya yönelik hedefler; işletim sisteminin kullanımı ve öğrenilmesi kolay olmalı, sistem güvenilir ve hızlı çalışmalıdır. - Sisteme yönelik hedefler; işletim sistemi kolay tasarlanan, çalıştırılabilen, bakımı kolay, esnek, güvenilir olmalı, hatasız ve etkili çalışmalıdır. Geleneksel olarak assembly dilinde yazılmış olan işletim sistemleri yüksek seviyeli dillerde de yazılabilir. Yüksek dillerde: - Daha çabuk yazılabilir. - Daha az yer kaplar. - Anlaşılması ve çözümü kolaydır. İşletim sistemi yüksek seviyeli dilde yazıldığında kolaylıkla farklı bilgisayarlarda kullanılabilir. İşletim sistemleri her sınıf bilgisayarda çalıştırılabilecek şekilde tasarlanır. SYS - donanım sisteminin belirli biçimi ile ilgili bilgiyi içeren programdır. Booting – çekirdeğin yüklenmesi ile bilgisayarın çalışmaya başlamasıdır. Bootstrap program – çekirdeği belirlemek, belleğe yüklemek ve çalıştırmaya başlamak için ROM belleğinde saklanan koddur. İbrahim Türkoğlu – Fırat Üniversitesi, Elektronik ve Bilgisayar Eğitimi Bölümü – 2006 27 S.No 13 Katman Adı Kabuk Nesneler Kullanıcı programlama Örnek İşlemler Kabuk dilindeki ifadeler ortamı 12 Kullanıcı Süreçleri Kullanıcı Süreçleri Çıkış, reddetmek, duraklatmak, Kaldığı yerden devam etmek 11 Dizinler Dizinler Oluşturma, Yok etme, bağlamak, ayırmak, araştırmak, listelemek 10 Sürücüler Dış sürücüler; yazıcı, Açma,Kapama,Okuma,Yazma monitörler ve klavyeler Kütük sistemi 9 Kütükler (dosyalar) Yok etme, açma, kapama okuma, yazma 8 Haberleşmeler Bağlantılar Açma, kapama, okuma, yazma 7 Sanal Hafıza Segmentler, sayfalar Okuma, yazma, bilgi çekme 6 Yerel ikincil bellek Veri blokları, Sürücü Okuma, yazma, yerleştirme, Basit süreçler 5 kanalları Serbest Basit süreçler, hazır listeler Erteleme, kaldığı yerden devam, bekleme, işaret etme 4 Kesme programları Kesme programlayıcı İstek, maskeli, maskesiz, 3 Prosedürler Hedef yığın, çağırma, geri dönme Prosedürler, yığın, görüntüleme Komut seti 2 Yığın değerlendirme, Yükleme, depolama, ekleme, Mikro-program çıkarma, dallanma yorumlayıcı, Tek ve dizisel veri Elektronik devreler Kayıtçılar, kapılar, BUS’lar Silme, transfer, aktive etmek, 1 tersleme 4.2. İşletim Sistemlerinin Mimarileri : Katmanlı Sistem çeşitli seviyelerden oluşur Her bir seviye ilişkisel alt fonksiyonları icra eder. Daha çok basit fonksiyon yürütmek için her bir seviye sonraki daha düşük seviyeye bağlıdır. Bu durum, bir problemin bir çok alt-problem olarak ayrıştırılmasını sağlar. İbrahim Türkoğlu – Fırat Üniversitesi, Elektronik ve Bilgisayar Eğitimi Bölümü – 2006 28 Şekil: Katman tabanlı işletim sistemlerinin yapısı 4.2.1. MS-DOS Sisteminin Yapısı MS-DOS –küçük bellek alanında pek çok işlevin sağlanabilmesi için yazılmıştır: - Modüllere bölünmez; - Arayüzler ve işlev seviyeleri kesin ayrılmamıştır. İbrahim Türkoğlu – Fırat Üniversitesi, Elektronik ve Bilgisayar Eğitimi Bölümü – 2006 29 Şekil: MS-DOS Sisteminin yapısı Şekil: MS-DOS Sisteminde; a) Sistemin başlangıç durumu, b) Programın çalışması durumu İbrahim Türkoğlu – Fırat Üniversitesi, Elektronik ve Bilgisayar Eğitimi Bölümü – 2006 30 4.2.2. OS/2 Sistemini Yapısı Şekil: OS/2 Sisteminin Yapısı. 4.3. Modern İşletim Sistemlerinin Mimarileri : Mikro-kernel Mikro-kernel mimari: • Kernele temel fonksiyonların görevlerini atar. • Adres uzayı • Süreçler arası iletişimi (IPC) • Temel programlama • Çekirdekten “kullanıcı” alanına doğru kayma sağlanır. • İletişim kullanıcı modülleri arasında haber göndermekle gerçekleştirilir. • Yararı: - Mikrokerneli genişletmek kolaydır - İşletim sistemini yeni mimarilere taşımak kolaydır - Daha güvenilirdir (daha az kod çekirdek modunda çalışmaktadır) İbrahim Türkoğlu – Fırat Üniversitesi, Elektronik ve Bilgisayar Eğitimi Bölümü – 2006 31 Modern İşletim Sistemlerinin Karakteristikleri: • Çoklu iş parçacıkları (Multi-threading) – • Süreçler, eşzamanlı çalışabilen iş parçacıklarına bölünür. İş parçacığı (Thread) – Yürütülecek işin kernele gönderilmesi – Ardışıl yürütmeler kesilebilir. • Bir süreç, bir veya daha fazla iş parçacığının toplamıdır. • İş parçacığı; bir süreç içinde bulunan bir yürütme işlemi için kerneli programlayan bir program parçacığıdır. • • • Simetrik çoklu işleme - Çok – işlemcili yapı kullanılır. - Bu işlemciler aynı ana hafızayı ve G/Ç birimlerini paylaşırlar - Tüm işlemciler aynı fonksiyonları yürütebilirler. Dağıtık işletim sistemleri – Bir ana hafızanın yansıması (hayali) ile ikincil hafıza uzayını elde eder. – Dağıtık dosya sistemlerinde kullanılır (Ağ sistemi) Nesne tabanlı tasarım – Küçük bir kernele yardımcı modüller ilave edilerek kullanılır – Programcıların sistem bütünlüğünü bozmaksızın bir işletim sistemi uyarlamasını mümkün kılar. İbrahim Türkoğlu – Fırat Üniversitesi, Elektronik ve Bilgisayar Eğitimi Bölümü – 2006 32 Şekil : Mikrokernel tabanlı işletim sistemlerinin yapısı 4.3.1. Windows 2000 (W2K) • Günümüzün güçlü 32 bitlik (iç yapısı) mikroişlemcileri kullanır • Tek bir kullanıcı ortamında çok görevliliği sağlar • İstemci/Sunucu (Client/Server) kullanım özelliğine sahiptir. • Modülar yapısı sayesinde, esneklik sağlar. • Farklı donanım platformları üzerinde çalışır • Diğer işletim sistemleri için yazılan uygulamaları destekler İbrahim Türkoğlu – Fırat Üniversitesi, Elektronik ve Bilgisayar Eğitimi Bölümü – 2006 33 Şekil: Windows 2000 mimarisi • Mikro-kernel mimarisindeki değişiklikler: – Tam anlamıyla mikrokernel değildir – Mikro kernel dışındaki bir çok sistem fonksiyonu kernel modunda çalıştırılabilir. • Her hangi bir birim çıkarılabilir, güncellenebilir veya yenilebilir. • Katman yapısı: Donanım soyutlama katmanı • - Farklı donanım platformlarından işletim sistemini yalıtır. - Mikrokernel (mikro çekirdek) - İşletim sisteminin en çok kullanılan ve en temel bileşenidir. - Aygıt sürücüleri - Kullanıcının G/Ç fonksiyonlarını, bir aygıt G/Ç isteğine çevirir W2K Yürütümü: - G/Ç yöneticisi - Nesne yönetici İbrahim Türkoğlu – Fırat Üniversitesi, Elektronik ve Bilgisayar Eğitimi Bölümü – 2006 34 - Ekran tabanlı güvenlik - Süreç/İş parçacığı yöneticisi - Yerel yordam çağırma olanağı - Sanal hafıza yöneticisi - Ön bellek yöneticisi - Windows/grafik birimleri • Kullanıcı Süreçleri: - Süreçlere belirli sistem desteği Örn: Oturum açma süreci ve oturum yöneticisi - Sunucu süreçleri - Çevresel alt birimler - Kullanıcı uygulamaları • İstemci/Sunucu Modeli: - Yürütümü basitleştirmek - Çeşitli API leri yürütmek - Güvenlik iyileştirmeleri - Her bir hizmet, hafızanın kendine ait olan kısmında ayrı bir süreç olarak çalışır - İstemciler donanıma doğrudan erişemezler - Yerel yordam çağrımı yolu ile iletişim kurmak için uygulamalara bir bağlantı sağlar. • Dağıtık hesaplama için taban oluşturur. İş parçacıkları: - Farklı yordamlar farklı işlemciler üzerinde eşzamanlı yürütülebilir. - Bir süreç içindeki bir çok iş parçacığının yürütümü farklı işlemciler üzerinde eşzamanlı yürütülebilir. - Sunucu süreçleri bir çok iş parçacığını kullanabilir. - Süreçler arasında veri ve kaynak paylaşma mümkün. 4.3.2. UNIX Sisteminin Yapısı Donanım işletim sistemi tarafından çevrelenmiştir. İşletim sistemi Kernel olarak isimlendirilir. Ardından arayüzler ve kullanıcı hizmetleri gelir. – kabuk – C derleyicisi İbrahim Türkoğlu – Fırat Üniversitesi, Elektronik ve Bilgisayar Eğitimi Bölümü – 2006 35 Şekil: UNIX Mimarisi. UNIX sistemi iki ayrı kısımdan oluşmaktadır: Sistem programları Çekirdek - Sistem çağrıları, arayüzden fiziki donanıma kadar her şeyi içeriyor. - Kütük sistemlerini, AİB planlamasını, bellek yönetimini, diğer işletim sistemi işlevlerini sağlar. Şekil: UNIX sisteminde çoklu program çalışması İbrahim Türkoğlu – Fırat Üniversitesi, Elektronik ve Bilgisayar Eğitimi Bölümü – 2006 36 Şekil: UNIX Sisteminin yapısı 4.4. Sunulan Hizmetler İşletim sistemlerinin çeşitli türleri bulunmakla birlikte, bunlar arasında ortak özellikler vardır. İşletim sistemlerini bu özellikleri üzerine sınıflandırmak mümkündür. Bu sınıflardan birisi de kullanıcıya sunulan hizmetlerdir. İşletim Sisteminin kullanıcıya sağladığı hizmetler, bilgisayarla çalışmayı kolaylaştırdığı gibi, işletim sisteminin parçalarını kullanıcıdan saklar. Program Çalıştırma : İşletim Sistemi herhangi bir programı belleğe yükleyebilir ve çalıştırabilir. Programın çalışması, ancak normal sonlanma veya hata oluşması durumunda kesilebilir. Giriş/Çıkış İşlemleri : Çevresel donanımların kullanılması Kütüklerin İşlemleri : Kütük oluşturma, yazma, silme İletişim : Bir görevin diğer bir görev ile bilgi alışverişinde bulunması Görevler arası iletişim genelde iki yolla gerçekleşir; - Aynı yöntemle çalışılması - Ağ üzerindeki farklı bilgisayarlar arasında iletişim, ortak bellek alanı kullanmakla ve haber mesaj göndermekle sağlanır. İbrahim Türkoğlu – Fırat Üniversitesi, Elektronik ve Bilgisayar Eğitimi Bölümü – 2006 37 Hata Bulma : İşletim Sistemi bilgisayar kaynaklarında (bellek, ana işlem birimi, disk, programlar, kütük, G/Ç aygıtları ) oluşan hataları bulur, analiz eder ve mümkünse bu hataları önler. Kaynakların Paylaşımı: İşletim Sisteminin bazı fonksiyonları kullanıcıya yardım için değil sistemin verimli kullanılması için kullanılır. Örneği; kaynakların paylaşımı: aynı zamanda birden fazla program çalıştırılırsa sistemin kaynakları bu programlar arasında paylaştırılır. Her bir kaynağın yönetimi içi çeşitli yöntemler ve algoritmalar vardır. Örneğin; ana işlem biriminin daha iyi kullanımı için AIB planlama algoritması kullanılır. Bu algoritma için giriş parametreleri; işlemcinin hızı, yazmaçların sayısı, aynı zamanda çalışabilecek görevler sayısı vb. İstatistiksel Verinin Hesaplanması : Bu tür bilgiler, hangi kullanıcıların hangi kaynakları, ne kadar kullanacağını, sistemde oluşan hata türlerini, kaynakların kullanım oranlarını içerir. Koruma : Tüm sistem kaynaklarına erişimin denetimini sağlar. 4.4.1. Sistem Çağrıları Sistem çağrıları çalışan program ile işletim sistemi arasındaki ara yüzü sağlar. - Genellikle assembly dili komutlarıyla erişilebilir. - Bazı yüksek seviyeli dillerde sistem çağrılarına doğrudan erişimi sağlar (Örn;C++) Çalışan program ile işletim sistemi arasında parametrelerin gönderilmesinin üç temel yöntemi vardır: - Parametrelerin yazmaçlarda gönderilmesi - Parametrelerin bellekte, tabloda saklanması ve tablonun adresinin parametre gibi yazmaca gönderilmesi - Parametrelerin programla yığına yazılması ve işletim sistemi tarafından yığından alınması. İbrahim Türkoğlu – Fırat Üniversitesi, Elektronik ve Bilgisayar Eğitimi Bölümü – 2006 38 Şekil: Parametrelerin tablo ile gönderilmesi 4.4.2. Sistem Çağrılarının Türleri Görev denetimi Kütük denetimi Aygıt yönetimi Bilgi saklama İletişim 4.4.3. İletişim Modelleri İletişim haber göndermekle, yada ortak belek aracılığıyla gerçekleştirilir: Şekil: İletişim türleri; a) Haber gönderme, b) Ortak bellek alanı İbrahim Türkoğlu – Fırat Üniversitesi, Elektronik ve Bilgisayar Eğitimi Bölümü – 2006 39 4.4.4. Sistem Programları Sistem programları program geliştirme ve yürütmek için elverişli ortam sağlar. İşletim sisteminin pek çok kullanıcı görünümlerini, sistem çağrıları değil, sistem programları belirler. Sistem programları şunlardır: Kütük işlemleri Durum bilgileri Kütük güncelleme Programlama dili desteği Program yükleme ve yürütme İletişim Uygulama programları İbrahim Türkoğlu – Fırat Üniversitesi, Elektronik ve Bilgisayar Eğitimi Bölümü – 2006 40 5. GÖREV YÖNETİMİ Görev (process), işletim sistemi tarafından yürütülen ardışık işlemler sürecini içeren bir programdır. Aynı zamanda süreç olarak da adlandırılır. Görev için gereken kaynaklar, görev ortamını oluşturur. Görev yönetiminin amaçları: • Makul cevaplama süresi içerisinde, birkaç görevi aynı anda yürüterek işlemciden maksimum faydalanmayı sağlamak • Görevleri kaynaklara dağıtmak • Görevler arası haberleşmeyi sağlamak • Kullanıcıların görev oluşturabilmesine ortam oluşturmak. Görevin çalışması, ardışık işlemler süreci şeklinde olup, her bir zaman diliminde görevin yalnız bir komutu çalışabilir. Görev yalnız program kodunu değil, aynı zamanda program sayacının (PC) değeri ile ifade edilen girişimleri, işlemci kayıtçılarının içeriklerini, kesme verilerini (alt program parametreleri, geri dönüş adresleri, geçici değişkenleri) içeren yığın, genel değişkenleri içeren veri bölümünden oluşur dahil edilir. Şekil: Bir komut saykılının Yürütümü İki görev aynı programda birleşebilir, ancak farklı çalışma süreçlerini içerirler. İbrahim Türkoğlu – Fırat Üniversitesi, Elektronik ve Bilgisayar Eğitimi Bölümü – 2006 41 Görev Durumu : Görev, yürütülmekte olduğundan durumu değişken yapı sergiler. Görev genel olarak, yaptığı işe girişimlere göre iki durumda birinde olabilir: Çalışma veya Çalışmama durumu. Şekil: Görev durum geçiş diyagramı Şekil: Çalışma ve çalışmama durumu. Görev her bir zaman diliminde aşağıdaki durumlardan birinde olabilir. Şekil: Beş durumlu görev modeli. Sunuş (new): Görev oluşmaktadır. Çalışma Durumu (running): Görevin bir komutu işlemcide gerçekleştirilmektedir. Bekleme Durumu (waiting) : Görev herhangi bir olayın oluşmasını beklemektedir. (Örneğin; G/Ç işleminin bitmesi, herhangi bir sinyalin gelmesi). İbrahim Türkoğlu – Fırat Üniversitesi, Elektronik ve Bilgisayar Eğitimi Bölümü – 2006 42 Hazır Olma Durumu (ready) : Görev işlemciye aktarılmak için beklemektedir. Bu duruma çalışmama durumu veya yürütüme hazır durumda denilmektedir. Bitiş veya Kesilme Durumu (terminated) : Görev çalışmasını bitirdikten sonra bu duruma geçer. Görev sonlandırma sebepleri: • Uygulamadan çıkma • Normal tamamlanmış • Hafıza kullanıma uygun olmaması • Koruma hatası, Örn: Sadece okunabilen bir dosyaya yazma • Aritmetik hata • Çalışma zamanı aşımı: Bir görevin veya bir iş parçacığının belirlenen maksimum süreden daha uzun süre beklemesi • I/O başarısızlığı • Geçersiz komut: Bir verinin yürütüm için ele alınması • İmtiyazlı komut • Üst görevlerin alt görevleri sonlandırması Herhangi bir anda sadece bir görev çalışma durumundadır, ama birden fazla görev hazır ve bekleme durumunda olabilir. Şekil: Görevlerin durumları İbrahim Türkoğlu – Fırat Üniversitesi, Elektronik ve Bilgisayar Eğitimi Bölümü – 2006 43 Şekil: Görev durumlarının değerlendirilmesi Görevin Askıya Alınması: Görevin askıya alınma nedenleri; Mikroişlemci G/Ç birimlerinden çok daha hızlı olmasına rağmen, tüm görevler G/Ç işlemini beklerler. Swapping (Değiş tokuş): Bir işletim sistemi, bir görevi yürütebilmesi için yeterince ana hafızayı serbest bırakılmasına ihtiyacı duyarlar. Kullanıcı isteklerinin etkileşimi Zamanlama Üst görev istekleri. Şekil: Görev askıya alınması durumu İbrahim Türkoğlu – Fırat Üniversitesi, Elektronik ve Bilgisayar Eğitimi Bölümü – 2006 44 Şekil: Kaynakların (işlemci, I/O, hafıza) görevlere (P1,P2, Pn) dağılımı 5.1.GÖREV DENETİMİ Her bir görevin çalışması için gereken bilgiler görev denetim bloğunda (PCB=Process Control Blok) bloğunda gösterilir. Görev denetim bloğundaki bilgiler, program sayacı, ana işlem birimi yazmaçları v.s bulunur. Her bir görevle ilgili bilgiler: Görev durumu Görev sayacı AİB yazmaçları AİB planlanması bilgileri Bellek yönetimi bilgileri İstatistiksel bilgiler G/Ç durumu bilgileri Şekil: PCB Program sayacı: Görev için sonraki çalıştırılacak program kodunun adresi yazılır. AİB yazmaçları: Bilgisayarların mimarilerine göre farklılık gösterir. Bu yazmaçlarda görevin durumuna ait bilgiler saklanır. Bu bilgilerin saklanmasının önemi, görev kesildikten sonra yeniden çalışmaya başlaması için görev adresinin belli olmasıdır. Örnek; Program sayacı, Yığın. AIB’nin planlanması bilgileri: Görev önceliklerini, zamanlama parametrelerini içerir. Bellek yönetimi bilgileri: Taban adreslerini, sayfa ve kesilme adreslerini içerir. İstatistiksel bilgiler: Ana işlem biriminin kullanım süresi görevlerin çalışması için zaman sınırlamaları, görev numaraları gibi bilgiler içerir. İbrahim Türkoğlu – Fırat Üniversitesi, Elektronik ve Bilgisayar Eğitimi Bölümü – 2006 45 G/Ç durumu bilgileri: Göreve ayrılan G/Ç aygıtlarının listesi, görev için açılmış kütüklerin listesi gibi G/Ç durumu bilgilerine içerir. Şekil: AİB’nin görevler arasında paylaşımı Görev sisteme sunulduktan sonra görev kuyruğuna yerleşir. Çalışmak için hazır olan ve çalışmayı bekleyen hazır görevler kuyrukta bulunurlar. Kuyruk genelde bağlantılı liste biçiminde oluşturulur. Görevlerin PCB göstergelerini içerir. Görev CPU’da belli bir sure içersinde çalıştırılır. Bu sure bitiminden sonra görev, kesme veya herhangi özel bir durumun oluşmasını bekler. I/O aygıtlarını bekleyen görevler, aygıtlar kuyruğunda oluşur. Her aygıtın kendi özel kuyruğu vardır (Örn: Yazıcı). Görevlerin kuyrukta seçilmesi görev planlayıcısının işidir. İbrahim Türkoğlu – Fırat Üniversitesi, Elektronik ve Bilgisayar Eğitimi Bölümü – 2006 46 Şekil: Görev planlamasının akışı Planlayıcılar : Uzun vadeli planlayıcılar (veya iş planlayıcısı) – hazır görevler kuyruğuna girecek görevleri seçer. Uzun vadeli planlayıcılara daha az sıklıkla gereksinim duyulmaktadır. Bu nedenle yavaş olabilir. Kısa vadeli planlayıcı (veya AİB planlayıcısı) – bir sonraki hangi görevin yürütüleceğini belirler ve AİB’ye yerleştirir. Kısa vadeli planlayıcılarına sıkça görev düşmektedir. Bu nedenle hızlı olmalıdır. Uzun vade planlayıcısı çok programlama seviyesini denetler. Görevler: o G/Ç yönlü görev – zaman hesaplamalardan ziyade G/Ç işlemlerine zaman harçlar, AİB kullanımı çok kısadır. o AİB yönlü görev – hesaplamalara daha çok zaman harçlar; AİB kullanımı uzundur. İşletim Sisteminin Kontrol Tabloları : Herhangi bir görevin ve kaynağın mevcut durumu hakkında bilgi edinmek için kullanılır. Tablolar, işletim sistemi yönetiminin her bir bileşeni için oluşturulur. İbrahim Türkoğlu – Fırat Üniversitesi, Elektronik ve Bilgisayar Eğitimi Bölümü – 2006 47 Şekil: İşletim sisteminin kontrol tabloları. Hafıza Tabloları • Görevlerin ana hafızaya yerleştirilmesi • Görevlerin ikincil hafızaya yerleştirilmesi • Paylaştırılan hafıza bölgelerine erişim niteliğini koruma G/Ç Tabloları • G/Ç aygıtının kullanımı veya belirli bir görev için ayrılması • G/Ç işleminin durumu • G/Ç transferinin, tanımlayıcısı veya kaynağı olarak kullanılan ana hafızadaki yeri tutar. Kütük Tabloları • Varolan dosyalar • İkincil hafızadaki yer • Mevcut durum • Nitelikler İbrahim Türkoğlu – Fırat Üniversitesi, Elektronik ve Bilgisayar Eğitimi Bölümü – 2006 48 Görev Tabloları • Görevin konumun bulunduğu yer • Görevin yönetimi için gerekli nitelikler Şekil: Kullanıcı uzayı içinde işletim sisteminin görev yürütüm yapısı – Görev Tanımlayıcısı – • Nümerik tanımlayıcılar, görev kontrol bloklarının içerisine depolanabilir. • Görev tanımlayıcısı • Görevin oluşturduğu görevin tanımlayıcısı • Kullanıcı tanımlayıcısı Görev Durumu Bilgileri İşlemci durum bilgisi • Kullanıcıya görünen kayıtçılar • Kontrol ve Durum (PSW) kayıtçıları (Örn: Pentiumlarda EFLAGS) • Yığın İşaretçileri (Stack Pointers) İbrahim Türkoğlu – Fırat Üniversitesi, Elektronik ve Bilgisayar Eğitimi Bölümü – 2006 49 Şekil: EFLAGS Kayıtçısı – Görev Kontrol Bilgileri Programlama (Scheduling) ve durum bilgisi: Performansı artırmak için işletim sistemi tarafından zaman programlama fonksiyonlarına gereksinim duyulur. Bunun için tipik bilgi parçaları: •Görev durumu: Görevin yürütüm için gerekli olan zamanlamasını tanımlar (Örn: çalışma, hazır, bekleme, durdurulma). •Öncelik: Bir veya daha fazla görevin zaman önceliklerini tanımlamak için kullanılır. Bazı sistemlerde, birkaç değer (örn: varsayılan, yürürlükteki, en yüksek imtiyaz) gereklidir. •Bilgi Tabanlı Zamanlama: Bu kullanılan zamanlaman algoritmasına bağlıdır. Görevin bekleme zamanının süresi, yürütüm zamanının süresi, çalıştığı en son zaman. •Olay : Görev, çalışmayı devam ettirebilmek için olayın tanımlayıcı kimliğini bekler. Veri Yapısı: Bir görev, kuyrukta, halkada, veya diğer yapılarda bulunan diğer bir görev bağlanabilir. Örneğin; 1. Bir kuyruktaki, belirli bir öncelik seviyesi nedeniyle bekleme konumunda bulunan tüm görevler birbirine bağlıdırlar. 2. Görev, başka görevler ile üst-alt (imtiyazlılık açısından) ilişkisine sahiptir. Görev kontrol bloğu, bu yapıları desteklemek için diğer görevlere işaret edicileri içerebilir. İbrahim Türkoğlu – Fırat Üniversitesi, Elektronik ve Bilgisayar Eğitimi Bölümü – 2006 50 Görevler arası iletişim: Bağımsız iki görev arasındaki iletişim birlikteliği çeşitli bayraklar, işaretler, ve mesajlar ile sağlanabilir. Bu bilgilerin tamamı veya bir kısmı, görev kontrol bloğunda bulunabilir. Görev ayrıcalıkları: Görevler hafıza açısından kabul edilen ayrıcalıklara sahiptirler. Bunlar, erişim ve yürütüm için gerekli olan komut türleridir. Ayrıca, ayrıcalıklar sistem hizmetleri ve programlarının kullanımı içinde uygulanabilir. Hafıza Yönetimi:Bu bölüm, bir görev için tahsis edilen sanal hafızaya işaret eden segment göstericisi veya sayfa tablolarını içerir. Kaynak sahipliliği ve kullanımı: Görev tarafından kontrol edilebilir kaynaklar gösterilebilir. Örneğin; açık dosyalar, işlemcinin veya diğer kaynakların kullanım geçmişi verilebilir. Bu bilgi programlayıcı için gereklidir. 5.1.1. Ana İşlem Biriminin Planlanması Çoklu programlamanın hedefi; aynı zamanda birkaç görevi birlikte çalıştırmakla, ana işlem biriminin verimliliğini yükseltmektir. Görevlerin çalışmasını ilişkisel koordine etmek için planlama fonksiyonu (scheduling) kullanılır. Bu fonksiyon işletim sisteminin temel fonksiyonlarındandır. Tüm bilgisayar kaynaklarının görevi, çalışma öncesi planlanır. Esas kaynak olan AIB’nin planlanması işletim sisteminin tasarımında başlıca yeri tutmaktadır. Her bir görevin çalışması, AIB ve G/Ç işlemlerinden oluşur. AIB’nin çalışma süresi göreve ve bilgisayarlara göre farklılık sergiler. Genelde kısa süreli ana işlem birimi çalışmalarının sayısı uzun süreli çalışmalardan daha yoğundur. İbrahim Türkoğlu – Fırat Üniversitesi, Elektronik ve Bilgisayar Eğitimi Bölümü – 2006 51 Görevlerin planlanması için çeşitli algoritmalar kullanılmaktadır. Bu algoritmaları kıyaslamak için kriterler: 1. Ana işlem biriminin kullanım durumu: Gerçek sistemlerde AIB’nin kullanım oranı %40 ile %90 arasındadır. 2. Belirlenmiş zaman diliminde çalışmasını tamamlayan görev sayısı. 3. Görevi çalıştırmak için harcanan zaman: Görevin sisteme sunulmasından bitişine kadar geçen zamandır ve görevin bellekten okunması, kuyrukta beklemesi, işlemcide çalışması ve G/Ç işlemlerini yapması sürelerinin toplamından oluşur. 4. Görevin hazır görevler kuyruğunda bekleme zamanı 5. Cevaplama süresi: Değişken zaman paylaşımlı ortamlar için kullanılır ve istek sunulduktan sonra onun cevabının alınmasına kadar geçen zamandır. 5.1.2. Planlama Algoritmaları İbrahim Türkoğlu – Fırat Üniversitesi, Elektronik ve Bilgisayar Eğitimi Bölümü – 2006 52 5.1.2.1. FCFS (First Come First Served – İlk Gelen Önce) Algoritması Bu algoritmaya göre; AIB yi ilk talep eden görev, ilk olarak işlemciyi kullanır. FIFO kuyruğu ile çalıştırılabilir. Görev hazır görevler kuyruğuna sunulduktan sonra, onun görev denetim bloğu (PCB) kuyruğun sonuna ilave edilir. AIB boş olduğu zaman kuyruğun başındaki görev çalışması için AIB ye sunulur ve kuyruktan silinir. Bu algoritmada görevlerin bekleme süresi yüksek olur. Örnek: P1, P2, P3 görevlerinin sırasıyla kuyrukta yerleştiklerini kabul edelim: Görev P1 P2 P3 Çalışma Zamanı (sn) 24 3 3 1.Görevler P1, P2, P3 ardışıklığı ile sunulmuş olduğunu varsayalım. Buna göre planlama: P1 0 P2 24 P3 27 30 Burada; P1 ‘in bekleme süresi Æ 0 msn. P2 ‘nin bekleme süresi Æ 24 msn. P3‘ün bekleme süresi Æ 27 msn 'dir. Ortalama bekleme süresi : (24+27+0) / 3 = 17 msn 'dir. 2.Eğer görevlerin gelme P2, P3, P1 şeklinde sıralanırsa, planlama: P2 0 P3 3 P1 6 30 Burada ise; P2 ‘nin bekleme süresi Æ 0 msn. P3 ‘ün bekleme süresi Æ 3 msn. P1‘in bekleme süresi Æ 6 msn 'dir. Ortalama bekleme süresi : (3+6+0) / 3 = 3 msn’dir. Görüleceği üzere, FCFS algoritmasında ortalama bekleme süresi daima minimum olmayabilir. Çünkü görevlerin geliş sırasına bağımlıdır. İbrahim Türkoğlu – Fırat Üniversitesi, Elektronik ve Bilgisayar Eğitimi Bölümü – 2006 53 5.1.2.2.SJF (Shortest Job First – En Kısa İşletim Süresi Olan Önce) Algoritması Bu algoritmada CPU boş olduğunda, kalan görevler içinde çalışma süresi en küçük olan görev, çalışması için işlemciye sunulur. Eğer iki görevin kalan süreleri aynı ise o zaman FCFS algoritması uygulanır. Bu algoritmada: Her görev, o görevin bir sonraki AİB işlem zamanı ile değerlendirilir. Bu, en kısa zamanlı işin bulunması için kullanılır. SJF Türleri: 1. Kesilmesiz SJF : Eğer AİB bir göreve tahsis edilmişse, AİB işlem zamanı bitmeyince görev kesilemez. 2. Kesilmeli SJF : Eğer AİB işlem zamanı, şu anda çalışan görevin kalan işlem zamanından küçük olan yeni bir görev sisteme sunulmuşsa, eski görev kesilecek. Bu yönteme, SRTF( Shortest Remaining Time First – En kısa işlem zamanı kalan, birinci) yöntem denir. SJF verilmiş görevler kümesi için en küçük ortalama bekleme zamanı oluşması için optimizasyon yapar. Örnek: : P1, P2, P3, P4 görevleri aşağıdaki ardışıklık ile sunulmuş olduğunu varsayalım. Buna göre kesilmesiz SJF yöntemine göre ortalama bekleme süresini bulalım: Görev P1 P2 P3 P4 P1 P4 0 3 SJF Çalışma Süresi 6 7 8 3 P2 9 P3 16 24 : tob = tP1 + tP2 + tP3 + tP4 = (3+9+16+0) / 4 = 7 msn FCFS : tob = tP1 + tP2 + tP3 + tP4 = (0+6+13+21) / 4 =10.75 msn olarak ortalama bekleme süresi (tob) bulunur. İbrahim Türkoğlu – Fırat Üniversitesi, Elektronik ve Bilgisayar Eğitimi Bölümü – 2006 54 Örnek: P1, P2, P3, P4 görevleri aşağıdaki ardışıklık ile sunulmuş olduğunu varsayalım. Buna göre kesilmeli SJF yöntemine göre ortalama bekleme süresini bulalım: Görev P1 P2 P3 P4 P4 0 P2 1 P4 4 Sunuş Zamanı (sn) 3 1 2 0 P1 8 P3 16 25 Çalışma Süresi (sn) 8 3 9 5 P4 P2 P1 P3 tob = ((0+3) + 0 + (8-3) + (16-2))/4 = 5.5 msn 5.1.2.3.SRTF (Shortest Remaining Time First - En Kısa İşletim Süresi Kalan Önce) İlk işlem yapılırken bu esnada sunulan görevin çalışma süresi daha kısa ise o yapılan görev kesilir, çalışma zamanı kısa olan görev işlenir. 5.1.2.4.Çok Kuyruklu Planlama Algoritması Bu algoritmaya göre görevler belli sınıflara ayrılır ve her sınıf görev kendi kuyruğunu oluşturur. Başka deyişle hazır görevler çok seviyeli kuyruğa dönüştürülür. Görevin türüne önceliğine, bellek durumuna veya başka özelliklerine göre görevler belli kuyruğa yerleştirilirler. Her kuyruk için planlama algoritması farklı olabilir. Bununla birlikte görevlerin bir kuyruktan diğerine aktarılmasını sağlayan algoritmada oluşturulur. yüksek öncelik Sistem görevleri Etkileşim görevleri AIB Toplu işlem görevleri düşük öncelik Bu algoritmaya göre yüksek öncelikli kuyruktaki görevler önce işlenir. Eğer bu kaynak boş ise ondan aşağı seviyedeki görevler çalıştırılabilir. İbrahim Türkoğlu – Fırat Üniversitesi, Elektronik ve Bilgisayar Eğitimi Bölümü – 2006 55 5.1.2.5.Öncelikli Planlama Algoritması Bu algoritmaya göre her bir göreve öncelik değeri atanır ve görevler öncelik sırasına göre işlemciyi kullanırlar. Aynı öncelikli görevler FCFS algoritması ile çalıştırılırlar. P2 0 P5 1 Görev Öncelik Çalışma Süresi (msn) P1 P2 P3 P4 P5 3 1 3 4 2 10 1 2 1 5 P1 6 P3 P4 16 18 19 tob = (0 + 1 + 6 + 16 + 18) / 5 = 8.2 msn 5.1.2.6.Döngülü Planlama (Round Robin - RR) Algoritması Her görev küçük bir AİB zaman dilimini alır. Bu zaman bittiğinde, görev kesilir ve hazır görevler kuyruğunun sonuna eklenir. Örnek: P1, P2, P3, P4 görevleri aşağıdaki ardışıklık ile sunulmuş olduğunu varsayalım. Zaman dilimi 20 msn ise buna göre: P1 0 P2 20 P3 37 Görev İşlem Zamanı (msn) P1 P2 P3 P4 53 17 68 24 P4 57 P1 77 P3 97 P4 117 P1 121 P3 134 P3 154 162 5.1.3. Birlikte Çalışan Görevler İşletim sisteminde aynı zamanda çalışan görevler ya bağımsız ya da birlikte çalışan görevlerdir. Görevin çalışması diğer çalışır durumdaki