os212

« back

Week 00

  1. Structures of Operating System
    This video explains the structure of operating systems, starting with the components that make up the functionality. This video helps us to remember about ICO lesson and integrate it with our current topic, operating systems.

Week 01

  1. 37 Important Linux Command You Should Know & 10 Linux Terminal Commands for Beginners & Linux Command Cheat Sheet
    This website provides some common Linux commands that can help those who are not familiar with Linux yet.

  2. Shell Scripting Tutorial
    This link serves scripting tutorial for learning about using the Unix shell. This website is built based on the book Shell Scripting Tutorial by Steve Parker that you can enjoy this tutorial for free but also can purchase for the PDF version.

  3. Scripting: Regex & Regex Tutorial Playlist
    The links provide a video tutorial on matching text using regex. The first link provides a brief regex tutorial, while the second link is a playlist consisting of 16 videos with each duration ranging from 5 to 7 minutes.

  4. Scripting: AWK
    AWK is a brilliant scripting language for processing text files, comma separated values, and text databases. This video provides an interesting explanation about AWK.

  5. Scripting: SED
    Sed (Stream Editor) functions to manipulate input in streams, either in the form of direct input or reading from a file. The video shows how to use sed and provides examples of its use.

Week 02

  1. Protection
    This link provides material about protection taken from Silberschatz’s book. This is quite useful for me who prefers to read material on a page rather than from a book or slides.

  2. Security
    Same as the previous link, this page also provides a summary of material taken from Silberschatz’s book. This page discusses about security and also provides other reference links for additional reading

  3. GNU Privacy Guard
    GnuPG is an application that is used to encrypt, decrypt, and digitally sign data before we exchange the data between devices. This article provides a comprehensive and easy-to-understand explanation and this page is also written in Bahasa.

  4. Encryption
    This article contains a basic explanation of encryption. Although written briefly, this article can be a good starting point before studying encryption more deeply.

  5. Scripting: Bash & Bash Cheatsheet
    Bash (AKA Bourne Again Shell) is a type of interpreter that processes shell commands. Basically, bash script contains a series of Linux commands with some logical structures and conditions to carry out certain tasks, like other programming languages. This link contains a fairly complete explanation of bash scripting. There is also a cheatsheet to help us in bash scripting.

Week 03

  1. FUSE: File Systems in User Space
    FUSE (File Systems in User Space) is one of the most important parts in the operating systems. This website explains FUSE quite comprehensively.

  2. What Is a File System
    Still discussing file systems, this website explains why there are so many of them.

  3. Managing File Permission on Linux
    One very important potential vulnerability can exist when local access is granted, that is file permission based issues resulting from a user not assigning the correct permissions to files and directories. This website gives some examples of how to manage file permissions in Linux.

WEEK 04

  1. Tar Command
    The tar command is used to convert a group of files into an archive. An archive is a single file that contains any number of individual files plus information to allow them to be restored to their original form by one or more extraction programs. This page explains some basic tar commands.

  2. What is a Makefile?
    Run and compile programs are can more efficient with an automation tool called makefile, which defines a set of tasks to be executed. This website provides information about what makefiles are and its basic examples with easy-to-understand explanations.

  3. Virtual Address Translation (Text) & Virtual Address Translation (Video)
    Memory is one of the most important host resources. Both of the reading text and the video will cover the basics on how virtual memory addresses are translated.

  4. C Languages: Pointers (Video) & C Languages Pointers: (Text)
    A pointer is a variable that stores the address of another variable. Both links contain a short but clear tutorial on a pointer in C languages.

  5. C Languages: Cheatsheet
    The cheatsheet is very useful in summarizing the syntax in C.

  6. C Programming: Exercises
    The best way to learn anything is by practice and exercise questions. This website is beneficial and can help us in C language through various practice questions provided.

  7. C Languages: Arrays and Pointers
    This link provides a complete tutorial about arrays and pointers in C.

