You are on page 1of 60

BİL 101

BİLGİSAYAR MÜHENDİSLİĞİNE
GİRİŞ
*Ders Notları: Doç. Dr. Pınar ONAY DURDU’ya aittir.
İŞLETİM SİSTEMLERİ
İşletim Sistemi

• Modern bilgisayar çalışma prensipleri, Von Neumann’ın 1945’de


geliştirdiği mimariyi temel almaktadır.

© Copyright 2021 Sakarya Uygulamalı Bilimler Üniversitesi. Her hakkı saklıdır.


İşletim Sistemi

• Bilgisayarın tüm çalışmasını kontrol eden yazılım


– Kullanıcının dosya depolamasını
– Kullanıcıların programları uygulatmak için arayüz ve
– İstenen programların çalıştırılması için ortam sağlar
– Örnekler
• Windows
• UNIX
• MacOS
• Linux

© Copyright 2021 Sakarya Uygulamalı Bilimler Üniversitesi. Her hakkı saklıdır.


İşletim Sistemi

• Bir işletim sistemini orkestrayı yöneten bir maestro gibi


düşünebilirsiniz.
– bilgisayarın donanım elemanlarının birbiri ile haberleşmesini,
– birbirini tanımasını,
– kısacası birbiri ile uyumlu bir şekilde çalışmasını sağlar.
• İşletim sistemi aynı zamanda
– kullanıcı ve donanım,
– yazılım ve donanım ve
– yazılım ve yazılım arasındaki ara yazılımdır.
© Copyright 2021 Sakarya Uygulamalı Bilimler Üniversitesi. Her hakkı saklıdır.
İşletim Sistemi

• Bir bilgisayar sisteminin genel görünümü

© Copyright 2021 Sakarya Uygulamalı Bilimler Üniversitesi. Her hakkı saklıdır.


İşletim Sistemi

• İşletim sistemi;
– Bilgisayar sistemini oluşturan donanım ve yazılımın 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.
– Bir bilgisayar sistemindeki MİB, bellek, soyut bellek, G/Ç aygıtları
ve dosyalar gibi kaynakları kontrol eden program modülleri
topluluğudur.
• Bu modüller sistemin daha etkili ve performanslı kullanılmasını sağlar.
Bunlar kullanıcı ve donanım arasında bir arabirim gibi çalışırlar.

© Copyright 2021 Sakarya Uygulamalı Bilimler Üniversitesi. Her hakkı saklıdır.


Tarihçe

• 1940 ve 1950’lerin bilgisayarları yeterince esnek ve verimli


değillerdi bilgisayarlar oda boyutunda
• Programları uygulama büyük bir oranda delikli kartları
okuyuculara takma, anahtarları ayarlama gibi ekipman hazırlığı
gerektiriyordu.
• Her programın çalıştırılması  iş – job diye adlandırılıyordu
– Makinanın programı çalıştırma için hazırlanması, programın uygulanması ve
sonrasında tüm kartların bir sonraki program uygulanmadan önce çıkarılması
gerekiyordu
– Birden fazla kullanıcı makinayı paylaşmak isterse sıralarını beklemek
durumundalardı
© Copyright 2021 Sakarya Uygulamalı Bilimler Üniversitesi. Her hakkı saklıdır.
Tarihçe

• İşletim sistemleri program kurulumunu ve işler arasında geçişi


bütünleştirmek ve hızlandırmak için geliştirildi
• İlk gelişme kullanıcı ve makinanın ayrıştırılması  bilgisayar
operatörü makinayı çalıştırmaktan sorumlu
– Batch processing (yığın işleme) - işleri tek bir yığın (batch) içinde toplamak
ve kullanıcı etkileşimi olmaksınız uygulamak

© Copyright 2021 Sakarya Uygulamalı Bilimler Üniversitesi. Her hakkı saklıdır.


Tarihçe

• Yığın (batch) işlemede, işler iş kuyruğunda (job queue)


uygulanmak için bekler
• Kuyruk (queue) işlerin ilk giren ilk çıkar (First In First out – FIFO)
mantığında sıralandıkları depolama yapısı  işler kuyruğa
girdikleri sırada çıkarlar
– Gerçekte FIFO mantığı yerine çoğu işletim sistemi iş için önceliklendirme yapısı kullanır.
• Erken yığın işlemede, her iş ilgili iş için makinayı hazırlayacak
adımları içeren komutlar kümesi ile birlikte tanımlanmaktaydı
– Bu komutlar iş kontrol dili (job control language) ile kodlanır ve iş kuyruğunda iş işle
birlikte depolanırlardı
– İş seçildiğinde işletim sistemi bu komutların çıktısını alır ve bilgisayar operatörü
izleyebilirdi

© Copyright 2021 Sakarya Uygulamalı Bilimler Üniversitesi. Her hakkı saklıdır.


Tarihçe

• Bilgisayar ve kullanıcıları arasında bir operatör bulundurmanın en önemli


sıkıntısı kullanıcılar işleri operatöre ilettikten sonra işle etkileşimleri
kalmıyordu
– Bazı uygulamalarda bu kabul edilebilirken kullanıcın işlem sırasında etkileşmesinin
gerektiği uygulamalar için pek uygun değil  Rezervasyon sistemleri, kelime
işlemci programları bilgisayar oyunları gibi.
– Bu ihtiyaçlar doğrultusunda programların kullanıcı ile uzak terminal (iş
istasyonları) aracılığıyla diyalog sürdürebildiği yeni işletim sistemleri geliştirildi 
etkileşimli işleme (interactive processing)

© Copyright 2021 Sakarya Uygulamalı Bilimler Üniversitesi. Her hakkı saklıdır.


Tarihçe

• Başarılı etkileşimli işlemeden üstün olarak kullanıcının


makinanın zaman çizelgesine uymayı zorlamasındansa
kullanıcın ihtiyaçlarını hızlıca koordine etmeye yönelik
gelişme  real-time processing (gerçek zamanlı işleme)
– Eylemlerin/komutların verildiği anda gerçekleştirilmesi

