Useful Links for Operating Systems Course
Week 01: Overview, Virtualization & Scripting
Week 02: Security, Protection, Privacy, & C-language
- slide containing materials provided by C. BinKadal. Introduced with types of threats, viruses, security problemsand defenses.
- assignment week 02 containing assignments and reading materials. Using gnupg (for encryption), this offers a practical approach to system protection.
- Operating System Concepts 10th Edition, chapter 16, 17
- Learn C-language A beginner friendly website to learn C-language. The platform provides numerous real-world code examples and problems, helping learners apply theoretical knowledge to practical scenarios.
- CS50’s Introduction to Cybersecurity This video explains general CS terminology, malware threats, and layers of defense. You can learn how to secure your accounts, data, systems and software.
Week 03: File System & FUSE
- slide containing materials provided by C. BinKadal. Gained an understanding of the hierarchical structure of file systems and the purpose of mounting.
- assignment week 03 containing assignments and reading materials. handling a tarball file (downloading, decrypting, extracting, and checking the contents of the file)
- Operating System Concepts 10th Edition, chapter 13, 14, 15
- FUSE Understand the concept of FUSE in 5 minutes. Provide comprehensible real life examples of how we can mount to manipulate file systems.
- The Linux Kernel Documentation on FUSE This comprehensive guide explains the workings of FUSE, its design, and how it allows users to create their own file systems without altering the kernel.
Week 04: Addressing, Shared Lib, & Pointer
- slide containing materials provided by C. BinKadal. In Linux, shared libraries are collections of precompiled functions that can be used by multiple programs simultaneously. They are loaded into memory only once and shared by all running programs, which reduces the overall memory footprint.
- assignment week 04 containing assignments and reading materials. handling a tarball file (downloading, decrypting, extracting, and checking the contents of the file)
- Operating System Concepts 10th Edition, chapter 9
- Memory Addressing in Operating Systems This article covers memory addressing in operating systems, including logical and physical addressing.
- Shared Libraries in Linux Explains shared libraries in Linux, dynamic linking, and loading.
- Pointers in C A comprehensive guide to pointers in C programming, with examples.
- Understand Pointers in 8 minutes This video shows you what a pointer is, as it applies to low level memory access.
Week 05: Virtual Memory
- slide containing materials provided by C. BinKadal.Algorithms like FIFO, Optimal, and LRU are essential for managing memory efficiently, especially in systems with limited resources.
- assignment week 05 containing assignments and reading materials. I find this weeks low memory test interesting.
- Operating System Concepts 10th Edition, chapter 10
- Virtual Memory This article explains the concept of virtual memory, detailing how it separates logical memory (what programs see) from physical memory (the actual RAM)
- Demand Paging This article covers how demand paging works, explaining concepts like page tables and page faults.
- Page Replacement Algorithms This article dives into various page replacement algorithms, including First-In-First-Out (FIFO), Least Recently Used (LRU), and the Optimal algorithm.
Week 06: Concurrency: Processes & Threads
- slide containing materials provided by C. BinKadal.
- assignment week 06 containing assignments and reading materials. One interesting fact is that multicore programming allows multiple threads to run simultaneously on different cores, significantly enhancing performance and efficiency in modern operating systems.
- Operating System Concepts 10th Edition, chapter 3, 4
- Threads and Concurrency The page succinctly explains threads and concurrency, offering key concepts and examples that clarify their significance in operating systems.
- Processes and Threads The page provides a comprehensive overview of process and thread management in Java, highlighting key concepts and practical examples that enhance understanding of concurrency and its importance in developing efficient multi-threaded applications.
Week 07: Synchronization & Deadlock
Week 08: Scheduling + W06/W07