第13章,进程和计划任务

更多内容请点击:

Linux学习从入门到打死也不放弃,完全笔记整理(持续更新,求收藏,求点赞~~~~)

http://blog.51cto.com/13683480/2095439

本章内容:

进程相关概念

进程及系统相关工具

计划任务

进程概念:

内核的功用:进程管理、文件系统、网络功能、内存管理、驱动程序、安全功能等

process:       运行中的程序的一个副本,是被载入内存的一个指令集合

进程ID(PID)号码被用来标记各个进程

UID、GID、和SElinux语境决定对文件系统的存取和访问权限

通常从执行进程的用户来继承

存在生命周期

task struct:   Linux内核存储进程信息的数据结构格式

task list:              多个任务的task  struct组成的链表

进程创建:

init/systemd:  第一个进程

进程都是由其父进程创建, CoW 写时复制机制

fork()生成子进程,clone()生成子进程或者兄弟进程

进程的基本状态:

创建状态:

进程在创建时需要申请一个空白PCB(process  control block进程控制块)

向其中填写控制和管理进程的信息,完成资源分配。如果创建工作无法

完成,比如资源无法满足,就无法被调度运行、把此时进程所处状态称为

创建状态

就绪状态:

进程已准备好,已分配到所需资源,只要分配到CPU旧能够立即运行

执行状态:

就绪状态被调度后,进程进入执行状态

阻塞状态:

正在执行的进程由于某些事件(io请求,申请缓存区失败)而暂时无法运行,

进程受到阻塞。在满足请求时进入就绪状态等待系统调用

终止状态:

进程结束,或出现错误,或被系统终止,进入终止状态,无法再执行

------       许可        ------             时间片完 ------    释放           ----

| 创建  |    ————————>> | 就绪  |<<=============>>| 执行 |————————>> |终止|

------                         ------    进程调度           ------                        ----

o                                   |                                              |

o                                   |    I/O完成   ------    I/O请求|

o                                 <<————————| 阻塞 |<<————————

就绪状态无法直接变成阻塞状态,先执行

阻塞状态无法直接变成执行状态,先就绪

进程优先级:

系统优先级:

0-139     centos4 5

各有140个运行队列和过期队列

0-98,99   centos6

实时优先级:99-0        值越大优先级最高

nice值:-20到19,对应系统优先级100-139(centos45) 或99(centos6)

Big O:时间复杂度,用时和规模的关系

O(1),O(logn),O(n)线性,O(n^2)抛物线,O(2^n)

进程优先级调整:

静态优先级:100-139

进程默认启动时的nice值为0,优先级为120

只有root用户才能降低nice值(提高优先级)

nice:

nice [option][cmd [arg]]

如:nice -n 10 vim & 将vim的优先级降低10

nice -n -15 vim     将vim的优先级提高15并执行

renice:

renice [-n] priority

如:

renice 0|5|-5 -p 93074  将pid为93074的ni 设为0|5|-5

renice 10 -u root         将用户root的进程ni设置为10

进程相关概念:

进程内存:

Page  Frame:页框,分页存储,Page 4K

LRU:Least Recently Used 近期最少使用算法,释放内存

MMU: Memory  Management Unit 负责转换线性和物理地址

TLB:Translation Lookaside Buffer 翻译后备缓冲器,用户保存虚拟地址

和物理地址关系的缓存

IPC: Inter Process  Communication     进程间通信

同一主机:

signal:信号

shm:shared memory 共享内存

semaphore:信号量,一种计数器

不同主机:

socket: IP和端口号

RPC:     remote procedure call

MQ:        消息队列,kafka,ActiveMQ

进程类型:

守护进程:daemon,在系统引导过程中启动的进程,和终端无关进程

前台进程:跟终端相关,通过终端启动的进程

注意:两者可相互转化

进程状态

运行态:        running

就绪态:        ready

睡眠态:

可中断:    interruptable

不可中断:uninterruptable

停止态:        stopped,暂停于内存,但不会被调度,除非手动启动

僵死态:       zombie,僵死进程

进程分类:

CPU-Bound:       cpu密集型,非交互,如加密解密

IO-Bound:   IO密集型,交互

系统管理工具:

Linux系统状态的查看及管理工具:

pstree,ps,pidof,top,htop,glance,pmap,vmstat,