© Copyright 2021 Sakarya Uygulamalı Bilimler Üniversitesi. Her hakkı saklıdır.


Tarihçe

• Eğer etkileşimli sistemler tek bir kullanıcıya hizmet edeceklerse


gerçek zamanlı işleme için problem yok ancak 60 ve 70’lerde
bilgisayarlar çok pahalı olduğundan, birden fazla kullanıcıya hizmet
etmek durumundalardı.
• Birden fazla kullanıcı uzak terminaller aracılığıyla etkileşimli servis
almaya çalıştıklarında yalnızca bir kullanıcı gerçek zamanlı hizmet
alabiliyordu
–  bu duruma çözüm = Zaman paylaşımı (time sharing): zamanı aralıklara
bölme ve işi belli aralıklara atama ve işler arasında aralıkları paylaştırma
– Böylelikle pek çok işin eşzamanlı gerçekleştirilmesi illüzyonu sağlanmaktaydı
– Günümüzde zaman paylaşımı tek kullanıcılı sistemlerde olduğu gibi çok
kullanıcı sistemlerde de kullanılmakta
© Copyright 2021 Sakarya Uygulamalı Bilimler Üniversitesi. Her hakkı saklıdır.
Tarihçe

• Günümüzde kişisel bilgisayarlar ile bilgisayar operatörünün varlığı


ortadan kalkmıştır
• İşletim sistemleri her defasında tek bir işi getirip uygulayan basit
programlardan zaman paylaşımlı, makinanın depolama araçlarından
program ve veri dosyaları sağlayan ve bilgisayar kullanıcısının
isteklerine direk olarak karşılık veren karmaşık sistemlere
dönüşmüştür.
• İşletim sistemlerinin evrimi devam etmektedir.
– Çoklu işlemci makinelerin gelişmesi ile tek bir işlemci üzerinde zaman
paylaşmak yerine farklı görevleri farklı işlemciler üzerine atayarak çok görevli
(multi-tasking) şeklide yerine getirebilmek mümkün

© Copyright 2021 Sakarya Uygulamalı Bilimler Üniversitesi. Her hakkı saklıdır.


Bilinen İşletim Sistemleri - UNIX

• Kökleri 1965 yılında MIT, AT&T Bell Labs ve GE'nin birlikte


geliştirdikleri MULTICS (Multiplexed Operating and Computing
System) projesiyle atılmıştır.
• MULTICS projesinin temel hedefi birden çok kullanıcının
eşzamanlı veri paylaşımını sağlamaktı.
• 1969 yılında proje karmaşık bir hal almaya başlamış ve AT&T Bell
Labs projeden çekilmiştir. Ancak aynı yıl içinde, Bell'de araştırmacı
olarak çalışan Ken Thompson'ın MULTICS programını simüle eden
bir dosya sistemini kodlamasıyla Unix'in ilk sürümü ortaya
çıkmıştır.

© Copyright 2021 Sakarya Uygulamalı Bilimler Üniversitesi. Her hakkı saklıdır.


Bilinen İşletim Sistemleri - UNIX

• 1971 yılında Bell laboratuarlarında çalışır hale getirilen ilk UNIX


sürümü assembler ile yazılmıştı.
• 1973 yılında Ken Thompson, C derleyicisinin yaratıcısı Dennis
Ritchie ile birlikte çekirdeği C ile tekrar kodladı.
• Böylece Unix, çeşitli hedef donanımlara uygun olarak tekrar
derlenebilen kodlardan oluşan taşınabilir bir işletim sistemine
dönüşmüş oldu.
• 1978 yılı Unix için çok önemli bir yıldı. Unix İşletim Sistemi 7.
sürümüyle birlikte gelişimini artık iki farklı çizgide
gerçekleştirecekti: BSD (Berkeley Software Distribution) ve
System V.
© Copyright 2021 Sakarya Uygulamalı Bilimler Üniversitesi. Her hakkı saklıdır.
Bilinen İşletim Sistemleri – UNIX BSD

• Berkeley Üniversitesinde Thompson ve öğrenci Bill Joy ile Chuck


Haley Unix'in Berkeley sürümünü kodladı.
• Bu sürüm, kaynak kod üzerinde çalışan diğer öğrencilere de
dağıtıldı ve orijinal Unix kaynak kodunun %90'ı değiştirildi.
• Sanal bellek (virtual memory), Sendmail, TCP/IP desteği, vi ve C
shell gibi metin düzenleme programları ilk olarak BSD sürümünde
yer almıştır.
• Linux, Mac OS X, NextStep, (NeXT), Sun OS 4.x ve ULTRIX (DEC)
gibi işletim sistemleri BSD üzerinden türemiştir.

© Copyright 2021 Sakarya Uygulamalı Bilimler Üniversitesi. Her hakkı saklıdır.


Bilinen İşletim Sistemleri - UNIX System V

• Bell, Unix'in ticari olarak varlığını sürdürebilir bir ürün olacağını


düşündü ve ürünü lisansladı.
• System V işletim sistemi, konsorsiyum tarafından ortak bir
standartta geliştirildi ve yeni özellikleriyle daha güçlü, güvenilir ve
güvenli bir sistem oldu.
• O yıllarda System V ticari olarak en çok desteklenen ürün oldu.
• Bell'de gerçekleştirilen Tüm System V ürünlerinin lisans hakkı
Unix System Laboratories'e aitti.
• Bunlara örnek olarak AIX (IBM), Digital Unix (DEC), HP-UX (HP),
IRIX (SGI), SCO UNIXware ve Sun OS 5.x/Solaris (SUN) verilebilir.
© Copyright 2021 Sakarya Uygulamalı Bilimler Üniversitesi. Her hakkı saklıdır.
Bilinen İşletim Sistemleri - Günümüzde UNIX

• BSD ve System V'in birçok komut ve özellikleri birbirine


