Understanding how the operating system works is fundamental and critical to any software developer. A software developer must be able to comprehend machine code. Knowing more than the fundamentals is crucial to how well your program runs. The depth of knowledge in understanding the machine code also defines the structure and flow of your program. In this article at Medium, James Le explains operating system concepts that every software developer must remember.
Concepts to Understand
Processes and Process Management
“A process is basically a program in execution. The execution of a process must progress in a sequential fashion,” explains James. The process is divided into four sections – heap, stack, text, and data.
Threads and Concurrency
Threads provide a way to improve application performance through parallelism. It is a software approach that enhances the performance of the operating system by reducing the overhead thread. This is equivalent to a classical process.
Process scheduling is an essential part of multiprogramming operating systems. The multiprogramming operating systems allow more than one process to be loaded into the executable memory at a time. When the scheduler switches the CPU from executing one process to another, the current running process will be stored in the process control block.
Memory management tracks every memory location. It checks how much memory must be allocated to each process. Further, it decides which process will get memory at what time.
Inter-process communication is a mechanism that allows processes to communicate with each other and synchronize their actions through Shared Memory and Message Parsing. The message size can either be fixed size or variable size.
One of the operating system’s essential tasks is to manage various I/O devices that include keyboards, mouse, touchpad, disk drives, USB devices, bit-mapped screen, display adapters, network connections, LED, and analog-to-digital converter.
This is a technology that allows developers to create a dedicated resource or multiple simulated environments from a single, physical hardware system
To read the full article, click on https://medium.com/cracking-the-data-science-interview/the-10-operating-system-concepts-software-developers-need-to-remember-480d0734d710.