OS222: Operating Systems 2022-2

By Muhammad Nabiel Andityo

HOMELINKSTIPSPUBLIC KEYLOGTARBALLGITHUB


LINKS

WEEK-00

  1. Operating System Tutorial
    An Operating System (OS) is an interface between a computer user and computer hardware. An operating system is a software which performs all the basic tasks like file management, memory management, process management, handling input and output, and controlling peripheral devices such as disk drives and printers.

  2. Operating system - Wikipedia
    An operating system (OS) is a type of system software that controls how computer hardware and software resources are used and offers basic services to other software applications.

  3. Operating System Concepts, 10th Edition
    This slide is a good introduction for understanding OS. With this slide I learn more about the OS and its environment as well as the hardware

  4. What defines an Operating System?
    The operating system is a layer of software that comes preinstalled on computers and is responsible for giving user programs a better, simpler, cleaner model of the computer and for handling all the resources already described.

  5. Operating Systems: Crash Course Computer Science #18
    By the beginning of the 1950s, computers had become so quick that manually loading programs using punch cards was frequently quicker than actually running them. The operating system (or OS), which is only a program with special rights that enables it to run and manage other programs, provided the solution.

WEEK-01

  1. 10 Linux Terminal Commands for Beginners
    There are several Linux commands that are recommended for students to understand. In addition to these 10 commands, there are several commands that Linux has, totaling 50. We don’t have to memorize them, only 10 commands we mush understand.

  2. Regular Expressions - Linux Tutorial 10
    Some of the commonly used commands with Regular expressions are tr, sed, vi and grep. Listed below are some of the basic Regex. Symbol Descriptions
    .	| replaces any character
    ^	| matches start of string
    $	| matches end of string
    *	| matches up zero or more times the preceding character
    \	| Represent special characters
    ()	| Groups regular expressions
    ?	| Matches up exactly one character
    
  3. Basic vi Commands
    The most well-known and traditional text editor for Linux is the VI editor. The full-screen UNIX vi editor has two modes of operation: Insert mode, which inserts entered text into the file, and Command mode, which executes commands that cause action to be taken on the file.

  4. How to write a bash script
    This tutorial show me how to write a bash script. Linux and macOS users can interact with the operating system using Bash, a Unix command line interface. Bash scripts make it easier to combine commands into a program. In Bash scripts, all commands that are executed from the terminal also function.

WEEK-02

  1. Operating System Concepts: Security
    In this slide, I learn about security threats and attacks; the fundamentals of encryption, authentication, and hashing; the uses of cryptography in computing; and the various countermeasures to security attacks

  2. Operating System Concepts: Protection
    By reading this slide, I understand more about the goals and principles of protection in a modern computer system, how protection domains combined with an access matrix are used to specify the resources a process may access, capability and language-based protection systems, and Describe how protection mechanisms can mitigate system attacks

  3. Cyber Security Introduction by Eli the Computer Guy
    By watching this video, I learn more about Point of Cyber Security is to Prevent Loss of Data, Prevent Down Time, Prevent Systems from Being Used Nefariously, and Stay Compliant with Laws/ Regulations. And second thing I learn from this video is Don’t Do Harm.

  4. Employee Security Policy by Eli the Computer Guy
    This video teach me about Employee Security Policy things. Employee Bonding and Buy there are several things I learn in this segment, that are Relationships are worth more than products, People telegraph their intentions, fire them before they become a problem, Seek to understand employee problems and then find where we can yield, Managers are employees too, and Build a network of influencers and get their buy-in

  5. The Beginner’s Guide To Online Privacy
    This website is very useful for beginners to online privacy. After reading this, I learn about The Pyramid of Privacy where can teach us to protect our own data from bottom to the top. From OS to Script and cookies. In this part, I learn about risk and solution too.

WEEK-03

  1. Operating System Concepts: File-System Interface
    In this slide, I learn about the function of file systems; the interfaces to file systems; file-system design tradeoffs, including access methods, file sharing, file locking, and directory structures ; and file-system protection

  2. Operating System Concepts: File System Implementation
    By reading this slide, I understand more about the details of implementing local file systems and directory structures, block allocation and free-block algorithms and trade-offs, file system efficiency and performance issues, recovery from file system failures, and the WAFL file system as a concrete example

  3. Operating System Concepts: File System Internals
    After reading and learning this slide, I learn more about delve into the details of file systems and their implementation, explore booting and file sharing, remote file systems, using NFS as an example.

  4. File Systems in Operating System: Structure, Attributes, Types
    The term “file” refers to a grouping of linked data that is stored on secondary or non-volatile media, such as magnetic disks, optical disks, and tapes. I/O support is offered for a range of storage device types. When a user signs off, the files they have stored on a disk or another type of storage remain there. A File Structure must have a predetermined format in order for an operating system to recognize it. The capacity of the operating system to distinguish between various file kinds, such as text files, binary files, and source files, is referred to as file type.

  5. Learning the Linux File System
    In the first Unix system, the operating system (/) and user home directories (/usr) were stored on separate disks. The numerous /usr/something folders were created as a result of the need to relocate some files to other disks as the operating system expanded. The user home directories were transferred from /usr to /home once they could afford a third drive.

  6. How to encrypt and decrypt files with GPG?

    To encrypt a file with GPG:
     gpg --armor --output output.asc --encrypt --recipient <recipient-userid> <file>
    To decrypt a file with GPG:
     gpg --output file.txt --decrypt output.asc
    To encrypt a file with GPG symmetric key:
     gpg --armor --output output.asc symmetric file.txt
    To decrypt a file with GPG symmetric key:
     gpg --output file.txt -d output.asc
    