benzemektedir. Unix'in çoğu sürümünde her iki yaklaşımdan da
faydalanılmıştır.
• 1993’te AT&T UNIX Sistem Laboratuarını Novell'e satılmıştır.
• 1994'te UNIX tanımı ve markası günümüzdeki sahibi The Open
Group'a devredilmiştir.

© Copyright 2021 Sakarya Uygulamalı Bilimler Üniversitesi. Her hakkı saklıdır.


Bilinen İşletim Sistemleri-DOS (Disk Operating System)

• DOS ufak ve basit bir işletim sistemi olup, ana görevi disket ve
sabit disk gibi saklama ortamlarının yönetimidir.
• Kişisel bilgisayar (PC) piyasasına giren IBM ürettiği Intel
8086/8088 işlemcili PC için bir işletim sistemi aramaya
başlamıştır. O zaman hakim sistem CP/M olduğundan IBM de
kullanmak istemiş fakat Digital Research ile anlaşamayınca o
zaman küçük bir firma olan Microsoft’a yeni bir işletim sistemi
siparişi vermiştir.
• Microsoft QDOS (Quick and Dirty OS) isimli sistemi alıp CP/M
uyumluluğu ekleyerek apar topar (ve bir sürü hata içeren) DOS
1.0 sürümü piyasaya çıkarmıştır.
© Copyright 2021 Sakarya Uygulamalı Bilimler Üniversitesi. Her hakkı saklıdır.
Bilinen İşletim Sistemleri-DOS (Disk Operating System)

• IBM bir hata yaparak DOS’un satış iznini Microsoft firmasına


vermiştir (bu hata dev bir şirketin doğuşu olmuştur).
• DOS’un Microsoft tarafından satılanı MS-DOS, IBM tarafından
satılanı PC-DOS (veya IBM-DOS) adıyla bilinir.
• DOS 3 sürümüne kadar iki DOS sürümü birbiri ile aynı iken, hızla
büyüyen Microsoft’un, IBM OS/2 işletim sistemi çalışmasından
ayrılıp rakip olarak Windows 1.0 çalışmalarını başlatması
şirketlerin arasını açmıştır.
• Bundan sonra da iki DOS sistemi altında bazı farklılıklar ortaya
çıkmaya başlamıştır. MS-DOS son kullanıcıya yönelik özellikleri
öne çıkarırken IBM-DOS ağ ve iş özelliklerini öne çıkarmıştır.
© Copyright 2021 Sakarya Uygulamalı Bilimler Üniversitesi. Her hakkı saklıdır.
Bilinen İşletim Sistemleri - FreeDOS

• Microsoft 1981-2000 yılları arasında birçok farklı DOS sürümü


geliştirmiştir. Son sürüm Windows ME içinde yer alan MS-DOS 8.0
olmuştur.
• Microsoft'un 2000’de MS-DOS'u geliştirmeyi durdurması üzerine
DOS'u yaşatmak için açık kaynaklı bir işletim sistemi olan FreeDOS
doğmuştur. (www.freedos.org)
• Amacı DOS ile %100 uyumlu olmaktır ve bu hedefe neredeyse
tümüyle ulaşılmıştır.

© Copyright 2021 Sakarya Uygulamalı Bilimler Üniversitesi. Her hakkı saklıdır.


Bilinen İşletim Sistemleri - Microsoft Windows

• 1985 yılında piyasaya sürülen Windows 1.0 aslında DOS için bir
grafiksel kullanıcı arayüzü idi.
• 1987’de 2.0 ve 1990’da 3.0 sürümleri satışa sunulan Windows’un
1992’de satışa sunulan 3.1 sürümü ile kullanım oranı iyice arttı.
• 1995 yılında 32-bit mimariye sahip (Fakat yine DOS tabanlı çalışan)
Windows 95 piyasaya çıktı.
• Ev kullanıcılarını hedefleyen 1998’de satışa sunulan Windows 98
ve 2000 yılında satışa sunulan Windows ME yine DOS tabanlı idi.

© Copyright 2021 Sakarya Uygulamalı Bilimler Üniversitesi. Her hakkı saklıdır.


Bilinen İşletim Sistemleri

Windows 1.0

Windows 2.0

© Copyright 2021 Sakarya Uygulamalı Bilimler Üniversitesi. Her hakkı saklıdır.


Bilinen İşletim Sistemleri

Windows 3.0 Windows 3.1

© Copyright 2021 Sakarya Uygulamalı Bilimler Üniversitesi. Her hakkı saklıdır.


Bilinen İşletim Sistemleri

Windows 95 Windows 98

© Copyright 2021 Sakarya Uygulamalı Bilimler Üniversitesi. Her hakkı saklıdır.


Bilinen İşletim Sistemleri

Windows ME

© Copyright 2021 Sakarya Uygulamalı Bilimler Üniversitesi. Her hakkı saklıdır.


Bilinen İşletim Sistemleri – Windows NT Ailesi

• 1993 yılında sunucu pazarını hedefleyen Windows NT • 2000 Windows 2000 NT 5.0
3.1 piyasaya sürüldü. Grafiksel arayüzü Windows • 2001 Windows XP NT 5.1
3.1’e benzeyen bu işletim sistemi çok farklı bir • 2003 Windows Server 2003 NT 5.2
altyapıya sahipti. Bu nedenle NT (New Technology) ön
eki getirildi. • 2006 Windows Vista NT 6.0
• 1994’te 3.5, 1995’te 3.51 ve 1996’da 4.0 sürümleri • 2008 Windows Server 2008 NT 6.0
satışa sunuldu. • 2009 Windows 7 NT 6.1
• 2000 yılında piyasaya sürülen Windows 2000 ve bu • 2009 Windows Server 2008 R2 NT 6.1
tarihten sonra geliştirilen tüm Windows işletim • 2012 Windows 8 NT 6.2
sistemleri NT çekirdeğine sahiptir. • 2012 Windows Server 2012 NT 6.2

© Copyright 2021 Sakarya Uygulamalı Bilimler Üniversitesi. Her hakkı saklıdır.


