Disassembling process creation
As we mentioned in the previous chapter, a process is a running instance of a program that contains its respective metadata, occupied memory, opened files, and so on. It is the main job executor in the OS. Recall that the overall goal of programming is to transform one type of data into another type of data, or count. What we do via programming languages is provide instructions to the hardware. Often, we tell the CPU what to do, including moving pieces of data throughout different portions of memory. In other words, the computer must compute, and we must tell it how to do this. This understanding is crucial and independent of the programming languages or OSs that are used.
With this, we have come back to the topic of system programming and understanding system behavior. Let’s immediately state that process creation and execution is neither simple nor fast. And neither is the process switching. It is rarely observable through the naked eye, but...