WEEK-04

  1. Operating System Concepts: Main Memory
    In this slide, I learn to provide a detailed description of various ways of organizing memory hardware; To discuss various memory-management techniques,; To provide a detailed description of the Intel Pentium, which supports both pure segmentation and segmentation with paging. This slide also taught me about Contiguous Memory Allocation, Paging, Structure of the Page Table, and Swapping.

  2. What is Makefile for C program compilation and How to create Makefile?
    A Makefile is a tool for organizing or streamlining compilation-related code. Makefile is a collection of commands (similar to terminal commands) that may be used to create and delete object files. We can construct many targets to compile and remove object, binary files in a single make file. Using Makefile, we can compile our project (software) as many times as we want.

  3. C library function - printf()
    A cstring is sent to stdout by the C function printf (print formatted). Format specifiers (starting with % in the cstring) may be present in the given cstring. Return Value: The total number of characters that were written to the standard output is returned if the function is successfully invoked. A negative number is returned if there is an error. c-string is the string that was supplied to the function as an argument. If there are any format specifiers in the c-string, then there may be more arguments after it.
    int printf (const char* c-string, ...);

  4. Memory Management
    The Linux memory management subsystem is in charge of overseeing the system’s memory. This covers the implementation of demand paging and virtual memory, memory allocation for both kernel internal structures and user space programs, mapping of files into processes address space, and many other things.

WEEK-05

  1. Operating System Concepts: Virtual Memory
    In this slide, I learn to define virtual memory and describe its benefits; illustrate how pages are loaded into memory using demand paging; apply the FIFO, optimal, and LRU page-replacement algorithms; describe the working set of a process, and explain how it is related to program locality; describe how Linux, Windows 10, Solaris manage virtual memory; and design a virtual memory manager simulation in the C programming language.

  2. 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 the main memory. Program-generated addresses are automatically translated into the matching machine addresses, allowing programs to distinguish between addresses used by the memory system to identify physical storage sites and addresses used by programs to refer to memory.

  3. What is virtual memory? – Gary explains
    In other words the physical representation of memory and virtual memory is equivalent to how inventory is shipped to a warehouse and memory is the amount of space the warehouse can store of that shipment. Virtual memory is a shipment being processed to go either in its storage location or to be used in either to be once again shipped out or for some function in the warehouse/facility.

  4. Demand Paging
    In computer operating systems, demand paging (as opposed to anticipatory paging) is a method of virtual memory management. In a system that uses demand paging, the operating system copies a disk page into physical memory only if an attempt is made to access it and that page is not already in memory (i.e., if a page fault occurs).

WEEK-06

  1. Operating System Concepts: Processes
    this slide, I learn to Identify the separate components of a process and illustrate how they are represented and scheduled in an operating system. Describe how processes are created and terminated in an operating system, including developing programs using the appropriate system calls that perform these operations. Describe and contrast interprocess communication using shared memory and message passing. Design programs that uses pipes and POSIX shared memory to perform interprocess communication. Describe client-server communication using sockets and remote procedure calls. Design kernel modules that interact with the Linux operating system.

  2. Operating System Concepts: Threads & Concurrency
    By reading this slide, I understand more how to Identify the basic components of a thread, and contrast threads and processes. Describe the benefits and challenges of designng multithreaded applications. Illustrate different approaches to implicit threading including thread pools, fork-join, and Grand Central Dispatch. Describe how the Windows and Linux operating systems represent threads. Designing multithreaded applications using the Pthreads, Java, and Windows threading APIs

  3. Operating System - Processes
    A process is basically a program in execution. The execution of a process must progress in a sequential fashion. A process is defined as an entity which represents the basic unit of work to be implemented in the system. When a program is loaded into the memory and it becomes a process, it can be divided into four sections ─ stack, heap, text and data. The following image shows a simplified layout of a process inside main memory

  4. Threads in Operating System
    A thread is also called a thread of execution or a thread of control because it is a single continuous flow that performs the tasks of a process. Threads can run within processes on all operating systems. Apart from that, there can be multiple threads within a process. Each thread in the same process uses a separate program counter and stack of startup records and control blocks. Threads are often referred to as lightweight processes.

  5. How to Use SCP Command to Securely Transfer Files
    scp [OPTION] [user@]SRC_HOST:]file1 [user@]DEST_HOST:]file2 OPTION - scp options such as cipher, ssh configuration, ssh port, limit, recursive copy …etc. [user@]SRC_HOST:]file1 - Source file. [user@]DEST_HOST:]file2 - Destination file

  6. fork() in C
    Fork system call is used for creating a new process, which is called child process, which runs concurrently with the process that makes the fork() call (parent process). After a new child process is created, both processes will execute the next instruction following the fork() system call. A child process uses the same pc(program counter), same CPU registers, same open files which use in the parent process.

