Operating Systems
Learning Outcomes:
- Understanding the basic components of an Operating System (OS) and their management
- Starting with C programming, focusing on general features and structure
- Grasping the concepts of processes and threads in an OS to manage multitasking
- Experimenting with C programming constructs like data types, variables, and functions
- Exploring Inter-Process Communication (IPC) and its implementation via busy waiting
- Understanding memory management in C, including strings, arrays, and pointers
- Studying advanced IPC methods and process communication over networks
- Learning system calls, low-level I/O, and process creation in C programming
- Analyzing classical IPC problems and the basics of OS scheduling algorithms
- Practicing with Unix shell and basic shell programming
- Concluding scheduling algorithms and initiating memory management topics
- Delving into dynamic memory allocation in C using standard library functions
- Understanding virtual memory, paging, and segmentation for efficient memory management
- Applying C programming to structures and linked lists for dynamic data storage
- Learning about file systems and their role in persistent storage management
- Implementing UNIX half-duplex pipes for process communication in C
- Understanding deadlocks in OS and strategies to prevent or resolve them
- Writing concurrent programs in C using threads and synchronization techniques
- Applying OS concepts in real-world Unix-based systems like Linux, MacOS, Android
- Reviewing C programming topics and implementing a circular list program
- Exploring Windows OS internals and virtualization concepts, including cloud computing
- Reviewing the course content and finalizing lab exercises
- Applying theoretical and practical knowledge in OS and C programming to solve quiz problems
- Creating a dynamic doubly-linked list in C to simulate virtual memory management in an OS
Skills for module:
C
Problem Solving
Critical Thinking
Time Management
Operating Systems
CS2850
Learning Outcomes
- Understanding the basic components of an Operating System (OS) and their management
- Starting with C programming, focusing on general features and structure
- Grasping the concepts of processes and threads in an OS to manage multitasking
- Experimenting with C programming constructs like data types, variables, and functions
- Exploring Inter-Process Communication (IPC) and its implementation via busy waiting
- Understanding memory management in C, including strings, arrays, and pointers
- Studying advanced IPC methods and process communication over networks
- Learning system calls, low-level I/O, and process creation in C programming
- Analyzing classical IPC problems and the basics of OS scheduling algorithms
- Practicing with Unix shell and basic shell programming
- Concluding scheduling algorithms and initiating memory management topics
- Delving into dynamic memory allocation in C using standard library functions
- Understanding virtual memory, paging, and segmentation for efficient memory management
- Applying C programming to structures and linked lists for dynamic data storage
- Learning about file systems and their role in persistent storage management
- Implementing UNIX half-duplex pipes for process communication in C
- Understanding deadlocks in OS and strategies to prevent or resolve them
- Writing concurrent programs in C using threads and synchronization techniques
- Applying OS concepts in real-world Unix-based systems like Linux, MacOS, Android
- Reviewing C programming topics and implementing a circular list program
- Exploring Windows OS internals and virtualization concepts, including cloud computing
- Reviewing the course content and finalizing lab exercises
- Applying theoretical and practical knowledge in OS and C programming to solve quiz problems
- Creating a dynamic doubly-linked list in C to simulate virtual memory management in an OS