Lisans
Mühendislik Fakültesi
Bilgisayar Mühendisliği
Anlık RSS Bilgilendirmesi İçin Tıklayınız.Düzenli bilgilendirme E-Postaları almak için listemize kaydolabilirsiniz.


İşletim Sistemleri

Ders KoduYarıyıl Ders Adı T/U/L Türü Öğrenim Dili AKTS
CSE5031 5 İşletim Sistemleri 2/0/2 Z İngilizce 5
Dersin Amacı

İşletim sistemlerinin temel işlevlerini tanımak, sistem donanımı ve kullanıcılarla etkilşimini anlamak.
UNIX’in yapısını ve oluşturduğu standartların günümüzdeki sistemlere olan etkilerini anlamak.
Süreç (process) kavramını, süreçlerarası iletişimi ve çokizli (multi-thread) programlamayı öğrenmek.
Süreçlerin zaman planlanlamasını, süreçlerarası zaman uyumu (synchronization) ve kilitlenme sorunlarını öğrenmek.
Ana bellek yönetim stratejilerini (taşıma, kesimleme, sayfalama), sanal bellek yönetimi ve tıkanma eşiği (trashing) olgusunu öğrenmek.
İkincil bellek (dosya sistemleri, mıknatıslı ortam yapısı, Giriş/çıkış birimleri) yönetimini öğrenmek.
Günümüzdeki sanallaştırma ortamlarında kullanılan temel mekanizmaları anlamak için GNU/Linux işletim sistemi ve ORACLE VirtualBox VM platformunda deneyim kazanmak.

Ön Koşullar CSE4014 Veri Yapıları ve Algoritmalar
Eş Koşullar -
Özel Koşullar Dersin kuramsal ve laboratuvar oturumları örgün düzende (sınıfta yüz-yüze) Üniversite' nin dersliklerinde ve bilgisayar laboratuvatlatında yapılacaktır.
Dersin projeleri, Bilgisayar Laboratuvarlarında kurulu sistemlerde çalışan Oracle VM VirtualBox sanallaştırma platformunda geliştirilecektir. Projeleri kişisel bilgisayarında yapmak isteyen öğrencilerin en az 16 GByte ana bellek, INTEL Core i7 ana işlem birimi, 300 GBytes disk ile donatılmış ve uygulamalar için sağlanan sanal GNU/Linux makinasını çalıştırmak üzere kurgulanmış bir sisteme gereksinimi vardır.
Öğretim Üyeleri Prof. Dr. Murat TAYLI
Asistanlar Arş. Gör. Büşra Mete
Ders Gün,Saat ve Yeri Ders (1+2) Pşb. 09.00 - 10.50
Ders (3+4) Prş. 13.00 - 14.50
Lab. (1) Salı 09.00 - 11.00
Lab. (2) Salı 11.00 - 13.00
Lab. (3) Salı 14.00 - 16.00
Lab. (4) Salı 16.00 - 18.00
Görüşme Saatleri ve Yeri Salı 10.00 - 15.00 @ AK 2A-15
Pşb. 11.00 - 12.00 @ AK 2A-15
Pşb. 15.00 - 16.00 @ AK 2A-15
Öğretim Yöntem ve Teknikleri

Derslerde işlenen kavram, yapı ve yöntemler UNIX ve GNU/Linux sistemlerinde uygulanan örnekler kullanılarak somutlaştırılmaktadır. Bu bağlamda öğrencilerin önceki dönemlerde aldıkları C programlama dili ile veri yapıları derslerinde işlenen konularda yeterli birikimi sağlamış olmaları beklenmektedir.
Ders anlatımını desteklemek için kullanılan görseller CATS ders sitesinde düzenli olarak yayımlanmaktadır. Ders notlarının yalnız yol haritası olarak kullanılması, işlemen konuların tam ve ayrıntılı anlatımıı için ders kitabı ve sağlanan ek kaynaklara başvurulması gereklidir. 

Projeler Bilgisayar Mühendisliği eğitiminin temel ve vazgeçilmez birleşenleridir. Geliştirilen gerçekçi uygulamalar öğrencilerin çözümleme, sentez ve tasarım yeteneklerini pekiştikmenin yanı sıra, projelerin endüstri standardı platformlarda, güncel araçlarla kurulması mesleki yetkinlik de kazandırmaktadır.