WEEK 05

  1. Chmod and Chown & Chmod Calculator
    In Chmod and Chown tutorial, you will learn how to change file/folder permissions and owners via the command line. And the Chmod Calculator allows you to quickly generate permissions in numerical and symbolic formats so you’ll be ready to copy paste your chmod command into your terminal in seconds. These articles help me in doing my assignment: W05 Contact.

  2. [part 1] Virtual Memory & [part 2] Virtual Memory
    From the explanations above, we will learn what virtual memory is, indirection between the program’s addresses and the RAM addresses, mapping disk space into memory, and using indirection for program security and isolation.

  3. Memory Management
    Memory management is the functionality of an operating system which handles or manages primary memory and moves processes back and forth between main memory and disk during execution. This tutorial will teach us basic concepts related to memory management.

  4. Page Replacement Algorithms
    In an operating system that uses paging for memory management, a page replacement algorithm is needed to decide which page needs to be replaced when new page comes in. This link will explain the page replacement algorithms clearly.

  5. Top Command in Linux
    The top command (table of processes) displays the processor activity of our Linux box and also displays tasks managed by the kernel in real-time. This link will explain top command in Linux with examples.

WEEK 06

  1. Process in Operating Systems: What is a Process in Operating Systems & Process in Operating Systems & Process Management
    In the Operating System, a process is something that is currently under execution. The articles above provide a fairly complete explanation of what a process is.

  2. Thread in Opearting Systems: What is a Thread in Opearting Systems & Multithreading
    A thread is an execution unit that has its own program counter, a stack and a set of registers that reside in a process. The articles above provide a fairly complete explanation of what a thread is.

  3. Process vs Thread: Process vs Thread & Difference between Process and Thread
    Tread and process are two related things. Threads can’t exist outside any process. Also, each thread belongs to exactly one process. Distinguishing the two is sometimes quite tricky. But the articles above can help us to understand the difference between the two.

  4. Sleep vs Wait: Sleep vs Wait in C & Sleep vs Wait in Java
    The two links above provide an easy-to-understand explanation of the sleep and wait functions, both in terms of the C and Java programming languages.

  5. Fork and Exec in C: Fork and Exec Example & Fork and Exec & Using Fork and Exec in C
    There is zero possibility of occurring more than one program at a time in C. Only a single task can happen at a particular time, which means it doesn’t allow concurrent programs to run. It causes you to wait for the completion of one process to execute the other one. To avoid this troubleshooting problem, we may need to learn fork() and exec() that is used to overcome the waiting and to allow concurrency in our system.

WEEK 07

  1. Process Synchronization
    This link provides material about process synchronization taken from Silberschatz’s book. This is quite useful for me who prefers to read material on a page rather than from a book or slides.

  2. Mutex Lock for Linux Thread Synchronization
    After learning about process synchronization, we may have realized that it can cause problems. The most popular way of achieving thread synchronization is by using mutexes.

  3. Semaphores: Semaphores & Use Semaphores in C
    Like mutex lock, semaphores are also very useful in process synchronization and multithreading. Semaphores are used to synchronize operations between two or more processes.

  4. Mutex vs Semaphore: What’s the Difference? & Difference between Mutex and Semaphore in Operating System & Mutex vs Semaphore (1) & Mutex vs Semaphore (2)
    Semaphore and mutex are two mechanisms through which we can implement synchronization and manage process coordination. In those articles, we’ll look into these two synchronization utilities and compare various characteristics.

WEEK 08

  1. CPU Scheduling
    CPU Scheduling is a process of determining which process will own CPU for execution while another process is on hold. In this CPU scheduling tutorial, you will learn about what is CPU scheduling, types of CPU scheduling, scheduling algortihm overview, and others.

  2. Processes, Threads, & CPU Scheduling
    This slide discusses processes and threads in system operations comprehensively. This slide covers the material we have studied this week and last week.

  3. Scheduling Algorithm: Part 1 & Part 2 & Part 3
    In a system, there are a number of processes that are present in different states at a particular time. Some processes may be in the waiting state, others may be in the running state and so on. Like humans, the operating system needs to plan its activities. Therefore, it’s important to learn process scheduling.

WEEK 09

  1. Disk Scheduling
    Disk scheduling is done by operating systems to schedule I/O requests arriving for the disk. Disk scheduling is also known as I/O scheduling.

  2. Disk Scheduling Algorithm
    Disk scheduling is important. This article describes the algorithms used in disk scheduling.

  3. Disk Scheduling: FCFS & SSTF & SCAN and C-SCAN & Look and C-Look
    The links above explain the disk scheduling algorithm one by one quite completely.