Bilinen İşletim Sistemleri –LINUX

• Helsinki Üniversitesi'nde bilgisayar mühendisliği öğrencisi olan


Linus Torvalds'ın 1991 yılında Intel'in yeni işlemcisi 80386'nın
korumalı kip mimarisini denemek üzere geliştirmeye başladığı Unix
tabanlı bir işletim sistemi çekirdeğidir.
• İnternette yaptığı duyuru sonucunda tüm dünyadan birçok
yazılımcının da desteği ile hızla gelişmiş ve halen aynı destek ile
gelişmekte olan açık kaynak kodlu, özgür bir yazılımdır.

© Copyright 2021 Sakarya Uygulamalı Bilimler Üniversitesi. Her hakkı saklıdır.


Özgür Yazılım Nedir?

• Özgür yazılım, 4 farklı özgürlüğü temel alır:


– Hangi amaç için olursa olsun, programı çalıştırma özgürlüğü
– Kendi ihtiyaçlarınıza uyarlamak için programın nasıl çalıştığını
öğrenme özgürlüğü (Kaynak koduna erişim bunun için bir
önkoşuldur)
– İhtiyacı olanlara yardım edebilmeniz için programın kopyalarını
dağıtma özgürlüğü
– Bütün toplumun faydalanabilmesi için programı iyileştirme ve
yaptıklarınızı halka açma özgürlüğü (Kaynak koduna erişim bunun
için bir önkoşuldur)

© Copyright 2021 Sakarya Uygulamalı Bilimler Üniversitesi. Her hakkı saklıdır.


Bilinen İşletim Sistemleri - Linux Dağıtımları

• Farklı çalışma grupları tarafından Linux çekirdeği üzerinde


geliştirilmiş olan işletim sistemlerine Linux Dağıtımları denir.
• Bilgisayara kurulmadan CD, DVD veya USB Bellek üzerinden
doğrudan çalıştırılabilen dağıtımlar da vardır.
• Linux dağıtımları daha çok sunucularda kullanılmasına rağmen
masaüstü ve dizüstü bilgisayarlarda da kullanım oranı artmaktadır.
• Gömülü sistemlerden, süper bilgisayarlara kadar birçok donanım
türünde kullanılan Linux dağıtımları da vardır.

© Copyright 2021 Sakarya Uygulamalı Bilimler Üniversitesi. Her hakkı saklıdır.


Bilinen İşletim Sistemleri - Linux Dağıtımları

• 1992 yılında Patrick Volkerding tarafından • 1993 yılında ABD’de kurulmuş Red Hat
yaratılan Slackware Linux, en eski Linux şirketinin geliştirdiği ticari Linux dağıtımıdır.
dağıtımıdır. • İyi test edilmiş, nispeten kararlı bir Linux
• Grafiksel konfigürasyon araçları ve basit dağıtımı olması nedeniyle, dünya çapındaki
arayüzler sunmaktan ziyade, sizin Linux'a sunucuların bir çoğunda tercih edilmektedir
aşina olmanızı bekleyen bir yapıya sahiptir. • Hata rapor etme ve beta programlar
• Diğer dağıtımlar geliştirmesi zor fakat kullanıcılara açıktır ve çok sayıda e-posta listesi
kullanması kolay arayüzler sunarken, bulunmaktadır.
Slackware'de her şeyi çeşitli konfigürasyon
dosyalarını düzenleyerek halletmeniz gerekir.
• Bundan dolayı Slackware kullanmayı düşünen
acemiler Linux öğrenmek için zaman
harcamaya hazır olmalıdırlar.

© Copyright 2021 Sakarya Uygulamalı Bilimler Üniversitesi. Her hakkı saklıdır.


Bilinen İşletim Sistemleri - Linux Dağıtımları

• Red Hat Linux un devamı olarak • Gaël Duval tarafından başlatılan Mandrake
adlandırılabilecek Fedora Core hiçbir kar amacı Linux projesi Connectiva Linux ile
gütmeyen bir organizasyon tarafından birleşmesinden sonra adını Mandriva
üretilmektedir. olarak değiştirmiştir.
• Her ne kadar bir zamanlar efsane olan Red Hat • Geliştiriciler, Red Hat dağıtımından yola
kadar büyük bir popülerliği yoksa da Linux çıkmış, varsayılan masaüstünü KDE'ye
dünyasının en sevilen ve en başarılı çevirmiş, kullanımı çok kolay bir kurulum
dağıtımlarından biridir. ekleyerek "Linux'un kurulumu zordur"
• Mandriva veya Suse kadar olmasa da oldukça düşüncesini bertaraf etmişlerdir.
güncel paketlere sahip Fedora onlardan daha • Alternatif bir işletim sistemi denemek
sağlam ve kararlı bir dağıtım olması ile ünlüdür. isteyen ev kullanıcıları arasında oldukça
popülerdir.

© Copyright 2021 Sakarya Uygulamalı Bilimler Üniversitesi. Her hakkı saklıdır.


Bilinen İşletim Sistemleri - Linux Dağıtımları

• Almanya'da hazırlanmakta olan bir Linux • En yaygın Linux dağıtımlarından biridir.


dağıtımıdır. • Mepis, Ubuntu, Yoper, Knoppix, Libranet,
• İsmi "Software und System Entwicklung" Linspire, Xandros ve Adamantix gibi birçok Linux
("Software and system development") dağıtımına da kaynak teşkil etmekte ve Google
sözcüklerinin baş harflerinin bir araya başta olmak üzere iyi tanınan birçok Web
gelmesiyle oluşmuştur. sitesinde de tercih edilmektedir.
• SuSE dağıtımı 2003’ten beri Novell şirketine • Farklı işletim sistemi çekirdekleriyle birlikte
aittir. i386, AMD64, PowerPC, SPARC, DEC Alpha,
ARM, MIPS, HPPA, S390, IA-64 gibi çok sayıda
donanım platformunda da çalışabilmektedir.

