Course Description
To provide a clear description of the concepts that underlie operating systems based on overview of the fundamental data structures that areprevalent in most operating systems, basic computer organization and high level languages programming. 2) To provide code examples of basic algorithms underlying operating systems, predominantly in C, with some Java, but in such a way that the student could understand the algorithms without a thorough knowledge of these languages.3) To present the Concepts using intuitive descriptions. to cover Important theoretical results, but omitting formal proofs unless they are absolutely necessary. 4) To analyze and point out to research papers with the original research conducted in these topics5) To cover all fundamental concepts and algorithms used in both commercial and open-source operating systems. Moreover, to present these concepts and algorithms in a general setting thatis not tied to one particular operating system. 6) To present a large number of examples and case studies that pertain to the most popular and the most innovative operating systems, including Linux, MicrosoftWindows, Apple Mac OS X, andSolaris, including examples of both Android and iOS, currently the twodominant mobile operating systems.
Course Objectives
1) To provide a clear description of the concepts that underlie operating systems based on overview of the fundamental data structures that are prevalent in most operating systems, basic computer organization and high level languages programming. 2) To provide code examples of basic algorithms underlying operating systems, predominantly in C, with some Java, but in such a way that the student could understand the algorithms without a thorough knowledge of these languages. 3) To present the Concepts using intuitive descriptions. to cover Important theoretical results, but omitting formal proofs unless they are absolutely necessary. 4) To analyze and point out to research papers with the original research conducted in these topics 5) To cover all fundamental concepts and algorithms used in both commercial and open-source operating systems. Moreover, to present these concepts and algorithms in a general setting that is not tied to one particular operating system. 6) To present a large number of examples and case studies that pertain to the most popular and the most innovative operating systems, including Linux, MicrosoftWindows, Apple Mac OS X, and Solaris, including examples of both Android and iOS, currently the two dominant mobile operating systems.
Key Concepts
- a clear Understanding of the concepts that underlie operating systems based on overview of the fundamental data structures that are prevalent in most operating systems, basic computer organization and high level languages programming
- Understanding through code examples of the basic algorithms underlying operating systems, predominantly in C, with some Java, but in such a way that the student could get knowledge of the algorithms without a thorough knowledge of these languages.
- Learning the Operating Systems Design Concepts using intuitive descriptions, covering Important theoretical results, but omitting formal proofs unless they are absolutely necessary
- Getting knowledge of the state of the art in research in these topics
- Understanding clearly all fundamental concepts and algorithms used in both commercial and open-source operating systems, in a general setting that is not tied to one particular operating system
- To get practical knowledge on major topics, through a large number of examples and case studies that pertain to the most popular and the most innovative operating systems, including Linux, MicrosoftWindows, Apple Mac OS X, and Solaris, including examples of both Android and iOS, currently the two dominant mobile operating systems.
- Learn Shell Scripting and Thread Programming, as well as Systems Calls too.
Learning Outcomes
- a clear Understanding of the concepts that underlie operating systems based on overview of the fundamental data structures that are prevalent in most operating systems, basic computer organization and high level languages programming
- Understanding through code examples of the basic algorithms underlying operating systems, predominantly in C, with some Java, but in such a way that the student could get knowledge of the algorithms without a thorough knowledge of these languages.
- Learning the Operating Systems Design Concepts using intuitive descriptions, covering Important theoretical results, but omitting formal proofs unless they are absolutely necessary
- Getting knowledge of the state of the art in research in these topics
- Understanding clearly all fundamental concepts and algorithms used in both commercial and open-source operating systems, in a general setting that is not tied to one particular operating system
- To get practical knowledge on major topics, through a large number of examples and case studies that pertain to the most popular and the most innovative operating systems, including Linux, MicrosoftWindows, Apple Mac OS X, and Solaris, including examples of both Android and iOS, currently the two dominant mobile operating systems.
- Understanding deeper principles in the design of operating systems through the Nachos Prototype Operating System and Promela language of Spin Model Checking for concurrency programming
- Learn Shell Scripting and Thread Programming, as well as Systems Calls too.
Recommended Textbooks
"OPERATING SYSTEM CONCEPTS", ABRAHAM SILBERSCHATZ, PETER BAER GALVIN, GREG GAGNE, TENTH EDITION, WILEY, 2018, Enhanced ePub ISBN 978-1-119-32091-3