OS222: Operating Systems 2022-2

By Gibrano Fabien Derenz

HOMEGITHUBLOGLINKS


LINKS

Week 01

This week has been interesting. I am introduced to new things such as Bash, sed, awk, grep, and much more. These links have been a great help for me to get started.

  1. Intermediate Bash Commands (grep, sed, awk, tar, less, gzip)
    The speaker explains in a very understandable and beginner-friendly way. Although the video is almost an hour long, it’s still a recommended source from me.

  2. Learning Awk Is Essential For Linux Users
    The speaker gives a lot of examples so that the viewer may understand the concept and usage of the awk command. The content is straightforward and suitable for beginners.

  3. Learn Bash in Y minutes
    Learn X in Y minutes is a highly recommended source for me, as it gives the reader a good overview of the material they want to learn, in this case Bash. The style of teaching is through giving direct code examples and comments to explain what the code does. It’s really good and you can also learn other things for Learn X in Y minutes. Check it out!

  4. Bash Guide for Beginners - The Linux Documentation Project
    From what I can understand, the PDF file gives a thorough explanation on Bash. This is recommended for those who really want to dig in to the world of Bash and enhance their understanding on Bash in general, as the structure of the documentation is ordered neatly.

  5. Linuxize
    The link points to a Bash if-else statement tutorial, but I really enjoyed learning some bits of Bash from this site in general. In my opinion, the color scheme of the site makes it easy and comfortable to read and understand the content, and also the site provides a lot of examples to understand the Bash syntax more.

  6. Learn Regex The Easy Way
    Learning Regex requires effort and hands-on experience. For me, this topic is interesting yet tricky, because the syntax is not so intuitive. However, this repository aims to make the learning process easier (hence the title :D). I still need to read more from this source, however. Saving this for later!


Week 02

  1. Learn C in y minutes
    Similar to last week’s Learn Bash in y minutes, this site is a great help to get started to C programming. It explains C concepts concisely and effectively.

  2. Encryption - Symmetric Encryption vs Asymmetric Encryption - Cryptography - Practical TLS
    This video gives a really good overview on the topic of encryption, specifically symmetric and assymmetric encryption. The speaker uses words that are easy to understand and animations that really support the explanation, making the video really digestable for beginners.

  3. Public and Private Keys - Signatures & Key Exchanges - Cryptography - Practical TLS
    This video is also made by the same channel from the second link of this week. Similar in nature to that video, the speaker is able to explain seemingly daunting concepts in a surprisingly fun and enjoyable way, making me really appreciate and just “wow” in the process of using public and private keys to ensure encryption and signatures, as well as the concept of using hybrid encryption to send bulk data, benefiting from the “best of both worlds”, as the speaker teaches.

  4. What’s the Difference: Computer Virus vs Malware, vs Spyware, etc?
    The speaker gives a really good overview on types of malware, explaining the different types of malware in an understandable and enjoyable way.


Week 03

  1. Linux Directories Explained in 100 Seconds
    This is a very solid video introducing the directories of Linux. The speaker teaches in a concise and enjoyable way, making the content suitable for Linux beginners.

  2. Linux File System/Structure Explained!
    Similar to the first link of this week, the speaker teaches on the topic of Linux file system. The difference is that the explanation is more thorough than the first link, benefiting the audience to enhance their knowledge on Linux file system.

  3. Files & File Systems: Crash Course Computer Science #20
    The makers of this series is really able to make learning low-level computer science concepts a fun and enjoyable (yes, I am using that word too often now :)) way. This video is no exception. With amazing visuals, the speaker shows how computers store file in the hardware level with the usage of the concept of blocks and fragmentations. This stuff is pretty cool.

  4. Explaining File Systems: NTFS, exFAT, FAT32, ext4 & More
    The speaker teaches on the differences of different file system formats used in for storing files. Great video to understand more about the file system world.

  5. Unix / Linux - File Permission / Access Modes
    This source is not about file system as the other links in this week, but it still touches the matter of files, in this case file permissions. It’s a great source to know the types of permissions available in Linux, how these permissions can differ according to the role of the logged in user, and how we can manually set permissions for file and directory access. Linux is pretty cool.


Week 04

  1. Logical vs Physical Address
    This source gives a good overview on the differences of logical and physical addresses, using a simple figure and a comparison chart to explain the concepts in a friendly way.

  2. Paging in Operating System
    This article helps me understand more about the concept of paging, used by operating systems to avoid external fragmentation, a problem that may occur in managing data. This source uses an example and figures to explain the topic.

  3. Segmented, Paged and Virtual Memory
    The speaker presents the topic in a simple yet effective way, explaining the topic of segmented, paged, and virtual memory, contrasting how data is stored in segmented and paged memory management systems.