© Copyright 2021 Sakarya Uygulamalı Bilimler Üniversitesi. Her hakkı saklıdır.


Bilinen İşletim Sistemleri - Linux Dağıtımları

• Debian’ı temel alan Ubuntu'nun hedefi • Türkiye'de Fedora üzerinde geliştirilen Turkuaz,
ortalama bilgisayar kullanıcılarına kullanımı Gelecek ve Mandrake üzerinden geliştirilen
ve kurulumu oldukça basit, güncel ve Turkix, Armador OS 2006 gibi projelerden sonra
güvenli bir işletim sistemi sunmaktır. TUBİTAK bünyesinde Pardus isimli bir dağıtım
• Güney Afrikalı bir girişimci olan Matthew geliştirilmektedir.
Shuttleworth'ün sponsor olduğu Ubuntu, • Pardus her seviyede bilgisayar kullanıcısının
bir şirket içinde değil, bunun aksine kolayca kurup kullanabilmesi amaçlanarak
dünyanın çeşitli yerlerindeki programcılar geliştirilmektedir. Bu nedenle kurulumundan
sayesinde geliştirildi. yönetimine kadar pek çok araç ve teknoloji
• 2004 yılında ortaya çıkan Ubuntu Pardus geliştiricileri tarafından özel bir proje
aldığı %30'luk oyla, 2007 yılında masaüstü olarak geliştirilmektedir.
kullanımında en gözde Linux dağıtımı
seçilmiştir.

© Copyright 2021 Sakarya Uygulamalı Bilimler Üniversitesi. Her hakkı saklıdır.


Windows, Unix ve Linux

• UNIX akademik çevrelerde ve sunucularda, Windows ise evde ve


ofislerde masaüstünde tercih edilmektedir.
• Sunucu pazarında UNIX'in rakibi Windows Server işletim sistemidir.
• Masaüstü bilgisayarlarında Windows, diğer işletim sistemlerinden
çok daha yaygın olarak kullanılmaktadır (Çeşitli araştırmalar
Windows'un masaüstünde pazar payının %85-90 oranında
olduğunu göstermektedir).
• Linux sunucularda yaygın olarak kullanılmaktayken, evlere ve ofis
masaüstlerine de yavaş yavaş girmektedir.

© Copyright 2021 Sakarya Uygulamalı Bilimler Üniversitesi. Her hakkı saklıdır.


Diğer İşletim Sistemleri

• Anabilgisayarlar ve gömülü sistemlerin çoğu Windows ve


UNIX'le doğrudan bağlantısı olmayan pek çok değişik işletim
sistemi kullanmaktadır.
• Örneğin bazı cep telefonları kendine has işletim sistemlerine
sahipken, bazıları ise Symbian veya Windows Mobile gibi genel
amaçlı işletim sistemlerini kullanır.

© Copyright 2021 Sakarya Uygulamalı Bilimler Üniversitesi. Her hakkı saklıdır.


İşletim Sistemi Mimarisi

• Tipik bir işletim sisteminin bileşimini anlamak için, tipik bir


bilgisayar sisteminde bulunan yazılım spektrumunu göz
önünde bulunduralım.

• Application sw / Uygulama yazılımı: Makinanın kullanımına


özel görevleri gerçekleştirmek için gerekli programlar
– Örn. Veritabanı sistemleri, çizelge programları, kelime
işlemci, hesaplama sistemleri, program geliştirme
yazılımları, oyunlar
• System sw /Sistem yazılımları: Genel olarak bilgisayar sistemi
için ortak olan görevleri gerçekleştiren yazılımlar.
– İşletim sistemleri
– Faydalı yazılımlar (utility sw) : işletim sisteminin
yeteneklerini geliştiren yazılım bileşenleri. Örn. Yazılım
sıkıştırma ya da açma programları gibi
© Copyright 2021 Sakarya Uygulamalı Bilimler Üniversitesi. Her hakkı saklıdır.
İşletim Sisteminin Bileşenleri

• Shell (kabuk): Bilgisayar kullanıcısından • Günümüz GUI’lerindeki önemli bileşenlerden


gelen komutları işkeyebilmek için biri pencere yöneticisi (window manager)
kullanıcılarla etkileşmesini sağlayacak olan – Ekranda pencere (windows) denilen
etkileşim birimi alanları ayırıp, her bir pencere ile hangi
– Modern bilgisayarlarda bu GUI uygulamanın ilişkili olduğu bilgisini
(graphical user interface- grafik tutmakta.
kullanıcı arayüzü) ile – Uygulama ekranda birşey göstermek
gerçekleştirilmekte  dosya ya istediğinde pencere yöneticisine bildirir, o
daprogram gibi nesneler ekranda küçük da uygulamayla ilişkili pencerede istenen
ikonlar ile gösterilmekte ve idare şeyi görüntüler
edilmekte. Mouse ile komut verilmesi – Mouse ile ekranda bir yer işaretlendiğinde
sağlanmakta yine pencere yönetici ilgili uygulamayla
– Daha eski kabuklarda kullanıcılarla ilişkilendirir
iletişim klavyeden girilen metin
mesajları ile gerçekleşmekte

© Copyright 2021 Sakarya Uygulamalı Bilimler Üniversitesi. Her hakkı saklıdır.


İşletim Sisteminin Bileşenleri

– Aygıt sürücüsü (device driver): Makineye bağlı


