Operating system is the interface between the hardware and the user; it is responsible for the management and coordination of activities and the sharing of the resources of the computer. Operating system offers a number of services to application programs and users. Applications access these services through application programming interfaces (APIs) or system calls. By invoking these interfaces, the application can request a service from the operating system, pass parameters, and receive the results of the operation. The course on Operating System has two components: theory and programming. Theory component covers the underline concepts and principles of operating system whereas programming component involves the practical implementation of theoretical concepts.
1. Students are able understand fundamental principles and approaches behind process synchronizations, deadlock avoidance, memory management etc.
2. Students are able to write a shell with complete clarity about process creation and process execution.
3. Students are able to write multi-threaded applications with synchronization primitives and ability to analyze effects of concurrency on process execution and correctness.
4. Students are able to analyze the impact of OS concepts, e.g. virtual memory, concurrency, on program execution and ability to fine-tune the program to run efficiently on a given OS.