Proje konuları laboratuvar oturumlarında bir hafta önce dersin CATS’ sitesine yüklenmektedir. Öğrencilerden yayımlanan projeyi laboratuvar oturumlarında önce incelemeleri, tasarım ve uygulama adaımlarına başlamaları beklenmektedir.
Bu derste Laboratuvar oturumları öncelikle projenin gerçekleştirilmesi ve test edilmesine ayrılmıştır. Laboratuvarlara ayrılan zaman diliminde, giriş derslerinden farklı olarak, güdümlü öğretim ya da konu anlatımı yapılmamakta, öğrencilere projelerde yaşadıkları sorunları gidermeleri için bireysel destek verilmektedir.

Temel Kaynaklar Operating System Concepts Enhances Edition, 10th Ed., A. Silberschatz, P.B.Galvin, G. Gagne,Wiley 2018, ISBN 978-1-119-32091

The Linux Programming Interface, Michael Kerrisk, No Strack Press Inc. 2010, ISBN-13: 978-1-59327-220-3, https://man7.org/tlpi/
Diğer Kaynaklar Linux System Programming 2d ed., Robert Love,  O’Reilly 2013
http://pdf-ebooks-for-free.blogspot.com.tr/2015/01/oreilly-linux-system-programming.html 

The GNU C Library Reference Manual, http://www.gnu.org/software/libc/manual/pdf/libc.pdf

Oracle VM VirtualBox User Manual, https://www.virtualbox.org/manual/UserManual.html
Haftalık Ders Programı
Hafta Dersin İçeriği Öğretim Yöntem ve Teknikleri
1. Hafta İşletim Sistemlerinin Yapısı ve Donanım Desteği Prj-1 ORACL VM VırtualBox Sanallaştırma Platformunun Kurukumu ve Testi
2. Hafta İşletim Sisteminin Hizmetleri Prj-1 .... devam
3. Hafta Dosya Yönetim Sistemleri Prj-2 .... Dosya İşleme ve Alt Düzey Sistem G/Ç arayüzü Dizinli Dosya Yapısı
4. Hafta Alt Düzeyli G/Ç Arayüzü Prj-2 .... devam
5. Hafta Süreç Kavramı, zaman planlama Prj-2 .... devam
6. Hafta Süreçlerarası İletişim, G/Ç Yönlendirme Prj-3 Süreç Yaratma, Yönetme
7. Hafta Threads Prj-3 .... devam
8. Hafta Ara Sınav değerlendirme haftası
9. Hafta Süreçlerarası Zaman Uyumu Prj-4 Süreçlerarası İletişim, G/Ç Yönlendirme
10. Hafta Birlikte Çalışan Görev Modelleri Prj-4 .... devam
11. Hafta Depolama Sistemleri Yönetimi Prj-5 Threads Zaman Uyumu
12. Hafta Bellek Yönetimi Prj-5 ........ devam
13. Hafta Sanal Bellek Yönetimi Prj-6 Linux Veri Depolama Birimi Yönetimi
14. Hafta Sanal Bellek Yönetimi Prj-6 .... devam
15. Hafta
16. Hafta
17. Hafta
Değerlendirme Ölçütleri
Ölçüt Tipleri Adet Yüzdesi(%)
Ara sınav(lar) 1 15
Projeler 6 45
Final 1 40