• Kernel (çekirdek) : İşletim sisteminin iç kısmı – bilgisayarın çevresel aygıtların çalışmasını yürütecek yazılım
kurulumu ile ilgili en temel fonksiyonları gerçekleştiren yazılım birimleriYazıcı sürücüsü
bileşenlerini içerir
– Bellek yöneticisi (memory manager): Makinenin
– Dosya yöneticisi (file manager) – makinenin depolama ana bellek kullanımını koordine görevini yerine
imkanlarını kontrol eden birimi getirir.
• Depoda yer alan her bir dosyanın kaydını tutar • Tek görev gerçekleştirilecekse görev basittir;
(yerini, kimlerin erişimi olduğunu, vb.) ana bellekte tanımlanmış alana yerleştirilir,
• Dosyalar dizin/klasör (directory/folder) yapılarında uygulanır ve bir sonraki görevi gerçekleştirecek
hiyerarşik yapıda organize edilebilir programla yer değiştirir.
• Dosyanın hangi dizinde yer aldığı dizin yolu • Çok kullanıcılı ya da çoklu görevli ortamlarda
(directory path) ile tanımlanır  sorumluluklar yoğundur; ana bellekte çok
animals\prehistoric\dinosaurs sayıda program yer almalıdır, ve ihtiyaçlara göre
• Dosyaya erişim için dosyayı bulma için gerekli bilgi bellekte yer bulunmalı ve programların
dosya tanımlayıcısı (file descriptor) denilen ana çalışması sağlanmalıdır. Farklı aktivite ihtiyaçları
bellekte kayıtlı alandan elde edilir gelmesi ve sonlanması durumunda bellek
alanlarının boşalması ya da doluluğu takip
edilmelidir.

© Copyright 2021 Sakarya Uygulamalı Bilimler Üniversitesi. Her hakkı saklıdır.


İşletim Sisteminin Bileşenleri

• Kernel
– İş düzenleyicisi (scheduler ): Zaman paylaşımlı sistemlerde
uygulama için hangi aktivitelerin dikkate alınacağını tanımlar
– İşlemci zamanlaycısı (dispatcher): Zaman paylaşımlı sistemlerde
aktiviteler için zaman ayrımını kontrol eder.

© Copyright 2021 Sakarya Uygulamalı Bilimler Üniversitesi. Her hakkı saklıdır.


Başlatma (Booting)

• İşletim sisteminin bellekten ana belleğe transfer • Bu noktada, MIB’nin başlangıç programını bulmayı
prosedürü umduğu bilgisayarın ana belleğinin küçük bir bölümü
– MIB, MIB her açıldığında program sayacı belli özel geçici olmayan bellek hücrelerinden oluşmaktadır
tanımlanmış adres ile başlayacak şekilde tasarlanmıştır.  ROM (read-only memory /salt okunur bellek) : içeriği
– MIB, uygulanacak olan programın başlangıcını burada okunur ancak değiştirilemez
bulmayı bekler. – ROM’da yüklü program bootstrap (kendini yükleme)
– Kavramsal olarak tek ererken işletim sistemini bu yazılımdır.
noktada kaydetmek gerekliliğidir. – Bilgisayar açılınca otomatik olan uygulanan programdır
– Fakat her verimlilik hem de ekonomik nedenlerden , – Görevi MIB’in işletim sistemini bellekteki tanımlı yerden
bilgisayarın ana belleği geçici (volatile) (– bilgisayar ana bellekteki geçici alana transferini yönetmektir
kapandığında saklanan verinin kaybolması) – İşletim sistemi ana belleğe yerleştikten sonra bootstrap
teknolojilerden oluşturulmuştur. MIB’in o alana geçip komutları çalıştırmasını sağlar
– Bu nedenle ana belleğin her açılışta tekrar yüklenmesi – Bu noktada işletim sistemi kontrolü ele alır ve makinenin
gerekmektedir aktivitelerini yürütmeye başlar

© Copyright 2021 Sakarya Uygulamalı Bilimler Üniversitesi. Her hakkı saklıdır.


BIOS

• Bootstrap a ek olarak, ROM temel giriş/çıkış işlemlerini


gerçekleştirecek yazılım rutinleri içerir.
– Klavyeden bilgi almak
– Ekranda bilgileri göstermek
– Bellekten veri okumak.
• ROM’da depolanan bu rutinler işletim sistemi aktif hale
gelmeden önce bootstrap tarafından giriş /çıkış aktiviteleri
için kullanılır.
• BIOS aslında ROM’un bir kısmı üzerinde yer alan yazılımdır
ama bazen ROM’u ifade etmede de kullanılır.
© Copyright 2021 Sakarya Uygulamalı Bilimler Üniversitesi. Her hakkı saklıdır.
Makinenin Aktivitelerinin Koordinasyonu

• İşletim sisteminin uygulama yazılımları, faydalı yazılımlar ve


işletim sistemi içerisindeki birimlerin çalışmasını nasıl
kontrol ettiğine bakalım;
– Süreç – proses (process)
– Süreç yönetimi

© Copyright 2021 Sakarya Uygulamalı Bilimler Üniversitesi. Her hakkı saklıdır.


Makinenin Aktivitelerinin Koordinasyonu

• Proses kavramı
– Modern işletim sistemlerin de program ve programın uygulanma aktiviteleri
arasında ayrım vardır.
• Program  statik yönerge
• Diğeri zaman ilerledikçe özellikleri değişen dinamik aktivitedir  Proses -
Süreç (process) ( kendi veri şablonu olan ve kendi başına bütünlüğü
olan kod parçası)
– Süreçle ilişkili olarak aktivitenin şu andaki durumu = süreç durumu (process state) =
makinanın belirli bir zamandaki bellek kopyasıdır
– Tipik zaman paylaşımlı bilgisayarlar kurulumlarında süreçler bilgisayarın
kaynakları için mücadele eder
– Her sürecin ihtiyacı olan kaynakları elde edebilmesi bağımsız süreçlerin
birbirlerini engellememesi işletim sisteminin görevidir
© Copyright 2021 Sakarya Uygulamalı Bilimler Üniversitesi. Her hakkı saklıdır.
Makinenin Aktivitelerinin Koordinasyonu

