linux基础:进程管理

1.进程和程序(process and program)

首先我们对进程作一明确定义:所谓进程是由正文段(text)、用户数据段(user segment)以及系统数据段(system segment)共同组成的一个执行环境。

程序只是一个普通文件,是一个机器代码指令和数据的集合,这些指令和数据存储在磁盘上的一个可执行映象(executable image)中,所以,程序是一个静态的实体。linux是一个多任务操作系统,也就是说,可以有多个程序同时装入内存并运行,操作系统为每个程序建立一个运行环境即创建进程,每个进程拥有自己的虚拟地址空间,它们之间互不干扰,即使要相互作用(例如多个进程合作完成某个工作),也要通过内核提供的进程间通信机制(ipc)。linux内核支持多个进程虚拟地并发执行,这是通过不断地保存和切换程序的运行环境而实现的,选择哪个进程运行是由调度程序决定的。

进程是一个动态实体,进程实体由三个独立的部分组成:

(1)正文段(text):存放被执行的机器指令。这个段是只读的(所以,在这里不能写自己能修改的代码),它允许系统中正在运行的两个或多个进程之间能够共享这一代码。例如,有几个用户都在使用文本编辑器,在内存中仅需要该程序指令的一个副本,他们全都共享这一副本。

(2)用户数据段(user segment):存放进程在执行时直接进行操作的所有数据,包括进程使用的全部变量在内。显然,这里包含的信息可以被改变。虽然进程之间可以共享正文段,但是每个进程需要有它自己的专用用户数据段。例如同时编辑文本的用户,虽然运行着同样的程序__编辑器,但是每个用户都有不同的数据:正在编辑的文本。

(3)系统数据段(system segment):该段有效地存放程序运行的环境。事实上,这正是程序和进程的区别所在。如前所述,程序是由一组指令和数据组成的静态事物,它们是进程最初使用的正文段和用户数据段。作为动态事物,进程是正文段、用户数据段和系统数据段的信息的交叉综合体,其中系统数据段是进程实体最重要的一部分,之所以说它有效地存放程序运行的环境,是因为这一部分存放有进程的控制信息。系统中有许多进程,操作系统要管理它们、调度它们运行,就是通过这些控制信息。linux为每个进程建立了task_struct数据结构来容纳这些控制信息。

进程和程序(process and program)

如图所示,程序与进程的关系

2.工作管理(job control)

工作管理就是当我们登录系统取得bash shell 之后,在单一终端机下同时进行多个工作的行为管理。bash只能管理自己的工作,不能管理其他bash的工作,此外,工作又分为前台和后天,在后天的工作状态分为“暂停”与“运行”。

2.1&:可以直接将命令丢到后台执行

例如我们将/etc目录进行备份成为/tmp/etc.tar.gz,并丢到后台。

2.2"&"代表丢到后台,[1]代表工作号码,“2448”代表PID

ctrl+z:可以将目前的工作丢到后台暂停,如我编辑/etc/fstab后按ctrl+z,如下所示

[2]代表第二个工作,Done表示完成,Stopped表示停止

2.3查看目前后台的状态:

[[email protected] ~]# jobs

  • -l  列出job number和命令,pid
  • -r  仅列出正在运行的job
  • -s  仅列出停止状态的job

2.4将后台工作拿到前台处理:fg

%2就是取出2号工作,其中“+”代表默认的取用工作,“-”次取用工作。如果fg后不带参数,就默认取用“+”工作。

2.5让工作在后天的状态变成运行态:bg

可以看到通过bg命令可以使工作由STOPPED变成RUNNING。

2.6管理后台的工作:kill

[[email protected] ~]# kill

  • -l  列出目前kill能够使用的信号
  • -1  重新读取一次参数的配置文件
  • -9  立刻强制删除一个工作
  • -15 以正常的流程结束一个工作

kill -l 命令可以查看所有single

3.进程管理

时间: 2024-10-11 14:20:09

linux基础:进程管理的相关文章

Linux基础--进程管理相关命令介绍(2)

本文主要介绍了Linux中进程管理的相关命令,涉及到的主要命令有top,vmstat等. (1)top ①功能:用来查看CPU,内存以及进程的状态. ②用例: ③相关注释: load average表示负载,三个数值分别表示第1分钟,第5分钟,第10分钟 Cpu中us表示用户空间程序占用百分比,sy表示内核模式占用百分比,ni表示调整NICE值所占用的    CPU百分比,id表示CPU的空闲比例,wa表示等待磁盘IO完成所占用的时间比例,hi表示硬件中断占     据的百分比,si表示软中断所

Linux基础--进程管理相关命令介绍(1)

本文主要介绍了Linux中进程管理的相关命令,涉及到的主要命令有pstree,ps. (1)pstree ①功能:用来查看进程树 ②用例: (2)ps ①功能:用来显示系统当前进程状态的命令 ②用例: ③相关用法: ps a:显示所有跟终端相关的进程 ps x:显示所有跟终端无关的进程 相关注释: STAT各代码含义: S:可中断的睡眠态 D:不可中断的睡眠态 R:运行或可运行 T:停止 Z:僵死 s:session leader l:多线程进程 +:前台进程 N:低优先级进程 <:高优先级进程