WEEK-07

  1. Operating System Concepts: Synchronization Tools
    in this slide, I learn to describe the critical-section problem and illustrate a race condition. Illustrate hardware solutions to the critical-section problem using memory barriers, compare-and-swap operations, and atomic variables. Demonstrate how mutex locks, semaphores, monitors, and condition variables can be used to solve the critical section problem. Evaluate tools that solve the critical-section problem in low-, Moderate-, and high-contention scenarios

  2. Operating System Concepts: Synchronization Examples
    By reading this slide, I understand more to explain the bounded-buffer synchronization problem. Explain the readers-writers synchronization problem. Explain and dining-philosophers synchronization problems. Describe the tools used by Linux and Windows to solve synchronization problems. Illustrate how POSIX and Java can be used to solve process synchronization problems

  3. Operating System Concepts: Deadlocks
    this slide made me understand about Illustrate how deadlock can occur when mutex locks are used. Define the four necessary conditions that characterize deadlock. Identify a deadlock situation in a resource allocation graph. Evaluate the four different approaches for preventing deadlocks. Apply the banker’s algorithm for deadlock avoidance. Apply the deadlock detection algorithm. Evaluate approaches for recovering from deadlock

  4. Introduction of Process Synchronization
    Processes are classified into one of two types based on synchronization:
    - Independent Process:
    The execution of one process does not affect the execution of other processes.
    - Cooperative Process: 
    A process that affects or can be affected by other processes running on the system.
    Process Synchronization Problems occur in the case of cooperating processes because cooperating processes share resources.
    
  5. Process Synchronization in OS
    Process synchronization, or synchronization, is how the operating system manages processes that share the same memory space. Use variables or hardware to maintain data consistency and allow only one process to modify shared memory at a time.

  6. What is a semaphore? How do they work? (Example in C)
    Semaphore is an integer variable which is used as a signal to allow or not allow a process to access the critical section of the code or certain other resources. There are two types of semaphores: Binary - take on values 0 or 1. Counting - take on any integer value.

  7. Deadlock Dan Starvation
    Deadlock is a condition in which two or more processes wait for another process to release the resources that are currently in use. Because several processes are waiting for each other, there is no progress in the work of these processes.

  8. Peterson’s Algorithm for Mutual Exclusion
    in this website I learn about Peterson’s algorithm examples

WEEK-08

  1. Operating System Concepts: CPU Scheduling
    in this slide, I learn to Describe various CPU scheduling algorithms. Assess CPU scheduling algorithms based on scheduling criteria. Explain the issues related to multiprocessor and multicore scheduling. Describe various real-time scheduling algorithms. Describe the scheduling algorithms used in the Windows, Linux, and Solaris operating systems. Apply modeling and simulations to evaluate CPU scheduling algorithms

  2. Process Scheduling in OS: Long, Medium, Short Term Scheduler
    Process scheduling allows OS to allocate a time interval of CPU execution for each process. Another important reason for using a process scheduling system is that it keeps the CPU busy all the time. This allows you to get the minimum response time for programs.

  3. CPU and I/O Burst Cycles
    this video makes me understand more about
    1) CPU Burst.
    2) I/O Burst.
    3) CPU and I/O Burst Cycles.
    
  4. Preemptive and Non-Preemptive Scheduling Video
    this video makes me understand more about
    1) CPU Scheduler.
    2) Dispatchers.
    3) Preemptive Scheduling.
    4) Non-Preemptive Scheduling.
    
  5. Preemptive and Non-Preemptive Scheduling GFG
    Preemptive scheduling is used when a process switches from running state to ready state or from the waiting state to ready state. Non-preemptive Scheduling is used when a process terminates, or a process switches from running to the waiting state.

  6. How to build Linux From Scratch 11.2 (Chap 1-5)
    This series of videos shows how you can take a Windows 10 PC (or with any other version or OS) and install your own Linux operating system by installing Linux From Scratch 11.2.