• Süreç yönetimi
– Süreçlerin uygulanmasının koordinasyonu işletim sistemi
çekirdeği (kernel) içerisinde bulunan scheduler ve dispatcher
tarafından koordine edilir.
• Scheduler bilgisayar sisteminde yer alan süreçlerin kaydını tutar, yeni
süreçleri kayıt havuzuna ekler, tamamlananları havuzdan
– Tüm süreçlerin kaydı için, scheduler ana bellekte süreç tablosu (process table)
tutar. Her program çalıştırma talebinde, scheduler tabloda bir gürüş açar.
Butabloda, sürecin önceliği, hangi bellek alanının ayrıldığı, sürecin hazır ya da
beklemede olduğu bilgileri tutulur.
» Eğer süreç hazırsa ilerlemesinin devam edebileceği durumdadır
» Eğer beklemede ise, ilerleme harici bir olay ( diske erişimin tamamlanması,
klavyeden bir tuşa basılması, başka bir süreçten bir mesajın gelmesi gibi)
gerçekleşene kadar ertelenir
© Copyright 2021 Sakarya Uygulamalı Bilimler Üniversitesi. Her hakkı saklıdır.
Makinenin Aktivitelerinin Koordinasyonu

• Süreç yönetimi
• Dispatcher çekirdeğin programlanmış süreçlerinin gerçekten
uygulandığından emin olmayı sağlayan bileşenidir.
– zaman paylaşımlı sistemde bu görev zaman paylaşımlı olarak zamanı kısa
segmentlere ( zaman dilimi – time slice – 50 milisaniyeden daha az) bölüp
MIB’nin dikkatini her zaman diliminde birinin gerçekleşebildiği süreçler
arasına çekerek gerçekleştirilir.
» Bir süreçten diğerine değiştirme sürecine process switch (context
switch) denir.

© Copyright 2021 Sakarya Uygulamalı Bilimler Üniversitesi. Her hakkı saklıdır.


Makinenin Aktivitelerinin Koordinasyonu

• Süreç yönetimi
• Dispatcher
– Dispatcher ın bir zaman dilimini bir sürece atadığı her bir kerede, kesme (interrupt) adı
verilen sinyal yaratılarak dilimin sonunu belirleyen bir zamanlayıcı devre başlatılır.
– MIB, bu kesme sinyalini alınca o andaki makine döngüsünü durdurur, kaldığı yeri
kaydeder, ve uyarıyı/sinyali yaratan programı çalıştırmaya başlar  Interrupt handler –
kesme yöneticisi/kotarıcısı ana bellekte tanımlanmış bir konumda yer alır.
» Bu kesme yöneticisi dispatcher ın bir parçasıdır, ve dispatcher ın kesme sinyaline nasıl
karşılık vermesi gerektiğini tanımlar
– Kesme sinyalininin etkisiyle o andaki süre. Askıya alınır ve kontrol dispatechera transfer
edilir. Bu noktada dispatcher schedularon öncelikle süreç tablosunu güncellenemesini
bekler.
» Sonrasında dispatcher süreç tablosunda hazır durumda olan yüksek öncelikli süreci
seçer, zamanlayıcı devreyi başlatır ve seçilen sürecin kendi zaman dilimine
başlamasına izin verir

© Copyright 2021 Sakarya Uygulamalı Bilimler Üniversitesi. Her hakkı saklıdır.


Makinenin Aktivitelerinin Koordinasyonu

• Zaman paylaşımlı sistemin başarısı bir süreci durdurmak • Zaman paylaşımı süreçler arası geçişme
ve sonrasında yeniden başlatabilmektir. yükü getirmesine rağmen makinenin toplam
– Yeniden başlatabilmek için durdurulduğu zamanki verimliliğini artırmaktadır.
ortamın - süreç durumunun (process state) yeniden • Zaman paylaşımı olmasaydı her bir süreç bir
yaratılması gereklidir. sonraki süreç başlamadan önce sonuna
• Bu süreç durumu program sayacının değeri, kadar çalışması gerekecek ve bu da zaman
registerın içeriği ve ilgili bellek hücrelerini içerir kaybına yol açabilecekti.
– Zaman paylaşımlı sistemler için tasarlanmış MIB’leri
bu bilgileri MIB’nin kesme sinyaline verdiği
reaksiyonun bir parçası olarak saklayabilirler.
– Bu işlemciler aynı zamanda en son kaydedilmiş
durumu yükleyecek makine dili komutlarına da
sahiptirler
• Bu gibi özellikler dispatcher ın görevini basitleştirir

© Copyright 2021 Sakarya Uygulamalı Bilimler Üniversitesi. Her hakkı saklıdır.


Kesmeler (Interrupts)

• Zaman dilimlerini sonlandırmada kulllanılan kesme kullanımı, bilgisayarlardaki kesme sisteminin


pek çok uygulamasından sadece biridir.
• Kesmeler bilgisayarın ortamıyla beraber eylemlerininin koordinasyonunda önemli bir araçtır.
• Örnek. Mouse ile tıklamak ya da klavyeden bir tuşa basmak kesme sinyali oluşturur ve bu da
MIB nin o andaki aktivitesini kenara koyup kesmenin nedenini ele almasını sağlar
• Gelen kesmelere karşılık vermek için her kesme sinyaline öncelikler verilmiş ve böylece önemli
görevlerin daha önce ele alınması sağlanmaktadır.
• En önemli öncelikli kesme genellikle elektirk kesintisi ile ilişkilidir. Bu kesme sinyali bilgisayın
elektriğinin beklenmedik şekilde kesilmesinde oluştururlur. İlişkili kesme rutini MIB’nin elektrik
voltaj seviyesinin çalışma seviyesinden aşağıya düşmesinden milisaniylere önce yapılması
gereken işleri yapmasını yönetir

© Copyright 2021 Sakarya Uygulamalı Bilimler Üniversitesi. Her hakkı saklıdır.


Semaforlar

• Latincede ‘deniz feneri’ anlamına gelir.