dstat,kill,pkill,job,bg,fg,nohup

pstree:

pstree -p

Linux 系统各进程的相关信息均保存在/proc/PID目录下的各文件中

ps:

ps [option]...           查看进程状态信息

支持三种风格选项:

UNIX选项     -A  -e

BSD选项              a u  x

GNU选项              --help

ps:        默认显示当前终端中的进程

a                                  所有终端中的进程

x|-x                       所有非终端进程

u                                  显示进程所有者的信息

f|--forest              显示进程树

k|--sort  [-]属性      对属性排序,-表示倒序

centos6不支持%cpu %mem排序

o 属性1,属性2..        指定需要显示的信息

如:pid,cmd,%cpu,%mem

L                                  支持的属性列表

-C cmd1,cmd2,..            指定命令

-L                                显示线程

-e|-A                           显示所有进程

-f                                 显示完成格式进程信息

-F                                 显示更完整格式的进程信息

-H                               以进程层级格式显示进程相关信息

-u userlist                    指定有效的用户ID或名称 euid

-U userlist                    指定真正的用户ID或名称 ruid

-g gid或groupname   指定有效的gid或组     egid

-G gid或groupname    ruid

-p pid                          显示pid的进程

--ppid pid                   显示pid的子进程信息

-M|Z                            显示SElinux的信息,相当于Z

-C cmd -o pid=           通过cmd查看pid

-p pid -o comm=        通过pid查看comm

alias ps1='ps xo user,pid,%cpu,%mem,vsz,rss,tty,stat,start,time,pri,nice,cmd'

输出属性:

VSZ:     Virtual memmory  size,虚拟内存集,线性内存

RSS:     Rdsident Size,     常驻内存集,实际占用内存

STAT:   进程状态

R:           running

S:          interrupttable sleeping 可中断睡眠

D:         uninterrupttable sleeping     不可中断睡眠

T:          stopped         停止

Z:          zombie

+            前台进程

l             多线程进程

L            内存分页并带锁

N            低优先级进程

<            高优先级进程

ni: nice值

pri:       priority优先级

psr:      processor      CPU编号

rtprio:  实时优先级

示例:

ps axo pid,cmd,psr,ni,pri,rtprio

常用组合:

aux  -ef    -eFH

-eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,comm

axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm

显示指定用户名(RUID)或用户ID的进程

ps -fU  apache

ps -fU 48

此处貌似用-u 也不错,因为apache是系统用户,结果一样

显示指定用户名(EUID)或用户ID的进程

ps -fu  wang

ps -fu     1000

这里用-U,结果就有可能不一样了

查看以root用户权限(实际和有效ID)运行的每个进程:

ps -U root -u  root

列出某个组拥有的所有进程(实际组ID:RGID  或名称)ps

ps -fG  nginx

列出有效组名称(或会话)所拥有的所有进程:

ps -fg  mysql

ps -fg  27

通过进程id来显示所属的进程:

ps -fp 1234

以父进程ID来显示其下所有的进程,如显示父进程为1154的所有进程:

ps  -f/l --ppid  1154

显示中PID的多个进程

ps -lp 6507 6508  6509...

要按tty 显示所属进程

ps -lt  pts/4

以进程树显示系统中的进程如何相互链接

ps -e --forest      ps auxf

以进程树显示指定的进程

ps f -f -C  sshd

ps -ef --forest  |grep -v grep |grep sshd

要显示一个进程的所有线程,将显示LWP(轻量级进程)以及NLMP(轻量级进程数)列:

ps -fL -C  httpd

要列出所有格式说明符:

ps  L

查看进程的PID ppid 用户名 和命令

ps -eo pid,ppid,user,cmd

自定义格式显示文件系统组,ni值开始时间和进程的时间

ps -p 1234 -o pid,ppid,fgroup,ni,lstart,etime

使用其PID查找进程名称

ps -p 1234 -o  comm=

要以其名称选择特定进程,显示其所有子进程

ps -C sshd,bash

查找指定进程名所有的所属PID,在编写需要从std输出或文件读取PID的脚本

时,这个参数很有用

ps -C httpd,sshd -o pid=

检查一个进程的执行时间

ps -eo comm,etime,user|grep nginx

