os222

By Christopher Nathanael Wijaya

HOMELOGLINKSGITHUB


LINKS

Week 0

  1. Operating System Introduction
    Explains what is an Operating System in 5 minutes. It helps for an amatuer like me to know what is the definition and examples of Operating System.
  2. Linux commands
    Shows some basic commands in Linux for beginers. It is explained in Indonesian.

Week 1

  1. Virtual Machine Introduction
    Introduction about Virtual Machine and types of virtual machine. This is an nice to watch video with a great visual. It is good at least for me to know what is Virtual Machine.
  2. What is Hypervisor
    Explains the definition of Hypervisor in under 5 minutes. At least it helps me to understand what a hypervisor is in a simple language.
  3. What is SSH
    Introducing and visualising the definition and process of SSH.
  4. REGEX EXPRESSIONS
    Introduction about regex expressions for beginers.

Week 2

  1. Symmetric Encryption vs Asymmetric Encryption
    This article gives us the explanation about the main differences between Symmetric encryption vs Asymmetric encrytion. We can also learn which type of encryption method to use.
  2. System Security
    Introduction of a simple definition and prequisites knowledges needed for System Security. We can gain a lot of usefull information from this good article.
  3. Basic Network Attack
    We can learn a lot of things form malwares to phising in this article. This article is usefull to learn about all the basic network attacks in computer network.
  4. What is Cryptography?
    This article explains that Cryptography is the study of secure communications techniques that allow the sender and intended recipient of a message to view its content. We can learn more about Cryptography in this site.
  5. Learn C-Language
    We can learn the basic and tutorial of C-Language in this site. It’s very recommended for beginers to learn from this site.

Week 3

  1. The Linux Filesystem Explained
    A filesystem or fs controls how data is stored and retrieved. Without a file system, data placed in a storage medium would be one large body of data with no way to tell where one piece of data stops and the next begins. Let’s learn more about filesystem especially Linux on this article made by Linux itself!
  2. Understanding Linux filesystem
    The majority of modern Linux distributions default to the ext4 filesystem, just as previous Linux distributions defaulted to ext3, ext2, and � if you go back far enough � ext. This article cover almost everything on filesystems and a very good pre-knowledge for us before continuing to our next learnings.
  3. Mount and Unmount File System in Linux
    On Linux and UNIX operating systems, you can use the mount command to attach (mount) file systems and removable devices such as USB flash drives at a particular mount point in the directory tree. The unmount command detaches (unmounts) the mounted file system from the directory tree. In this tutorial, we will go over the basics of attaching and detaching various file systems using the mount and unmount commands.
  4. Unified Buffer Cache
    To increase file system performance, Digital implemented a Unified Buffer Cache (UBC) fully integrated with the file system that caches file system data and can grow or shrink upon demand. This short article gives quick explanation on what is UBC and what is the usage of UBC.
  5. Free Space Management in Operating System
    The system keeps tracks of the free disk blocks for allocating space to files when they are created. Also, to reuse the space released from deleting the files, free space management becomes crucial. The system maintains a free space list which keeps track of the disk blocks that are not allocated to some file or directory. This GeeksforGeeks article covers what free space list can be implemented as.

Week 4

  1. Logical and Physical Address in Operating System
    Logical Address is generated by CPU while a program is running. The logical address is virtual address as it does not exist physically, therefore, it is also known as Virtual Address. The hardware device called Memory-Management Unit is used for mapping logical address to its corresponding physical address.
  2. Linux Libraries Basic
    Libraries in Linux are categorized into two main libraries, Static and Shared. This article gives out explanations and tutorials simply!
  3. What is fragmentation and what are its types?
    In contiguous memory allocation whenever the procceses come into RAM, space is allocated to them. These spaces in RAM are divided either on the basis of fixed partitioning or dynamic partitioning. As the process gets loaded and removed from the memory these spaces get broken into small pieces of memory that it can’t be allocated to the coming processes. This problem is called fragmentation.
  4. What is the difference between linking and binding?
    Linking and Binding are two very similar functions. This simple answer to a stackoverflow question answers it all!
  5. Memory Management in Operating System
    Memory management in 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 you basic concepts related to Memory Management.

Week 5

  1. Virtual Memory in Operating System
    Virtual Memory is a storage allocation scheme in which secondary memory can be addressed as though it were part of main memory. GeekForGeeks sums up pretty much everything there’s to know about virtual memory! let’s take a look!
  2. Cache Memory
    Cache Memory is a special very high-speed memory. It is used to speed up and synchronizing with high-speed CPU. Let’s learn about Cache Memory on this article!
  3. Memory System Performance
    We have read everything about memory system. Let’s finish it up with learning its performance!
  4. Demand Paging
    In order to utilize memory well, OS decides which pages need to be kept in the main memory and which need to be kept in the secondary memory. This concept is called Demand Paging!
  5. Page Replacement Algorithms
    In 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. GeekforGeeks once again came to the rescue with this very concise article!
  6. Allocation of Frames
    An important aspect of operating systems, virtual memory is implemented using demand paging. Demand paging necessitates the development of a page-replacement algorithm and a frame allocation algorithm.
  7. Techniques to handle Thrashing
    Thrashing is a condition or a situation when the system is spending a major portion of its time in servicing the page faults, but the actual procssing done is very negligible. Turns out, thrashing isn’t that one thrashing we thought…

