os212

Top links that i find helpful for Operating Sytem subject

Week 1

  1. Operating System
    I wanted to know what is exactly is operating system and why we have to learn it. From what i gather, operating system is a software that runs on computer and manages the computer’s memory and processes, as well as all of its software and hardware and the reason why we have to learn it is so we can have better understanding on our software (because operating system basically runs our laptop) and gain deep understanding of the system (and for some increase our value as a programmer).
  2. Scripting
    This article contains beginner guide to shell scripting. It explains the definition of shell scripting, what i have to prepare, and the scripting guidelines itself. It’s really interesting because the explanation is so thorough and beginner friendly.
  3. VirtualBox For Week 1 assignments, we were required to install virtualbox. However, at first, i was confused why we have to download it and i’m still quite unclear what is exactly virtualbox, but after reading this article i have a clear understanding on virtualbox.
  4. What is AWK?
    What i learn from this link is Awk is a scripting language used for manipulating data and generating reports and the awk command programming language requires no compiling and allows the user to use variables, numeric functions, string functions, and logical operators. Since we started to learn scripting in Week 1, this article definitely helps me a lot.
  5. Regex tutorial for Linux
    Since we began scripting, the term regex is commonly heard of. From this article i can learn what is regex and from what i understand is that regex is a regular expression or in general, regex is a pattern of text you define that a Linux program like sed or awk uses it to filter text. I still have to understand regex a bit more but this article really helps.

Week 2

  1. Introduction to Cyber Security
    This week, we were introduced to cyber security. I thought cyber security is a fascinating subject by watching the introduction video required in W02 slide but i want to understand a bit more about cyber security. This link helps me understand cyber security better and it’s very useful for beginner.
  2. C Language basic
    C language is one of the demo that we tried this week. Before trying the demo, i wanted to know what C language is and how it is different from any other programming language that i’ve tried, like Java and Python. By reading this article, i can learn that turns out C language is just as fun as Java and Python!

Week 3

  1. File system
    One of the topic that we have to learn this week is file system. Based on this article, a file is a named collection of related information that is recorded on secondary storage such as magnetic disks, magnetic tapes and optical disks. In general, a file is a sequence of bits, bytes, lines or records whose meaning is defined by the files creator and user. I also learn that a file Structure should be according to a required format that the operating system can understand.
  2. File system interface
    Similiar to the previous number, this article also talks about file system interface. From this article, i can learn about file operations, like creating a file, writing a file, reading a file, etc, which are fundamental for this subject.
  3. Device directory
    In order to understand our directory better, we have to know where our directory is located. In Linux, the /dev directory contains device and other special files. Even though you have to make an account to open this article, it’s worth it because it gives clear explanation for /dev directory.

Week 4

  1. Addressing in operating system
    Addressing is very important in operating system. By understanding this web, i can get a clear idea about logical and physical adress, both are important subtopic for this week. I can also tell the difference between logical and physical adress, as example logical adress is generated by CPU meanwhile physical adress is computed by MMU.
  2. File format
    Through this web, i can learn that each dataset can be distributed in several different file formats. Also, recode data are available in formats that facilitate their use in the most common statistical software. Because operating system often intersect with file, i can gain more information about file through this website.
  3. Guide to linux libraries
    As we know, linux is a common operating system that we learned in class. When we want to understand linux, we have to understand the library that comes with it. This article explains how to build libraries from scratch and make them available to clients. Although the two sample libraries target Linux, the steps for creating, publishing, and using these libraries apply to other Unix-like systems.
  4. Memory mapping
    Memory mapping is a topic that can’t be left out when we’re learning operating system. Through this article, i can learn that memory-mapping is a mechanism that maps a portion of a file, or an entire file, on disk to a range of addresses within an application’s address space. The application can then access files on disk in the same way it accesses dynamic memory. This makes file reads and writes faster in comparison with using functions such as fread and fwrite.
  5. Binding and linking
    At first, i thought binding (or in this case, loading) and linking is two same thing. This website, however shows that the two are not the same thing and they present thorough differences between the two, for example the key difference between linking and loading is that the linking generates the executable file of a program whereas, the loading loads the executable file obtained from the linking into main memory for execution.
  6. Page table
    Page table in operating system is also a crucial topic. I can learn that page table is a data structure used by the virtual memory system to store the mapping between logical addresses and physical addresses from this website.

Week 5

  1. Virtual memory
    Virtual Memory is a storage allocation scheme in which secondary memory can be addressed as though it were part of the main memory. This subject is also crucial to operating system because often the addresses a program may use to reference memory are distinguished from the addresses the memory system uses to identify physical storage sites, and program-generated addresses are translated automatically to the corresponding machine addresses.
  2. Caching
    Cache is a type of memory that is used to increase the speed of data access. Normally, the data required for any process resides in the main memory. We’ve heard of cache in Introduction to Computer Organization so it’s a little familiar. However, i still have to learn more about it and this article helps me a lot.
  3. Memory system
    This topic can be hard to understand sometimes but by proof reading this website, i can get a clearer picture about memory system. Although this article is probably not the best thing for beginner and at some parts can be confusing, it still helps me a lot.
  4. Working sets and thrashing
    This is a perfect article if you want to learn about working sets and thrashing. The explanation is simple yet detailed and it presents what should we do in multiple scenarios, like what happens if memory gets overcommitted, etc. This will definitely help us all!

Week 6

  1. Process concept
    This week, we were required to study about process concept. Trough this article, i can learned thath a process is basically a program in execution. The execution of a process must progress in a sequential fashion. This article is short yet gives me clearer understanding of the topic.
  2. Process creation vs process termination
    Aside from process concept, we were required to learn process creation. This article mentioned that a process may be created by another process using fork(). This article also mentioned that process termination occurs when the process is terminated The exit() system call is used by most operating systems for process termination.
  3. Context switching
    Context switching is also an important topic that we have to learn this week. From this article, i can learned that context switching is a technique or method used by the operating system to switch a process from one state to another to execute its function using CPUs in the system. I can also learned that when switching perform in the system, it stores the old running process’s status in the form of registers and assigns the CPU to a new process to execute its tasks .
  4. Fork() method
    In the computing field, fork() is the primary method of process creation on Unix-like operating systems. This function creates a new copy called the child out of the original process, that is called the parent.

Week 7

  1. Introduction of Deadlock in Operating System
    From this website, i can learn that deadlock is a situation where a set of processes are blocked because each process is holding a resource and waiting for another resource acquired by some other process.
  2. Synchronization in Operating System
    I can learn that process Synchronization is a way to coordinate processes that use shared data and it occurs in an operating system among cooperating processes.
  3. Difference between Deadlock and Starvation in OS
    This website is very insightful. I can learn that the one difference between deadlock and starvation is that in deadlock, all processes keep waiting for each other to complete and none get executed. Meanwhile, in starvation high priority processes keep executing and low priority processes are blocked.

Week 8

  1. Multiple-Processor Scheduling in Operating System
    From this article, i can know that approaches to multiple-processor scheduling are master server and the other processors executes only the user code and a second approach uses symmetric multiprocessing where each processor is self scheduling.
  2. Two State Process Model
    From this website, i can also know that two state process podel consists of two states, not-running ptate: process waiting for execution and running State: process currently executing.