查找占用最多内存和cpu的进程

ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem  |head

ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu  |head

显示安全信息:

ps  -eM

ps  --context

使用以下命令以用户定义的格式显示安全信息

ps -eo euser,ruser,suser,fuser,f,comm,label

使用watch使用程序执行重复的输出以实现对进程进行实时的监视,如

下面的命令显示每秒钟的监视:

watch                   watch -n 1 'ps -eo pid,ppid,cmd,%mem,%cpu f -mem%|head'

搜索进程:----------------------------------------------------------------

ps 选项 | grep等其他命令

按预定义的模式:pgrep

pgrep:

pgrep [options] pattern

-u uid            euid,有效用户为uid的所有进程 的pid

-U uid           Ruid,真实用户为uid的所有进程 的pid

-t termina      与指定终端相关的进程的pid

-l                  显示进程名

-a                 显示完成进程名(centos6 不支持)

-P pid            显示指定进程的子进程

pidof       按确切的程序名称查找

piodof /bin/bash

系统工具:---------------------------------------------------------

uptime:

显示当前时间,系统已启动的时间,当前上线人数,系统平均负载(1/5/10分钟  )

系统平均负载:

在特定时间间隔内运行队列中的平均进程数

通常每个cpu内核的当前活动进程数不大于3,那么系统的性能良好。

如果每个cpu内核的任务数大于5,那么次主机的性能有严重问题

如果linux主机是1个双核cpu,当load Average = 6  ,说明机器已经被充分使用

进程管理工具:------------------------------------------------------------------

top:

内键命令:

排序:

p           以占据的cpu百分比,%cpu

M          占据内存百分比

T            累计占据cpu时间,TIME+

首部信息显示:

l                    uptime信息

t                    tasks及cpu信息

1(数字)     cpu分别显示

m                  memory信息

退出命令                     q

修改刷新时间间隔       s

终止指定进程               k

保存文件:                   W

显示完成cmd                      c

栏位信息简介

cpu:us 用户空间,sy 内核空间,ni  调整nice时间,id 空闲时间

wa 等待IO时间,hi 硬中断,si 软中断,st  被虚拟机偷走的时间

选线:

-d # 指定刷新时间间隔,默认为3s

-b          全部显示所有进程

-n # 刷新多少次后退出

htop:

选项:

-d #              指定延迟时间

-u                 仅显示指定用户的进程

-s COLUME   以指定字段进行排序

排序:P M T

s     跟踪选定进程的系统调用

l      显示选定进程打开的文件列表

a     将选定的进程绑定至某指定CPU核心

t     显示进程数

k     结束进程

q     退出

kill:

向进程发送控制信号,以实现对进程管理,每个信号对应一个数字,信号名称

以SIG开头(可省略),不区分大小写

显示当前系统可用信号

kill -l

trap -l

常用信号:     man 7 signal

1     SIGHUP         无须关闭进程而让其重读配置文件

2     SIGINT           终止正在运行的进程,相当于ctrl+c

3     SIGQUIT         相当于ctrl+\

9     SIGKILL          强制杀死正在运行的进程

15    SIGTERM        终止正在运行的进程

18    SIGCONT              继续运行

19    SIGSTOP        后台休眠

指定信号的方法

数字方式,1,2,9,15

信号的完成名称     SIGHUP

信号的简写名称    HUP

按PID:

kill [-signal]  pid

kill -n HUP pid      kill -s SIGHUP  pid

按名称:

killall [-signal]  command

按模式:

pkill [options]  pattern

-signal

-u uid                  euser为pid 的进程

-U uid                  ruser为pid 的进程

-t  terminal            指定终端相关的进程

-l  显示进程名

-P pid                  指定进程的子进程

内存工具:-----------------------------------------------------------

free:

free [option] 查看内存空间使用状态

-b          以字节为单位

-m         以MB为单位

-g          以GB为单位

-h          human 易读格式

-o          不显示-/+  buffers/cache 行

-t           显示RAM+swap  的总和

-s n       刷新时间为n秒

-c n       刷新n次后退出

vmstat:

vmstat [optins] [delay[count]]      虚拟内存以及磁盘io查询

vmstat 2 5             表示2秒刷新一次,一共刷5次

-m         查看内存具体使用情况非常详细

-s          内存统计信息

