Java教程

进程及计划任务管理

本文主要是介绍进程及计划任务管理,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

进程

什么是进程?

进程是一个具有一定独立功能的程序在一个数据集上的一次动态执行的过程,是操作系统进行资源分配和调度的一个独立单位,是应用

程序运行的载体。进程一般由程序,数据集合和进程控制块三部分组成。

程序用于描述进程要完成的功能,是控制进程执行的指令集;

数据集合是程序在执行时所需要的数据和工作区;

程序控制块包含进程的描述信息和控制信息是进程存在的唯一标志

 

进程具有的特征:

动态性:进程是程序的一次执行过程,是临时的,有生命期的,是动态产生,动态消亡的;

并发性:任何进程都可以同其他进行一起并发执行;

独立性:进程是系统进行资源分配和调度的一个独立单位;

结构性:进程由程序,数据和进程控制块三部分组成

 

什么是线程?

线程是程序执行中一个单一的顺序控制流程,是程序执行流的最小单元,是处理器调度和分派的基本单位。

一个进程可以有一个或多个线程,各个线程之间共享程序的内存空间(也就是所在进程的内存空间)。

一个标准的线程由线程ID,当前指令指针PC,寄存器和堆栈组成,而进程由内存空间(代码,数据,进程空间,打开的文件)和一个或多个线程组成。

 

 

进程与线程的区别:

1. 线程是程序执行的最小单位,而进程是操作系统分配资源的最小单位;

2. 一个进程由一个或多个线程组成,线程是一个进程中代码的不同执行路线

3. 进程之间相互独立,但同一进程下的各个线程之间共享程序的内存空间(包括代码段,数据集,堆等)及一些进程级的资源(如打开文件和信

号等),某进程内的线程在其他进程不可见;

4. 调度和切换:线程上下文切换比进程上下文切换要快得多

 

为什么不使用多进程而使用多线程呢?

线程启动比较快,退出比较快,对系统资源的冲击也比较小

 

如何查看进程信息

  1. ps -l   列出与本次登录有关的进程信息;

 2.ps -aux   查询内存中进程信息;

 

各列含义:

 

列名称含义
USER 该进程是由哪个用户产生的
PID 进程标记号
%CPU 该进程占用 CPU 资源的百分比,占用的百分比越高,进程越耗费资源
%MEM 该进程占用物理内存的百分比,占用的百分比越高,进程越耗费资源
VSZ 该进程占用虚拟内存的大小,单位为 kb
RSS 该进程占用实际物理内存的大小,单位为 kb
TTY 该进程是在哪个终端运行的
STAT

进程状态:

-D:不可被唤醒的睡眠状态,通常用于 I/O 情况

-R:该进程正在运行

-S:该进程处于睡眠状态,可被唤醒

-T:停止状态,可能是在后台暂停或进程处于出错状态。

-W:内存交互状态

-X:死掉的进程

-Z:僵尸进程。进程已经中止,但是还是占用硬件资源。

-<:高优先级

-N:低优先级

-L:被锁入内存

-s:包含子进程

-l:多线程

-+:位于后台

START 该进程的启动时间
TIME 该进程占用 CPU 的运算时间
COMMAND 产生此进程的命令名

   3.ps -aux | grep ***   查询***进程的详细信息;

   4.top   查看内存中进程的动态信息;

相关命令:

top命令

-d :指定 top 命令每隔几秒更新。默认是 3 秒

-b:使用批处理模式输出。一般和"-n"选项合用,用于把 top 命令重定向到文件中

-n :指定 top 命令执行的次数。一般和"-"选项合用

-p :仅查看指定 ID 的进程

-s:使 top 命令在安全模式中运行,避免在交互模式中出现错误

-u :只监听某个用户的进程

 

top行名称                                                                 说明

第一行:任务队列                                                   系统时间,up(已运行时长),user(当前用户登录的个数),load average(系统负载)

第二行:进程信息                                                   tasks(总进程数),running(正在运行的进程),sleeping(休眠的进程),stop(中止的进程),zombie(僵死的进程)

第三行:CPU                                                          us(用户占用),sy(内核占用),ni(优先级占用),id(空闲CPU),wa(I/O等待占用),hi(硬件中断占用),si(软件中断占用),st(虚拟化占用)

第四行:内存                                                          total(总内存),free(空闲内存),used(已用内存),buff/cache(物理和交换内存的缓冲区内存)