Linux基础--进程管理及其基本命令

本文主要讲解Linux中进程管理的基本命令使用方法. 1. top命令 作用: 动态显示进程状态 格式: top [options] 常用选项: -d: 后面可以接秒数,就是整个程序画面更新的秒数, 默认是5秒 -b: 以批次的方式执行 top -p: 指定对某个PID进行观察 字段意义: top - 23:52:38 up 19:58,  2 users,   load average: 0.00, 0.00, 0.00 过去1分钟,5分钟,15分钟的系统平均负载: 如果高于1表示系统繁忙 T

Linux基础进程管理优先级

一.进程优先级 Linux进程调度及多任务 每个cpu(或者cpu核心)在一个时间点上只能处理一个进程,通过时间片技术,Linux实际能够运行的进程(和线程数)可以超出实际可用的cpu及核心数量.Linux内核进程调度程序将多个进程在CPU核心上快速切换,从而给用户多个进程在同时运行的印象: 相对优先级nice 由于不是每个进程都与其他进程同样重要,可告知进程调度程序为不同的进程使用不同的调度策略,常规系统上运行的大多数进程所使用的调度策略为 SCHED_OTHER(也称为SCHED_NORMA

Linux基础-----进程管理

进程:运行中的程序 程序:指令+数据组成 执行某个程序,将程序的指令加载到内存,CPU从内存中逐条执行指令,并处理数据输出至IO 程序实现并行的方式: CPU:使用分时操作,随着时间的流逝,将CPU分割成时间片,给某个程序几毫秒的时间片,时间片耗尽,程序暂停,保存现场 然后给下个程序分配时间片 内存 有CPU的MMU功能将内存真实的空间化成多个页框,然后内核给程序虚拟出内存空间.每个程序认为自己是独立占用内存,程序的真实数据 有内核分配在物理内存的某个页框内,在物理内存中,同一个程序的页框可能不

linux系统-进程管理-计划任务

linux系统-进程管理-计划任务 一 计划任务命令 1 at 某一时刻执行任务 2 batch 在系统负载不重的时候执行 3 cron 周期性执行 二 at命令及使用 1 at [-f文件名]时间 2 at [-d删除任务] 3 at [-l查看任务] 4 绝对计时法:hh:mm MM/DD/YY at 17:30 4/18/15 5 交互方式:at 9:00 6 使用命令文件的方式:生成文件at.script 使用at命令 at -f at.srcipt 9:00 4/18/15 or at

Linux基础-----磁盘管理

文件系统 Windows NTFS FAT32 Linux VFS:虚拟文件系统:将底层文件系统的不同,通过统一的接口,输出给上层应用 ext2 ext3 ext4 xfs 文件系统:对分区文件就行组织管理,并建立索引表,文件系统有内核提供 格式化:创建文件系统 低级格式化:创建磁道.扇区 高级格式化:创建文件系统 分区是按柱面来划分 磁道:数据存储在磁道上 扇区:将磁道划分成扇状用于管理 柱面:多个盘片,相同位置的扇区,形成柱面 0磁道的0扇区:(不属于任何分区)MBR 512字节   主引导

Linux基础-----内存管理

free -m 查看内存大小 Mem:物理内存统计 total 物理内存大小 used  以使用内存(包含buffers;bached) free  空闲内存 shared 共享内存 buffers 缓冲(用于写操作) cached  缓存(用于读操作) -+ buffers/cached used (不包含buffers和cached;实际内存使用量) free  (包含buffers和cached;实际空闲内存) 根据以上分析,可以得出一下结论: 1.  实际可用内存大小: Free= Fr

Linux之进程管理(1)基本介绍

Linux之进程管理(1)基本介绍 什么是进程: linux系统中,进程管理相当重要.所谓进程,就是相当于触发任何一个事件时,系统都会将此事件当成一个角色定义成为一个进程,并且给予这个进程一个IP,成为PID,同时依据启发这个进程的用户与相关属性关系,给予这个PID一组有效的权限设定.然后这个PID能够在linux上面进行的各种动作,这个PID代表一个角色. PID的产生: 在linux中执行此程序文件中,内核并不是马上进行执行,而是根据程序文件的执行者的选项和一些相应的属性等参数,然后包括其中

Linux之进程管理及Shell脚本

使用!来调用过往命令 !! 重复执行上一条指令 !a 重复执行上一条以a为首的指令 !nubmer 重复执行上一条在history表中记录号码为number的指令 !-number重复执行前第number条指令 ailas abc='cd xxxxxxxxxxx/xxxxxxxx/xxxxxxxxxxxxx' unalias abc " "将一串字符当成字符串来看,可以转译特殊字符 ' '将一串字符当成字符串来看,无法转译特殊字符 ·能够返回命令执行的结果 echo `uname -a