--help    使用帮助

信息显示:

procs:

r      可运行(正在执行或等待运行)进程的个数,和核心数有关

b    处于不可中断睡眠态的进程个数(被阻塞的队列的长度)

memory

swpd     交换内存使用总量

free 空闲物理内存总量

buffers cache  用于buffer/cache的内存总量

swap

si           从磁盘交换进内存的数据速率(kb/s)

so          从内存交换至磁盘的数据速率(kb/s)

io

bi           从块设备读入数据到内存的速率(kb/s)

bo          保存数据至块设备的速率

system

in: interrupts   中断速率,包括时钟

cs   context switch 进程切换速率

cpu

us 用户空间,sy 内核空间,id 空闲时间,wa  等待时间 st 偷走时间

iostat:

统计cpu和设备io信息

iostat 1 5       刷新显示

pmap     进程对应的内存映射

pmap [options] pid..

-x    显示详细格式

如  pmap -x 1

另外一种实现:

cat  /proc/pid/maps

系统监控工具-----------------------------------------------------------

glances:

glaces [-bdehmnrsvyz1] [-B bind] [-c server] [-C conffile] [-p  port]

[-P password] [--password]  [-t refresh] [-f file] [-o output]

内键命令:

排序:    a     自动排序

c     cpu%排序

m   mem%排序

p    按名称排序

i      按IO排序

u    user排序

t     network I/O

显示/隐藏 左侧窗口显示

d    disk 磁盘io信息

f      file system stats,文件系统信息

n    network stats       网络信息

s      Show/hide sensors  stats

y     Show/hide hddtemp  stats

l      Show/hide logs

其他:

b    网络信息用bit为单位

w    Delete warning logs

x      Delete warning and critical  logs

数字1     分别显示单颗cpu

h    help 帮助界面

q    退出

常用选线:

-b          =b以byte为单位显示网卡数据速率

-d          d 关闭磁盘IO模块

-f file      设定输入文件位置

-t #        延迟时间间隔

C/S模式下云心glances命令

服务器模式:

glances -s -B  IP

客户端模式:

glances -c  IP

dstat:

系统资源统计,代替vmstat iostat

dstat [avf][options] [delay[count]]

例如:

dstat -av 3 5 3秒一次刷新 一共刷新5次

选项:    -c           cpu相关

-d          disk相关

-g          page相关

-m         mem相关

-n          net相关

-p          proc相关

-r          io 相关

-s          swap相关

长选项

--tcp  --udp  --unix   --raw  --socket  --ipc

--top-cpu

--top-io

--top-mem

--top-latency 延迟最大的进程

iotop:

用来监视磁盘I/O使用状况的top类工具,具有与top相似的UI,其中包括

PID、用户、IO、进程等相关信息,可查看每个进程是如果使用io

iotop输出信息:

第一行:       read 和write的速率总计

第二行:       实际的read和write速率

第三行:

TID/PID   :       线程id,按p转换为pid

PRIO:          优先级

USER:          用户

DISK  READ: 磁盘读速度

DISK  WRITE:磁盘写速度

SWAPIN:     swap使用百分比

COMMAND:  进程命令

选项:

-o --only                    只显示正在产生IO的进程, 运行中按o生效

-b --batch           非交互模式,一般用户记录日志

-d # --delay=              刷新间隔默认1s  可以为小数 比如1.5

-n # --iter=          检测次数,默认无限

-p PID   --pid=           指定检测的进程

-u USER --user=         指定检测某个用户产生的IO

-P --processes            仅显示进程,默认iotop显示所有线程

-a  --accumulated 显示累计的IO,而不是带宽       交互a键

-k --kilobytes              使用KB单位

-t --time       加上时间戳,非交互式

-q --quit              禁止头几行,非交互式,有三种指定方式

-q          只在第一次检测时显示列名

-qq        永远不显示列名

-qqq      用户不显示i/o汇总

交互式按键:

r                    反向排序

o                  切换至选线only

p                   切换至processes选线

a                   速率/带宽切换

q                  退出

i                    改变线程的优先级

作业管理--------------------------------------------------------------------

linux的作业控制:

前台作业:    通过终端启动,且启动后一直占据终端

后台作业:     可通过终端启动,但启动后即转入后台运行(释放终端)

