【翻译】Linux进程全知道

这篇文章将会介绍在Linux中,进程是如何产生,管理和销毁的。


进程是操作系统内执行的任务,程序是磁盘存储的一系列机器码和数据的集合。当一个程序启动的时候,就创建了一个新的进程,进程的状态是动态的,随着机器指令的执行而变化,他主要包含一些寄存器,计数器和数据。进程之间的状态是相互独立的,一个进程奔溃不会影响操作系统上的其他进程。每一个进程在内存中都有自己的独立的地址空间。

在进程的生命周期中,他会使用操作系统的许多资源,是运行的时候会使用CPU和物理内存以及数据。也许会打开文件,打开设备。其余的进程必须等待当前的进程释放CPU才能得到执行。Linux操作系统必须跟踪进程和进程使用的资源,以确保一个进程不会独占大部分的内存和CPU。

在系统中,最常用的资源就是CPU,他只能同一时间被一个进程占用。Linux是一个多任务操作系统,每一段时间内都运行多个进程。如果有多个CPU, 系统主剩下的进程必须要等待有一个一个CPU空闲可以使用,这个进程才能够得到执行。多处理是用来解决并发问题的一个比较简洁的方法。

linux支持多个格式的可执行文件,ELF就是其中一种.

Linux进程

linux能够管理操作系统中的进程,每一个进程在操作系统中都是一个task_struct结构体,有个一个指针指向一个task_struct的数组,数组里面就是所有的进程。这也就意味着linux系统是可以设置进程数量的最大值和最小值的,最大值默认是512,也就是说能管理一个512个进程。每产生一个新的进程,就选出一个可能的空间来保存该进程。为了便于场照,当前正在运行的进程被一个current指针指向着。
原文地址: https://www.tldp.org/LDP/tlk/kernel/processes.html