ÖÇ-1İşletim sistemi mimarilerinin incelenmesi; günümüz sistemlerini etkileyen sistem ve standartların gelişimlerinin öğrenilmesi.
ÖÇ-2İşletim sistemlerini destekleyen donanımı anlamak; temel işlevlerin nasıl çalıştığını incelemek, donanım-yazılım bütünleşmesini sağlayan mekanizmaları anlamak; günümüz sanallaştırma teknolojilerini incelemek, temel gereksemelerini öğenmek.
ÖÇ-3Kullanıcı ara yüzlerini ve işlevlerini incelemek; kullanıcı yönetiminin birleşenlerini anlamak, dosya ve kılavuz düzenleriyle ilişkilerini incelemek; üst ve alt düzey POSIX giriş çıkış programlama ara yüzlerini kullanmak.
ÖÇ-4Süreç kavramını ve işletim sistemindeki yerini anlamak, Linux te uygulamasını irdelemek; süreçler arası iletişim yöntemlerini incelemek, süreç yönetimi ve zaman planı tanımlama mekanizmalarını anlamak.
ÖÇ-5İşlem birimi “thread-of-execution” kavramını anlamak; çok işlem birimli programlama sorunlarını incelemek, POSIX Pthreads ara yüzü kullanarak çok işlem birimli uygulamalar geliştirmek.
ÖÇ-6Süreçler arası zaman uyumu ve eş zamanlı işletim denetim süreçlerinin incelenmek; zaman uyumu gereken için yazılım ve donanım desteğinin incelemek, kritik bölge ve klasik zaman uyumu problemlerin irdelemek; POSIX semaforları ile üretici-tüketici uygulama modelleri programlamak.
ÖÇ-7Manyetik veri depolama birimlerinin çalışma ilkeleri ve yönetim süreçlerini anlamak; giriş-çıkış sisteminin yapı ve işlevlerini tanımak; dosya sistemlerinin görev ve birleşenlerini incelemek, mevcut bir sistemi kullanmak.
ÖÇ-8Bellek yönetim mekanizmaları ve yönetim stratejilerini anlamak; temel bellek yönetim mimarilerini incelemek, program-süreç adres uzaylarının ilişkisini anlamak; sanal belek yönetim mimarilerini incelemek, çalışan iş kümesi modelini anlamak ve çökme “trashing” ilişkisini incelemek.
Program Çıktıları
PÇ-1Matematik, fen bilimleri ve ilgili mühendislik disiplinine özgü konularda yeterli bilgi birikimi; bu alanlardaki kuramsal ve uygulamalı bilgileri, karmaşık mühendislik problemlerinde kullanabilme becerisi.
PÇ-2Karmaşık mühendislik problemlerini saptama, tanımlama, formüle etme ve çözme becerisi; bu amaçla uygun analiz ve modelleme yöntemlerini seçme ve uygulama becerisi.
PÇ-3Karmaşık bir sistemi, süreci, cihazı veya ürünü gerçekçi kısıtlar ve koşullar altında, belirli gereksinimleri karşılayacak şekilde tasarlama becerisi; bu amaçla modern tasarım yöntemlerini uygulama becerisi.
PÇ-4Mühendislik uygulamalarında karşılaşılan karmaşık problemlerin analizi ve çözümü için gerekli olan modern teknik ve araçları geliştirme, seçme ve kullanma becerisi; bilişim teknolojilerini etkin bir şekilde kullanma becerisi.
PÇ-5Karmaşık mühendislik problemlerinin veya disipline özgü araştırma konularının incelenmesi için deney tasarlama, deney yapma, veri toplama, sonuçları analiz etme veyorumlama becerisi.
PÇ-6Disiplin içi ve çok disiplinli takımlarda etkin biçimde çalışabilme becerisi; bireysel çalışma becerisi.
PÇ-7Sözlü ve yazılı etkin iletişim kurma becerisi; en az bir yabancı dil bilgisi; etkin rapor yazma ve yazılı raporları anlama, tasarım ve üretim raporları hazırlayabilme, etkin sunum yapabilme, açık ve anlaşılır talimat verme ve alma becerisi.
PÇ-8Yaşam boyu öğrenmenin gerekliliği bilinci; bilgiye erişebilme, bilim ve teknolojideki gelişmeleri izleme ve kendini sürekli yenileme becerisi.
PÇ-9Etik ilkelerine uygun davranma, mesleki ve etik sorumluluk bilinci; mühendislik uygulamalarında kullanılan standartlar hakkında bilgi.
PÇ-10Proje yönetimi, risk yönetimi ve değişiklik yönetimi gibi, iş hayatındaki uygulamalar hakkında bilgi; girişimcilik, yenilikçilik hakkında farkındalık; sürdürülebilir kalkınma hakkında bilgi.
PÇ-11Mühendislik uygulamalarının evrensel ve toplumsal boyutlarda sağlık, çevre ve güvenlik üzerindeki etkileri ve çağın mühendislik alanına yansıyan sorunları hakkında bilgi;mühendislik çözümlerinin hukuksal sonuçları konusunda farkındalık.
Alan Yeterlilikleri Matrisi
Program Çıktıları - Öğrenim Çıktıları Matrisi
--
 PÇ 1PÇ 2PÇ 3PÇ 4PÇ 5PÇ 6PÇ 7PÇ 8PÇ 9PÇ 10PÇ 11