让作业运行与后台:

1     运行中的作业:    ctrl+z

2     尚未启动的作业    cmd &

后台作业虽然被送往后台运,但其依然与终端相关,退出终端,将关闭后台作业

如果希望送往后台后,剥离与终端的关系

nohup cmd  &>/dev/null &

screen;cmd

查看当前终端所有作业:

jobs

作业控制:

fg [[%]num]    把指定的后台作业调回前台

bg [[%]num]   让送往后台的作业在后台继续运行

kill [%num]     终止指定的作业

并行运行:

同时运行多个进程,提高效率

方法1:

vim all.sh

f1.sh  &

f2.sh  &

f3.sh  &

all.sh

方法2:

(f1.sh&);(f2.sh&);(f3.sh)

方法3:

{  f1.sh& f2.sh& f3.sh& }

计划任务:

Linux任务计划、周期性任务执行

未来的某个时间点执行一次任务

at

batch      系统自行选择空闲时间去执行此处执行的任务

周期性运行某任务

cron

centos设置时间同步

需有一台用于同步时间的服务器,提供同步IP

centos6:

vim  /etc/ntp.conf

添加一行:

server IP  iburst

chkconfig ntpd  on

service ntpd  star

ntpdate  ip

centos7

vim  /etc/chrony.conf

添加一行:server ip iburst

systemctl start  chronyd

systemctl enable  chronyd

ntpdate  ip

at任务:

at [option] TIME

常用选项:

-V         显示版本信息

-l           列出指定队列中等待运行的作业,相当于atq

-d          删除指定的作业,相当于atrm

-c          查看具体作业任务

-f file      从指定的文件中读取任务

-m         当任务完成之后,将给用户发送邮件,即使没有标准输出

注意:作业执行命令的结果中的标准输出和标准错误以邮件通过给相关用户

TIME:      定义出什么时候进行at这项任务的时间

HH:MM [yyyy-mm-dd]

noon,midnight,teatime(4pm)

tomorrow

now+#{minutes,hours,days,weeks}

HH:MM 如 2:00

在今天2:00进行,若今天时间已过,则明天此时执行任务

HH:MM YYYY-MM-DD  如  2:00  2019-09-20

规定在某年某月的某一天的特殊时刻进行该项任务

HH:MM [am|pm][Month] [date]

04pm March 17            3月17号下午4点

17:20 tomorrow                 明天17.20

在某个时间点再加几个时间后才进行该项任务

now + 5  minutes|min

02pm + 3 days     第一个下午2点之后在加3天

执行方式:

1     交互式

2     输入重定向

3     at -f file

依赖于atd 服务,需要启动才能实现at任务

at 队列存放在/var/spool/at目录中

权限控制:

/etc/at.{allow,deny},控制用户是否能执行at任务

白名单/etc/at.allow        默认不存在,如果存在,只有该文件中的用户才能执行at命令

黑名单/etc/at.deny 默认存在,

如果白名单存在,黑名单无效

如果白名单不存在,在除黑名单中之外的用户可以使用at命令

如果两个文件都不存在,只有root可以执行at命令

cron:

周期性任务计划:cron

相关的程序包:

cronie:主程序包,提供crond守护进程及相关辅助工具

cronie-anacron:cronie的补充程序,用于监控cronie任务执行状况,

如cronie中的任务在过去该运行的时间点未能正常运行,则anacron会

随后启动一起此任务

crontabs:包含centos提供系统维护服务

确保crond守护处于运行状态:

centos7:      systemctl status  crond

centos6:  service crond stadus

计划周期性执行的任务提交给crond,到指定时间会自动运行

系统cron任务:系统维护作业

/etc/crontab

用户cron任务:

crontab  命令

日志:/var/log/cron

系统cron任务:/etc/crontab

时间格式: * * * * *

分(0-59) 小时(0-23)  day(1-31) month(1-12) week(0-6  或者1-7,周天是0或者7)

时间表示法:

1     特定值:       给定时间点有效取值范围内的值

2     *                   每。。。

3     离散取值       #,#,#

4     连续取值       #-#

5     /#                  指定步长,比如 0 /2 * * * 表示每2小时执行一次

特殊格式:    @reboot        开机执行

@yearly         每年 = 0 0 1 1 *

@annually

@monthly

