İşletim Sisteminin İşlevleri Dosya

advertisement
BTP205
İŞLETİM SİSTEMLERİ
İşletim sistemi; bilgisayar sistemini oluşturan donanım ve yazılım
nitelikli kaynakları kullanıcılar arasında kolay, hızlı ve güvenli bir
işletim hizmetine olanak verecek biçimde paylaştırırken bu
kaynakların kullanım verimliliğini en üst düzeyde tutmayı
amaçlayan bir yazılım sistemidir.
Basitçe bilgisayar donanımı ile kullanıcı! arasında iletişimi
sağlayan, bilgisayarı kontrol eden yazılımdır.
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ı.
Bunun için; İşletim Sistemin Özellikleri
• İş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ı
- Belleğin yönetilmesi
- Disk alanının yönetilmesi
- Giriş/Çıkış aygıtlarının yönetimi
Bilgisayar Mimarileri
• Von-NeumannMimarisi
von Neumann mimarisi veri ve komutları tek bir yığıncak (depolama)
biriminde bulunduran bilgisayar tasarı örneğidir. Paralel mimariler dışında
Turing makinesi'nin ilkelerini uygulayan her bilgisayarı tanımlamak için
kullanılır. merkezi işlem biriminin bağımsızlığı dolaylı olup, "saklı yazılım
bilgisayarı" (stored program computer) ile eşanlamlı olarak kullanılır.
Bilgisayar Mimarileri
Bir İşletim Sisteminin Bileşenleri
• Bir işletim sistemi, kavramsal olarak, üç grupta toplanabilecek bileşenlerden
oluşur: kullanıcı arayüzü (bu bir grafik kullanıcı arayüzü ve/veya komut satırı
yorumlayıcısı ["kabuk" da denir] olabilir), dosya yönetim sistemi ve bir
çekirdek.
Bir İşletim Sisteminin Bileşenleri
1. KABUK (SHELL) : İşletim sisteminin kullanıcıya gözüken yüzüdür. Bir çok
kaynakta kabuk, komut yorumlayıcısı olarakta adlandırılmaktadır. Bir bakıma
kullanıcı ile çekirdek arasındaki arabirim olarak da tanımlamak olanaklıdır.
Bilgisayar açıldıktan bir süre sonra komut satır (prompt) görüntülenir. Kullanıcı
tarafından komut satırına girilen komutlar bilgisayar tarafından işleme konulur.
bu nokta da kabuk (shell) olarak adlandırılan yazılım devreye girer. Öncelikle
komutun geçerliliğini inceler, kullanıcının ne yapmak istediğini çözümler ve bu iş
için gerekli olan programlar belleğe yükler.
Macintosh bilgisayarların çıkışı ve ardından Microsoft’un Windows yazılımının
geliştirilmesinden beri birçok insan, arayüz dendiğinde otomatik olarak grafiksel
kullanıcı arayüzünü (GUI –Graphic User Interface, grafik kullanıcıarayüzü- MS
explorer) düşünmektedirler.
Bir İşletim Sisteminin Bileşenleri
Unix Tabanlı işletim sistemleri için kabuklar. MS-DOS iletim sisteminde kabuk
olarak command.com kullanılır. DOS işletim sisteminin aksine Unix'in kaynak
kodlar açık olduğundan dolayı ve Unix'in C gibi yüksek seviyeli bir programlama
dili ile yazılmış olması nedeniyle Unix’te geliştirilmiş bir çok kabuk program
vardır.
Bir İşletim Sisteminin Bileşenleri
2. ÇEKİRDEK (KERNEL) : İşletim sistemi çekirdeği, kısaca çekirdek (kernel), işletim
sisteminin kalbidir. Uygulamalar ve donanım seviyesindeki bilgi işlemleri arasında
bir köprü görevi görür. Çekirdeğin görevleri sistemin kaynaklarını yönetmeyi de
kapsamaktadır. Genellikle çekirdek, işletim sisteminin temel bir elemanı olarak,
yazılımın fonksiyonunu yerine getirebilmesi için kontrol etmesi gereken kaynaklar
için düşük seviye soyutlama katmanı sağlayabilir. İşletim sistemi görevleri,
tasarımları ve uygulanmalarına göre farklı çekirdekler tarafından farklı şekillerde
yapılır. Sistem açılırken belleğe yüklenir ve sistem kapatılıncaya kadar bellekte
kalır. MS-DOS'ta sistem dosyaları olarak bilinen msdos.sys ve io.sys dosyaları, bu
işletim sisteminin çekirdek dosyalarını oluşturmaktadır. Unix'te ise vmunix, unix
gibi isimler almaktadır.
"kabuk", çekirdeğin çevresini sararken, donanımla iletişim kurmak da çekirdeğin
işidir.
• Donanım <-> Çekirdek <-> Kabuk <-> Uygulamalar
Bir İşletim Sisteminin Bileşenleri
Çekirdek, bilgisayarın donanımıyla doğrudan etkileşen işletim sisteminin bir
parçasıdr. Programlar tarafından kullanılan bir hizmet sağlar. En önemli
fonksiyonları:
• Belleği yönetmek
• Bilgisayara ulaşımlar kontrol etmek
• Dosya sistemini oluşturup, korumak
• İnterruptlar kullanmak
• Hataları kontrol etmek
• Girdi-çıktı birimlerini çalıştırmak
• Bilgisayarını kaynaklarını (işlemci, girdi-çıktı
birimleri gibi...) kullanıcılar arasında dağıtmak.
Bir İşletim Sisteminin Bileşenleri
3. DOSYA YÖNETİM SİSTEMİ: İşletim sisteminin dosyaları organize etme ve
yönetme için ne kullandığını gösteren ifadedir. Dosya verilerin t toplandığı
birimlerdir. Sanal olarak bilgisayar bütün verilerini dosya olarak saklar. Bir çok
dosya tipi vardır. Program dosyaları, veri dosyaları, text dosyaları gibi… Dosya
sistemi adı verilen bir yol ile işletim sistemi dosyaların içindeki bilgileri organize
eder. Genelde işletim sistemleri hiyerarşik dosya yönetim sistemini kullanır. Bu
sistem ağaç yapısı adı verilen klasörler içerisinde dosyaları organize eder. Bu klasör
sisteminin başlangıç noktası kök dizindir (root directory, C:\>).
.cab
Windows Cabinet File
.cpl
Windows Control Panel Item
.cur
Windows Cursor
.dll
Dynamic Link Library
.dmp
Windows Memory Dump
.drv
Device Driver
.icns
Mac OS X Icon Resource File
.ico
Icon File
.lnk
Windows File Shortcut
.sys
Windows System File
Bir İşletim Sisteminin Bileşenleri
Sistem içerisindeki veri kümeleri dosya (kütük) olarak adlandırılır. Bu nedenle
ikincil bellekler daha geniş anlamıyla giriş/çıkış birimleri (HDD, CD-ROM, Flashdisk
v.s.) üzerinde tutulan verilerin yönetimi dosya yönetimi kapsamında ele alınır.
Dosya yönetim sisteminin temel işlevleri üç maddede toplanmıştır:
1 -Mantıksal dosya yapılarından fiziksel yapılara geçişin sağlanması.
2 - İkincil belleklerin verimli kullanılmasını sağlanması.
3 - Dosyaların paylaşılması, korunması ve kurtarılması ile ilgili araçların sağlanması
İşletim Sisteminin İşlevleri
1. Dosya ve Klasör Yönetimi
Dosyaları ve klasörleri yönetme, kaynakları saklama ve güvenliğini sağlamayı,
bu kaynakları ağ kullanıcılarının kullanımına sunmayı ve yine bu kaynaklardaki
değişiklikleri yönetmeyi içerir.
Sürücü: Dosya ve klasörlerin saklanabileceği fiziksel ortamlardır ve alfabede
bulunan harfler ile temsil edilirler. Disket sürücüler A veya B harfi ile
Harddiskler ise C ve sonrasında gelen harfler ile temsil edilirler. CD-ROM,
DVD-ROM ve Tape Backup üniteleri vb. diğer aygıtlar ise Harddiskten sonra
gelen harfler ile temsil edilirler.
Klasör: Sürücüler içerisinde bulunan ve dosyaları gruplamak amacı ile
kullanılan program grup isimleridir. Klasörler dosyaları yaptıkları işlere göre
gruplandırırlar, bu sayede aradığımız herhangi bir dosyayı bulmamız
kolaylaşır. Bu olay tıpkı bir kütüphanede kitapların konularına göre
gruplandırılmalarına benzer.
İşletim Sisteminin İşlevleri
Dosya: Bilgisayarda yaptığımız her işlem dosyalar aracılığıile yapılmaktadır.
Yazdığımız belgeler, hesap tabloları, sunular vb. dosyalarda saklanır. Bu
sayede yaptığımız çalışmaları istediğimiz herhangi bir zamanda açıp
okuyabilir gerekli güncellemeleri yapabiliriz. Bilgisayarda bulunan bütün
dosyalar “dosyaadı.uzantı” şeklinde saklanır. Dosyaadı o dosyanın yaptığı işe
göre verilmiş mantıksal bir isimdir ve toplam 255 karakter uzunluğunda
olabilir, uzantı ise o dosyanın işlevine göre bilgisayar tarafından daha önceden
belirlenmiş bir isim olabilir ve genelde 3 harf uzunluğundadır. Uzantılar
sayesinde o dosyanın hangi programla hazırlandığını ve hangi programlarla
açılabileceğini anlayabiliriz.
İşletim Sisteminin İşlevleri
2. Uygulamaların Yönetimi
Kullanıcı bir program çalıştırmak istediğinde, işletim sistemi uygulamanın
yerini sabit diskten tespit eder ve uygulamayı RAM’e yükler. Bu işlem
etkileşimli işlem olarak adlandırılır. Etkileşimli işlem kullanıcılara,
uygulamaları dinamik biçimde yönetme, çalıştırılan programların sonuçlarını
doğrudan elde edip, her an müdahale edebilme olanağı sağlayan çalışma
türüne ilişkin bir özelliktir. Bu çalışma türünde kullanıcılar, bir işin çalışma
süreci boyunca işe, monitör ve klavye vasıtası ile her an müdahale
edebilmektedirler. Yani bir başka söylemle, ekran başında oturan bir
kullanıcının bilgisayara bir komut vermesi ve o komuta bilgisayardan yanıt
alması türünde, bir nevi karşılıklı konuşma yapar gibi çalışma biçimine
“Etkileşimli İşlem” denir.
Bu tanımdan da anlaşılacağı gibi, kullanıcılar program geliştirme, metin
dosyaları oluşturma, program derleme ve test etme, veri tabanı sorguları
işletme, bilgisayar ağı komutları girme, internet servislerini kullanma gibi kısa
süreli işlerini Etkileşimli İşlem olarak yürütürler.
İşletim Sisteminin İşlevleri
3. Yardımcı Programları Destekleme
İşletim sistemi yardımcı programları, problemleri giderebilmek ve sisteminin
sağlıklı işlemesini sürdürebilmek amaçlı kullanır. Silinmiş, hasarlı dosyaları
bulabilmek, verilerin yedeğini alabilmek gibi işlemlerde kullanır. İşletim
sistemi, üzerinde yer alan bazı yazılımlar “Sistem Yazılımı” olarak anılır.
Örneğin derleyiciler (compilers); yazdığımız programı makine diline çeviren
ara program, editörler (editors), yararlı programlar (utility); virüs temizleyen
programlar gibi gerçek iş için yardımcılardır, veri tabanı yönetim sistemleri
(database management system) ve bilgisayar ağı yazılımları (network
software) yine birer sistem yazılımlarıdır. Ancak bu yazılımlar işletim
sisteminin kendi öz parçaları değildir.
İşletim Sisteminin İşlevleri
4. Bilgisayar Donanımını Kontrol Etme
İşletim sistemi programlar ile BIOS arasında durur. BIOS tüm donanımı
kontrol eder. Programların da işletim sistemi ile haberleşebilmesi için
donanım kaynaklarına ihtiyacı vardır. İşletim sistemi donanıma BIOS aracılığı
ile aygıt sürücüleri ile ulaşır. Bir bilgisayar sistemi, bir veya birden fazla işlemci
(ya da diğer bir söylemle “CPU”), gerçek bellek (RAM), saatler, terminaller,
diskler, bilgisayar ağı(network) birimleri, yazıcı üniteleri, CD sürücüsü, disket
ve teyp üniteleri gibi I/O ünitelerinden oluşmaktadır. Doğal olarak bir
bilgisayar sistemi oldukça karmaşık bir yapıdadır.
İşletim Sisteminin İşlevleri
4. Bilgisayar Donanımını Kontrol Etme
Programcıları, donanımın bu karmaşık yapısından etkilenmemelerini
sağlamak ve disk gibi donanım ünitelerinin nasıl çalıştıklarını anlamak
zorunda bırakılmamaları için, donanımın üzerine ilave edilen yazılımların
katmanlar şeklinde (layered system) oluşturulmaları ve bu sayede çok daha
kolay bir şekilde, sistemin bütün parçalarının yönetilebilmesi şeklinde bir
yapılanma, uzun yıllar önce geliştirilmiş bir yaklaşımdır. Bu yapının en alttaki
üç katmanı donanımı oluşturmaktadır. En alttaki katman, fiziksel üniteler,
entegre devreler, kablolar, power (elektrik destek) üniteleri, disket sürücüleri,
disk üniteleri ve diğer benzeri donanım birimlerinden oluşmaktadır. Bu
katmanın mimari yapısı ile ilgilenmek ve bunları çalışma prensiplerini
geliştirmek elektronik mühendislerinin işidir. Fiziksel üniteleri (donanım)
doğrudan kontrol eden ve fiziksel katmanın bir üstündeki en ilkel yazılım
düzeyini oluşturan katman, “microprogram” dır. Bu katman genellikle “readonly” (yalnızca okunabilir) bellek (ROM) sahasında bulunur. Microprogram da
ekleme (add), taşıma (move), karşılaştırma (compare) gibi makine diline ait
temel komutları adım adım yerine getirir. Microprogram, örneğin, Add
işlemini yerine getirmek için eklenecek sayının nerede yer aldığını saptar ve
üzerine eklenecek sayıyı ilave ettikten sonra sonucu elde eder.
İşletim Sisteminin İşlevleri
4. Bilgisayar Donanımını Kontrol Etme
Microprogramın yorumladığı komut seti (instruction set), makine dili
(machine language) katmanını oluşturur ki, bu gerçekte makinenin gerçek bir
donanım parçasını oluşturmakta ve bir bilgisayar da donanımın gerçek bir
parçasıymış gibi nitelenebilmektedir. Bu nedenle bazı makinelerde
Microprogram, donanımın içinde varsayıldığından ayrı bir katman şeklinde
bulunmaz. Makine dili, genel olarak 50 ile 300 arasında komuta (intruction)
sahiptir. Veri taşıma, aritmetik işlem yapma ve değerleri kıyaslama gibi
işlevleri yerine getirir. Makine dili, yazıcı ve disket sürücü gibi I/O
(input/output) ünitelerinin denetimini özel yüklenmiş bilgiler sayesinde
yapmaktadır. Bir bilgisayar sisteminin dördüncü katmanında yer alan işletim
sisteminin temel işlevi, donanımın karmaşıklığını kullanıcıya yansıtmamak ve
daha elverişli ortam hazırlayıp, kullanıcının kolayca işini yapmasını
sağlamaktır.
İşletim Sistemi Tipleri
1. Çoklu Kullanıcı(Multiuser) İşletim Sistemleri
İki veya daha fazla kullanıcının programlar veya paylaşılan aygıtlar
üzerinde çalışabilmesidir. Bu konuya en güzel örnek paylaştırılan
yazıcılardır. Bir çok kullanıcı aynı anda yazıcıya belge gönderir ve de
sıra ile bu belgeler yazıcıdan çıktı alınır.
İşletim Sistemi Tipleri
2. Çoklu Görev (Multitasking) İşletim Sistemleri
Kullanıcılar sistemde aynı anda birden fazla işlem (process) çalıştırabilirler.
Bu, siz bir işlemi başlattıktan sonra, o başlattığınız işlem çalışmaya devam
ederken başka bir işlem de başlatabilirsiniz demektir. Çoklu görev, bir
işletim sisteminde bir kullanıcının, birden fazla sayıda işlemi aynı anda
işletime alınabilmesi özelliğidir. Yani çoklu görev, bellekteki birkaç veriyi
aynı anda işlemesi ve işlemci ile I/O ünitelerinin de bunlar arasında aynı
anda kullandırılması ortamının yaratılmasıdır. Ancak bir bilgisayar
sisteminde, işletim sisteminin kendisine ait birden fazla işlemin aynı anda
çalıştırılması, bu sistemde “çoklu görev (multitasking)” özelliği olduğunu
göstermez. Bu nedenle bir işletim sisteminde çoklu görev özelliği, ancak bir
kullanıcının birden fazla sayıdaki işlemi aynı anda işletebiliyorsa vardır.
Çoklu görev birçok uygulamanın (programın) aynı anda çalıştırılmasıdır.
Bunun sağlanması için, görevler (uygulamalar) kısa zaman dilimleri içinde
işlemcide çalıştırılır. Bu zaman dilimlerinin oldukça küçük zaman dilimleri
olması nedeniyle yapay da olsa bir eş zamanlılık söz konusu olur (İşlemci
aynı anda iki işi yapamaz.).
İşletim Sistemi Tipleri
3. Çoklu İşlemci (Multiprocessing) İşletim Sistemleri
Gittikçe yaygınlaşan bir durum da bir basit sistemin içerisine birçok CPU
bağlayarak çok önemli hesaplamaları yapmaktır. Her işletim sistemi birden
fazla işlemciyi destekleyemiyor. İşletim sistemi, yapılacak olan işlemleri iki
veya daha fazla işlemci üzerine dağıtmayı bilmeli ve bunları kontrol
edebilmelidir. Bu özelliğe sahip olan işletim sistemleri arasında Windows
2000, Windows NT, Linux, Unix, BeOS bulunuyor. Microsoft'un diğer
işletim sistemleri (Win9x - ME) çok işlemcili sistemleri desteklemiyor.
Destekleyememesinden dolayı, fazladan taktığınız işlemciyi boşu boşuna
kullanmış oluyorsunuz. Anlayacağınız, işlemleri işlemci üzerine dağıtabilme
özelliğinden yoksun.
İşletim Sistemi Tipleri
4. Çoklu Görev (Multithreading) İşletim Sistemleri
Program ihtiyaç halinde işletim sistemi tarafından küçük parçalara
ayrılır ve çalıştırılabilir. Bu özellik aynı zamanda çoklu kullanıcı
sistemleri de destekler. Aynı programın parçaları farklı kullanıcılar
tarafından da kullanılabilir.
• İşlem Yönetimi (İşlem, Semafor ve Kilitlenme)
• BELLEK YÖNETİMİ işl_sis
• Disk yönetimi
İŞ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:
1. Görev yönetimi (Process manager)
2. Ana bellek yönetimi (Memory manager)
3. Kütük yönetimi (File manager)
4. Disk (2. bellek) yönetimi (Second Storage)
5. Ağ üzerinde çalışma (Ağ fonksiyonları yönetimi: Networking)
6. Sistem koruması
7. 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.
1. İşlem Yönetimi (İşlem, Semafor ve Kilitlenme)
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.
1. İşlem Yönetimi (İşlem, Semafor ve Kilitlenme)
Görevin çalışması, ardışık işlemler süreci
şeklinde olup, her bir zaman diliminde
görevin yalnız bir komutu çalışabilir.
Bir işlemin yapısında; işlemin yazılı olduğu
metin bölümü, bir sonraki işletilecek olan
komutu gösteren sayaç ve işlemci
kaydedicilerinin içeriği olan program sayacı
(program counter PC) bölümü, yerel
değişkenler, dönüş adresleri gibi geçici
bilgileri tutan yığın (stack) bölümü, genel
değişken vb. bilgileri tutan veri bölümü
bulunmaktadır. Bazı işlemlerde işlemin
çalıştığı sürece kullandığı bir alan (heap) de
bulunmaktadır.
1.1 Görev Denetimi
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ı
• MİB yazmaçları
• MİB planlanması bilgileri
• Bellek yönetimi bilgileri
• İstatistiksel bilgiler
• G/Ç durumu bilgileri
1.1 Görev Denetimi
• Görev durumu: görev yeni, çalışıyor, bekliyor, hazır veya bitti şeklinde
olabilir.
• Program sayacı: İşlemde çalıştırılacak bir sonraki komutu gösterir.
• MİB kaydedicileri: İşlemci mimarisini göre kaydedicilerin sayısı ve türü
değişmektedir. İşlemde kullanılan kaydediciler (AX, BX vb.) içerisindeki
bilgiler bir kesme geldiğinde mutlaka saklanmalıdır
• MİB zamanlanma bilgisi: Burada işlemin önceliğini, zamanlama kuyruğundaki
işaretçisi ve diğer zamanlama parametreleri ile ilgili bilgiler bulunmaktadır.
• Bellek yönetimi bilgisi: İşletim sistemi tarafından kullanılan bellek sistemleri;
taban ve limit (tavan) kaydedicileri, sayfa tablosu veya bölüm tablosu gibi bilgileri
içermektedir.
• Hesap bilgileri: görev tarafından kullanılan MİB ve diğer parametrelerin
kulanım zamanlarını içermektedir.
• G/Ç durum bilgisi: görev tarafından kullanılan G/Ç aygıtlarının listesi, açılan
dosyaların listesi vb. bilgileri içermektedir.
1.1 Görev Denetimi
MİB’nin işlemden işleme geçiş aşamaları
Kesme İsteği (IRQ)
IRQ İngilizce karşılığı Interrupt Request, yani kesme isteği kelimelerinin
kısaltmasıdır. IRQ ile donanımlar sistem işlemcisi ile iletişim kurarlar. Bir nevi her
donanımın özel adresi denebilir. Bilgisayarımızın merkezi işlem ünitesi olarak CPU
çevre birimleri ile olan tüm iletişimleri başlatır, onların yönetimini elinde tutar. Peki
herhangi bir çevre birimi CPU'nun kendisi ile ilgilenmesini nasıl sağlayacak, onun
dikkatini nasıl çekecek. İşte bu noktada IRQ (Donanım kesmeleri) devreye girer. IRQ,
çevre birimlerinin dikkat çekmek için kullandığı bir yöntemdir.
Bir kesme talebi geldiğinde kesme denetleyicisi (PIC), CPU'yu elindeki işi geçici
olarak durdurmaya ve hemen bu kesmeyi yönetmesine olanak sağlayan bir
programı çalıştırmaya iter. CPU kesme hizmet programına dallanırken dönüş
adresini yığın hafızada saklar ve işi bitince işleme yine kaldığı yerden devam eder.
Birçok aygıt aynı anda kesme hizmeti isteyebilir. Sistem tarafından belirlenmiş
öncelik sırasına göre talepler karşılanır. Genelde kesme hizmet programı yüksek
önceliğe sahip bir işlem tarafından kesilebilir. Ama daha öncelikli veya eşit
seviyedeki bir cihazdan kesme talebi gelirse o anki kesme programı bitene kadar bu
istek saklanır.
Kesme İsteği (IRQ)
İş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:
Kesme çevriminin yürütümü:
• Program
• İşlemci, kesmeleri kontrol eder.
• Eğer kesme yoksa, mevcut program içinde
– Aritmetik taşma
işlemci bir sonraki komut alır.
– Sıfıra bölme
• Eğer kesme varsa, mevcut çalışan
– İllegal komut yürütme
– Kullanıcının hafıza alanının dışına çıkması program olduğu yerde bırakılır (çalışmasını
bitirmeyi beklemeksizin) ve kesme
• Zamanlayıcı (Timer)
programı idareyi ele alır.
• G/Ç
• Donanım hatası
1.1 Görev Denetimi
Görev durumu (Process state):
Bir işlemin hangi durumda olduğunu gösteren ve işlemin ömrü boyunca değişken
bir durumu bulunmaktadır. Bunlar;
• Yeni: İşlemin oluşturulduğunu gösterir.
• Çalışıyor: İşlemin komutları yürütülmektedir.
• Bekliyor: görev bir olayın gerçekleşmesini beklemektedir. Örneğin bir G/Ç
işlemi.
• Hazır: görev bir işlemciye atanmak için beklemektedir.
• Bitti: görev çalışmasını bitirdi.
1.1 Görev Denetimi
Görev durumu (Process state):
Herhangi bir anda tek bir görev çalışma durumundadır fakat birçok görev
beklemede olabilir.
1.1 Görev Denetimi
İş Parçacıkları (Threads)
İş parçacığı, işlemin bir parçasıdır. Örneğin bir işlemin bir kelime işlemci
programının çalışmasını yürüttüğünü düşünelim. Burada kullanıcı örneğin bir
satırdaki yazıları seçerek kalın yapmak istediğinde bu faaliyete iş parçacığı
denilmektedir. Modern işletim sistemleri aynı işlem içerisinde birden fazla iş
parçacığının yürütülmesine izin vermektedir.
1.1 Görev Denetimi
İşlemlerin Planlanması (Process Schedulers)
Ç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 MIB’nin planlanması işletim
sisteminin tasarımında başlıca yeri tutmaktadır. Her bir görevin çalışması, MIB ve
G/Ç işlemlerinden oluşur.
1.1 Görev Denetimi
İşlemlerin Planlanması (Process Schedulers)
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
2. Belirlenmiş zaman diliminde çalışmasını tamamlayan görev sayısı.
3. Görevi çalıştırmak için harcanan zaman
4. Görevin hazır görevler kuyruğunda bekleme zamanı
5. Cevaplama süresi
1.1 Görev Denetimi
İşlemlerin Planlanması (Process Schedulers)
Tüm işlemler iş kuyruğuna (Job queue) alınmaktadır. Çalıştırılmaya hazır olan
veya bekleyen işlemler hazır kuyruğuna (ready queue) alınarak MİB’ne
gönderilir. ‘Dağıtıcı (Dispatcher)’ çalıştırılacak olan bir işlemi seçerek MİB’ne
gönderdikten sonra aşağıdaki olaylar meydana gelebilir;
• İşlem bir G/Ç isteğinde bulunabilir ve böylece G/Ç kuyruğuna yerleştirilir.
• İşlem alt işlemler oluşturabilir ve bunların bitmesini bekleyebilir.
• İşlem bir kesme oluştuğu için MİB’de çalışması durdurularak kesmenin
bitiminin ardından kuyruğa alınarak MİB’ne gönderilebilir.
1.1 Görev Denetimi
İşlemlerin Planlanması (Process Schedulers)
1.1 Görev Denetimi
Planlama Algoritmaları
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
Çalışma Zamanı (sn)
P1
24
P2
3
P3
3
1. FCFS (First Come First Served – İlk Gelen Önce) Algoritması:
Örnek: P1, P2, P3 görevlerinin sırasıyla kuyrukta yerleştiklerini kabul edelim:
Görev
Çalışma Zamanı (sn)
P1
24
P2
3
P3
3
1.Görevler P1, P2, P3 ardışıklığı ile sunulmuş olduğunu varsayalım. Buna göre
planlama:
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:
Ortalama bekleme süresi : (3+6+0) / 3 = 3 msn’dir.
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 Mİ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.
2.SJF (Shortest Job First – En Kısa İşletim Süresi Olan Önce) Algoritması:
Ö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:
• SJF : 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
3.Ç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.
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.
4.Ö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.
5.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:
Kilitlenme (Deadlock)
Sonsuz döngü anlamına da gelmektedir. Değişik işlemlerin/iş parçacıklarının
birbirlerinin alanlarını kullanmalarından ortaya çıkar. Windows’da sıklıkla
karşınıza çıkan mavi ekranın sebebi! Örneğin bir işlem bir kaynağı (örneğin A
dosyasını)kullanırken diğer bir kaynağı (örneğin B dosyasını) kullanmak
istemektedir. Ancak aynı zamanda başka bir işlem B dosyasını kullanırken A
dosyasını kullanmak istemektedir. Bu durumda her iki işlem de istedikleri
dosyaları alamayacakları için bu işlemler bloklanacaklardır.
Kilitlenme (Deadlock)
Görevler arasında tıkanma (kilitlenme) aşağıdaki koşullarda ortaya çıkabilir:
1. Karşılıklı Dışlama : Bir kaynağın aynı anda yalnız bir görev tarafından
kullanılabilmesi.
2. İstem üzerine kaynak atama : Görevin gereksediği kaynakları, teker teker
işletim aşamasında elde edilmesi.
3. Atanan kaynakların, görevler serbest bırakmadıkça geri alınamaması
4. Döngüsel Bekleme : Bir görevin elinde tuttuğu kaynaklardan bir yada daha
çoğunun,bu görevle aynı döngüsel işletim zinciri içinde yer alan diğer
görevlerce istenmesi.
Semafor (Semaphore):
Latincede ‘deniz feneri’ anlamına gelen Semafor, negatif olmayan bir tamsayı
olup işlemin başlangıç deyiminden itibaren wait ve signal işlemleri ile değeri
değiştirilebilen bir değişkendir.
• Signal (S) : S = S + 1 (1 arttırma)
• Wait (W) : W = W – 1 (1 azaltma)
İki ayrı işlem aynı anda bellekte yürütülürken kaynaklara aynı anda erişmeye
çalışabilirler. Bu durumda kullanılan semafor, sistem kilitlenmelerine engel
olur. Bir semafor’un paylaşılabilmesi onun başlangıç değerine bağlıdır.
2. Bellek Yönetimi
Genellikle bir program hard diskte ikili kodda çalıştırabilir dosya olarak
tutulmaktadır. Bu program belleğe bir işlem yardımıyla getirilerek yerleştirilir.
Bellek yönetimine göre bu işlem çalışırken bellek ve hard disk arasında gidip
gelebilir. Diskteki işlemler belleğe getirilerek çalıştırılmak için beklerken
oluşturdukları forma giriş kuyruğu denilmektedir.
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. İşletim sisteminin bellek yönetiminin unsurları şunlardır:
• Bellekteki herhangi bir işlemi başka bir yere aktarabilmelidir.
• Birden fazla işlem veya kullanıcı olduğunda bir kullanıcını diğer kullanıcını
alanlarına girmeleri önlenmelidir.
• Kullanıcılar arası kaynak paylaşımını sağlamalıdır.
• Belleğin mantıksal alanlara bölünmesini sağlayarak bilgiye erişimi
kolaylaştırmalıdır.
• Belleğin yetmediği durumlarda fiziksel başka bellek alanlarını yani hard
diskleri kullanabilmelidir (swap).
2. Bellek Yönetimi
Genellikle bir program hard diskte ikili kodda çalıştırabilir dosya olarak
tutulmaktadır. Bu program belleğe bir işlem yardımıyla getirilerek yerleştirilir.
Bellek yönetimine göre bu işlem çalışırken bellek ve hard disk arasında gidip
gelebilir. Diskteki işlemler belleğe getirilerek çalıştırılmak için beklerken
oluşturdukları forma giriş kuyruğu denilmektedir.
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. İşletim sisteminin bellek yönetiminin unsurları şunlardır:
• Bellekteki herhangi bir işlemi başka bir yere aktarabilmelidir.
• Birden fazla işlem veya kullanıcı olduğunda bir kullanıcını diğer kullanıcını
alanlarına girmeleri önlenmelidir.
• Kullanıcılar arası kaynak paylaşımını sağlamalıdır.
• Belleğin mantıksal alanlara bölünmesini sağlayarak bilgiye erişimi
kolaylaştırmalıdır.
• Belleğin yetmediği durumlarda fiziksel başka bellek alanlarını yani hard
diskleri kullanabilmelidir.
2. Bellek Yönetimi
Bellek, Ana ve İkincil bellek olmak üzere ikiye ayrılır. Ana bellek; aynı zamanda
aktif bellek, yarı iletken bellek, RAM bellek adlarıyla da anılır. Programların ve
verilerin işlem aşamasında yer aldığı, ana işlem biriminin de doğrudan erişebildiği
bellektir.
Mantıksal ve Fiziksel Adres
MİB tarafından oluşturulan adrese genellikle mantıksal (veya sanal) adres,
bellekte yer alan adrese ise fiziksel adres denilmektedir. Mantıksal adresi MİB
tarafından belirlenen bir kullanıcı işlemi belleğe yerleşirken fiziksel adresi
belirlenerek yerleştirilir ki bunun için de tekrar yerleştirme (relocation) da
denilen taban (base) kaydedicisi kullanılır. Bu taban kaydedicisinin değeri ile
mantıksal adres toplanarak elde edilen adres ise fiziksel adrestir.
2. Bellek Yönetimi
Boş Bellek Alanlarının Aranması
Boş bellek alanlarının aranması için genelde 3 yöntem kullanılır:
1.İkili haritalama (Bit-map)
2.Bağlaçlı Liste
3.Komşu Sistemler (Buddy System)
Download