İşletim Sistemleri ve Tarihçe Öğr. Gör İsmail DÜŞMEZ
İlk bilgisayardan
1940-1955 1.Kuşak (1) Vakum tüpleri , birbirleri ile baglanan kablolar ENIAC
1940-1955 1.Kuşak (2) 1943 yılında Pennsylvania Üniversitesinden J. P.Erkert'ın ilk işlevsel bilgisayar olan 30 ton ağırlığındaki ve saniyede 5.000 işlem yapan ENIAC [Electronic Numerical Integrator And Calculator] (Elektronik Sayısal Doğrulayıcı ve Bilgisayar)'ı yaptı. ENIAC, 30 ton ağırlığında; 9x15 metrelik bir odayı doldurmakta; hesaplama vurumları 1500 elektromekanik röleden (yolvericiden) geçip 18.000 den çok radyo lambasından akmaktaydı. ENIAC'ı çalıştırmak için 150.000 watt enerji gerekliydi. ENIAC, yalnızca 80 karaktere eş veri saklayabiliyordu. Lambalaların hepsi çalıştığında, mühendis ekibi bir problemi çözmek için 6000 kabloyu elle fişe takarak ENIAC'ı kuruyorlardı.
1955-1965 2.Kuşak (1) Vakumlu tüplerin yerini transistörler aldı. Bilgisayarların hacimleri küçüldü, maliyeti düşürüldü ve hızları yükseldi. Bu tür bilgisayarlar ilk olarak Burroughs firması tarafından Amerikan Hava Kuvvetleri için üretildi. İşte bu dönemlerde ilk işletim sistemleri ortaya çıkmaya başladı.
1955-1965 2.Kuşak (2) Programlama Dilleri: Fortran veya assembler (Kartlar). Kullanım alanları: Bilimsel hesaplamalar Veri İşleme
1965-1980 3.Kuşak (1) Entegre devrelerin kullanıldığı dönemdir Bildiğimiz anlamda ilk işletim sistemleri bu dönemde geliştirilmeye başlandı Multics (Multiplexed Information and Computing Service) 1965 Artık sistemler aynı anda birkaç problemi çözebiliyordu
1965-1980 3.Kuşak (2) IBM 360 serisi Bell Laboratuvarlarında Thompson ve Ritchie tarafından Unix Geliştirildi (1973) 1973 yılında C dili geliştirildi
1965-1980 3.Kuşak (3) Dennis Ritchie (standing) and Ken Thompson begin porting UNIX to the PDP-11 via two Teletype 33 terminals.
1980- 4. Kuşak Modern Bilgisayarlar diyebileceğimiz Bilgisayarlar ortaya çıktı. Bu bilgisayarlarda Mikrochipler kullanılıyordu. IBM 8086
Bilgisayarların geçirdiği evreleri kısaca bu gün için beş kuşak olarak ayırabiliriz. Birinci Kuşak (Vakum Tüplü) Bilgisayarlar (1946-1959) İkinci Kuşak (Transistörlü) Bilgisayarlar (1959-1964 Üçüncü Kuşak (Entegre Devreli) Bilgisayarlar (1964-1970) Dördüncü Kuşak (Mikroişlemcili) Bilgisayarlar (1970-…) Beşinci Kuşak (Yapay Zekâlı) Bilgisayarlar (1990-…)
Birinci Kuşak (Vakum Tüplü) Bilgisayarlar (1946-1959) İlk programlama dili makine dilinde yazılmaya başlandı ve bilgiler bellekte saklanıyordu. Bu kuşağın temel özellikleri şunlardır: 1. İşlemci olarak çok büyük vakum tüpleri kullanılırdı 2. Fazla enerji harcarlardı 3. Çevreye fazla ısı yayarlardı 4. Veri programlarını ana belleklerinde tutarlardı 5. Saklama aracı olarak manyetik teyp kullanılırdı 6. Programlar fazla detay gerektiren makine dilinde yazılırdı.
İkinci Kuşak (Transistörlü) Bilgisayarlar (1959-1964) İlk dönemde kullanılan Vakum Tüplerinin yerine transistörler kullanılmaya başlandı. Bununla beraber daha hızlı ve daha az elektrik harcamaktaydı. ASSEMBLY makine dili kullanılmaktaydı. Bu kuşağın temel özellikleri şunlardır: 1. İşlemci olarak vakum tüpleri kullanılırdı 2. Ortalama 10.000 transistör ile çalışırlardı 3. Az enerji kullanırlardı 4. Daha az ısı yayarlardı 5. Transistörler tablolar üzerine el ile monte edilirdi
Üçüncü Kuşak (Entegre Devreli) Bilgisayarlar (1964-1970) Transistörler bir araya getirilerek Entegre Devreler yapıldı. İlk Merkezi İşlem birimi CPU yapıldı. Bu kuşağın temel özellikleri şunlardır: 1. İşlemci olarak entegre devreler kullanılırdı 2. Düşük maliyet ile yüksek güvenirlik sağlanmaya başlandı 3. Manyetik diskler kullanılmaya başlandı 4. Program ve veriler ihtiyaç duyulduğu sürece saklanabiliyordu
Dördüncü Kuşak (Mikroişlemcili) Bilgisayarlar (1970-…) İşlem ve kontrol birimlerinin tümünün bir arada bulunduğu chipler geliştirildi. Bu kuşağın temel özellikleri şunlardır: 1. Mikroişlemcilerle daha hızlı işlemler yapılmaktadır 2. Daha fazla bilgi ve program saklanabilen disk ve CD'ler kullanılabilmektedir 3. Yapay zekâ kavramı hayata geçrilmiştir 4. Ağ sistemleri oluşturulup bilgisyarlar arasında iletişim sağlanabildi 5. Bilgisayarlar fiziksel olarak küçülerek kullanışlı ve taşınabilir hale geldi
Beşinci Kuşak (Yapay Zekâlı) Bilgisayarlar (1990-…) Yapay zeka yapma yönünde çalışmalar yapılmaktadır. Bilgisayar teknolojisinde yeni bir araştırma konusu olan yapay zekâ "kendi kendini denetleyebilen, daha akıllı ve insanlarla tam bir uyum içerisinde olabilen zeki makineler yapmak" şeklinde tarif edilebilir. Bu alanda yapılan çalışmalar henüz istenilen düzeyde değildir. Bu kuşaktaki bilgisayarlardan beklenen hedefler şunlardır: 1. Üretkenliğin düşük olduğu alanlarda, üretkenliği arttırmak amacıyla pratik metotlar geliştirmek 2. Kalkınmada ve gelişmede, uluslar arası dayanışmaya katkıda bulunmak 3. Enerji ve kaynak tasarrufunda bulunmak 4. Toplumun sorunlarına pratik çareler bularak, toplumsal huzur ve güvenin sağlanmasında katkıda bulunmak
Bilgisayarların Özellikleri 1964 1977 2003 CPU Clock 1 – 5 Mhz 1 Mhz 3 Ghz Memory <=.5 MB <= 1 MB >= 256 MB Disk <= 8 MB < 100MB >= 40 GB Network None none Many - >= 10 Mb BW Price (ave.) $2,000,000 $200,000 < $1000 Users 1 - batch 10s - timesharing 1 - PC
İşletim Sistemi Çekirdeği İşletim Sistemi Nedir? Ofis Prog. Oyunlar …. Prog. Yaz. Servisler Grafik Arabirimi/Kabuk Grafiksel Arayüz İşletim Sistemi Çekirdeği GELENEKSEL İşletim Sistemi DONANIM İŞLEMCİ G/Ç kontrolcuları
İşletim sistemi İşletim Sistemi bilgisayar kullanıcısı ile bilgisayarı oluşturan donanım arasındaki iletişimi sağlayan yönetici yazılımdır. İşletim sistemleri günümüzde bilgisayar teknolojisinin gelişmesi ile birlikte çeşitlilik kazanmıştır.
İşletim sisteminin, kolay ve hızlı kullanım, kaynak verimliliği gibi kıstasların dışında, ortamında saklanan bilgilerin, gerekse izinsiz erişimlere karşı korunmasının sağlanması gibi koruma ve güvenlikle ilgili başka işlevleri de vardır. Bu işlevlerde tanım içine katıldığı zaman işletim sistemlerini akademik olarak şu şekilde tanımlayabiliriz. Bilgisayar sistemini oluşturan donanım ve yazılım nitelikli kaynakları kullanıcılar arasında kolay, kaynakların kullanım verimliliğini en üst düzeyde tutmayı amaçlayan bir yazılım sistemidir.
Bir çok alanda uygulama yeri bulan bilgisayar işletim sistemlerine göre olduğu kadar büyüklüklerine göre de sınıflandırılmaktadır. İşletim sistemlerinin çeşitleri ve türlerine göre değişiklik gösteren sınıflara ayırmamız mümkündür.
İşletimi sistemlerinin derleyici olarak bilinen bilgisayar kaynak kodlarını çalışabilir kodlar halinde çalıştıranlarına interpreter içeren işletim sistemleri olarak bilinir. Bu tip işletim sistemlerinde yazılan program kaynak kodları işletim sisteminin çekirdeğine veya kabuk olarak bilinen dış çevresine uygun komutlar verilerek çalıştırılır. Linux / unix gibi işletim sistemleri kendi çekirdek ve kabuklarında bu türden uygulamaları çalıştırabilen işletim sistemleridir.
İşletim sistemlerini burada ikiye ayırarak sınıflandırabiliriz. Windows işletim sistemlerinde bu türden uygulamaları çalıştırabilmek için derleyici görevini üstlenen üçüncü parti yazılımlar vardır. İşletim sistemlerini burada ikiye ayırarak sınıflandırabiliriz. İlki Linux/ unix işletim sistemi ve benzerleri diğeri ise Microsoft firmasının ürettiği Windows işletim sistemidir. Ayrıca buna ek olarak diğer bir sınıflandırma türü de açık kaynak kod ve kapalı kaynak kodlara sahip işletim sistemleri olarak ta yapılabilir.
İşletim sistemi bilgisayar ve çevresindeki tüm birimleri yöneten bir yönetici konumundadır. Aygıtları yönetmek ve yönlendirmenin yanısıra sistemin güvenliğinden, kullanıcıların tanımlanmasından, dosya güvenliğinden ve işlemlerin birbirlerine karışmadan sağlıklı bir şekilde çalışmasından da sorumludur. En önemli işletim sistemleri DOS, OS/2, UNIX, Novell ve Windows denilebilir
İşletim Sistemleri (1) 1970 lerde Unixler 1984 Apple Macintosh OS 1990 Windows 3.0 1991 Linux 1995 Windows 95 …
İşletim Sistemleri (2) Linux v2.6 –yaklaşık. 5.9 milyon satır kod(128MB RAM) Win2000 - yaklaşık 35 milyon satır kod(64MB RAM) WinXP – yaklaşık 40 milyon satır kod 128MB RAM) Win2003 yaklaşık 50 milyon satır kod
UNIX ve Linux Unix Multics sin devamı İlk “C” sürümü ile 1973 (DEC PDP-11) Değişik amaçlar için değişik versiyonları var Üniversiteler için kaynak kodu serbest – BSD Posix ( 1981) standart UNIX sistem cağrılarını düzenlemekte AT&T lisanslı
Linux (1) Açık Kaynaklı – Linux.org 1991, Linus Torvalds, 80386 processor v.01,sınırlı aygıt, network desteği bulunmamakta Unix fonksiyonlarına sahip 1994, v1.0 Network kabiliyeti (Internet) Geliştirilmiş dosya yönetim sistemi Dinamik çekirdek modülleri
Windows NT/2000/XP (1) Ana dizayncısı – VAX/VMS geliştiricisiDavid Cutler 1988, v1 - Win32 API – “microkernel” 1990, v3.1- Sunucu ve Masaüstü sürümü 1996, NT 4 Win95 Grafikler Çekirdekte UNIX ten fazla lisans var
Windows NT/2000/XP (2) Windows 2000 – NT5.0 Windows XP Çok kullanıcılı (terminal servisleri ile ) Professional - masaüstü Server and Advanced Server – Sunucu Datacenter Server - 32 işlemci desteği, 64 GB RAM Windows XP Windows 2000 tabanlı Geliştirilmiş arayüz İşletim sistemleri Pzaraının 80% to 90%civarına sahip
Bilgisayar Yapısının Gösteriminde Kullanılan Model İşletim sistemi kullanıcı ile bilgisayar sistem kaynakları arasında yer alan bir yazılım katmanıdır. Bu yazılımın incelenmesi, denetimleri gerçekleştirilen donanım bileşenlerine ilişkin kimi özellik ve ayrıntıların bilinmesi gerektirir. Bu özellik ve ayrıntılar inceleneceği zaman gereksiz ayrıntılarda soyutlanmış ancak fiziksel gerçekliği yeteri kadar yansıtan bir yapısal model kullanmak, bu model üzerinde yer alan birleşenlerin yalın ve açık tanımlarını vermek sözel anlatımı kolaylaştırmak ve bu anlatımına açıklık kazandırmak açısından yararlı olacaktır.
Giriş/Çıkış birimleri Bilgisayar sistemi denildiği zaman, bilgisayarların, Ana işlem birimi Ana bellek Giriş/Çıkış birimleri Olarak adlandırılır. Bu üç temel birleşen bilgisayar sisteminin donanım yapısını oluşturan bir bütündür. Bu bütün incelendiği zaman tek bir işlem biriminin olduğu görülür. Diğer bir anlatım ile bilgisayar sisteminin tek işleyicili olduğu varsayılır.
Ana işlem biriminin kendisi incelendiğinde ise, Yazmaç/sayaç takımı Aritmetik mantık birimi Denetim birimi Olarak üç alt birleşenden oluşan bir modellemedir. Ana bellek, sözcüklerden oluşan bir dizi biçiminde düşünülmelidir.
Giriş çıkış birimleri de, Giriş/Çıkış sürücüsü Giriş/Çıkış arabirimi İkilisinin oluşturduğu bütün olarak kullanılacaktır. Ana işlem birimi, ana bellek, giriş/Çıkış birimleri bilgisayar sitem donanımını oluşturmak üzere bir yol çerçevesi içinde bütünleşecektir.
Giriş/Çıkış arabirimleri, Giriş/Çıkış sürücülerinin ile Bu bağlamda Giriş/Çıkış arabirimleri, Giriş/Çıkış sürücülerinin ile Ana işlem birimi, Ana bellek İkilisi ile bütünleşmesini sağlayan uyarlayıcı birimler olarak düşünülebilecektir.
Adres Yolu Veri Yolu Denetim Yolu Ana Bellek AİB Giriş/Çıkış Ana Birimi AİB Adres Yolu Sürücü N 1
Yolları söz konusu edilecektir. Yol, ortak işlevleri uyarınca gruplanmış im ileti hatlarına verilen addır. Buna göre Adres Veri ve Denetim Yolları söz konusu edilecektir.
Adres Yolu; ana işlem biriminin, okuma ya da yazma amacıyla erişmek istediği, ana bellek sözcüğü ya da giriş/Çıkış arabirimi yazmacını belirlemede (adreslemede) kullandığı genelde tek yönlü hatlara; veri yolu, kimliği adres yolu üzerinde bulunan bellek sözcüğü ya da arabirim yazmaç içeriklerinin buralardan ana işlem birimi yazmaçlarına ya da ana işlem birimi yazmaçlarında buralara iletildiği çift yönlü hat grubuna verilen addır.
Adres ve veri yolu Veri yolu üzerinden iletilen adres ve veri imleri bir bütün olarak anlam ifade eder. Zira adres ve veri yolunu oluşturan her hat, aynı anda, aynı adres ya da veri sözcüğünün değişik bit değerlerini taşır. Denetim yolunu oluşturan hatlar ise, okuma-yazma, ve doğrudan bellek erişim istemleri, istem alındı imleri gibi, çoğu kez zaman içersinde birbirlerinden bağımsız olarak gelişen imleri taşır. Bir bilgisayar sisteminde, ana bellekte saklanan komutlar yorumlanarak ya ana bellekte ya da giriş/Çıkış arabirim yazmaçlarında tutulan veriler üzerinde, Temel aritmetiksel ve mantıksal işlemler gerçekleştirilir.
Bunun için, işlemin türünü belirleyen komutlara ve işlemin uygulanacağı verilere erişim gereklidir. Ana işlem biriminin temel etkinliğini oluşturan ana belleğe ya da giriş/Çıkış arabirim yazmaçlarına erişim mantığı, zaman çizeneği diye adlandırılan bir çizim yoluyla gösterilir. Zaman çizenekleri, bilgisayar donanımlarınca yürütülen alt düzey işlemleri açıklamada güçlü bir gösterim aracını oluşturur.
İşin Tanımı Kullanıcılar bilgisayar sistemlerinden ilgili programlarını çalıştırarak yararlanırlar. Bir programın çalıştırılması işletim sisteminin kabuk katmanınca yorumlanan RUN, EXECUTE gibi kimi sistem komutları aracılığı ile ya da sadece bu programın kütük adı verilen derlenmiş biçiminin saklandığı şekilde çalıştırılır.
Buna göre iş’i tanımlayacak olursak; Kullanıcıların sistemden bir bütün olarak ele alınmasını istedikleri işlem takımına verilen addır. İş, program kavramını genişleterek içeren bir kavramdır. Bu bağlamda, tek bir program da yine iş olarak adlandırılır. Bütün işletim sistemleri kullanıcılarına iş tanımlama imkanları sunarlar.
Tanımlanan iş, bu özel kütüğün adı verilerek çalıştırılır. Kişisel bilgisayarlara yönelik MS_DOS işletim sisteminde iş tanımlama, bu amaç için öngörülmüş kütükler kullanarak yapılır. Kullanıcılar bir bütün olarak işletilmesini istedikleri komut ya da programlarını, türü .BAT olan özel bir kütüğün içine, istedikleri işletim sırasında yazarlar. Tanımlanan iş, bu özel kütüğün adı verilerek çalıştırılır.
Unix işletim sisteminde de MS-DOS kapsamında açıklanan benzer bir yolla iş tanımı yapılır. Kullanıcılar, yine bir bütün olarak işletilmesini istedikleri komut ya da program adlarını, metin türü bir kütüğün içine istedikleri işletim sırasında yazarlar. İşletilir(x) özelliği kazandırılan bu kütüğün adı verilerek tanımlanan iş çalıştırılır.
Gerek MS-DOS gerek UNİX işletim sistemlerinde, bir kütük içinde sıralanan komutları, giriş kütüğü adı, Seçenek numarası gibi işletim aşamasında sağlanacak parametrelerle donatmak ya da bu komutları, işlem akışı sırasında ortaya çıkan koşullara bağlı gerçekleştirmek de olanaklıdır.
Bu gerekçeye dayalı olarak kimi zaman iş tanımı ya da iş denetim dillerinden söz edilir. Örneğin: Unix işletim sisteminde bir iş tanımı yapabilmek için kodlar aşağıdaki gibi yazılır. Cd/usr/$altklv Sort<$kutukl>yenikut Cmp –s yenikut eskikut İf test $? –eq 1 Then Program<yenikut fi
usr/$altklv komut satırında kılavuz altındaki, Burada if ve fi komutları unix işletim sistemi dilinde iş denetim dili komutlarıdır.y Yzılan komut dizesine göre; usr/$altklv komut satırında kılavuz altındaki, <$kutukl komut satırında kütüğün sıralanması Yenikut komut satırında sıralı kütüğün yenikut içinde oluşturulması yenikut eskikut komut satırında yenikut ile eskikut karşılaştırılması, bu kütükler aynı değilse yenikut ile programın çalıştırılmasını gerçekleştiren komut satırlarıdır. Burada Unix kuralları gereği $ işareti ile başlayan değişken adları, işe, işletimin başlama esnasında sunulacak parametreleri göstermektedir.
Bu da şu anlama gelmektedir. Sıralanacak kütük ile bu kütüğün bulunduğu alt kılavuz adı, işletim aşamasında işe aktarılacak parametreler şeklinde yazılmıştır. Söz konusu iş çalıştırılırken iş adımlarını içeren kütük adının yanında, ilgili alt kılavuz adı ile sıralanacak kütük adı girilecektir. Burada cmp komutu, -s anahtarı ile çalıştırılarak karşılaştırma sonucu, bir alt satırda ? ile belirtilen durum değişkeni içinde oluşturulmaktadır.
İŞ TANIMLAMALA TEK İŞ VE ÇOK İŞ DÜZENİ TANIMLARI Tek iş ve çok iş düzenleri bilgisayar sistemleri üzerinde yürütülen işletim düzenleridir. Buna göre;
Tek İş Düzeni (MONOPROGRAMMING) Bir bilgisayar sisteminde, aynı anda tek bir iş işletime alınabiliyor ise kurulan işletim düzenine tek iş düzeni denir. Bu düzen içinde tüm sistem kaynakları, aynı anda tek bir iş, dolayısıyla tek bir kullanıcı tarafından tüketilir. Tek iş düzeni, genel amaçlı bilgisayar sistemlerinin kısıtlı kaynaklara sahip olduğu ilk yıllarda kullanılmış, sonradan da bilgisayar donanımlarının ucuzlamasına koşut olarak tüm kaynakların tek bir kullanıcıya adandığı kişisel bilgisayarlarda da geçerli olmuştur.
Çok İş Düzeni (MULTIPROGRAMMING) Çok iş düzeni, tek iş düzeninin yetersizliklerini aşmak üzere ortaya çıkan bir düzendir. Bir bilgisayar sisteminde, birden çok iş, aynı anda işletime alınabiliyor ise kurulan işletim düzenine çok iş düzeni denir. Bir işin işletimi sonlanmadan diğer işlerin de işletimlerinin başlatılması demektir. Birden çok işin aynı anda işletime alınabilmesi, sistem kaynaklarının bu işler arasında eşzamanlı olarak paylaştırılması demektir.
Bir bilgisayar sistemini oluşturan ana işlem birimi, ana bellek ve Giriş/Çıkış birimleri, işlem hızları yönünden ele alındıklarında farklılıklar gösterir. Bu birimler üzerinde işlem hızlarından söz edebilmek için, öncelikle bu birimlere özgü temel işlemlerin tanımı gerekir. Bilgisayar sistemini oluşturan donanım birleşenlerin temel işlemleri dendiğinde bu birimlerin bir sefer gerçekleştirebildikleri, alt adımlara bölünmeden ele alınan işlemler anlaşılır.
Ana işlem birimi üzerinde yürütülen temel işlem komut işlemi, Buna göre, Ana işlem birimi üzerinde yürütülen temel işlem komut işlemi, Ana bellek üzerinde yürütülen temel işlem sözcüğe erişim, Giriş/Çıkış birimi üzerinde yürütülen temel işlem ile ilgili sürücü düzeyinde saklanan bir birimlik bilgiye erişim işlemidir.
Ana işlem birimi ve ana bellek üzerinde yürütülen temel işlemler, hızları açısından büyük ayrım göstermezler. Komut işletimi birkaç bellek erişiminden oluşmaktadır. Giriş/Çıkış birimleri üzerinde yürütülen temel işlem hızları ise, ana işlem birimi ve ana bellek üzerinde yürütülen temel işlem hızlarına göre düşüktür. Bir disk sürücüden bir öbek([1]) lik bilginin okunması için gerekli ortalama süreyi, bir makine komutunun ortalama işletim süresiyle karşılaştırmak, bu ayrımı örneklemek için yeterlidir. [1] Öbek: Disk sürücü bir ya da birkaç dönen plakadan oluşur. Plakalar üzerinde bilgi iç içe izler biçiminde kaydedilir. İzler belirli sayıda sektöre bölünür. Giriş/Çıkış biriminde bir seferde okunup yazılabilen veri birimi, burada fiziksel disk öbeği ya da sadece öbek olarak adlandırılır.
Tek iş düzeninin uygulandığı sistemlerde ana işlem birim, program işletimini sürdürebilmek için ilgili öbeğin ana belleğe aktarılmasını beklemekten başka bir şey değildir. Başka bir ifade ile ana işlem birimi, yüz binlerce komut işletilebildiği bir süre boyunca boş durumda bekler. Ana işlem biriminin daha verimli kullanılabilmesi için, bu birimin bekler durumda kaldığı süreleri kısaltmakla olanaklıdır. Bunun yolu da birden fazla işi işletime almakla olur. Aynı anda da birden çok işin işletime alınabilmesi demek bir işin sonlanmadan diğer işlerinde işletimlerinin başlatılması demektir. Bu da çok iş düzeninin kuruması demektir.