İşletim Sistemleri ve Sistem Programlama Kitabı

İşletim Sistemleri ve Sistem Programlama Kitabı Kapak Resmi

Günümüzde Bilgisayar Bilimleri ve Bilişim Teknolojileri yaşamın her alanı için vazgeçilmez olmuştur. İnternet ortamı hemen her konuda bulanıklığa neden olacak kadar fazla bilgi paylaşımı sağlamaktadır. Bu durum işletim sistemleri gibi Bilgisayar Bilimlerinin konularında görülmektedir. İyi planlanmış, duru, çelişmeyen ve uygulamalı bir bilgilendirme olmadığı sürece üretime dönüşebilecek bir eğitim süreci sağlanamamaktadır. Bu konuda akademisyenlerimizin çalıştığı alanlarla ilgili Türkçe eserler vermesinin, ülkemiz biliminin ve geleceğinin şekillenmesini sağlayacağına inanmaktayız. Bu düşünce doğrultusunda yaptığımız çalışmamızı, lisans seviyesinde bir ders kitabı olarak ulusal bilim platformuna sunmaktayız.

Bu kitap bütün bilgisayar bilimleri için temel teşkil eden işletim sistemleri üzerine teorik bilgileri sistem programlama uygulamaları ile birlikte veren bir çalışmadır. Çok önemli bir konu olan işletim sistemleri ile ilgili yabancı dillerde yazılmış çok sayıda kitap bulunmasına rağmen, ülkemizde başvurabileceğimiz Türkçe kaynak sayısı oldukça azdır. Bu çalışma ile ülkemizin Bilgisayar Bilimleri alanındaki Türkçe kaynak ihtiyacına katkıda bulunmayı hedeflemekteyiz. Kitabımız, Bilgisayar Mühendisliği Lisans öğrencileri başta olmak üzere, Bilgisayar Bilimleri, Mühendislik Bölümleri ve iyi düzeyde C programlama dili bilip bilgisayar yazılımı üzerine uzmanlığını arttırmak isteyen her insana hitap edecek şekilde yazılmıştır. Kitap yazılırken, Çukurova Üniversitesi Bilgisayar Mühendisliği Bölümünün İşletim Sistemleri dersinin içeriği ve akışı temel alınmıştır. Kitaptan en iyi şekilde yararlanmak için, belirli bir düzeyde C programlama dili bilgisi ön şart olarak gereklidir.

Kitabın Giriş bölümünde işletim sistemlerinin temel kavramları, işletim sisteminin çalışma ortamları ve arayüzleri hakkında bilgilendirme yapılmış, Windows ve Linux işletim sistemleri için bu arayüzler görselleştirilmiştir. Bu bölümün sonraki iki kısmı ise işletim sistemlerinin gelişim tarihçesi ile mevcut işletim sistemi yapılarının analiz edilmesi üzerinedir.

Sonraki bölüm Linux sistem çağrıları ve Windows API üzerinedir. Bu bölüm sistem çağrılarını kategorize edip kullanımlarının örneklendirildiği kısımdır. İlk defa Linux ile tanışanlar için temel kabuk kullanımı ve kabuk komutları gibi bilgiler Ekler bölümünde yer almaktadır. Linux ortamında yazılım geliştirme tecrübesine sahip olmayan okuyucuların bu bölüm öncesi Ekler bölümünü okuması tavsiye olunur. Windows API kısmında ise Windows işletim sisteminde Visual Studio ortamında C dili ile API çağırma anlatılıp örneklendirilmektedir. Bu kısımda ayrıca Linux sistem çağrıları ile benzer işlevlerin Windows ortamında yapılabilmesi için gerekli API’ler tanıtılmaktadır.

Kitabın üçüncü bölümünde prosesler, bileşenleri, oluşturulmaları, askıya alınmaları, tekrar başlatılmaları ve proseslere sinyaller gibi konular anlatılmış ve örneklendirilmiştir .

Kitabın dördüncü bölümünde yer alan iplikler, bu bölümde anlatılmış, sonraki bölümlerde bol miktarda örneklendirilmiştir. Çok iplikli programlama günümüzün çok çekirdekli işlemcileri için önemli bir gereksinim olduğundan bu bölüm ve sonraki bölümler çok iplikli programlama ve sorunlarının giderilmesi üzerine anlatım ve örnekler içermektedir.

Beşinci bölüm hem prosesler hem de iplikler için iş sıralama yöntemlerinin incelendiği kısımdır. Mümkün olan en geniş içerik verilmeye çalışılmıştır. İşletim sisteminin iş sıralama algoritmasına müdahale kısıtlı veya hiç olmadığı için bu konuda örneklendirme yapılmamıştır.

Kitabın altıncı bölümü, Petri Netlerin tanıtıldığı bölümdür. Kitap içerisinde ölümcül kilitlenmenin sezilmesi için Petri Net’lerden yararlanılmış ve metodolojik bir akış verilmeye çalışılmıştır. Bu konu incelenen örgün işletim sistemleri kitaplarında yer almayan bir yaklaşımdır. Bu yaklaşım kitabın orijinalliğini arttıran, tecrübeye dayalı çözümler yerine metodolojik çözümleme sunan bir tekniktir. Petri Netler ve İşletim Sistemlerine adaptasyonu konusunda kendisinden bilgi desteği aldığımız Sayın Prof. Dr. Murat UZAM’a şükranlarımızı sunarız. Kitap içerisinde Petri Net çözümü ölümcül kilitlenme ile ilgili klasik problemler dâhil olmak üzere pek çok problemde denenmiş ve uygulamaların hepsinde başarılı sonuçlar vermiştir.

Kitabın sekizinci bölümü, prosesler ve iplikler arası olası paylaşımların ele alındığı kısımdır. Burada, çeşitli paylaşım yöntemleri anlatılmış ve örneklendirilmiştir.

Dokuzuncu bölümde klasik problemler, iplik olarak gerçeklenmiş sorunları petri net tabanlı çözümlenmiştir. Çözümlemeler, semafor kullanımıyla ölümcül kilitlenmenin giderilmesi ve bu işlem için petri netlerden yararlanılması şeklindedir. Linux ve Windows ortamında çözümlerin C kodları ile gerçeklenmesi verilmiştir.

Onuncu bölümde, işletim sisteminin ağ yönetim kısmı ile ilişkili, ağ yazılımcılığının temeli olan soket programlama anlatılmıştır. Linux ve Windows ortamında soket programlama örnekleri verilmiştir.

On birinci bölümde, bellek yönetimi, tahsisi ve işletim sisteminin bellek yönetimi incelenmiş, bölümün sonunda Linux ve Windows işletim sistemlerinin bellek yönetim birimleri kıyaslanmıştır.

On ikinci bölüm, dosya sisteminin anlatıldığı kısımdır. Dosya erişimleri, paylaşımları, yönetimleri bu bölümde anlatılmış ve örneklendirilmiştir.

Kitapımızda her konu ile ilgili bol örneklendirme yoluna gidilmiş, hem Linux hem de Windows ortamlarında aynı işlevli örnekler çözülmüştür. Bu örneklerin kaynak kodlarına http://j.mp/isspkaynakkodlar adresinden ulaşabilirsiniz.

Kitabımızla ilgili hataları ve önerilerinizi aşağıdaki iletişim formu ya da facebook sayfamız aracılığıyla bildirebilirsiniz.

Adınız

E-postanız

Görüşünüz