官术网_书友最值得收藏!

Processes

Quintessentially, computing systems are designed, developed, and often tweaked for running user applications efficiently. Every element that goes into a computing platform is intended to enable effective and efficient ways for running applications. In other words, computing systems exist to run diverse application programs. Applications can run either as firmware in dedicated devices or as a "process" in systems driven by system software (operating systems).

At its core, a process is a running instance of a program in memory. The transformation from a program to a process happens when the program (on disk) is fetched into memory for execution.

A program’s binary image carries code (with all its binary instructions) and data (with all global data), which are mapped to distinct regions of memory with appropriate access permissions (read, write, and execute). Apart from code and data, a process is assigned additional memory regions called stack (for allocation of function call frames with auto variables and function arguments) and heap for dynamic allocations at runtime.

Multiple instances of the same program can exist with their respective memory allocations. For instance, for a web browser with multiple open tabs (running simultaneous browsing sessions), each tab is considered a process instance by the kernel, with unique memory allocations.

The following figure represents the layout of processes in memory:

主站蜘蛛池模板: 珲春市| 鹤峰县| 鞍山市| 昭觉县| 靖西县| 晋城| 岳西县| 特克斯县| 海门市| 潼南县| 阳城县| 紫金县| 白玉县| 张掖市| 大余县| 淮南市| 山东| 安福县| 遵化市| 抚远县| 吉林市| 姚安县| 固安县| 潜江市| 东宁县| 舟曲县| 子洲县| 米林县| 定南县| 天镇县| 姚安县| 德惠市| 临颍县| 绥芬河市| 稷山县| 筠连县| 花莲县| 泰顺县| 张家川| 新津县| 遵化市|