@weekly

@daily

@hourly

在etc下有相关脚本执行     /etc/cron.daily

/etc/cron.hourly

/etc/cron.monthly

/etc/cron.weekly

/etc/crontab

/usr/bin/run-parts  dir                      运行目录下所有可执行脚本

anacron系统:

运行计算机关机时cron不运行的任务,centos6 以后版本取消anacron服务

有crond服务管理

用户计划任务:

crontab:

每个用户都有专用的cron任务文件:/var/spool/cron/USERNAME

crontab [-u user] [-l|-r|-e][-i]

-l            列出所有任务

-e           编辑任务

-r          移除所有任务

-i           同-r  一同使用,以交互式模式移除指定任务

-u user 仅root 可以执行,指定用户管理cron任务

控制用户执行计划任务

/etc/cron.allow

/etc/cron.deny

规则同at

注意事项:

运行结果的标准输出和错误以邮件通知相关用户

对于cron任务来讲,%有特殊用途;如果在计划任务命令中要使用%。需要转义,

或者放置在单引号中(貌似无效)

或者将命令放在单独脚本中,计划任务中执行脚本即可

也可以将写好的计划任务脚本放在/etc/cron.d/ 下,系统自动执行

练习:

1、每周的工作日1:30,将/etc备份至/backup目录中,保存的文件名称格式

为“etcbak  -yyyy-mm-dd-HH.tar.xz”,其中日期是前一天的时间

vim  /root/bin/etcbackup.sh

#!/bin/bash

tar -Jcvpf  /backup/etcbak-`date +%F-%H`.tar.xz  /etc

chmod +x  /root/bin/etcbackup.sh

crontab  -e

30 1 * * 1-5  /root/bin/etcbackup.sh

2、每两小时取出当前系统/proc/meminfo文件中以S或M开头的信息追加至

/tmp/meminfo.txt文件中

crontab  -e

0 */2 * * * cat  /proc/meminfo|grep -Ei '^s|^m' >> /tmp/meminfo.txt

3、工作日时间,每10分钟执行一次磁盘空间检查,一旦发现任何分区利用率高

于80%,就执行wall警报

实验作业:

添加@reboot root reboot 计划任务之后修复

原文地址:http://blog.51cto.com/13683480/2115710

时间: 2024-08-28 01:13:21

第13章,进程和计划任务的相关文章

进程和计划任务管理详解(现场实际演练、可跟做)

