Linux系统进程管理的分析与探究
Linux ̄统进程管理的分析与探究
李洋庞立滨
天津工程职业技术学院
【摘要l系统在执行多道程序时需要共享资源,而这种共享资源就会
导致各个程序之间出现相互制约,这些过程都是动态的,而程序本身是一
组指令的集合,这是静态的过程,我们为了能够准确去描述程序动态的整
体执行过程,就引入了“进程(Process)”这个概念 进程是具有一定独立
功能的程序,程序可以包括进程,进程也可以包括程序,进程是操作系统
动态执行的基本单元,既属于基本的分配单元,也是最基本的执行单元,
本文是就以linux中进程的概念、分类、启动方式及使用方法、注意事项进行
分析和研究。 ‘
【关键词】进程;终端;虚拟内存
一,Linux进程的基本概念
1,进程就是指系统在进行资源分配和调度所需要的最基本单位,
也是一个具有独立功能的程序的一次运行过程。实际上就是每一个程
序模块还有它执行时所要处理的数据共同组成了进程。
2、理解进程和程序的区别:●程序是静态的,但进程都是动态的
●程序是永久的,但进程都是有生命的●一个程序可以包含若干个进
程,同样的,一个进程也可以包含若干个程序
3 进程号。Linux之中每一个进程都拥有一个唯一的标识号,被称
为PID(Process ID)。系统启动后的第一个进程是init,它的进程号是
l。init是惟一—一个由系统内核直接运行的进程,也是系统中所有进程的
起源。除了init之外,每个进程都有父进程。
二.kinux进程的分类
当你启动Apache程序的时候,linux系统会自动为它分配一个进程
号,然后我们就可以使用这个进程号来监视和控制这个程序,观察它的
运行状态。我们一般把进程分为以下3大类:1)交互式的进程:由一个
Shell命令来启动的进程。这些进程常和用户发生交互,要有一定的时间
来等待用户的操作。这种进程既可以在后台运行,当然也可以在前台来
运行。如控制台命令shell,文本编辑器等。2)批处理的进程:不与特定
的终端相关联,也就是不需要交互,主要是在后台运行的进程。如编译
器、数据库搜索引擎等。3)守护进程:一般是由系统在开机时自动激活
启动或是由超级管理用户root ̄启动,对调度有严格的要求,不能被低
优先级进程阻塞,一般运行于后台。如音视频应用程序等。
三 进程管理的常用命令
1.ps的应用。一功能:用来显示系统进程的各方面信息,方便我们监
视和控制程序。一格式:psi参数卜参数
ps命令常用选项说明 选项 说明 选项 说明 a 可以列出所有进程 e 在命令后显示相应的环境变量 显示进程属主名和启动 U W 显示加宽可以显示较多的资讯 时间等较详细的信息
X 显示没有控制终端的进程 一e 显示所有进程 f 显示进程树 -f 显示全部
例如:#ps aux显示系统中正在运行的所有进程的详细信息。#ps
auxf显示系统的进程树
ps命令输出信息的含义 选项 说明 选项 说明 显示进程占用 PID 显示进程号 TIME
CPU的时间 PPID 显示父进程号 USER 显示用户名 显示进程所启动的 显示进程占用 TTY %CPU
终端次要装置 CPU使用率 显示占用内存与系统 STAT 显示进程当前状态 %MEM
内存问题的百分比 显示进程大小+数据 START 显示进程开始执行时间 SIZE
大小+栈空间大小 显示进程占用的虚 VSZ COMMAND 显示进程的命令名
拟内存空间大小
RSS 显示进程占用的内存空间
进程的状态(STAT)。R,进程处于运行(系统的当前进程)或者准
备运行状态(等待系统分配CPU);S,进程处于睡眠状态;T’追踪或停
止;z,僵死进程(zombie),进程已经结束但因没有妥善处理尚未释放所
有资源{W,进程没有固定的pages;<,高优先级的进程;N,低优先级
的进程。作为一个Linux系统管理员,其主要的一个核心任务就是进程
的监视和控制。”ps”就是这样的一个监视Linux的标准工具,它会显示
正在运行的程序信息。比如,哪些程序运行多长时间和使用多少CPU,
哪些程序是哪个用户来运行的等等。当我们需要人为来判定是哪个程
序会让系统变慢或是终止程序的时候,这些信息则是必需的。用户可
以通过ps命令看到所有的进程,包括正在运行的和没有运行的。其中,
USER域指明了是由哪个用户启动了这个命令。这个信息可以帮助你缩
小问题范围,假设某一个用户占用了服务器大量的I/O,如果我们能够
很快找到它,那么就可以释放其所占据的资源。通过ps命令,用户可以
实时地查看每个进程的状态,如占用了多少CPU,查看内存的状态及
VSZ(虚拟内存大小)和RSS(常驻集大小)的运行状态。我们可以通过
这些数据,来确定这个进程是在正常运行还是出现了异常。我们是在尽
力确保正确合理地运用系统资源,所以经常要由管理员来决定对进程进
行终止或重启的操作。
2、kill的应用
进程通信:Linux中,kill命令是通过向进程发送指定的信号来结
束进程的。前台进程在运行时,可以用[ctrl+cl键来终止它。后台进程
可以使用kill命令向进程发送强制终止信号,以达到终止进程的目的。一
功能:终止正在运行的进程或作业;一格式:kill[选项】PID
常用信号说明 信号 数值 说明 SIGHUP l 从终端上发出的结束信号,表示与终端的连接断开 SIGINT 2 从键盘上发出的结束信号,(CTRL+C) SIGQUT 3 从键盘上发出的结束信号,(CTRL+\) SIGFPE 8 浮点异常信号(如浮点运算溢出) SIGKILL 9 结束接收信号的进程(强行杀死进程) SIGTERM l5 默认的kill命令信号 SIGCHLD 17 表示子进程结束的信号 SIGSTOP l9 来自键盘的停止执行信号(CTRL+z)
通过进程ID杀死进程用kill ̄令,通过进程名字杀死进程用killall
¥ ̄pkill命
3、进程调度
进程调度就是通过合理的调度,选择下一个要运行的进程,系统资
源才能最大限度地发挥作用,多进程才会有并发执行的效果。而进程之
间是资源竞争通过谦让度来实现的。谦让度的值从一20到l9。高谦让度
表示进程优先级别最低,执行的顺序靠后。nice命令:是在创建进程时
为进程指定谦让度的值。renice命令:是通过进程ID找到相应的进程,
用此命令来修改谦让度,即是更改进程的优先级。
4、交互式的进程管理工具。●系统监视器gnome-system-
monitorO终止进程工具xkillQ监视系统任务的工具top。总之,Linux
系统上每个用户任务、每个系统的守护进程,我们都称为进程。Linux
系统则用分时管理的方法能够使所有的任务共同来分享系统上的资
源。而我们要做的就是如何去控制这些进程,让它们能够很好地为用户
服务。
作者简介
李洋.单位:天津工程职业技术学院.邮政编码:500270
辩搋 奈始
87
linux内核进程管理原理_概述及解释说明
linux内核进程管理原理 概述及解释说明
1. 引言
1.1 概述:
本文是对Linux内核进程管理原理进行概述和解释的长文。Linux作为一种开源操作系统,其内核是系统的核心部分,负责管理和调度系统资源,包括进程的创建、终止以及进程间通信等功能。了解Linux内核进程管理原理对于深入理解操作系统的工作机制和性能优化具有重要意义。
1.2 文章结构:
本文将按照以下顺序展开对Linux内核进程管理原理的介绍。首先,在第二部分中,我们将讲解进程的概念与分类,并详细介绍进程控制块(PCB)这一关键数据结构。接着,在第三部分中,我们将深入探讨进程的创建与终止过程,以及涉及到的相关概念和处理方式。在第四部分中,我们将重点介绍Linux内核中常用的三种进程间通信机制:管道通信、共享内存通信和信号量通信。最后,在第五部分中进行总结,并展望未来Linux内核进程管理原理的发展方向。
1.3 目的:
本文旨在全面而透彻地阐述Linux内核进程管理原理。通过对文章所提供内容的学习与理解,读者可以掌握Linux内核中进程管理的基本概念、关键数据结构和调度算法,了解进程的创建与终止过程以及相关处理方式,掌握常用的进程间通信机制,并对Linux内核进程管理原理有一个更深入的认识。同时,文章将提供对未来发展方向的展望,帮助读者了解或研究更先进的进程管理技术和优化措施。通过阅读本文,读者可以加深对操作系统底层工作原理的理解,提升自己在系统开发、性能优化等领域的专业能力。
2. Linux内核进程管理原理:
2.1 进程概念与分类:
在Linux中,进程是正在执行的程序的实例。每个进程都有一个唯一的进程ID(PID)和一组相关的资源(如内存、文件描述符等)。根据其创建方式和执行状态,可以将进程分为以下几类:
- 用户态进程:用户通过执行可执行文件来创建的进程,运行在用户空间中。
- 内核态进程:由操作系统内核启动并运行的特殊进程,负责系统级任务和服务。
linux进程管理实验心得
linux进程管理实验心得
在操作系统课程中,我们进行了一系列关于Linux进程管理的实验。通过这些实验,我对Linux进程管理有了更深入的理解,并且学到了很多有关进程管理的知识和技巧。在这篇文章中,我将分享我的实验心得和体会。
首先,我学会了如何创建和终止进程。在实验中,我们使用了fork()函数来创建子进程,并使用exec()函数来加载新的程序。这样,我们可以在一个进程中创建多个子进程,并且每个子进程可以执行不同的任务。而通过调用exit()函数,我们可以终止一个进程的执行。这些操作让我更加清楚地了解了进程的创建和终止过程。
其次,我学会了如何管理进程的优先级。在Linux中,每个进程都有一个优先级,用于决定进程在CPU上执行的顺序。通过使用nice命令,我们可以为进程设置不同的优先级。较高的优先级意味着进程将更频繁地获得CPU时间片,从而提高了进程的执行效率。这对于提高系统的整体性能非常重要。
此外,我还学会了如何监控和调试进程。在实验中,我们使用了ps命令来查看当前系统中正在运行的进程。通过查看进程的状态和资源使用情况,我们可以了解到系统的运行状况。而使用top命令,则可以实时地监控进程的运行情况。此外,我们还学会了使用gdb调试器来调试进程。通过设置断点和观察变量的值,我们可以找到程序中的错误并进行修复。 最后,我认识到进程管理是操作系统中非常重要的一部分。一个好的进程管理系统可以提高系统的性能和稳定性。通过合理地管理进程的创建、终止和调度,可以使系统更加高效地利用资源,并且能够更好地响应用户的需求。因此,学习和掌握进程管理技术对于成为一名优秀的系统管理员或开发人员来说是非常重要的。
通过这些实验,我不仅学到了很多关于Linux进程管理的知识,还提高了自己的实践能力和问题解决能力。在实验过程中,我遇到了各种各样的问题,但通过查阅资料、与同学讨论和不断尝试,我最终成功地解决了这些问题。这让我更加自信地面对未来的挑战。
Linux进程管理-实验报告
《Linux 操作系统设计实践》实验一:进程管理
实验目的:
(1) 加深对进程概念的理解,明确进程和程序的区别。
(2) 进一步认识并发执行的实质.
(3) 学习通过进程执行新的目标程序的方法。
(4) 了解Linux 系统中进程信号处理的基本原理.
实验环境:Red Hat Linux
实验内容:(1)进程的创建
编写一段程序,使用系统调用fork()创建两个子进程,当此进程运行时,在系统中有一个父进程和两个子进程活动,让每一个进程在屏幕上显示一个字符,父进程显示字符“a";子进程分别显示字符“b”和字符“c”,试观察记录屏幕上的显示结果,并分析原因.
程序代码:
#include
int main()
{
int p1 ,p2 ;
while((p1=fork())==-1);
if(p1==0)
putchar(’b');
else
{
while((p2=fork())==—1);
if(p2==0)
putchar(’c');
else
putchar(’a');
}
return 0;
}
运行结果:bca
分析:第一个while里调用fork() 函数一次,返回两次。子进程P1得到的返回值是0,父进程得到的返回值是新子进程的进程ID(正整数);接下来父进程和子进程P1两个分支运行,判断P1==0,子进程P1符合条件,输出“b”;接下来else里面的while里再调用fork()函数一次,子进程P2得到的返回值是0,父进程得到的返回值是新子进程的进程ID(正整数);接下来判断P2==0,子进程P2符合条件,输出“c”,接下来父进程输出“a”,程序结束。
(2)进程的控制
①修改已编写的程序,将每个进程输出一个字符改为每个进程输出一句话,在观察程序执行时屏幕上出现的现象,并分析原因。
程序代码:
Linux终端中的进程管理和监控
Linux终端中的进程管理和监控
在Linux终端中,进程的管理和监控是系统管理者和开发人员必备的技能之一。通过合理的进程管理和监控,可以保证系统的稳定性和正常运行。本文将介绍Linux终端中进程管理和监控的相关知识,并提供一些实用的命令和工具供读者参考。
一、进程管理
在Linux系统中,每个正在运行的程序都是一个进程。进程管理的任务包括启动、停止、监控和调整进程的运行状态等。下面是一些常用的进程管理命令及其功能:
1. ps命令:用于查看当前系统中运行的进程信息。通过不同的选项,可以显示进程的PID(进程ID)、状态、内存占用等详细信息。
2. kill命令:用于终止指定的进程。可以通过进程ID(PID)或进程名来指定要终止的进程。
3. top命令:用于实时监控系统中的进程状态。它可以显示当前运行的进程列表,并实时更新进程的CPU利用率、内存占用等信息。
4. renice命令:用于调整进程的优先级。可以通过指定进程ID或进程名,设置进程的优先级,以调整系统资源的分配。
二、进程监控
除了上述命令外,Linux终端还提供了一些工具用于进程的监控和管理。下面是一些常用的进程监控工具及其功能: 1. System Monitor:一个图形化的工具,用于实时监控系统的状态和进程信息。它可以以图表的形式显示CPU利用率、内存占用、网络流量等信息,并提供用于杀死进程、调整优先级等功能。
2. htop:一个更加强大的进程监控工具,相比于top命令,htop提供了更多的功能和定制选项。它可以以交互式的方式显示系统状态和进程信息,并允许用户进行进一步的操作,如终止进程、修改优先级等。
3. systemd:一个集成的系统和服务管理工具。通过systemd,可以对系统中的进程进行监控和管理,包括启动、停止、重启进程等操作。它还提供了一些高级功能,如进程的自动重启、进程的依赖管理等。
4. monit:一个轻量级的进程监控工具,可用于监控系统中的进程和服务。它可以周期性地检查指定的进程状态,并执行相应的操作,如自动重启进程、发送警报等。
进程管理实验报告分析(3篇)
第1篇
一、实验背景
进程管理是操作系统中的一个重要组成部分,它负责管理计算机系统中所有进程的创建、调度、同步、通信和终止等操作。为了加深对进程管理的理解,我们进行了一系列实验,以下是对实验的分析和总结。
二、实验目的
1. 加深对进程概念的理解,明确进程和程序的区别。
2. 进一步认识并发执行的实质。
3. 分析进程争用资源的现象,学习解决进程互斥的方法。
4. 了解Linux系统中进程通信的基本原理。
三、实验内容
1. 使用系统调用fork()创建两个子进程,父进程和子进程分别显示不同的字符。
2. 修改程序,使每个进程循环显示一句话。
3. 使用signal()捕捉键盘中断信号,并通过kill()向子进程发送信号,实现进程的终止。
4. 分析利用软中断通信实现进程同步的机理。
四、实验结果与分析
1. 实验一:父进程和子进程分别显示不同的字符
在实验一中,我们使用fork()创建了一个父进程和两个子进程。在父进程中,我们打印了字符'a',而在两个子进程中,我们分别打印了字符'b'和字符'c'。实验结果显示,父进程和子进程的打印顺序是不确定的,这是因为进程的并发执行。
2. 实验二:每个进程循环显示一句话
在实验二中,我们修改了程序,使每个进程循环显示一句话。实验结果显示,父进程和子进程的打印顺序仍然是随机的。这是因为并发执行的进程可能会同时占用CPU,导致打印顺序的不确定性。
3. 实验三:使用signal()捕捉键盘中断信号,并通过kill()向子进程发送信号 在实验三中,我们使用signal()捕捉键盘中断信号(按c键),然后通过kill()向两个子进程发送信号,实现进程的终止。实验结果显示,当按下c键时,两个子进程被终止,而父进程继续执行。这表明signal()和kill()在进程控制方面具有重要作用。
4. 实验四:分析利用软中断通信实现进程同步的机理
在实验四中,我们分析了利用软中断通信实现进程同步的机理。实验结果显示,通过设置信号处理函数,我们可以实现进程之间的同步。当某个进程收到特定信号时,它将执行信号处理函数中的代码,从而实现进程的同步。
实验报告5Linux进程管理
实验报告5Linux进程管理
实验五 Linux进程管理
四、实验过程(实验步骤、记录、数据、分析、结果)(⼀)进程查看、终⽌、挂起及暂停等操作1、使⽤ps命令查看和控制进程
1)显⽰本⽤户进程#ps
2)显⽰所有⽤户的进程#ps–au
3)在后台运⾏cat命令#cat&
4)查看进程cat#ps aux |grep cat
5)杀死进程cat
#kill -9 cat
6)再次查看进程cat,看看是否被杀死。
2、使⽤top命令查看和控制进程
1)⽤top命令动态显⽰当前的进程。
2)只显⽰某⼀⽤户的进程(u)
3)杀死指定进程号的进程(k)
3、挂起和恢复进程
1)执⾏命令cat
2)按【ctrl+z】挂起进程
3)输⼊jobs命令,查看作业4)输⼊bg,把cat切换到后台执⾏5)输⼊fg,把cat切换到前台执⾏6)按【ctrl+c】结束进程
(⼆)通过at命令实现计划任务1、5分钟后执⾏/bin/date
#at now+5minutes
at>/bin/date
at>(提⽰:输⼊【ctrl+d】
job任务号at 年-⽉-⽇⼩时:分钟
如何查看结果?
使⽤atq可以查询到已添加的at计划任务
2、查找系统中任何以c为后缀名的⽂档,将结果保存到$HOME/findc⽂件中,指定时间为2016年12⽉01⽇早上8点
#at 8am 12/01/16
at>find / -name ‘*.c’>$HOME/findc
at>
job任务号at 年-⽉-⽇⼩时:分钟
如何查看结果?
使⽤atq可以查询到已添加的at计划任务
3、2题的命令写到$HOME/findjob中,使⽤at命令执⾏,并将结果保存到
$HOME/findfc⽂件中,指定时间为当前时间后5分钟
#vi $HOME/findjob
内容如下:find / -name ‘*.c’>$HOME/findfc
存盘退出#at –f $HOME/findjob now+5minutes
4、at命令实现在3天后统计/etc/inittab⽂件的⾏数,将统计结果发送⾄
管理Linux 系统进程操作实验报告
操作系统实验报告
题目:管理Linux 系统进程
实验目的
1) 回顾系统进程的概念,加深对Linux / UNIX 进程管理的理解。
2) 回顾ps 命令和选项。
3) 列出当前shell 中的进程。
4) 列出运行在系统中的所有进程。
5) 根据命令名搜索特定的进程。
6) 确定一个进程,终止它。
7) 使用kill 命令终止进程。
8) 根据用户查找和终止进程。
9) 根据命令名终止进程。
实验环境
一台运行Red Hat Linux 操作系统的计算机。
实验内容与步骤
注:本报告中蓝色字表示填空的内容,红色字表示仍然在纠结。
步骤 1:登录进入GNOME。
在 Linux 登录框中填写指导老师分配的用户名和口令,登录Linux 系统。
步骤 2:访问命令行。
单击红帽子,在“GNOME 帮助”菜单中单击“系统工具”-“终端”命令,打开“终
端”窗口。
步骤3:回顾系统进程概念。
每个运行的程序都会创建一个进程,进程分配到一个唯一的进程标识符 (PID) 。PID
被系统用于标识和跟踪进程,直到进程结束。操作系统内核管理所有进程的初始化和终止。
每一个进程都要求系统资源 (例如CPU 时间和RAM空间)
在其中工作。当进程启动的时候,
操作系统把系统资源分配给每个进程,当进程终止的时候,系统回收这些资源。在Linux 系
统启动的时候,首先启动的两个进程是sched (调度) 和init
(初始化) ,它们管理着其他进程。
Linux 系统中有几种不同类型的进程:
守护进程:由 Linux 内核启动的进程,为了特定目的而存在。例如,lpsched 守护进程
存在只是为了处理打印作业。
父进程:派生其他进程的进程是父进程。一个叫做init 的守护进程是第一个调用的进程。
每一个进程,除了init 之外,都有一个父进程。
子进程:由其他进程派生出来的进程叫做子进程。
孤儿进程:在进程返回输出之前,它的父进程结束了,这样的进程叫做孤儿进程。
实验进程管理实验报告
一、实验目的
1. 加深对进程概念的理解,明确进程和程序的区别。
2. 进一步认识并发执行的实质,理解进程的创建、调度、同步与通信。
3. 学习使用Linux系统中的进程管理命令,掌握进程的监控、控制与优化。
二、实验环境
操作系统:Linux Ubuntu 20.04
实验工具:终端(Terminal)、shell命令
三、实验内容
1. 进程的基本概念与特性
2. 进程的创建与调度
3. 进程同步与通信
4. 进程的监控与优化
四、实验步骤
1. 进程的基本概念与特性
(1)通过阅读相关资料,了解进程的概念、特性和生命周期。
(2)使用shell命令查看当前系统中进程的状态,如ps、top、htop等。
2. 进程的创建与调度
(1)使用fork()函数创建进程,观察父子进程之间的关系。
(2)使用exec()函数替换子进程的映像,实现进程的创建。
(3)使用wait()、waitpid()等函数等待子进程结束,控制进程执行顺序。
(4)通过修改进程优先级,观察进程调度策略的变化。
3. 进程同步与通信
(1)使用互斥锁(mutex)实现进程同步,防止数据竞争。 (2)使用条件变量(condition variable)实现进程间的条件同步。
(3)使用信号量(semaphore)实现进程间的同步与通信。
(4)通过管道(pipe)、消息队列(message queue)、共享内存(shared
memory)等机制实现进程间的通信。
4. 进程的监控与优化
(1)使用ps、top、htop等命令监控进程的运行状态。
(2)通过调整进程优先级,优化进程的执行顺序。
(3)使用renice命令调整进程的实时性。
(4)使用nice命令调整进程的调度策略。
五、实验结果与分析
1. 进程的基本概念与特性
通过实验,我们了解到进程是具有一定独立功能的程序关于某个数据集合的一次运行活动,具有并发性、动态性、独立性、异步性和结构特征等特性。
linux之进程管理详解
linux之进程管理详解
|-进程管理
进程常⽤命令
|- w查看当前系统信息
|- ps进程查看命令
|- kill终⽌进程
|- ⼀个存放内存中的特殊⽬录/proc
|- 进程的优先级
|- 进程的挂起与恢复
|- 通过top命令查看进程
计划任务
|- 计划任务的重要性
|- ⼀次性计划at和batch
|- 周期性计划crontab
进程管理的概念
进程和程序区别
1.程序是静态概念,本⾝作为⼀种软件资源长期保存;⽽进程是程序的执⾏过程,它是动态概念,有⼀定的⽣命期,是动态产⽣和消亡
的。
2.程序和进程⽆⼀⼀对应关系。⼀个程序可以由多个时程公⽤;另⼀⼀⽅⾯,⼀个进程在活动中有可顺序地执⾏若⼲个程序
⽗⼦进程的关系
1.⼦进程是由⼀个进程所产⽣的进程,产⽣这个⼦进程的进程称为⽗进程
2.在linux系统中,使⽤系统调⽤fork创建进程。fork复制的内容包括⽗进程的数据和堆栈段以及⽗进程的进程环境。
3.⽗进程终⽌⼦进程⾃然终⽌。
前台进程和后台进程
前台进程
在shell提⽰处理打⼊命令后,创建⼀个⼦进程,运⾏命令,Shell等待命令退出,然后返回到对⽤户给出提⽰符。这条命令与Shell异步运
⾏,即在前台运⾏,⽤户在它完成之前不能执⾏别⼀个命令
很简单,我们在执⾏这个查找命令时,⽆法进⾏其它操作,这个查找就属于前台进程
后台进程
在Shell提⽰处打⼊命令,若后随⼀个&,Shell创建⼦进程运⾏此命令,但不等待命令退出,⽽直接返回到对⽤户给出提⽰。这条命令与
Shell同步运⾏,即在后台运⾏。"后台进程必须是⾮交互式的"
再来看这个命令就变成了后台进程,我们⽤同样的条件进⾏查找,把查找记过放到hzh/test/init.find这个⽂件中。不影响我们前台其它的
操作。
进程的状态
学过操作系统原理的同学应该可以看得懂,不懂再去
翻翻书,不知道你有没有想起当时教这门课的⽼师呢?呵呵
常⽤进程命令
Linux 进程详解
Linux 一个非常重要的概念就是进程,Linux 进程和我们在之前探讨的进程模型非常相似。每个进程都会运行一段独立的程序,并且在初始化的时候拥有一个独立的控制线程。换句话说,每个进程都会有一个自己的程序计数器,这个程序计数器用来记录下一个需要被执行的指令。Linux 允许进程在运行时创建额外的线程。
Linux 是一个多道程序设计系统,因此系统中存在彼此相互独立的进程同时运行。此外,每个用户都会同时有几个活动的进程。因为如果是一个大型系统,可能有数百上千的进程在同时运行。在某些用户空间中,即使用户退出登录,仍然会有一些后台进程在运行,这些进程被称为守护进程(daemon)。
Linux 中有一种特殊的守护进程被称为计划守护进程(Cron daemon),计划守护进程可以每分钟醒来一次检查是否有工作要做,做完会继续回到睡眠状态等待下一次唤醒。
Cron 是一个守护程序,可以做任何你想做的事情,比如说你可以定期进行系统维护、定期进行系统备份等。在其他操作系统上也有类似的程序,比如
Mac OS X 上 Cron 守护程序被称为launchd的守护进程。在 Windows 上可以被称为计划任务(Task Scheduler)。
在 Linux 系统中,进程通过非常简单的方式来创建,fork系统调用会创建一个源进程的拷贝(副本)。调用 fork 函数的进程被称为父进程(parent
process),使用 fork 函数创建出来的进程被称为 子进程(child process)。父进程和子进程都有自己的内存映像。如果在子进程创建出来后,父进程修改了一些变量等,那么子进程是看不到这些变化的,也就是 fork 后,父进程和子进程相互独立。 虽然父进程和子进程保持相互独立,但是它们却能够共享相同的文件,如果在 fork 之前,父进程已经打开了某个文件,那么 fork 后,父进程和子进程仍然共享这个打开的文件。对共享文件的修改会对父进程和子进程同时可见。