• İ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.
• Semaforlar işlemler arası iletişimi sağlayarak sonsuz döngülere ve sistem kilitlenmelerine engel
olurlar.
• Semafor bir çeşit değişken türüdür.
• Bu değişken üzerinde işlem yapacak iki temel işlem tanımlanmıştır.
– Signal (P)  semaforun içeriğini 1 arttırır  signal (s)
– Wait (V)  semaforun içeriğini 1 azaltır  wait (s)
• En çok 1 değerini alan semafora ikili semafor denir.
• Kaynakların kritik bölgelerde kilitlenme olmaması için kullanılır:
Wait (s)
Kritik kaynak
Signal (s)
© Copyright 2021 Sakarya Uygulamalı Bilimler Üniversitesi. Her hakkı saklıdır.
Deadlock (Ölümcül Kilitlenme)

• Proseslerin hiçbir zaman ele geçiremeyecekleri bir birime ya da


kaynağa ihtiyaç duymaları durumundqa sürekli askıda kalmalarıdır.
• Ayrıca bir proses bir diğerinin işini bitirmesi, o da onun bitirmesini
bekleyen bir durum oluşursa yine ölümcül kilitlenme (deadlock )
oluşur.
• Bu durumda yönetici (admin) kendi yetksisi ile bazı prosesleri
sonlandırır (kill)

© Copyright 2021 Sakarya Uygulamalı Bilimler Üniversitesi. Her hakkı saklıdır.


Bellek Yönetimi

• Görevleri
– İhtiyaç duyulan belleği vermek
– Bununla ilgli bilgileri tutmak
– Kullanılmayan bellek alanını serbest bırakmak
– Görüntü/sanal bellek yönetimi mekanizması oluşturmak
– Belleğin verimli kullanılmasını sağlamak

© Copyright 2021 Sakarya Uygulamalı Bilimler Üniversitesi. Her hakkı saklıdır.


Bellek Yönetimi

• Ana belleğin düzenlenmesi


• Tekli kesintisiz (single
Statik contiguous)
• Bölümlenmiş (partitioned) gerçek
• Yer değiştirilebilir
bölümlenmiş (relocatable
partitioned)
• Sayfalı (paged)
Dinamik • İsteğe bağlı sayfalı (demand-
paged)
• Dilimli (segmented) görüntü
• Dilimli ve isteğe bağlı sayfalı
(segmented and demand
paged)

© Copyright 2021 Sakarya Uygulamalı Bilimler Üniversitesi. Her hakkı saklıdır.


Bellek Yönetimi

• Görüntü/sanal bellek
– Bellek biriminin doğrudan fiziksel adresleme yapısını kullanmak
yerine dolaylı olarak kullanmaktır
– Görüntü bellek sisteminde bellek alanı dilimlenir ve sayfalanır; bir
bellek gözüne erişmek için hem dilim hem sayfa bilgisi gerekir
– Bu yapı çok kullanıcılı sistemlere imkan vermiştir.

© Copyright 2021 Sakarya Uygulamalı Bilimler Üniversitesi. Her hakkı saklıdır.


İşletim Sisteminin Yerine Getirmesi Gereken Fonksiyonlar

1. İşleri sıraya koymalıdır


2. İşi kontrol eden dili yorumlayabilmelidir
3. Hata durumlarında ilgili işlemleri sonuçlandırmalıdır
4. Giriş/Çıkış işlemlerini sonuçlandırmalıdır
5. Kesmelerin gereğini yerine getirmelidir
6. İşlerde öncelik tanıyabilmelidir
7. Kaynakları kontrol etmelidir
8. Kullanıcıların birbirlerinin haklarına müdahalelerini önlemelidir
9. Bilgisayara birden fazla erişim sağlamalıdır
10. İyi bir ara yüzü olmalıdır
11. Bilgisayar kaynaklarının hesabını tutmalıdır.
12. Bilgileri uzun vadede saklamalıdır.
© Copyright 2021 Sakarya Uygulamalı Bilimler Üniversitesi. Her hakkı saklıdır.
Bir İşletim Sisteminde İstenilen Özellikler

1. Etkinlik: İşletim sistemi, bir işi etkin ve verimli bir şekilde yapmalıdır.
2. İşler arasındaki zaman: Bir işi bitirip diğer işi başlama süresi kısa olmalıdır.
3. Kullanılmayan MİB zamanı: Merkezi işlem birimin kullanmadığı süre kısa olmalıdır. Yani
mikroişlemciden belleğe aktarılacak veya bellekten alınacak bilginin erişim süresi kısa
olmalıdır.
4. Toplu işlemler arasındaki zaman: Toplu işlem dosyalarının işlenmesi arasındaki süre kısa
olmalıdır.
5. Cevap verme süresi: Sistemin cevap verme süresi kısa olmalıdır.
6. Az zamanda çok iş yapılmalıdır.
7. Güvenirlik: Sistem tamamen hatalardan arındırılmış olmalıdır.
8. Süreklilik: Sistem bakım yapılabilir ve dokümanı bol olmalıdır.
9. Düşük boyut: Sistem kendinden taviz vermeden küçük boyutta olmalıdır.

© Copyright 2021 Sakarya Uygulamalı Bilimler Üniversitesi. Her hakkı saklıdır.


Referanslar

• Andaç, M. 2012. Trakya Üniversitesi Bilgisayar Mühendisliği,


Bilgisayar Mühendisliğine Giriş Ders notları
(http://andacmesut.trakya.edu.tr/bmg/index.html)
• Brookshear,J.G. (2007). Computer Science: An Overview. Pearson
International Edition
• Karadeniz, Ş. (2011) Gazi Üniversitesi İşletim Sistemleri Ders Notları
http://w3.gazi.edu.tr/~sirin/kaynaklar/isl_sis.pdf
• Razbonyalı, M. “İşletim Sistemleri”. Çölkesen, R. (edt) Bilgisayar
Mühendisliğine Giriş ; Papatya Yayıncılık, İstanbul

© Copyright 2021 Sakarya Uygulamalı Bilimler Üniversitesi. Her hakkı saklıdır.


Mottomuz

© Copyright 2021 Sakarya Uygulamalı Bilimler Üniversitesi. Her hakkı saklıdır.


TEŞEKKÜRLER

You might also like