LINKS
- Linux in 100 Seconds —
A YouTube video about an introduction to linux. The video provides a brief history and list of commands to help get familliar with linux.
- Protection in Operating Systems —
This video covers access matrices. It helped me understand the material in the slides.
- Operating System Security —
This video covers authentication, authorization, and the four levels of security measures. It shows how these concepts relate to one another.
- Security Problems and Security Threads —
This video covers authentication, authorization, and the four levels of security measures. It shows how these concepts relate to one another.
- Filesystem in Userspace —
This article discusses Filesystem in Userspace. It helped me understand its history and applications, as there are lots of sources used in the article.
- Linux Crash Course - Formatting & Mounting Storage Volumes —
This is a youtube video about formatting and mounting storage volumes. This was helpful because it helped me get more familliar with linux.
- the Linux File System explained in 1,233 seconds // Linux for Hackers // EP 2 —
This is a youtube video about the linux file system. It helped me understand where things are.
- Memory Management Using Paging —
This video explains memory management in operating systems. It helped me understand paging.
- Shared Objects In Linux - The Basics —
This video explains how to manage library modules. It helped me understand how shared libraries work.
- Makefiles Make Your Life Easier —
This video explains the importance of Makefiles. Now, I can effectively use them.
- But, what is Virtual Memory? —
This video explains virtual memory. The graphics really helped me understand the concepts.
- Learn C memory addresses in 7 minutes —
This video is about memory addresses in C. It was very insightful because I dont know a lot about C.
- OS57 - Thrashing | Working Set —
This video is about thrashing and working sets. The explanations are very clear and concise.’
- Process Scheduling —
From this video I learned that multiprogramming and time-sharing are key objectives in process scheduling, allowing multiple processes to execute efficiently and users to interact with programs in real-time. A process scheduler is crucial as it manages which processes get CPU time, optimizing for both performance and user experience. Scheduling queues, like the job queue (holding all processes in the system) and the ready queue (holding processes ready for execution), help prioritize tasks to avoid bottlenecks. Understanding these elements is essential because they enable the operating system to maximize CPU utilization and ensure a responsive, fair user experience, especially in systems handling multiple tasks or users simultaneously.
- Process Management (Processes and Threads) —
In this video, I learned that processes are the active instances of programs, each with its own memory space, and are crucial for multitasking on an operating system. Threads, on the other hand, are smaller units within processes that share the same memory but execute tasks independently, allowing for more efficient processing within a single application. Understanding the difference between processes and threads is essential because it highlights how operating systems manage resources and execute tasks more efficiently, enhancing performance in both single and multi-user environments. This knowledge is fundamental for optimizing applications and ensuring they can run multiple tasks smoothly and effectively.
- Memory Management —
In this video, I discovered that it’s the process through which an operating system efficiently allocates memory space to applications while keeping track of each active program’s memory usage. This involves techniques like paging, segmentation, and virtual memory, which help prevent conflicts and ensure that the system doesn’t run out of memory. Memory management is critical because it optimizes the use of available memory, allowing multiple applications to run simultaneously without crashing or slowing down the system. This is essential for overall system stability and performance, especially in multitasking environments.
- Explaining File Systems: NTFS, exFAT, FAT32, ext4 & More —
This video explained that file systems like NTFS, FAT32, exFAT, ext4, and APFS are structures used to organize and manage data on storage drives. Each file system has unique features: NTFS is commonly used on Windows due to its support for large files and advanced security, while FAT32 is simpler and compatible with many devices, although it has limitations on file size. exFAT offers compatibility with both Windows and macOS without those size limits, making it ideal for flash drives. ext4 is popular in Linux systems for its stability and efficiency, while APFS is optimized for Apple devices. Understanding these file systems is essential for choosing the right format based on device compatibility, file size requirements, and performance, especially when working across different platforms.
- The Critical-Section Problem —
The video explains the critical-section problem in concurrent programming, where multiple processes access shared resources. It emphasizes the need for synchronization to prevent race conditions and ensure data consistency. This understanding is good for building reliable multi-threaded applications.
- Nonblocking communication —
The document explains blocking send and receive operations in MPI (Message Passing Interface), where processes wait until a message is fully sent or received before continuing. This ensures data is transferred correctly between processes in parallel computing. Understanding these operations is crucial for managing process synchronization and communication effectively in distributed systems.
- Message Passing Systems —
The video explains how processes in an operating system communicate by sending messages, either waiting for confirmation (synchronous) or continuing without it (asynchronous). It covers the basics of blocking and non-blocking communication, as well as different ways messages are stored temporarily, like in fixed or unlimited buffers. This is important because understanding message passing and buffering helps design systems that can handle tasks efficiently and prevent communication issues in multi-process environments.
- Processes, Threads, Deadlock, Semaphores, and More —
The article explains the basics of processes and threads, which are ways a computer runs multiple tasks, as well as deadlock, where tasks get stuck waiting on each other, and semaphores, tools that help manage task access to resources. It shows how deadlocks can slow down or freeze a system if not managed properly. Understanding these concepts is important because they help in designing programs that run smoothly without getting stuck or overloading resources.
- Preemptive and Non-Preemptive Scheduling —
The article was helpful because it explains the difference between preemptive and non-preemptive scheduling. I can understand the different CPU scheduling methods. It explains the ideas with examples, making it easier to learn how to apply them in process management.
- Operating System - Process Scheduling —
This article was helpful because it explains various process scheduling algorithms with examples. It breaks down topics like priority and round-robin scheduling, making them more approachable. It also has a list of advantages and disadvantages for each algorithm which helped understand the benefits and limitations of each algorithm.
- Processes and Threads —
This article compares processes and threads, highlighting their differences in terms of memory management and execution. It talks about context switching and inter-thread communication which segues into parallelism.
- Real Time Operating System (RTOS) —
This article provides an explanation of Real-Time Operating Systems (RTOS), focusing on how they differ from general-purpose operating systems. It covers concepts, like task prioritization and deadline management, which emphasize RTOS’s punctual execution.
- Storage Structure in Operating Systems —
This article discusses primary and secondary storage, tertiary storage, the storage hierarhcy, memory management, caching, and I/O operations. This article was important because it helped me to undertand storage in operating systems.
- BIOS —
This page extensively covers the Basic Input/Output System. I learned about its history, user interface, extensions, operation, os services, and configuration. This is a great source because I can always refer to it whenever I need to know about the BIOS.
*Static and Dynamic Loader in Operating System —
From this article, I learned what a loader is and its types. This significantly boosted my learned thanks to its table comparing the differences between static and dynamic loaders
- systemd —
From this page, I leared about the history, design, adoption, and implementations of systemd. This is a valuable source because of how much information it covers on the topic.