Week 6

  1. States of a Process in Operating System
    The process, from its creation to completion, passes through various states. The minimum number of states is five. The names of the states are not stadardized although the process may be in one of the following stages during execution.
  2. Process States
    Following the last article, javapoint also made an awesome article explaining every process states. Let’s skim through it to get extra grasp on process states!
  3. Threads, Processes, and Dispatching
    Stanford made a good article about Threads and Processes. Let’s take a quick read!
  4. Context Switching & Dispatcher
    This lecture discuses about concepts of process management which covers all detailed concepts of the process management, process attributes, process operations, process state diagram, context switching, and more. Let’s learn all these concepts in detail by watching this short video!
  5. Single Thread Vs. Multi Thread Perfomance
    Both single thread and multi thread have their own pros and cons. Let’s read this informative forum to learn about them.
  6. Multi-Threading Models
    Multithreading allows the execution of multiple parts of a program at the same time. These parts are known as threads and are lightweight processes available within the process. Therefore, multithread leads to maximum utilization of the CPU by multitasking.
  7. PThread Programming Tutorial
    Birrel’s paper talked about threads :in a general way. However, PThreads is a very concrete multithreading system and it is the default standard in the UNIX system. PThreads stands for POSIX threads, and POSIX means Portable Operating System Interface, which is a kind of interface that the operating system needs to support. Within POSIX, PThreads describes the threading APIs the operating system needs to support.

Week 7

  1. Process Synchronization
    This short tutorial covered the concept of Process Synchronization in an operating system. Process Synchronization was introduced to handle problems that arose while multiple process executions.
  2. Introduction to Deadlocks in Operating System
    Deadlocks are a set of blocked processes each holding a resource and waiting to acquire a resource held by another process. Let’s read more about deadlocks on this well-written article!
  3. Deadlock Prevention in Operating System
    This tutorial elaborates the deadlock prevention approach. Let’s take a quick look.
  4. Deadlock Avoidance in Operating System
    This tutorial covers deadlock avoidance in the operating system. The deadlock avoidance method is used by the operating system in order to check whether the system is in a safe state or in a unsafe state and in order to avoid the deadlocks.
  5. Classical Probelms of Synchronization
    We will find out about the various classical problems of process synchronization on this awesomely curated article. Semaphore can be used in other synchronization problems besides Mutual Exclusion.
  6. Peterson’s Algorithm in Process Synchronization
    Peterson’s Algorithm is used to synchronize two processes. It uses two variable, a bool array flag of size 2 and an int variable turn to accomplish it.
  7. Critical Selection in Synchronization
    When more than one processes access a same code segment that segment is known as critical section. Critical section contains shared variables or resources which are needed to be synchronized to maintain consistency of data variable.

Week 8

  1. Difference Between Preemptive and Non-Preemptive Scheduling in OS
    The basic difference between preemptive and non-preemptive scheduling is that in preemptive scheduling the CPU is allocated to the processes for the limited time. While in Non-preemptive scheduling, the CPU is allocated to the process till it terminates or switches to waiting state.
  2. More on Preemptive and Non-Preemptive Scheduling
    Following the last number, GeekforGeeks also made a conncise article about scheduling! Let’s take a quick read!
  3. Scheduling Policies for Operating System
    There are several criteria for invoking the best scheduling policies for a system. This site tells us about those policies.
  4. CPU Scheduling Algorithms in Operating Systems
    CPU Scheduling is a process of determining which process will own CPU for execution while another process is on hold. The main task of CPU scheduling is to make sure that whenever the CPU remains idle, the OS at least select one of the processes available in the ready queue for execution. The selection process will be carried out by the CPU scheduler. It selects one of the processes in memory that are ready for execution.
  5. Processes and Threads
    A process is an instance of program execution. This means, for example, that if you open up two browser windows then you have two processes, even though they are running the same program. Let’s take a look!
  6. Difference between Process and Threads
    As usual, GeekforGeeks makes an awesome article about Process and Threads. Let’s take a look!
  7. Threads and its types in Operating System
    Thread is a single sequence stream within a process. Threads have same properties as of the process so they are called as light weight processes. Threads are executed one after another but gives the illusion as if they are executing in parallel.