听说很多的小伙伴一直想要了解如何玩转进程和计划任务管理,小编这就来给大家演示一下. 一.进程查看就地演练 1.查看系统当前root用户的静态进程(方法1)其中USER指当前用户:PID 为进程号(PID为1的是init): %CPU.%MEN指cpu的占用率.内存占用率:VSZ.RSS为虚拟内存.物理内存占用:TTY : 终端(?为未知.大多本地加载为?):STAT : 当前进程状态(S可中断休眠进程.D不可中断休眠进程.s父进程.<代表优先级高.R运行进程.l代表多线性.N优先级低.Z僵尸进程

APUE学习笔记:第九章 进程关系

9.1 引言 本章将更详尽地说明进程组以及POSIX.1引入的会话的概念.还将介绍登陆shell(登录时所调用的)和所有从登陆shell启动的进程之间的关系. 9.1 终端登陆 系统管理员创建通常名为/etc/ttys的文件,其中每个终端设备都有一行,每一行说明设备名传递给getty程序的参数.当系统自举时,内核创建进程ID为1的进程,依旧是init进程.init进程使系统进入多用户状态.init进程读文件/etc/ttys,对每一个允许登陆的终端设备,init调用一次fork,所生成的子进程则

第13章 线程

第13章 线程线程具有提高执行速度的特点. 本章重点:----------------------------------线程的基本概念创建并使用线程线程的让步.同步等操作 进程就是一个执行中的程序,每一个进程都有其独立的内存空间和系统资源.进程就是一个运行的程序,Windows操作系统是支持多进程的操作系统,即同一时间可以执行多个程序,每个程序是在自己独立的内存空间内,使用自己被分配到的系统资源.线程是CPU调度和分派的基本单位,一个进程可以由多个线程组成,而这多个线程共享同一个存储空间,这使

Linux进程与计划任务

Linux进程与计划任务 linux进程及作业管理 进程 内核的功用:进程管理.文件系统.网络功能.内存管理.驱动程序.安全功能等特权操作模式切换(理想状态):70%CPU时间用户模式+30%CPU时间内核模式进程(Process):是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的存在生命周期的基本单位,是操作系统结构的基础.在早期面向进程设计的计算机结构中,进程是程序的基本执行实体:在当代面向线程设计的计算机结构中,进程是线程的容器.程序是指令.数据及其组织形式的描述

APUE学习笔记:第七章 进程环境

7.1 引言 本章将学习:当执行程序时,其main函数是如何被调用的:命令行参数是如何传送给执行程序的:典型的存储器布局是什么样式:如何分配另外的存储空间:进程如何使用环境变量:各种不同的进程终止方式等:另外还将说明longjmp和setjmp函数以及它们与栈的交互作用:还将介绍研究进程的资源限制 7.2 main函数 C程序总是从main函数开始执行.当内核执行C程序时,在调用main前先调用一个特殊的启动例程.可执行程序文件将此启动例程指定为程序的起始地址——这是由连接编辑器设置的,而连接编

Linux入门-进程、计划任务

w load average: 0.12, 0.09, 0.02 1,5,15分钟的负载情况,0.8以下为正常 JCPU 对应的用户执行命令所占用的cpu时间 PCPU  执行当前命令占用的cpu时间 WHAT 对应的用户正在执行的命令 IDLE 对应的用户闲置的时间 ps 参数较多,可以先使用 ps --help查看参数. ps -aux,ps -le  所有用户进程的详细信息 TIME  进程启动依赖占用cpu的总时间 %CPU  占用cpu总时间的比分比 %MEM 占用总内存的比分比 实际

3.28日第七次作业12章沟通管理13章合同管理

3.28日第七次作业12章沟通管理13章合同管理   第12章.项目沟通管理   1.项目沟通管理包括哪些过程?(记)P349 答:1).沟通计划编制 2).信息分发 3).绩效报告 4).项目干系人管理 2.阻碍有效沟通的因素有哪些?P351-352 答:1).沟通双方的物理距离 2).沟通的环境因素 3).缺乏清晰的沟通渠道 4).复杂的组织结构 5).复杂的技术术语 6).有害的态度 3.沟通计划编制的第一步是什么?目的是什么?P353 答:沟通计划编制的第一步是干系人分析.其目的是得出项

第十三章 进程、线程类的实现

                                        第十三章   进程.线程类的实现         多线程是指在一个进程内可以同时运行多个任务,每个任务由一个单独的线程来完成.线程是进程运行的基本单位,一个进程中可以同时运行多个线程.如果程序被设置为多线程方式,可以提高程序运行的效率和处理速度. 多个线程共用一个进程的资源:进程的调度.切换是在10ms的"时钟滴答"定时中断程序里进行.如果一个线程获得CPU,那么在下一个Tick到来前:是不可能被切换出去的

第13章 物联网的产业与发展趋势

第13章 物联网的产业与发展趋势 “物联网”概念的问世,打破了之前的传统思维.过去的思路一直是将物理基础设施和IT基础设施分开:一方面是机场.公路.建筑物,而另一方面是数据中心,个人电脑.宽带等.而在“物联网”时代,钢筋混凝土.电缆将与芯片.宽带整合为统一的基础设施,在此意义上,基础设施更像是一块新的地球工地,世界的运转就在它上面进行,其中包括经济管理.生产运行.社会管理乃至个人生活. 物联网可以提高经济,大大降低成本,物联网将广泛用于智能交通.地防入侵.环境保护.政府工作.公共安全.智能电网.

第13章 MySQL服务器的状态--高性能MySQL学习笔记

13.1 系统变量 -- 服务器配置变量 MySQL通过SHOW VARIABLES  SQL命令显示许多系统变量. 13.2 状态变量--SHOW STATUS SHOW STATUS 命令会在一个由两列(名称/值)组成的表格里显示服务器状态变量.这些变量都是只读的. SHOW STATUS默认显示会话变量,SHOW GLOBAL STATUS显示全局变量. 也可以从INFORMATION_SCHEMA.GLOBAL_STATUS和INFORMATION_SCHEMA.SESSION_STAT