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

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:

主站蜘蛛池模板: 邯郸市| 巢湖市| 湟中县| 乐至县| 金堂县| 时尚| 定西市| 慈溪市| 南投县| 元朗区| 略阳县| 九龙坡区| 梨树县| 宣恩县| 黄平县| 苗栗县| 奉新县| 民权县| 兴业县| 岢岚县| 漠河县| 永丰县| 黄石市| 江口县| 荔浦县| 兴业县| 扶绥县| 临沭县| 耒阳市| 新巴尔虎右旗| 紫阳县| 嘉义市| 延津县| 沭阳县| 海林市| 谢通门县| 凤庆县| 洪江市| 霍林郭勒市| 忻州市| 深泽县|