|
Course Description |
|
Course Name |
: |
Operating System Design |
|
Course Code |
: |
CENG-508 |
|
Course Type |
: |
Optional |
|
Level of Course |
: |
Second Cycle |
|
Year of Study |
: |
1 |
|
Course Semester |
: |
Spring (16 Weeks) |
|
ECTS |
: |
6 |
|
Name of Lecturer(s) |
: |
Asst.Prof.Dr. MUTLU AVCI |
|
Learning Outcomes of the Course |
: |
Understands design of operating systems Learns processes and threads; develops software on Windows and Linux platform about this subject Comprehends concurrency, mutual exclusion, semaphores; develops software on Windows and Linux platform about this subject Learns CPU scheduling and develops software on Windows and Linux platform about this subject Learns address spaces, address translation and caching; develops software on Windows and Linux platform about this subject Learns page allocation and replacement; develops software on Windows and Linux platform about this subject Comprehends Kernel/User layers and Input/Output operations; develops software on Windows and Linux platform about this subject Learns file systems; develops software on Windows and Linux platform about this subject
|
|
Mode of Delivery |
: |
Face-to-Face |
|
Prerequisites and Co-Prerequisites |
: |
None |
|
Recommended Optional Programme Components |
: |
None |
|
Aim(s) of Course |
: |
The purpose of this course is to teach the design of operating systems. |
|
Course Contents |
: |
Concepts of operating systems, networking, systems programming, including multiple-program systems (processes, interprocess communication, and synchronization), memory allocation (segmentation, paging), resource allocation and scheduling, file systems, basic networking (packet switching, file control, reliability), basic databases (transaction, SQL) security, and privacy. |
|
Language of Instruction |
: |
English |
|
Work Place |
: |
Classroom |
|
|
Course Outline /Schedule (Weekly) Planned Learning Activities |
| Week | Subject | Student's Preliminary Work | Learning Activities and Teaching Methods |
|
1 |
Introduction to Operating System Design |
Reading corresponding subject of text book |
Slide presentation |
|
2 |
Services, Structures, Processes, and Threads |
Reading corresponding subject of text book |
Slide presentation and Linux environment demonstration |
|
3 |
Concurrency and Thread Dispatching |
Reading corresponding subject of text book + Homework 1 |
Slide presentation and Linux environment demonstration |
|
4 |
Synchronization: Cooperating Threads, Mutual Exclusion, Semaphores, Condition Variables, Readers/Writers |
Reading corresponding subject of text book + Homework 2 |
Slide presentation and Linux environment demonstration |
|
5 |
CPU Scheduling |
Reading corresponding subject of text book + Homework 3 |
Slide presentation and Linux environment demonstration |
|
6 |
Address Spaces, Address Translation, Caching, and TLBs |
Reading corresponding subject of text book + Homework 4 |
Slide presentation and Linux environment demonstration |
|
7 |
Page Allocation and Replacement |
Reading corresponding subject of text book + Homework 5 |
Slide presentation and Linux environment demonstration |
|
8 |
Midterm exam |
|
Classical exam |
|
9 |
Kernel/User and Input/Output |
Reading corresponding subject of text book + Homework 6 |
Slide presentation and Linux environment demonstration |
|
10 |
Hard Disks, Solid State Disks and Filesystems |
Reading corresponding subject of text book + Homework 7 |
Slide presentation and Linux environment demonstration |
|
11 |
Key-Value Store, Networking, Protocols |
Reading corresponding subject of text book + Homework 8 |
Slide presentation and Linux environment demonstration |
|
12 |
Layering, Flow Control, Reliability, TCP |
Reading corresponding subject of text book + Homework 9 |
Slide presentation and Linux environment demonstration |
|
13 |
Transactions and Transactions Scheduling |
Reading corresponding subject of text book + Homework 10 |
Slide presentation and Linux environment demonstration |
|
14 |
Fault-Tolerant Computing |
Reading corresponding subject of text book + Homework 11 |
Slide presentation and Linux environment demonstration |
|
15 |
Protection & Security: Authentication, Cryptographic Mechanisms, Buffer Overflow Attacks, DoS Attacks |
Reading corresponding subject of text book + Homework 12 |
Slide presentation and Linux environment demonstration |
|
16/17 |
Remote Procedure Call and Distributed Filesystems |
Reading corresponding subject of text book + Homework 13 |
Slide presentation and Linux environment demonstration |
|
|
|
Required Course Resources |
| Resource Type | Resource Name |
| Recommended Course Material(s) |
Operating System Concepts, A. Silberschatz, G. Gagne, P. B. Galvin, Wiley, Seventh Edition, 2005.
Operating Systems: Design and Implementation, A. S. Tanenbaum, A. S. Woodhull, Pearson Prentice Hall, Third Edition, 2006.
İşletim Sistemleri ve Sistem Programlama, Mutlu Avcı, B. Melis Özyıldırım, Onur Ülgen, Karahan Yayınları, 2. baskı, 2012.
Operating Systems: Internals and Design Principles, William Stallings, Prentice Hall, 7th Edition, 2011.
|
| |
| Required Course Material(s) | |
|
|
|
Assessment Methods and Assessment Criteria |
|
Semester/Year Assessments |
Number |
Contribution Percentage |
|
Mid-term Exams (Written, Oral, etc.) |
1 |
70 |
|
Homeworks/Projects/Others |
12 |
30 |
|
Total |
100 |
|
Rate of Semester/Year Assessments to Success |
40 |
|
|
Final Assessments
|
100 |
|
Rate of Final Assessments to Success
|
60 |
|
Total |
100 |
|
|
| Contribution of the Course to Key Learning Outcomes |
| # | Key Learning Outcome | Contribution* |
|
1 |
Reaches wide and deep knowledge through scientific research in the field of computer engineering, evaluates, implements, and comments. |
5 |
|
2 |
Describes and uses information hidden in limited or missing data in the field of computer engineering by using scientific methods and integrates it with information from various disciplines. |
4 |
|
3 |
Follows new and emerging applications of computer engineering profession, if necessary, examines and learns them |
5 |
|
4 |
Develops methods and applies innovative approaches in order to formulate and solve problems in computer engineering. |
4 |
|
5 |
Proposes new and/or original ideas and methods in the field of computer engineering in developing innovative solutions for designing systems, components or processes. |
4 |
|
6 |
Designs and implements analytical modeling and experimental research and solves the complex situations encountered in this process in the field of Computer Engineering |
5 |
|
7 |
works in multi disciplinary teams and takes a leading role and responsibility. |
0 |
|
8 |
Learns at least one foreign language at the European Language Portfolio B2 level to communicate orally and written |
0 |
|
9 |
Presents his/her research findings systematically and clearly in oral and written forms in national and international meetings. |
1 |
|
10 |
Describes social and environmental implications of engineering practice. |
0 |
|
11 |
Considers social, scientific and ethical values in collection, interpretation and announcement of data. |
5 |
|
12 |
Acquires a comprehensive knowledge about methods and tools of computer engineering and their limitations. |
4 |
| * Contribution levels are between 0 (not) and 5 (maximum). |
|
|
| Student Workload - ECTS |
| Works | Number | Time (Hour) | Total Workload (Hour) |
| Course Related Works |
|
Class Time (Exam weeks are excluded) |
15 |
4 |
60 |
|
Out of Class Study (Preliminary Work, Practice) |
13 |
3 |
39 |
| Assesment Related Works |
|
Homeworks, Projects, Others |
12 |
3 |
36 |
|
Mid-term Exams (Written, Oral, etc.) |
1 |
10 |
10 |
|
Final Exam |
1 |
12 |
12 |
|
Total Workload: | 157 |
| Total Workload / 25 (h): | 6.28 |
| ECTS Credit: | 6 |
|
|
|