Fading Coder

One Final Commit for the Last Sprint

Operating System Implementation: Synchronization and Thread-Safe I/O

In multi-threaded environments, concurrent access to video memory and ports can cause GP exceptions due to incorrect calculation of write offsets. To address this issue, we implement semaphore and synchronization mechanisms. When a thread waits for a semaphore, it voluntarily blocks until another th...

Operating System Fundamentals for System Architecture Engineers

Software Classification Computer Software Categories: - System Software Supports application software execution Common system software includes: **operating systems**, **language processing systems**, **linkers, diagnostic tools, and database management systems** The **operating system serves as the...

Core Concepts of Process and Thread Management in Operating Systems

Process Fundamentals and Multitasking Multiprogramming and Process Concurrency Multiprogramming enables multiple programs to reside in memory and execute simultaneously, thereby improving CPU utilization and overall system efficiency. This is achieved by logically abstracting independent program cou...

Implementing Unix Utilities in Xv6: Sleep, Ping-Pong, Primes, Find, and Xargs

Implementing Unix Utilities in Xv6: Sleep, Ping-Pong, Primes, Find, and Xargs
Sleep A simple utility to pause execution for a specified number of seconds. #include "kernel/types.h" #include "user/user.h" int main(int argument_count, char *argument_values[]) { if (argument_count < 2) { fprintf(2, "Usage: sleep <seconds>\n"); exit(1); } in...

Core Functions for File System Operations: Inode, File, and Directory Handling in Operating Systems

All operations related to files and directories involve manipulating inodes, as we need to know the storage location of files through inodes. Therefore, operating on files always means finding the corresponding inode. Next, we implement a set of functions for handling inodes, including: locating an...