Week 05

  1. Your Computer is Lying To You (Virtual Memory)
    This video presents the concept of virtual and physical addresses in a pretty concrete way, using a C program to demonstrate how computers deal with memory management under the hood.

  2. Demand Paging and Page Replacement Algorithms
    The source gives an in-depth explanation on demand paging and page replacement algorithms, stressing how demand paging benefits or disadvantages computer memory management, and also explaining different methods a computer may replace pages in memory.

  3. Memory: Paging
    The slide helped me in translating logical addresses to physical addresses given the contents of the logical and physical address space and the page table that maps the page to its corresponding frame.


Week 06

  1. Process vs Thread – Difference Between Them
    This source helped me in differentiating between processes and threads, and also how threads solve problems created while using processes. The end of the story is threads are the way to go.

  2. Concurrency vs. Parallelism — A brief view
    This article gives a good overview on the differences between concurrency and parallelism, using easy-to-understand analogies to simplify the topic.

  3. fork() — Create a new process
    This documentation effectively explains what the fork() command does, providing code examples and explanations to effectively explain the topic.

  4. Fork() in C Programming Language
    This source also explains the concept of forking, providing good code examples and diagrams to guide learners in learning the topic.


Week 07

This week, I learnt about synchronization and deadlocks. Pretty interesting stuff.

  1. Semaphore in OS
    This source explains the topic of semaphores with a friendly presentation, effectively helping learners and enthusiasts to understand the concepts.

  2. Process Synchronization: Critical Section Problem in OS
    This source has similar contents to the slides that explains this concept. The article is great as an introduction to synchronization, as for me this topic is pretty technical.

  3. Mutex vs Semaphore
    This source explains the differences between mutex and semaphores, clearing some misconceptions along the way.

  4. Producer Consumer Problem using Semaphores
    The producer-consumer problem is a classic problem of synchronization. Understanding the problem and the solution will help learners in grasping the benefit of using semaphores.

  5. Readers-Writers Problem
    This is another classic synchronization problem. Similar to the previous link, this source is good to strengthen one’s knowledge on synchronization.

  6. Deadlocks
    This source is similar to the contents of the slides. This is a neat note page to enhance one’s understanding on deadlocks, a synchronization problem that can be solved in several ways.

  7. Deadlock in Operating System
    This article can be helpful to grasp the deadlock concept more.


Week 08

Phew, scheduling is pretty tough. All that for the best perfomance. I’d say it’s worth it, though.

  1. Scheduling
    This source gives a good overview on scheduling. It’s basically like a cheatsheet for the concepts, not too detail but just enough to explain the different types of CPU schedling.

  2. CPU Scheduling
    This source refers to the Silberschatz slides, so this is helpful to follow along the materials in class. The website is simple but, in my opinion, effective to navigate through.

  3. FCFS(First Come First Serve) CPU Scheduling Algorithm with example | Operating System
    FCFS is one way CPUs handle scheduling. The video simply explains the concept and is a great help in understanding the concept better.

  4. L-2.4: Shortest Job First(SJF) Scheduling Algorithm with Example | Operating System
    SJF is also another way of CPU scheduling. Similar in nature to the 3rd link, the instructor is able to explain the concept in a digestable way.

  5. Round Robin Scheduling
    Another CPU scheduling method: RR. The video is short but suffice in the depth of the material.

  6. Multilevel Queue Scheduling Algorithm
    Watching this video makes me appreciate the brilliant minds behind this technology. I would also argue that the theories of these concepts are abstractions to the complexity of how CPUs do scheduling behind the scenes, in the low level parts. This stuff is pretty cool.

Week 09

  1. Mass-Storage Structure
    This source is useful as a complementary material to the slides, as the contents are similar to the slides.

  2. Overview of ‘Wear Leveling’ With SSD Controllers
    This article is useful to understand the concept of wear leveling, a problem SSDs have.

  3. Difference between Seek Time and Rotational Latency in Disk Scheduling
    Due to the similarities of seek time and rotational latency (in my opinion), this article helps in differentiating between them.

  4. Disk Scheduling Algorithms
    The source provides thorough explanations on disk scheduling algorithms, providing examples to help learners better understand the concepts.

  5. SCAN Vs C-SCAN DISK SCHEDULING
    This source provides the differences between SCAN and C-SCAN scheduling algorithms, also helpful to better understand the concepts.

  6. How Do SSDs Work?
    This article is a very comprehensive guide to SSDs.


© 2022 — Gibrano Fabien Derenz — Version: 0009–28-Nov-2022