The goals of this course are to teach students the fundamental tasks of a general-purpose operating system and the main approach and algorithms which the operating system employs in order to fulfill these tasks; to allow students to get familiar with managing computer hardware and by this way to equip them with basic information which allows them to develop system programs close to computer hardware.
Prerequisite(s)
None
Corequisite(s)
None
Special Requisite(s)
Basic programming skills and (in order to follow the course resources) basic English knowledge are necessary and sufficient.
Instructor(s)
Assist. Prof. Dr. Tayfun Kaynaş
Course Assistant(s)
None
Schedule
Monday, 15:00-16:45
Thursday, 15:00-16:45
Office Hour(s)
Tuesday, 13:00-15:00 via IKU-CATS
Teaching Methods and Techniques
- Lecture
- Visual Presentation
- Implementation
Principle Sources
- Andrew S. Tanenbaum, Modern Operating Systems, 3rd ed., Pearson Education, Inc, Upper Saddle River, NJ, 2009.
Other Sources
- Abraham Silberschatz, Peter Galvin, Greg Gagne, Applied Operating System Concepts, 1st ed., John Wiley & Sons, Inc, 2000.
- J.Archer Harris, Operating Systems, Schaum’s Outline Series, McGraw-Hill, Inc, 2002.
Course Schedules
Week
Contents
Learning Methods
1. Week
Overview of an Operating System, Historical Evolution of Operating Systems
Oral and visual presentation
2. Week
Process Management : Processes
Oral presentation
3. Week
Threads
Oral presentation
4. Week
Process Synchronization
Oral presentation, practice
5. Week
Critical Region and Solutions to Critical Region Problem : Software and Hardware-based Solutions, Semaphores
Oral presentation, practice
6. Week
Job Scheduling Algorithms-I
Oral presentation, practice
7. Week
Job Scheduling Algorithms-II
Oral presentation, practice
8. Week
Deadlocks
Oral presentation, practice
9. Week
Midterm Exam
Exam
10. Week
Memory Management : Paging
Oral presentation, practice
11. Week
Memory Management : Segmentation
Oral presentation, practice
12. Week
Virtual Memory, Demand Paging
Oral presentation, practice
13. Week
Page Replacement Algorithms
Oral presentation, practice
14. Week
Hard Disc Management, Input/Output Management
Oral presentation
15. Week
Finals Week
Exam
16. Week
Finals Week
Exam
17. Week
Finals Week
Exam
Assessments
Evaluation tools
Quantity
Weight(%)
Midterm(s)
1
40
Final Exam
1
60
Program Outcomes
PO-1
Interpreting advanced theoretical and applied knowledge in Mathematics and Computer Science.
PO-2
Critiquing and evaluating data by implementing the acquired knowledge and skills in Mathematics and Computer Science.
PO-3
Recognizing, describing, and analyzing problems in Mathematics and Computer Science; producing solution proposals based on research and evidence.
PO-4
Understanding the operating logic of computer and recognizing computational-based thinking using mathematics as a discipline.
PO-5
Collaborating as a team-member, as well as individually, to produce solutions to problems in Mathematics and Computer Science.
PO-6
Communicating in a foreign language, and interpreting oral and written communicational abilities in Turkish.
PO-7
Using time effectively in inventing solutions by implementing analytical thinking.
PO-8
Understanding professional ethics and responsibilities.
PO-9
Having the ability to behave independently, to take initiative, and to be creative.
PO-10
Understanding the importance of lifelong learning and developing professional skills continuously.
PO-11
Using professional knowledge for the benefit of the society.
Learning Outcomes
LO-1
The student remembers previously learned basic knowledge about computer hardware and underlines the relationship between the hardware and the operating system.
LO-2
The student understands how an operating system handles process management, memory management, input/output management and file management tasks; he/she also comprehends the working structure of the multithreading model.
LO-3
The student notices the similarity of some administrative problems of an operating system to some real life problems; and to solve these problems he/she determines the appropiate algorithms or develops new ones.
LO-4
The student implements the algorithms encountered in the operating systems using a modern programming language.
LO-5
The student understands and gains detailed knowledge about the working principles of modern operating systems; using this knowledge he/she effectively manages computer hardware in his/her own developed system programs.
LO-6
The student acquires introductory knowledge about parallel programming.