The course focuses on processes, memory management, IO management, file systems, and inter-process communication/synchronization. The C programming language is used in laboratory work to put the knowledge gained in class into practice.
1. Introduction, OS Types, Basic Concepts, Course Scope
2. OS Components, Hardware Classes, File Systems
3. Process, Thread, System Calls, Kernel and User-level Context Switching
4. Synchronization Primitives, Producer/Consumer Pattern
5. Scheduling
6. Security, Protection
7. Midterms
8. Virtual Memory I
9. Virtual Memory II
10. Efficient Cache Management, Consistency and Coherence
11. High-Performance Locks, Fair Scheduling, Deadlocks, Livelocks
12. Dynamic Memory Management
13. Linking, Dynamic Libraries, Deployment
14. Virtual Machines, Containers, Jails, Sandboxing
Upon successful completion of this course, students will gain proficiency in the following areas:
1. Ability to explain the operation of a standard operating system,
2. Ability to use and craft userspace or kernelspace code in low-level C, ,
3. Ability to explain and use multi-process programming,
4. Ability to analyze, explain, and implement inter-process synchronization requirements,
5. Ability to effectively manage hardware resources like memory, bandwidth, processor
Lecture, Discussion, Demonstration, Case Study, Problem Solving, Cooperative Learning, Project, Brain Storming
Book: Operating System Concepts, 10th Ed. Silberschatz, Galvin, Gagne
Lecture Notes: https://burakarslan.com/inf333
Course Project: https://pintos-os.org/
| Week | Weekly Contents |
|---|---|
| 1 | Introduction, OS Types, Basic Concepts, Course Scope |
| 2 | OS Components, Hardware Classes, File Systems |
| 3 | Process, Thread, System Calls, Kernel and User-level Context Switching |
| 4 | Synchronization Primitives, Producer/Consumer Pattern |
| 5 | Scheduling |
| 6 | Security, Protection |
| 7 | Midterm Break |
| 8 | Virtual Memory I |
| 9 | Virtual Memory II |
| 10 | Efficient Cache Management, Consistency and Coherence |
| 11 | High-Performance Locks, Fair Scheduling, Deadlocks, Livelocks |
| 12 | Dynamic Memory Management |
| 13 | Linking, Dynamic Libraries, Deployment |
| 14 | Virtual Machines, Containers, Jails, Sandboxing |
| Week | Weekly Contents |
|---|---|
| 1 | Linux Fundamentals I |
| 2 | Linux Fundamentals II |
| 3 | Introduction to Pintos |
| 4 | Process, Thread |
| 5 | Context Switch |
| 6 | Mutex |
| 7 | Midterm Week |
| 8 | Pintos II |
| 9 | Producer/Consumer |
| 10 | Semaphores |
| 11 | Semaphores II |
| 12 | Mutex Lock Ordering |
| 13 | Shared Mutex |
| 14 | Deadlock |
| Activities | Number | Contribution |
|---|---|---|
| Contribution of in-term studies to overall grade | 4 | 60 |
| Contribution of final exam to overall grade | 1 | 40 |
| Total | 5 | 100 |
| Activities | Number | Contribution |
|---|---|---|
| Assignments | 0 | 0 |
| Presentation | 0 | 0 |
| Midterm Examinations (including preparation) | 1 | 15 |
| Project | 2 | 30 |
| Laboratory | 1 | 15 |
| Other Applications | 0 | 0 |
| Quiz | 0 | 0 |
| Term Paper/ Project | 0 | 0 |
| Portfolio Study | 0 | 0 |
| Reports | 0 | 0 |
| Learning Diary | 0 | 0 |
| Thesis/ Project | 0 | 0 |
| Seminar | 0 | 0 |
| Other | 0 | 0 |
| Make-up | 0 | 0 |
| Total | 4 | 60 |
| No | Program Learning Outcomes | Contribution | ||||
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | ||
| 1 | Matematik, fizik ve mühendislik bilimlerine özgü konularda yeterli bilgi birikimi; bu alanlardaki kuramsal ve uygulamalı bilgileri, mühendislik problemlerinin modellenmesi ve çözümünde kullanabilme becerisi. | X | ||||
| 2 | Karmaşık bilgisayar mühendisliği problemlerini saptama, tanımlama, formüle etme ve çözme becerisi; bu amaçla uygun analiz ve modelleme yöntemlerini seçme ve uygulama becerisi. | X | ||||
| 3 | Yazılımsal veya donanımsal karmaşık bir sistemi, süreci veya donanımı 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. | X | ||||
| 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. | X | ||||
| 5 | Analitik düşünce ile bir sistemi, sistem bileşenini ya da süreci analiz etme, modelleme, deney tasarlama ve yapma, veri toplama, çözüm algoritmaları üretebilme, uygulamaya alma ve geliştirme becerileri. | X | ||||
| 6 | Disiplin içi ve çok disiplinli takımlarda etkin biçimde çalışabilme becerisi; bireysel çalışma becerisi. | X | ||||
| 7 | Türkçe sözlü ve yazılı etkin iletişim kurma becerisi; en az iki yabancı dil bilgisi; etkin rapor yazma ve yazılı raporları anlama, yazılım ve donanım tasarımını, gerekirse teknik resim metotları kullanarak raporlayabilme, etkin sunum yapabilme becerisi. | X | ||||
| 8 | Bilgiye erişebilme ve bu amaçla kaynak araştırması yapabilme, veri tabanları ve diğer bilgi kaynaklarını kullanabilme becerisi | X | ||||
| 9 | Yaşam boyu öğrenmenin gerekliliği bilinci; kendini sürekli yenileme becerisi. | X | ||||
| 10 | Mesleki etik ilkelerine uygun davranma, mesleki sorumluluk bilinci; mühendislik uygulamalarında kullanılan standartlar hakkında bilgi. | X | ||||
| 11 | 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. | X | ||||
| Activities | Number | Period | Total Workload |
|---|---|---|---|
| Class Hours | 13 | 2 | 26 |
| Working Hours out of Class | 13 | 2 | 26 |
| Assignments | 0 | 0 | 0 |
| Presentation | 0 | 0 | 0 |
| Midterm Examinations (including preparation) | 0 | 0 | 0 |
| Project | 2 | 20 | 40 |
| Laboratory | 1 | 26 | 26 |
| Other Applications | 0 | 0 | 0 |
| Final Examinations (including preparation) | 1 | 10 | 10 |
| Quiz | 0 | 0 | 0 |
| Term Paper/ Project | 0 | 0 | 0 |
| Portfolio Study | 0 | 0 | 0 |
| Reports | 0 | 0 | 0 |
| Learning Diary | 0 | 0 | 0 |
| Thesis/ Project | 0 | 0 | 0 |
| Seminar | 0 | 0 | 0 |
| Other | 0 | 0 | 0 |
| Make-up | 0 | 0 | 0 |
| Yıl Sonu | 0 | 0 | 0 |
| Hazırlık Yıl Sonu | 0 | 0 | 0 |
| Hazırlık Bütünleme | 0 | 0 | 0 |
| Total Workload | 128 | ||
| Total Workload / 25 | 5.12 | ||
| Credits ECTS | 5 | ||