COURSE INFORMATION PACKAGE · INF333

Operating Systems

Compulsory · French
ECTS
5
Local Credit
3
Theory + Practice + Lab
2 + 0 + 2
Course Level
Bachelor Degree
Prerequisites
INF116
Semester
6

Content

Objective

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.

Course Content

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

Course Learning Outcomes

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

Teaching and Learning Methods

Lecture, Discussion, Demonstration, Case Study, Problem Solving, Cooperative Learning, Project, Brain Storming

References

Book: Operating System Concepts, 10th Ed. Silberschatz, Galvin, Gagne
Lecture Notes: https://burakarslan.com/inf333
Course Project: https://pintos-os.org/

Weekly Contents

Theory Topics
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
Practice Topics
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

Assessment System

Contribution to Overall Grade
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
In-Term Studies
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

Relation of Proficiency

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

ECTS

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