İş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.
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 programlamadili 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üncelaraç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.
ÖÇ-3
Kullanı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.
ÖÇ-4
Sü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.
ÖÇ-6
Sü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.
ÖÇ-7
Manyetik 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.
ÖÇ-8
Bellek 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Ç-1
Matematik, 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Ç-2
Karmaşı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Ç-3
Karmaşı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Ç-4
Mü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Ç-5
Karmaşı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Ç-6
Disiplin içi ve çok disiplinli takımlarda etkin biçimde çalışabilme becerisi; bireysel çalışma becerisi.
PÇ-7
Sö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Ç-8
Yaşam boyu öğrenmenin gerekliliği bilinci; bilgiye erişebilme, bilim ve teknolojideki
gelişmeleri izleme ve kendini sürekli yenileme becerisi.
PÇ-9
Etik ilkelerine uygun davranma, mesleki ve etik sorumluluk bilinci; mühendislik uygulamalarında kullanılan standartlar hakkında bilgi.
PÇ-10
Proje 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Ç-11
Mü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.