`

Linux进程理解

 
阅读更多

1.1 进程分类;

Linux操作系统包括三种不同类型的进程,每种进程都有自己的特点和属性。

a) 交互进程--由一个shell启动的进程。交互进程既可以在前台运行,也可以在后台运行。

b) 批处理进程--这种进程和终端没有联系,是一个进程序列。

c) 监控进程(也称守护进程)--Linux系统启动时启动的进程,并在后台运行。

值得一提的是守护进程总是活跃的,一般是后台运行,守护进程一般是由系统在开机时通过脚本自动激活启动或超级管理用户root来启动。比如在 Fedora或Redhat中,我们可以定义httpd 服务器的启动脚本的运行级别,此文件位于/etc/init.d目录下,文件名是httpd,/etc/init.d/httpd 就是httpd服务器的守护程序,当把它的运行级别设置为3和5时,当系统启动时,它会跟着启动。

[root@localhost ~]# chkconfig --level 35 httpd on

由于守护进程是一直运行着的,所以它所处的状态是等待请求处理任务。比如,我们是不是访问 LinuxSir.Org ,LinuxSir.Org 的httpd服务器都在运行,等待着用户来访问,也就是等待着任务处理。


1.2
进程的属性;

进程ID(PID):是唯一的数值,用来区分进程;
父进程和父进程的ID(PPID);
启动进程的用户ID(UID)和所归属的组(GID);
进程状态:状态分为运行R、等待W、休眠S、僵尸Z;
进程执行的优先级;
进程所连接的终端名;
进程资源占用:比如占用资源大小(内存、CPU占用量);

1.3 进程的空间;

Linux中一个进程在内存里有三部份的数据,就是"数据段","堆栈段"和"代码段",基于I386兼容的中央处理器,都有上述三种段寄存器,以方便操作系统的运行。见图-1。

clip_image001
图-1 Linux进程的结构

代 码段,是存放了程序代码的数据,假如机器中有数个进程运行相同的一个程序,那么它们就可以使用同一个代码段。而数据段则存放程序的全局变量,常数以及动态数据分配的数据空间。堆栈段存放的就是子程序的返回地址、子程序的参数以及程序的局部变量。堆栈段包括进程控制块PCB(Process Control Block)中。PCB处于进程核心堆栈的底部,不需要额外分配空间。

1.4 异常进程;

僵尸进程:一个子进程在其父进程还没有调用wait()或waitpid()的情况下退出(子进程异常退出)。这个子进程就是僵尸进程。

孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程(父进程异常退出)。孤儿进程将被init进程(进程号为1)所收养,并由init进程对它们完成状态收集工作。

僵尸进程将会导致资源浪费,而孤儿则不会。

1.5 相关命令;

Nice/renice:设置进程优先级

nice -n 5 gaim & 注:运行gaim程序,并为它指定谦让度增量为5;

Pstree:显示进程树

Netstat:显示网络状态

Uptime:显示开机时间

& 最经常被用到,这个用在一个命令的最后,可以把这个命令放到后台执行

ctrl + z:可以将一个正在前台执行的命令放到后台,并且暂停

jobs:查看当前有多少在后台运行的命令

fg:将后台中的命令调至前台继续运行

如果后台中有多个命令,可以用 fg %jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid)

Bg:将一个在后台暂停的命令,变成继续执行

分享到:
评论

相关推荐

    Linux进程间通讯视频教程

    在IT领域,Linux操作系统...此外,了解和掌握Linux进程间通信,也有助于你更好地理解和使用其他高级特性,如守护进程、线程同步等。在实际开发中,灵活运用这些通信方法可以优化系统性能,提高程序的可扩展性和可靠性。

    深刻理解Linux进程间通信

    ### 深刻理解Linux进程间通信 #### Linux进程间通信概述 进程间通信(Inter-Process Communication,简称IPC)是指在多进程环境下,不同进程之间进行数据交换或同步操作的技术。Linux作为一款广泛使用的开源操作...

    Unix/linux进程池管理

    在Unix/Linux系统中,...综上所述,Unix/Linux进程池管理涉及多方面的技术,包括进程创建、任务调度、进程间通信、资源管理和错误处理。理解并掌握这些知识点对于开发高效、稳定的银行系统或其他服务型应用至关重要。

    Linux进程基本管理与进程控制

    Linux 进程基本管理与进程控制 Linux 进程基本管理是计算机操作系统中一个非常重要的概念,它涉及到进程的创建、管理和控制。...通过实验和实践,我们可以更好地理解和掌握 Linux 进程基本管理和进程控制的知识点。

    操作系统实验报告(LINUX进程间通信)

    操作系统实验报告(LINUX进程间通信) 操作系统实验报告(LINUX进程间通信)是操作系统课程的一部分,涵盖了Linux进程间通信的原理和应用,包括消息队列、C/S结构等内容。下面将对这些知识点进行详细的解释。 一、...

    linux进程间通信与同步.pdf

    ### Linux进程间通信与同步详解 #### 一、概述 在多任务操作系统中,进程间通信与同步机制是解决进程间数据交换与资源共享的关键技术。这些机制确保了多个并发运行的任务能够有效地协作,并且避免了资源冲突。对于...

    LINUX进程管理实验

    在进行LINUX进程管理实验之前,首先需要理解进程与程序之间的区别。程序是指令的集合,是静态的,而进程则是程序的一次动态执行过程,具有生命周期,包括创建、运行、阻塞、唤醒、终止等状态。在LINUX系统中,每个...

    linux实验四 进程控制实验

    【进程控制实验】是Linux操作系统课程中的一个重要环节,旨在帮助学生深入理解进程的概念以及进程间的交互。通过实验,学生能够掌握以下关键知识点: 1. **进程的概念与程序的区别**: 进程是操作系统资源分配的...

    linux进程编程介绍

    对于开发者而言,深入理解Linux进程编程是提升技术水平的重要一环。本文将详细探讨Linux进程编程的基础知识,包括进程的概念、创建与管理进程、进程间通信以及线程的使用。 首先,我们需要了解什么是进程。在操作...

    Linux进程-zhangwl.rar_linux_linux 进程_linux进程_源码分析_进程 linux

    Linux进程是操作系统的核心概念,理解和掌握其工作原理对于深入学习Linux系统至关重要。本资料集合将探讨Linux进程的生成、使用和创建过程,以及相关的源码分析。 首先,我们来了解一下进程的生成。在Linux中,新...

    理解Linux进程.pdf

    ### 理解Linux进程——关键知识点概览 #### 一、引言 《理解Linux进程》是一本专为Linux程序员编写的书籍,旨在通过深入浅出的方式介绍Linux进程的相关知识。本书受到《理解Unix进程》的启发,采用Go语言重新编写...

    进程管理 主要介绍进程的概念、状态、构成以及Linux进程的相关知识。

    本章主要介绍进程的概念、状态、构成以及Linux进程的相关知识。 掌握进程的概念 掌握进程的描述、状态及转换 理解进程的特征 了解Linux进程的描述及进程通信 掌握进程的同步与互斥,并能灵活运用 理解线程的概念及...

    深刻理解Linux进程间通信.pdf

    Linux进程间通信(IPC)是操作系统中非常重要的部分,它包括多种机制用于进程间的数据交换。了解这些机制对于进行系统编程和软件开发非常重要。本文档详细介绍了管道、信号、消息队列、信号量和共享内存等通信方法。...

    linux进程源代码分析

    通过对Linux进程源代码的分析,我们可以更深入地理解操作系统是如何管理和调度进程的。这对于理解Linux的内部工作机制以及开发基于Linux的应用程序都具有重要的意义。此外,了解这些底层原理也有助于更好地优化应用...

    linux进程控制详解及演示代码

    通过阅读和理解这些代码,你可以更好地理解Linux进程控制的细节,并能将其应用到自己的项目中。 总结来说,掌握Linux进程控制是提升系统编程能力的重要一步。了解进程通信的不同方法及其同步异步特性,以及如何通过...

    linux进程间通信ppt

    【Linux进程间通信】是操作系统中进程协作的重要方式,它允许不同的进程共享数据和资源,协同完成任务。在Linux系统中,进程间通信(IPC,Inter-Process Communication)包括多种技术,如管道、信号、信号量、共享...

    linux 进程间通信

    在Linux操作系统中,进程间通信(IPC,Inter-Process ...综上所述,“Linux 进程间通信”涵盖了System V IPC的核心组件,通过学习和实践这个Demo,开发者可以深入理解如何在Linux环境下有效地实现进程间的协作与通信。

    进程实验_Linux系统进程实验_

    提供的"word文档供学习参考"可能包含了实验步骤、示例代码和相关理论解释,对于深入理解和实践Linux进程编程非常有帮助。 在实际操作中,结合`man`手册页和实验指导,学习者可以更全面地掌握这些概念和操作,从而...

Global site tag (gtag.js) - Google Analytics