第五行:交换空间                                                   total(总交换空间),free(空闲交换空间),used(已用交换空间),avail Mem(可用物理空间)

 

top列名称                                                              说明

PID                                                                        进程标记号

USER                                                                    进程所有者的用户名   

PR                                                                         优先级   

NI                                                                          谦让度值,负值为高优先级,正值为高优先级             

VIRT                                                                      进程使用的虚拟内存总量(kb)

RES                                                                      进程使用的物理空间大小(kb)

SHR                                                                      共享内存大小(kb)

S                                                                           进程状态

%CPU                                                                  上次更新到现在的CPU时间占用百分比     

%MEM                                                                 进程使用的物理内存百分比 

TIME+                                                                  进程使用的CPU时间总计      

COMMAND                                                          命令名

 

top常用快捷键

快捷键                                                                   说明

P                                                                           根据CPU使用百分比大小进行排序

M                                                                          根据驻留内存大小进行排序

N                                                                          根据启动时间进行排序

c                                                                           按照 CPU 的使用率排序

b                                                                           帮助信息

k                                                                           根据提示输入指定的PID号并回车终止对应的进程

q                                                                           退出

数字1                                                                    显示CPU个数及状态

 

5.kill -9 pid   杀死进程。

 

 


6.ps -elf命令

-e:显示系统内所有进程信息

-l:使用长格式显示进程信息

-f:使用完整格式显示进程信息

 

 

表头含义
F 进程标志,说明进程的权限,常见的标志有两个: 1:进程可以被复制,但是不能被执行;4:进程使用超级用户权限;
S 进程状态。具体的状态和"psaux"命令中的 STAT 状态一致;
UID 运行此进程的用户的 ID;
PID 进程的 ID;
PPID 父进程的 ID;
C 该进程的 CPU 使用率,单位是百分比;
PRI 进程的优先级,数值越小,该进程的优先级越高,越早被 CPU 执行;系统定义不可以人为修改
NI 进程的优先级,数值越小,该进程越早被执行;可以人为修改
ADDR 该进程在内存的哪个位置;
SZ 该进程占用多大内存;
WCHAN 该进程是否运行。"-"代表正在运行;
TTY 该进程由哪个终端产生;
TIME 该进程占用 CPU 的运算时间,注意不是系统时间;
CMD 产生此进程的命令名;

7.ps -aT:显示所有线程

-a:显示所有进程的PID(进程标记号)

-T:查看线程信息

 

 

8.pgrep “进程名”

常用选项:

-l 同时显示进程名和PID

-o 当匹配多个进程时,显示进程号最小的那个

-n 当匹配多个进程时,显示进程号最大的那个

 

 

 

 

 

查看进程树

pstree

常用选项:

-a:显示完整信息

-u:列出对应用户名

-P:列出对应PID号

 

 

 

进程启动方式

手工启动:1.前台启动:用户输入命令,直接执行程序

                  2.后台启动:在命令行尾加上“&”

 

 

调度启动:1.使用at命令,设置一次性计划任务

                  2.使用crontab命令,设置周期性计划任务

 

进程的前后台调度

1.ctrl+z:挂起当前进程,即调入后台并停止执行

2.jobs命令:查看处于后台的任务列表

jobs -l:显示PID号

fg命令:将后台进程恢复至前台运行

 

 

 

终止进程运行

1.ctrl+c

2.kill +进程号

 

计划任务管理

1.at命令

at  [HH:MM]  [yyyy-mm-dd]

      时    分       年    月   日

atq        查看未执行任务列表

atrm [任务序号]       删除该任务

 

 

 

crontab命令

概念:按预先设置好的时间重复执行用户指定的命令,属于周期性计划任务

crontab  -e  [-u  用户名]            编辑计划任务

crontab  -l  [-u  用户名]            查看计划任务  

crontab  -r  [-u  用户名]            删除计划任务

 

crontab的编辑格式

第一个“*”            分钟                  0~59

第二个“*”            小时                  0~23

第三个“*”               天                  1~31

第四个“*”                月                 1~12

第五个“*”            周几                  0~7

 

特殊符号

*                        代表任何时间

,                      代表不连续时间

-                        代表连续时间范围

/                        代表时间间隔

 

 

这篇关于进程及计划任务管理的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!