Master the basics of Operating Systems, system calls, processes, CPU scheduling from scratch.
-
What is an operating system (OS)?
-
Modern OS functionalities.
-
Layered design of computing systems.
-
OS user interface.
-
What is Protection in OS?
-
What are kernel and user modes? Why are they needed?
-
What are system calls? Why are they needed?
-
What are traps?
-
What is an application programming interface (API)?
-
How APIs invoke system calls?
-
How are system calls implemented?
-
How are parameters passed to system calls?
-
Life cycle of program creation
-
Memory footprint of a program.
-
What is a process?
-
What is multiprogramming and multitasking?
-
CPU Scheduler and process scheduling.
-
What are the various states that a process goes through?
-
What is a process control block (PCB)?
-
When do processes relinquish CPU?
-
What is a context switch?
-
CPU scheduling basics and performance metrics.
-
What are CPU-bound and IO-bound processes?
-
When would CPU scheduler run?
-
What is turnaround time and waiting time?
-
FCFS scheduling.
-
Shortest job first (SJF) scheduling.
-
Nonpreemptive priority scheduling.
-
What is starvation?
-
Shortest remaining time first (SRTF) scheduling.
-
Preemptive priority scheduling.
-
Round robin (RR) scheduling.
-
Combining scheduling algorithms.
-
Linux CPU scheduling algorithm.
-
Programs with multiple processes.
-
Creating multiple processes in Linux.
-
Fork system call with illustrative examples.
-
Interprocess communication (IPC).
-
Shared memory for IPC.
-
Message passing for IPC.