Aditya Chatterjee's Blog, page 122
January 27, 2022
Disassembly
Disassembly involves recreating assembly code from binary machine code. In this article we discuss concepts surrounding disassembly and a basic algorithm used for disassembly.
Table of contents.Introduction.Instructions and data.Disassembly with indirection.Disassembly with relocation.Summary.References.Prerequisite.Assembler, Linker and LoaderIntroduction.Assemblers are simpler compared to compilers as their only function is to translate assembly code to binary machine code via a ...
Assembler, Linker and Loader
In this article, we discuss the tasks of an assembler, linker and loader. We also discuss the design issues faced by both assemblers and linkers.
Table of contents.Introduction.The workings of an assembler.Design issues: Assembler.Design issues: Linker.Summary.References.Introduction.An assembler is responsible for converting source code into target code and therefore just like the compiler, an assembler will have stages such as lexical analysis, management of the symbol table and back...
Three address code
Three address code is generated by a compiler for code optimization, it uses a maximum of three addresses to represent any statement. In this article we discuss it.
Table of contents.Introduction.Addresses and instructions.An implementation using quadruples.An implementation using triples.Static single assignment (SSA) form.Summary.References.Introduction.Three address code is an intermediate code used by optimizing compilers whereby a given expression is broken down into several sepa...
January 26, 2022
Map Overlay Problem
In this article, we will be exploring the Map Overlay Problem which is a core problem in Computational Geometry. We have explored simple variants of Map Overlay Problem.
Table of contents:
Geographic Information SystemMap Overlay ProblemPoint in PolygonLine on LineLine in PolygonPolygon in PolygonLine SegmentsPlane Sweep TechniqueApplications of Map OverlayConclusionBefore we discuss that we shall discuss what is (GIS) Geographic Information System.
Geographic Information SystemIn a...
Redundant arrays of independent disks (RAID)
In this article, we have covered what are Redundant arrays of independent disks and the commonly used RAID levels. This is an important topic in Memory management / storage in System Design.
Table of contents:
Introduction to Redundant arrays of independent disks (RAID)Levels of RAIDRAID 0 - StripingRAID 1 - MirroringRAID 5 - Striping with parityRAID 6 - Striping with double parityRAID 10 -Mirroring + StripingIntroduction to Redundant arrays of independent disks (RAID)RAID is an acr...
Initializing Tensors in TensorFlow
In this article, we have explored the idea of Tensors in TensorFlow, different types of tensor and how to initialize and use them.
Table of contents:
IntroductionTensors in tensorflowProperties of TensorsDifferent types of Tensors in TensorFlowVariableConstantPlaceholderSparseholderConclusionPre-requisite:
Key ideas in TensorFlowIntroductionEarlier on, Artificial Intelligence(A.I) algorithms and models were built from scratch, with hundreds of thousands of lines of code which t...
Circular Doubly Linked List
In this article, we have explored Circular Doubly Linked List and operations that can be performed on it. It is a combination to two Data Structures namely Circular Linked List and Doubly Linked List.
Table of contents:
Introduction to Circular Doubly Linked ListInsertion at the beginningInsertion at the endInsertion at a given positionDeletion at the beginningDeletion at the endDeletion at a given positionTraverseSearchApplicationsPre-requisites:
Circular Linked ListDoubly Linked ...Distributed Operating System
In this article, we have explored the idea of Distributed Operating System in depth along with internal working details, different types and examples.
Table of contents:
Introduction to Distributed Operating SystemFunctioning of Distributed Operating SystemsArchitecture of Distributed Operating SystemTypes of Distributed Operating SystemExamples of Distributed Operating SystemsCharacteristics of Distributed Operating SystemApplications of Distributed Operating SystemsDifferences between ...Different types of File System
In this article, we have explored the Different types of File Systems such as Distributed File System, Flash File System and much more with examples of each type and how they are used in real applications.
Table of contents:
Introduction to File SystemVarious File System TypesDisk file systemsFlash File SystemRecord-Oriented File SystemsShared-Disk File SystemDistributed File SystemsDistributed fault-tolerant file systemsDistributed parallel file systemsDistributed parallel fault-toler...Linux threads: Creation, Data passing, Waiting
A thread is the basic unit of processor utilization that consists of a program counter, stack and registers. In this article we discuss how they are created, how data is passed between threads, waiting in threads and attributes.
Table of contents.Introduction.Creating threads.Passing data.Waiting in threads.Attributes.Summary.References.Prerequisites.Linux processes: listing, creation, schedulingLinux processes: signals, termination, zombies, cleanupLinux threads: cancellation, dat...