linux的进程

概念:在计算机科学中,进程(Process)是程序的执行实例。它是操作系统进行资源分配和调度的基本单位。进程可以被看作是程序的运行过程

进程的特点

1.独立性:进程是独立运行的,拥有自己的地址空间,进程间的信息需要通过特定的机制(如进程间通信)来交换。

 2.  动态性:进程的生命周期是动态的,它从创建到结束的过程中,会经历不同的状态,如运行、就绪、阻塞等。  

3.  并发性:多个进程可以在单个处理器上并发执行,这得益于操作系统的多任务能力。  

4.  结构性:进程由代码段、数据段和堆栈组成,它们共同定义了进程的执行环境。  

5.  有序性:进程的执行是有序的,它按照程序的指令顺序执行。

linux的进程_第1张图片

进程的生命周期:

1.  创建(New):操作系统为新进程分配必要的资源,如内存空间、文件描述符等。

 2. 就绪(Ready):进程已准备好运行,等待被调度器分配到处理器上。  

3.  运行(Running):进程正在处理器上执行。  

4.  阻塞(Blocked):进程因为等待某个事件(如输入/输出操作、信号量等)而暂停执行。

 5.  终止(Terminated):进程完成执行或者因为错误、信号等原因终止。

进程和程序的区别:

程序是静态的,它是保存在磁盘上的指令的有序集合,没有任何执行的概念

进程是一个动态的概念,它是程序执行的过程,包括了动态创建、调度和销毁的整个过程

linux的进程_第2张图片

并发与并行:

并发:

并发是指在单个处理器上,通过时间片轮转或上下文切换,多个任务交替执行,从而在宏观上呈现出同时进行的假象。尽管单个处理器在任意时刻只能执行一个任务,但通过这种机制,可以实现多线程程序的并发执行,即操作系统轮流为每个线程分配短暂的运行时间。简而言之:

.单个处理器或核心上,任务以交替方式执行。
.依靠时间片轮转机制。
.宏观上看似同时进行,微观上则是交替执行的。
.典型应用场景包括:

.多任务操作系统中的用户界面响应。
.Web服务器处理多个客户端请求。
.嵌入式系统中的多任务调度。

并行:

并行计算是一种计算模式,其中多个处理器或核心同时执行多个任务。这种模式允许每个处理器或核心独立处理不同的任务,从而实现真正的同时计算。并行计算能够显著提升程序的执行速度,尤其在处理那些可以分解为多个独立子任务的程序时,效果更为明显。

应用场景包括:

科学计算,例如天气预报和分子动力学模拟。
大数据处理,例如分布式计算。
图形渲染,例如3D图形的并行渲染。

操作系统提供了一系列的系统调用(如 fork、exec、wait 等)来管理进程的生命周期。以下是一些常见的进程操作:

创建进程:在 Unix 和类 Unix 系统中,通常使用 fork 系统调用创建一个新的进程。fork 会复制当前进程(父进程)来创建一个新的进程(子进程)。

执行程序:exec 系列函数(如 execv、execve 等)可以在进程中加载并执行一个新的程序。

等待进程结束:wait 或 waitpid 系统调用允许父进程等待子进程结束。

终止进程:exit 函数用于终止当前进程的执行。

进程间通信:进程可以使用管道(pipe)、信号(signal)、共享内存、消息队列(message queue)等机制进行通信。

你可能感兴趣的:(linux,服务器,运维)