Category: Articles and Tutorials

Difference between concurrency and parallelism

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

Difference between iterators and generators in Python

Table of contents Introduction What is an iterator? Iterator example What is an iterable? Iterable example - separate class Iterable example - single class Python containers What are generators? Generator types Generator function example Generator comprehension example Generator advantages Summary References Introduction Today, we are going to discuss a little bit confusing topic in Python

Difference between network operating system and distributed operating system

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

Python REST API example

Introduction In order for two networked computers to exchange data, a protocol has to be used. A protocol is an agreed method to identify computers (ex. PC, iPhone), applications (ex. browser, web server) and resources (ex. webpage, image, database table). A protocol also facilitates secure (ex. encryption) and reliable (ex. data loss protection) communication. The

Computer science vs computer engineering vs software engineering

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

Throughput vs turnaround time vs waiting time vs response time

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