Introduction Modern operating systems support multitasking via CPU time sharing. The operating system manages CPU time by implementing a scheduling algorithm. In this article, we are going to briefly discuss round robin scheduling algorithm. To better understand the topic, you may check the following posts… Multitasking terms Scheduling algorithms Evaluate a scheduling algorithm Let us
Introduction Welcome to a new operating systems post. Today, we are going to clarify the difference between swapping and paging. The goal is to focus on the main difference between the two and see why is it sometimes confusing. Let us give it a try… Modern operating systems support multitasking and virtual memory. I recommend
Introduction In computer systems, competition on limited resources such as CPU, drives, printers, database records, etc. requires proper synchronization otherwise, undesired effects may arise. In today’s operating systems post, we are going to talk about deadlocks and starvation when a process or thread hangs up but never stop or finish the intended task. The primary
Introduction If you search for the phrase “Process vs Thread” I bet you, most of the articles you may find follow a typical structure. You will probably find a list of points in a tabular or bullet format contrasting process vs thread. Some articles are excellent but many lack a proper context. In this post,
Introduction Welcome to a new operating systems post. Today, we are going to clarify some terms frequently used in concurrency and operating systems design. You have probably heard of the following terms… Processes and threads Shared memory and resources Race conditions Mutual exclusion Critical section or critical region Synchronization primitives or constructs Locks and spin
Introduction Concurrency and parallelism are often used interchangeably in computing, however they do not necessarily mean the same thing. If you Google concurrency vs parallelism, you will find different articles explain it differently. I think part of the confusion comes from the way people define these terms. In this post, I am not going to
Introduction This is a commonly asked question among students. I think part of the confusion comes from mixing terms from academia specially operating systems courses with software industry terms such as cloud computing and big data. Network operating systems and distributed operating systems are fundamentally different concepts. Let us see what the difference is. Network
Computer science or computer engineering for software engineer? The aim of this post is to contrast some computer terms used in the industry and academia as well. Some people are just curious to know the differences but for students in particular, realizing what these terms stand for is very important before deciding on a certain
Introduction Throughput, turnaround time, response time and waiting time are frequently mentioned terms in operating systems. They may look similar but they refer to different methods for evaluating CPU scheduling algorithms. When multiple processes are running, the CPU has to determine which process runs next in order to utilize resources and optimize system performance. For
Introduction Today, I am going to talk about memory mapping, a typical topic in operating systems design. I will provide a short summary of memory mapped files in an easy to follow manner. Before we start, I recommend that you get a basic idea about some relevant concepts such as multitasking and paging. Here are