By Christopher Nathanael Wijaya
HOME —
LOG —
LINKS —
GITHUB
LINKS
Week 0
- 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.
- Linux commands
Shows some basic commands in Linux for beginers. It is explained in Indonesian.
Week 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.
- 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.
- What is SSH
Introducing and visualising the definition and process of SSH.
- REGEX EXPRESSIONS
Introduction about regex expressions for beginers.
Week 2
- 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.
- 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.
- 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.
- 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.
- 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
- 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!
- 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.
- 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.
- 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.
- 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
- 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.
- Linux Libraries Basic
Libraries in Linux are categorized into two main libraries, Static and Shared. This article gives out explanations and tutorials simply!
- 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.
- 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!
- 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
- 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!
- 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!
- Memory System Performance
We have read everything about memory system. Let’s finish it up with learning its performance!
- 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!
- 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!
- 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.
- 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
- 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.
- 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!
- Threads, Processes, and Dispatching
Stanford made a good article about Threads and Processes. Let’s take a quick read!
- 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!
- 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.
- 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.
- 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
- 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.
- 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!
- Deadlock Prevention in Operating System
This tutorial elaborates the deadlock prevention approach. Let’s take a quick look.
- 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.
- 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.
- 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.
- 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
- 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.
- 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!
- 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.
- 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.
- 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!
- Difference between Process and Threads
As usual, GeekforGeeks makes an awesome article about Process and Threads. Let’s take a look!
- 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.