os212

Feel free to check these out, I hope you find it insightful 😁

1. Operating Systems: Crash Course Computer Science #18 🎬

📍 It feels right to put this video on the top of the list since this is the first video about Operating System that I’ve watched before becoming a CS student. This introduction video of Operating System will take you to an adventurous time travel to the past!
📍 Back in the day, executing program was done manually. Programmers wrote their codes on punch card, carried it to a room-sized computer, then handed it to computer operators to input the codes to computer. Therefore, the invention of OS came as the solution to automatically operate computer by batches.
📍 OS became intermediate between softwares and peripheral hardwares, so programmers didn’t have to write codes for every model of peripheral devices. Specifically, OS provided the device drivers.
📍 OS also made it possible for many programs to be processed at the same time on a single CPU. To accomodate multitasking, memory allocation should be organized. With Virtual Memory, all programs assumed the memory started at address 0, so programs wouldn’t be scattered all over the memory. Meanwhile, the physical location in memory was hidden and abstracted by OS. This enabled dynamic memory allocation and memory protection. Atlas was the first computer and OS to support those features.
📍 Thanks to dedicated research for inventing and developing OS, now we have that awesome OS running in our pc and mobile phone which allows us to do multitasking, thus making our life easier and happier!
Let’s dive more into it in upcoming weeks ✨

2. StackEdit: In-browser Markdown Editor

📍 This is an online markdown editor that I find it very helpful if you want to create a markdown draft before pushing it to GitHub. You can write or edit your markdown code here and it will be rendered ⚡ right away ⚡ so you can quickly check if your code meets your goal (don’t worry about losing your work because you accidentally close the page, this editor saves your last session). Of course you can use your own favorite code editor on your laptop, but the efficiency this online markdown editor provides is just amazing ✨

3. Emoji Cheat Sheet

📍 Since now we know an online markdown editor, let me add this as one of the useful links for writing markdown–yes, emoji! Thank you, ikatyang for making this list of emojis 🙌 Although it is not really necessary for this course, you can use the emoji to add a bit of awesomeness to your markdown page ✨

4. RegExr: Learn, Build, & Test RegEx

📍 This one is an online tool for testing your regular expression. You can input the regex, text, and test cases here. It also provides cheatsheet on the side bar to help you write the regex. You might need to adjust the syntax a little bit before implementing the regex you write here to your bash, especially for the flags. Nevertheless, I think this is a really nice tool to have for practicing regex ✨

5.What is PGP/GPG Encryption? In 3 Minutes Tutorial for Beginners 🎬

📍 GPG protects your messages with your friend by utilizing two keys: public key and private key. To familiarize yourself with this awesome concept, watch this very short video explaining GPG with funny illustration ✨

6. Linux Directories Explained in 100 Seconds 🎬

📍 Have you ever wondered about all of the directories in your Linux? This video explains each of those in a compact way from the name of the dir itself, the content, and the description. Be ready to know your OS better ✨

7. Virtual Memory: Page Tables 🎬

📍Part One - This video explains Page Table, which is the map from Virtual Addresses to Physical Addresses. Hopefully this explanation can be useful for you to learn more about “what, why, and how” of the page table in virtual memory ✨

8. Virtual Memory: Address Translation 🎬

📍Part Two - This video explains Address Translation by Page Table. I hope you find this explanation helpful as it gives visualization of the offset and mapping from virtual addresses to physical addresses ✨

9. Virtual Memory: Address Translation Example Walkthrough 🎬

📍Part Three - This video explains more examples of address translation. It is also a good idea to try to answer the given questions in the video before watching the explanation of the correct answer. Let’s do this walkthrough ✨

10. FIFO Algorithm for Page Replacement 🎬

📍 You may have heard FIFO: First In First Out. In operating system, FIFO is one of many algorithms for page replacement. If you haven’t really understood yet about how it works, don’t be troubled because fortunately this video explains the exact same example from our slide material ✨

11. Optimal Algorithm for Page Replacement 🎬

📍 Another algorithm for page replacement is the optimal one. Feel free to watch the walkthrough (still using our slide’s example). May this video can help you comprehend this chapter even more ✨

12. Linux processes, init, fork, exec, ps, kill, fg, bg, jobs 🎬

📍 Starting with an overview of init system that is called by kernel when we boot the machine, this video then elaborates many Linux commands for processes. Those are fork for making copy of process, exec for replacing a process with another, ps for getting information on process status, kill for terminating process, fg for starting process on foreground, bg for assigning process to background, and jobs for getting information on running job ✨

13. Synchronization Flash Card

📍 These are some terms that we often encounter in the chapter of synchronization. You might find these flashcards practical to get to know the meaning of “producer-consumer problem”, “race condition”, “entry section”, or simply the term of “synchronization” itself ✨

14. Shared Memory Systems 🎬

📍 You might be curious about what is meant by shared memory systems on one of our assignment. This video explains the role of shared memory in solving producer-consumer problem which is using buffer to allow producer producing an item while the consumer is consuming another item concurrently. Watch to learn more about this buffer: the unbounded and the bounded one ✨

15. Playlist of OS Scheduling 🎬

📍 This playlist elaborates what is meant by CPU scheduling along with the various algorithms that can be used. To maximize performance, we can keep the CPU productive by switching CPU among processes. When one process is waiting (e.g., waiting for I/O request), OS will assign the CPU for another process. Therefore, CPU never sits idle: we always utilize it for another process. To determine which process should get the CPU, we should make scheduling. Stay tune in this playlist to learn more about CPU scheduling algorithms, such as FCFS, SJF, Priority Scheduling, Round Robin Scheduling, and Multilevel Scheduling ✨


💻 with ♥️ by Feibs