WEEK-09

  1. Operating System Concepts: Mass-Storage Systems
    in this slide, I learn to Describe the physical structure of secondary storage devices and the effect of a device’s structure on its uses. Explain the performance characteristics of mass-storage devices. Evaluate I/O scheduling algorithms. Discuss operating-system services provided for mass storage, including RAID

  2. Mass-Storage Structure
    Mass storage refers to systems meant to store large amounts of data. In many cases, massive storage is synonymous with peripheral storage, where external devices or media help to manage larger amounts of information that have exceeded the capacity of a computer or device’s native storage capabilities.

  3. Non-volatile memory
    Non-volatile memory (NVM) or non-volatile storage is a type of computer memory that can retain stored information even after power is removed. In contrast, volatile memory needs constant power in order to retain data. Non-volatile memory typically refers to storage in semiconductor memory chips, which store data in floating-gate memory cells consisting of floating-gate MOSFETs (metal–oxide–semiconductor field-effect transistors), including flash memory storage such as NAND flash and solid-state drives (SSD).

  4. Volatile memory
    Volatile memory, in contrast to non-volatile memory, is computer memory that requires power to maintain the stored information; it retains its contents while powered on but when the power is interrupted, the stored data is quickly lost. Volatile memory has several uses including as primary storage. In addition to usually being faster than forms of mass storage such as a hard disk drive, volatility can protect sensitive information, as it becomes unavailable on power-down. Most general-purpose random-access memory (RAM) is volatile.

  5. Redundant Arrays of Independent Disks
    A redundant array of independent disks (RAID) is a common system for high-volume data storage at the server level. RAID systems use many small-capacity disk drives to store large amounts of data and to provide increased reliability and redundancy. Such an array appears to the computer as a single logical unit consisting of multiple disk drives.

  6. Firmware
    Firmware is a software program or set of instructions programmed on a hardware device. It provides the necessary instructions for how the device communicates with the other computer hardware.

  7. BIOS function on a computer, know how it works and its types
    The BIOS (basic input/output system) is the program a personal computer’s microprocessor uses to start up the computer system after you turn it on. It also manages the flow of data between the computer’s operating system and attached devices such as hard drives, video adapters, keyboards, mice, and printers.

  8. What Is UEFI, and How Is It Different from BIOS?
    BIOS is short for Basic Input-Output system. It’s low-level software that resides in a chip on your computer’s motherboard.

  9. How to Use the chroot Command on Linux
    A chroot environment provides functionality similar to that of a virtual machine, but it is a lighter solution. The captive system doesn’t need a hypervisor to be installed and configured, such as VirtualBox or Virtual Machine Manager.

  10. How to build Linux From Scratch 11.2 (Chap 6-7)
    This series of videos shows how you can take a Windows 10 PC (or with any other version or OS) and install your own Linux operating system by installing Linux From Scratch 11.2.

WEEK-10

  1. Operating System Concepts: I/O Systems
    in this slide, I learn to Explore the structure of an operating system’s I/O subsystem, Discuss the principles and complexities of I/O hardware, Explain the performance aspects of I/O hardware and software

  2. Operating System - I/O Hardware
    One of the important jobs of an Operating System is to manage various I/O devices including mouse, keyboards, touch pad, disk drives, display adapters, USB devices, Bit-mapped screen, LED, Analog-to-digital converter, On/off switch, network connections, audio I/O, printers etc. An I/O system is required to take an application I/O request and send it to the physical device, then take whatever response comes back from the device and send it to the application. I/O devices can be divided into two categories Block devices and Character devices.

  3. Operating System - I/O Softwares
    A key concept in the design of I/O software is that it should be device independent where it should be possible to write programs that can access any I/O device without having to specify the device in advance. For example, a program that reads a file as input should be able to read a file on a floppy disk, on a hard disk, or on a CD-ROM, without having to modify the program for each different device.

  4. Direct Memory Access (DMA)
    Direct memory access (DMA) is a method that allows an input/output (I/O) device to send or receive data directly to or from the main memory, bypassing the CPU to speed up memory operations.

  5. Hardware Support for Operating Systems
    Device-status table contains entry for each I/O device indicating its type, address, and state. Operating system indexes into I/O device table to determine device status and to modify table entry to include interrupt.

  6. How to build Linux From Scratch 11.2 (Chap 8)
    This series of videos shows how you can take a Windows 10 PC (or with any other version or OS) and install your own Linux operating system by installing Linux From Scratch 11.2.



© 2022 — Muhammad Nabiel Andityo — Version: 0032–18-Sep-2022.