美文网首页Shell 脚本成长笔记
进程(一):什么是进程

进程(一):什么是进程

作者: 赵者也 | 来源:发表于2017-05-23 08:27 被阅读27次

进程是运行在 Linux 中的程序的一个实例。当我们在 Linux 中执行一个程序时,系统会为这个程序创建特定的环境。这个环境包含系统运行这个程序所需的任何东西。

每当我们在 Linux 中执行一个命令,它都会创建或启动一个新的进程。每个终端窗口可能都运行了一个 Shell,每个运行的 Shell 都分别是一个进程。当你从 Shell 调用一个命令时,对应的程序就会在一个新进程中执行,当这个程序的进程执行完成后,Shell 的进程将恢复运行。

操作符系统通过被称为 PID 或进程 ID 的数字编码来追踪进程。系统中的每一个进程都有一个唯一的 PID。

每个 Linux 进程还有另一个 ID 号码,即父进程的 ID(ppid)。系统中的每一个用户进程都有一个父进程。

命令 “ps -f” 可以列出进程的 PID 和 PPID。此命令的输出类似如下所示:

运行结果

我们在 Shell 命令行提示符下运行的命令都把当前 Shell 的进程作为父进程。

在 Unix 中,每一个进程是使用 fork 和 exec 方法创建的。然而,这种方法会导致系统资源的损耗。

在 Linux 中,fork 方法是使用写时拷贝内存页实现的,所以它导致的仅是时间和复制父进程的内存页表所需的内存的损失,并且会为子进程创建一个唯一的任务结构。写时拷贝模式在创建新进程时避免了创建不必要的结构拷贝。例如,用户在 Shell 命令行提示符下输出 ls 命令,Linux 内核将会创建一个 Shell 的子进程,即 Shell 的进程是父进程,而 ls 命令的进程是子进程,ls 命令的进程会指向与此 Shell 相同的内存页,然后子进程使用写时拷贝技术执行 ls 命令。

本文参考自 《Linux Shell命令行及脚本编程实例详解

相关文章

  • 进程(一):什么是进程

    进程是运行在 Linux 中的程序的一个实例。当我们在 Linux 中执行一个程序时,系统会为这个程序创建特定的环...

  • linux进程间通信(1)

    一、进程通信概述 1、什么是进程间通信?什么是线程间通信? 进程间通信: 进程间通信就指的是用户空间中进程A与进程...

  • 什么是linux的daemon进程?和一般进程有什么区别

    什么是linux的daemon进程?和一般进程有什么区别 什么是linux的daemon进程 daemon进程是守...

  • 系统基础-进程管理

    Linux 进程管理 你可以了解些什么 什么是进程 进程和程序的区别 如何查看进程 进程的终止 获得进程打开的文件...

  • 面试题

    1.什么是孤儿进程?什么是僵尸进程? 孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成...

  • Linux进程

    进程知识 发现问题 什么是进程 操作系统为什么需要进程 进程如何实现 如何进行进程管理 进程和CPU的关系是什么 ...

  • 操作系统-进程同步与互斥

    什么是相关进程?什么是无关进程? 相关进程是逻辑上存在某种联系的进程。无关进程是逻辑上没有任何联系的进程称为无关进...

  • 线程学习笔记(一)

    线程和进程区别 什么是进程,程序运行的时候会对应一个进程,进程就是处于运行的程序,进程具有并发性。什么是线程,线程...

  • 18.Linux进程管理

    Linux进程管理 什么是进程什么是程序 (计算机程序) 进程的概念和与程序的区别 1、进程的定义进程是允许某个并...

  • Java学习24:多线程

    什么是进程?什么是线程进程是一个应用程序(1个进程是一个软件)。线程是一个进程中的执行场景/执行单元。一个进程可以...

网友评论

    本文标题:进程(一):什么是进程

    本文链接:https://www.haomeiwen.com/subject/hxrwxxtx.html