linux进程属主6,20150917 Linux进程查看与管理以及作业管理

第一、基础知识

MBR引导--内核--内核程序--》协调其它程序

一般内核运行在硬件之上,各应用也在硬件之前

1)OS的基本功能:文件系统、网络功能、进程管理、内存管理、驱动程序、安全功能

以上为通用目的设置的程序。,

程序=指令+数据,

程序运行在内存当中。这个内存由物理内存映射逻辑空间

左则表示二个框分别表示指令和数据。物理内存划分固定大小的页框称为pageframe。

右则下面的方框表示物理内存。每个进程在右则上面的方框中,这部分为假的内存

空间称为线性地址空间。

16c2d6a1eb8fcdbc9b6edfcf7670036f.png

2)CPU指令:  四个级别ring0,ring1,ring2,ring3

ring0特权敏感指使,ring3环境中为普通指令加减乘除等

控制内存及磁盘数据读取的为特权指令。

特权指令  :

普通指令

3)程序执行环境:

内核模式:运行内核级指令

用户模式:运行普通指令

4)应用程序:

运行在内核代码或应用程序代码

运行普通指令:直接运行于CPU

运行特权指令:通过system call

5)内存:8bits, 1byte

32bit巡址空间s, 2^32, 0-2^32-1, 2^10*2^10*2^10*2^2 bytes =

2^10*2^10*2^2 kilo bytes = 2^10*2^2 MB = 4GB

64bits, 2^64, 4billions 4G

32位 4G: 1G, kernel ,每个应用程序假设自己拥有线性地址空间为4G地址空间

可用,包括自己以及系统内核。1G内核使用,3G为线性地址空间使用。

3G, app

6)ROM+RAM

ROM, RAM

7)地址空间:

物理地址空间

线性地址空间

8)IPC: Inter Process Communication

同一主机:

signal

semerphor

shm (shared memory)

不同主机:

rpc: remote procedure call

socket:

9) 进程调度:

进程运行程序,是程序的一部分

多任务:多进程同时运行

抢占式多任务

10)进程分类:

CPU bound: CPU密集型  (类似高清视频)

I/O bound: IO密集型(编辑器等,频繁IO操作)

11)进程优先级:

140:0-139

1-99:实时优先级,数字越大优先级越高

100-139:数字越小,优先级越高;

静态优先级 (进程运行时默认自己拥有优先级)

动态优先级(进程运行时平衡优先级)

Linux准备140队列,0优先级在0队列中,1优先级在1队列中

以此类推。当运行时从队列首部开始,选择优先级高的运行。如下图:

52fcf08f87b409d1a976d8b37e24f224.png

每个进程运行的时间不同。Linux支持抢占式多任务,当一个

低先级的程序在运行,这时有一个高优先级的运行。过一段时间后

这里高优先级优先,提前运行。

算法时间复杂度:Big O (衡量标准算法)

O(1)    恒定的,无论优先级,消耗时间相同;(最好的)

O(logn)  每次调度,调度程序需要从树中找出优先级最高的进程

O(n)  线性的

O(n^2)  抛物线机制

O(2^n)  随队列深度增长

12)进程创建:

请求发出者:进程  (由fork进行创建,为系统调用)

任何子进程parent—>为子进行发起一个fork调用—>child

这里child(task struct)与父进行相同。包括进程ID,父进程ID

进程:fork(), clone()

两者的虚拟空间不同,但其对应的物理空间是同一个

c18cbbdfcd2449f12f57474131d6d7ce.png

示例:父进程P1创建P2子程序,

复制P1的正文段,数据段,堆,栈这四个部分让P2的正文段指向P1的正文

段块,数据段->P2自己的数据段块(为其分配对应的块),堆->P2自己

的堆块,栈->P2自己的栈块。如下图所示:同左到右大的方向箭头表示

复制内容

6843d5ff64abf77d049e7edc497b80cc.png

COW: Copy On Writing   写时复制

内核只为新生成的子进程创建虚拟空间结构,它们来复制于父进程的虚拟

究竟结构,但是不为这些段分配物理内存,它们共享父进程的物理空间,

当父子进程中有更改相应段的行为发生时,再为子进程相应的段分配物理空间。

关闭进行调用destroy(销毁某个进行

13)进程的状态:

运行态:running

睡眠态:sleeping

可中断睡眠:interruptible  (中断过程中时可随时唤醒)

不可中断睡眠: uninterruptible  (被IO阻塞的进程)

就绪态:runnable

停止态:stopped,不可被调度为运行状态;

僵死态:zombie

(父进程处理子进程关闭后的状态,如父进程意外关闭后,子进程

处于孤立的状态。这时当子进程停止后为僵死进程)。当父进程关闭

前后利用init ,systemd(centos 7)进程指定为子进程新的父进程。

14)进程管理:

task struct: 用于保存每个进程元数据信息

例如:pid, ppid, memory, thread, files

task list: 用一种称作“链表”的数据结构来保存每个进程的task struct.

进程退出前会将其状态和结果保存到自己的自己的task struct中,下次运行中

直接从tasks struct,这种称为挂起状态

进程切换:context switch

保存现场:

恢复现场:

OS: 提供虚拟的计算机,进而能够将有限资源借助于“保护”机制分配多个

同时运行的程序,即“进程”使用,从而实现了所谓的多任务;

15) 并行处理机制

现代编程采用多线程模型,每个线程单独的功能。单独的执行流

进程: 方块中代表4个内核,4条线条件4个单独线程。并行执行。

该种方式运行在程序独立、相互干扰少的情况下。

bfb3efbf91f0705ee0d0b3feb8904c0c.png    

线程:tread

共享进程的资源,如父进程、打开文件等;

更轻量的、可被单独调度的运行单元;

LWP:Light Weight Process(Linux是轻量级处理过程,

Linux是线程即进程,进程即线程)

第二、进程命令

Linux进程查看及管理工具:top, pstree, ps, pidof, pgrep, pkill, htop,

glances, pmap, vmstat, dstat, iostat, sar, kill, job, bg, fg

Linux系统上除init以外的所有子进程,都是由其父进程fork()自身而来,

遵循COW机制;进程展现为“进程树”;

1) pstree命令:

进程树查看;

-p: 显示各进程的PID;

centps 7父为systemd            centos 6为init

b419a73f28000428f1b7e87b3ac7724d.png 527031fdb4d0bd588a77ec27a57abeeb.png

pstree –p 显示进程及id

a7d9cdcefecab02c0f8cfc85defce60b.png

2)ps: process state

显示的是ps命令执行时,系统上当前进程状态信息的快照 为静态结果;

Linux运行中的内核的相关信息是通过/proc伪文件系统输出的;各进程

都有一个以其PID命名的子目录,每个子目录中有许多文件存储了进程的

相关状态信息;

proc目录下包括进程ID的目录(为正在运行的进程创建该目录)说其

是伪文件系统是因为它是一个映射。每个目录下都包括相应的文件。

bf57463887222f454cc1ed41198160fc.png  f511f33bf3f0b952cbcc76cb075e7502.png

ps相关命令都是调用该目录下的相关文件。

支持众多选项:

BSD风格  (不需要减号     -

SysV风格 (需要都减号  - 引用)

根据进程启动时是否是通过终端上的用户接×××互式启动的,进程可分为两类:

与终端相关的进程: a

与终端无关的进程: x

以用户为中心组织进程状态信息显示:u

AA:常用选项组合1:axu  (在centos 7中可用-aux或aux 结果相同)

命令解释:与用户终端相关或无关的进程。

USER       PID %CPU %MEM    VSZ   RSS TTY  STAT START   TIME COMMAND

2dda7e308ec84c528c2e32bac3814902.png

USER表示进程的属主,那个身份在运行。

pid为进程号

%CPU CPU比例

%MEM  内存百分比

VSZ: Virtual memory Size  线性地址空间占用的空间大小;

RSS:常用驻内存集;指不可以被交换至swap空间的数据占据空间大小;

tty 终端:那个终端启动的此进程 ?表示不知道那个

STAT:进程状态

R: running,运行状态;

S:interruptible sleeping,可中断睡眠

D:uniterruptible sleeping, 不可中断睡眠

T: stopped

Z: zombie

s: session leader (一般为执行命令的bash)

+: 前台进程,占据着某终端

l: 多线程进程

<:>

N: 低优先级进程

START: 启动时间

TIME: 占据CPU累积时长

COMMAND: 启动当前进程或线程的命令行程序,[]表示为内核线程;

BB:常用选项组合2: -ef         -e: 显示所有进程;  (相当前aux)

-f: 显示丰富格式信息fullformat

fc65394237875d7a99d0e19450820c67.png

CC:常用选项组合3:-eFH

-F: 显示额外信息

-H: 以层级形式显示进程间关系;

988bf4e3d1b5d280566ab419246e767a.png

DD:自定义需要显示的信息:

axo (a代表与终端相关 ,x与终端无关,o可选项)

ps axo pid,command,psr,pri,ni

psr: 当前进程运行的CPU编号;

pri: 当前进程的优先级;

ni: 当前进程的nice值(与进程调整相关)

-20, 19

ppid代表父进程

bfb64d3118f487b5617db082271fcb73.png

3)pgrep:  用于过程进程

语法格式:pgrep [OPTIONS] "PATTERN"

-U UID:仅显示以指定用户身份运行的进程;

-G GID

-l: 显示PID和进程名;

示例:显示postfix的用户进程号和名称

135eeda97d3201380d08f672ab04ff34.png

4)pidof:

pidof PROGRAM

PROGRAM: 给定命令行程序

显示与程序sshd相关进程id信息

bdd9dead4b539887687a1f3b5e0d6230.png

5)top命令:

第1)-4)为静态状态命令,后为动态命令(定时刷新)

ca45780a017b4222e08429307c8c4049.png

有许多交互式的子命令;

第一行top:显示当前系统负载信息。与uptime执行结果相同

f02ad7c7f7326491ca02c4c7ed97d092.png

说明:启动时间   运行时长  当前登陆用户数量  过去负载状态

0.00,0.001,0.05 代表过1分钟、5分钟、15分钟的负载)

(以上并不是CPU资源的百分比,是队列的长度:多个队列等

待运行)

第二行:tasks:

说明:多个个进程  运行数量    sleeping数量   stop数量   僵死态数量

第三行: CPU百分比

Cpu(s):  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st

us: user space

sy: system (kernel space)

ni: nice

id: idle

wa: wait io  等待IO的百分比

hi: hardware interrupt

si: software interrupt

st: stolen, 被虚拟机“偷走”的百分比

1:平均或单独显示CPU的负载状态;

第四行:内存

KiB Mem :  1877664 total,  1150304 free,   351380 used,   375980 buff/cache

总物理内存      剩余内存    使用的      buffer内存

第五行:交换swap

KiB Swap:  5242876 total,  5242876 free,        0 used.  1337264 avail Mem

交换内存所有空间   空闲空间   已用空间   可用空间

第五行:

800295e68dcb8868d55d674874947a28.png

pid   用户   优先级  nice值   虚拟内存级  常驻内存级   共享内存  状态

占CPU百分比,占内存百分比 ,累计运行时间,启动运行的命令

显示排序黑CPU百分比进行(默认)

P:以占据的CPU百分比大小排序;

M:以占据Memory空间大小排序;

T:CPU累积占用时间排序;

l: 是否显示系统负载行;(第一行)

队列长度的合理区间:CPU颗数*0.7

t: 是否显示进程摘要信息及CPU负载状态;

m: 是否显示内存相关的状态信息;

s: 修改延迟时长

k: 终止指定进程

q: 退出命令

s: 修改延迟时长

54748a3580aa48de1882db0c7235e231.png    

k: 终止指定进程

81a04e0a2cbd5337e472bcaf24503e4b.png

top命令的选项:

-b: batch,批次显示

-n #: 显示的批次数量

示例:top –b –n 2 显示二批

-d #: 指明延迟时长

示例:top –d 1   表示1秒刷新一次

6)uptime命令: 显示当前系统时间,运行时长,登录用户数及系统平均负载;

命令总结:pstree, ps, pgrep, top, uptime, pidof

7)htop:

需要在epel源当中安装

在/etc/yum.repos.d目录下创建epel.repo文件

内容如下:

b18cbf574943bee98bdb75b6be5973e3.png

利用yum install htop进行安装

bbe9a317dd009f5aa0b84a1d8733e79b.png    

交互式命令:

u: 过滤仅显示选定用户的进程;(先U再选择用户)

07a6af2901cf9d56a13e56854c30d1e6.png 

s: 跟踪选定的进程所发起的系统调用;

l: 显示选定进程所打开的文件;

t: 显示进程的层次结构;

a: 设定进程的cpu亲缘性;(将选定的进程绑定在指定的CPU上)

选项:

-d #: 延迟时长

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

-s COLUMN: 根据指定的字段进行排序;

8)vmstat命令: 状态查看

用法:vmsate [delay [count]]   每隔2秒,显示6次退出

918c0fa0247782c11db5c8335324bcb5.png    

procs: 进程相关状态

r: 运行队列的长度:有数字时等待运行的进程的个数;(队列长度)

b:阻塞队列长度:有数字是表示处理不可中断睡眠状态的进程的个数;

(即IO阻塞队列长度) 单个CPU core 不能大于3基本正常

memory:

swpd: 交换内存使用量;

free: 空间的物理内存量;

buffer: 用于buffer的内存总量;

cache: 用于cache的内存总量;

swap:

si: 数据进入swap中的速率(kb/s) 物理放到交换内存

so: 数据离开swap的速率(kb/s) 交换内存至物理内存

io

bi: 从块设备读入数据到系统的速率(kb/s)

bo: 保存数据至块设备的速率(kb/s)

system

in: 中断速率

cs: 进程切换的速率

cpu

us:    eser space

sy:    system  sy高说明程序有问题,太多系统调用

id:    idle

wa:   waitting   wait过高表示磁盘速率慢

st:   steal

选项:

-s:显示内存的状态统计数据

a705a75753e4bc84a8780efe15fa0168.png    

9)/proc/#接口: (针对proc目录相应进程号下面的文件)

66a39781acfb219c78d01d58b9056e4a.png

10)pmap: 查看指定进程的内存映射关系;

pmap [OPTIONS] pid...

-x: 显示扩展信息

也可通过cat /proc/#/maps 查看

38778e84e83e208ac80907fd07d5c7f1.png    

11)glances: (需要epel源)

使用python开发

784e37b2de69e2976bb7b430cc6dbba2.png

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

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

常用选项:

-b: 以Byte/s为单位显示网卡设备数据交换速率;

-d: 关闭磁盘I/O功能模块;

-f /PATH/TO/SOMEFILE:设置输出文件的位置及格式;

-o {HTML|CSV}:

-m: 关闭mount功能模块

-n: 关闭网络功能模块

-r: 关闭进程列表功能模块

-t #: 指定延迟时长,默认为3秒;

-1:单独显示每颗CPU相关负载数据信息;

glances支持远程模式:

即可以以C/S模式工作:

Server: 以监听模式启动glances;

Client: 以远程模式启动glances,远程连入指定服务器,并Server上的相关性能数据;

服务模式:

glances -s -B IPADDR

-B: 用于指明监听的本地地址;

客户端模式:

glances -c IPADDR

-c: 用于连入的服务器的地址;

12)dstat: 整合了vmstat, iostat, netstat and ifstat四款工具的功能;

71868e7547744e4fbc99600f053d9a14.png    

dstat [-afv] [options..] [delay [count]]

示例   dstat 2 5  #每2秒刷新   显示5次,第6次退出

6fe8e0d9c4ad4f00aebd9bc8191d6950.png

sysmte下面的 int 是中断   csw指切换上下文

-c: 显示cpu性能指标相关的统计数据;

-d: 显示disk相关的速率数据;

-g: 显示page相关的速率数据;

-i: 显示interrupt相关的速率数据;

-l: 显示load average相关的统计数据;

-m: 显示memory相关的统计数据;

-n: 显示网络收发数据的速率;

-p: 显示进程相关的统计数据,

-r: io请求的速率;

-s: 显示swap的相关数据

-y: 显示系统相关的数据,包括中断和进程切换;

--top-cpu:显示最占用CPU的进程;

12155b48656d81d0ed76c52a5c1d8193.png    

--top-bio:显示最消耗block io的进程;

--top-io:最占用io的进程;

--top-mem:显示最占用内存的进程;

--ipc: 显示进程间通信相关的速率数据;

3882027313803cceb079bbb89dc85368.png    

--raw: 显示raw套接的相关的数据;

--tcp: 显示tcp套接字的相关数据;

2f31c3e0593b9f58e193135bb469c048.png    

--udp: 显示udp套接字的相关数据;

--unix: 显示unix sock接口相关的统计数据;

--socket:

-a: -cdngy

IPC: 进程间通信

常见形式:

msg( message queue)   (消息队列)

sem( semerphore) (旗语,很短小的消息)

shm(shared memory)  (共享内存)

signal (标签)

13) signal: 传递给进程的短小信息

Linux主机支持的进程间可用到的信息:

(1) kill -l

(2) man 7 signal

1a72283f53990971e077dfe9716c4690.png    

向进程发信号:

kill [-SIGNAL] PID

默认的信号为SIGTERM;

信号表示方式:

(1) 完整名称,例如SIGINT

(2) 简写名称,例如INT

(3) 数据代称,例如2

常用信号:

SIGHUP: 1, 通知进程重读其配置文件以让新的配置生效,但不用重新启动进程;

SIGINT:2, 打断正在运行中的进程,相当于键盘组合键Ctrl+c

SIGKILL:9, 强行中止正在运行中的进程

SIGTERM: 15, 安全中止正在运行中的进程

SIGSTOP: 19, 暂停进程

SIGCONT: 18, 继续运行指定进程

kill相似的一组进程:

killall [-SIGNAL] PROGRAM

示例:启用httpd   service httpd start

查看http的进程号,kill默认是15(安装终止正在运行的进程)

8a31cff792a98a13709e2093132923de.png

示例:利用数字 kill –9 进程号

示例:kill httpd

b0e2e9f254209f4c9e23085146151043.png    

命令总结:htop, vmstat, glances, dstat, kill, killall

第三、作业管理:

1)定义

作业是定义的一组具有相同功能的一组进程或程序,称为作业。

通过是否通过终端启动分为

前台作业:通过终端启动,并且在停止之前也会一直占据终端;

后台作业:作业启动之时与终端无关,或者是在前台启动,但启动后转为

与终端无关模式运行; (不是所有命令适合在终端上运行)

如何让作业运行于后台?

1、对于已经启动并处于运行中的作业:

Ctrl+z

Note: 作业被送往后台后,默认处于stopped状态;

示例:运行后使用htop命令,control+z后为stop状态

ae6459af011d5ef8064491fd5eb2309c.png    

2、对于尚未启动的作业:

COMMAND &

示例:  vmstat 1 &    将送到后台

注意: 此两类方式相关作业,仍然与终端相关;这意味着,终端终止,将会导

致与此终端相关的所有作业被终止; 与session leader分离

剥离进程与终端的关系:

# nohup COMMAND &

3、守护进程:自动运行在后台

作业查看:

jobs命令

作业号、作业状态、启动命令行程序

5a704302b21e4545acf3c481cc0f6d96.png    

作业控制命令:

fg [[%]job_num]:把指定的作业调回前台; 示例:fg %2 表示调后2号作业。或%百分号也可

78906a9d6c20e3bdbc62856f396693bf.png    

bg [[%]job_num]:把调往后台的指定的作业启动起来,让其后台默默运行;

但此作业必须支持运行于后台;

kill [%job_num]:终止指定的作业; kill的作业号的百分号%i不能够省略。

4、 进程优先级调整:

AA定义:

优先级级别从0-139  1-99为实时优先级    数字越大优先级越高。

100-139为静态优先级:数字越小优先级越高

内核针对静态优先级进行调整

动态优先级:动态调整

静态优先级:

BB:手动调整优先级,利用nice值

调整时只能够调大nice值

通过指定进程的nice值来调整其优先级;用户 空间运行的进程一般都有其nice值;

nice值: -20, 19

优先级:  100, 139

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

(1) 对于尚未启动的进程:

# nice -n N COMMAND

(2) 对于已经启动并处于运行中的进程:

# renice -n N PID

示例:ps axo pid,command,pri,ni(查看进程号、名称、nice、优先级)

b82947045573b70766062fd5853ee2b7.png

nice -n -5 httpd  调整nice值为-5,输出为

27c216a7e3d7f619cd27d4a45ef46776.png

针对已运行的使用renice

eb9226de210ed3859425fe0fadc62d4e.png 0a2ed2790212cfa801079ce92af8b7ee.png

注意:普通用户仅能够调大nice,调低优先级;

第四:其它命令整理

1)sar :收集、报告用户信息

sar [ options ] [ [ ] ]

Options:

-B 所有page信息

-A  所有信息相当于

-b io速率

示例: sar -u 2 5  CPU利用率

5acae37cb9f4062956e451bda52ce165.png

sar -r -n DEV -f /var/log/sa/sa16

显示内存及网络并保存到/var/log/sa/sa16目录

633410b9bdd0cfff56386ff35ea4bac0.png    

2) iostat,

显示CPU、device及分区信息

iostat [ options ] [ [ ] ]

Options:

-c 显示 CPU      -d 显示设备

示例:iostat 2 5

073f6331e55ad996f690eb5583de9530.png

示例:iostat –c    /  iostat –d

5239be31dc92f3dddf8d129802189e6e.png

3)ifstat

显示网络接口信息

ifstat [OPTION] [ PATTERN [ PATTERN ] ]

-e erros错误信息

-r reset

示例:

54f502073a306bba66622d78657b107d.png

4) tsar;

作业:

命令总结:jobs, fg, bg, nice, renice

博客作业:进程管理工具htop/glances/dstat的使用;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/359725.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在javaweb中通过servlet类和普通类读取资源文件

javaweb有两种方式读取资源文件 在Servlet中读取&#xff0c;可以使用servletContext&#xff0c;servletContext可以拿到web所有的资源文件&#xff0c;然后随便读&#xff0c;但是这种方法不常用&#xff0c;尽量少在Servlet中读取资源文件 在普通Java类中&#xff08;DAO中&…

数学图形(1.43)贝壳形曲线与鱼形曲线

贝壳形曲线 #http://curvebank.calstatela.edu/naturalcurves/slide7.jpgvertices 12000t from 0 to (2*PI)r 10*(0.7 2.6*cos(t) 1.3*pow(sin(90*t), 3))x r*sin(t) y r*cos(t) 鱼形曲线 #http://www.2dcurves.com/quartic/quarticfi.html vertices 1000 t from 0 to…

linux下编译ios,为iOS安装OpenCV

一&#xff0c;要求CMake 2.8.8 或者更高Xcode 4.2 或者更新二&#xff0c;从Git库取得最新的 OpenCV使用 git 客户端从 http://github.com/itseez/opencv clone Open 库。在 max os x 下&#xff0c;可以通过以下命令行完成cd ~/git clone https://github.com/Itseez/opencv…

学习使用资源文件[11] - DLL 中的资源文件

本例将把一张 bmp 图片, 以资源文件的方式嵌入 dll, 然后再调用.第一步: 建一个 DLL 工程, 如图:然后保存, 我这里使用的名称都是默认的.第二步: 建一个资源原文件, 如图:编辑内容如下(路径中的文件一定要存在):img1 BITMAP "c:\temp\test.bmp"然后, 取个名(后缀须是…

linux 自动安装 yum,LINUX6安装YUM仓库和实现开机自动挂载

# LINUX6安装YUM仓库和实现开机自动挂载---------------------------------安装环境-------------------------------Redhat6镜像文件&#xff1a;链接&#xff1a;https://pan.baidu.com/s/1DKH6adbrsipM-cTzH-wBgA 百度网盘 密码是hxcbVmware Workstation虚拟机工具&#x…

.NET Framework 4.0源代码

原文出处&#xff1a;http://blogs.microsoft.co.il/blogs/arik/archive/2010/07/12/step-into-net-framework-4-0-source-code.aspx 本文将向你展示如何配置Visual Studio 2010逐语句执行.NET Framework 4.0源代码。 为啥? 因为很酷。 因为能帮助调试。 你不仅能看到源代码…

linux blender骨骼绑定,在Linux系统中安装开源3D创建套件Blender的方法

Blender是免费的开源3D创建套件&#xff0c;它可在Linux系统中安装&#xff0c;可使用snap或flatpak命令安装Blender。简介Blender也称为开源3D建模软件&#xff0c;支持整个3D管道&#xff0c;建模&#xff0c;装配&#xff0c;动画&#xff0c;模拟&#xff0c;渲染&#xff…

配置源码管理工具(2)

源码管理是开发中最重要的事情之一&#xff0c;在vs.net里我们通常采用vss进行版本控制&#xff0c;在Eclipse里看帖子说用svn的比例很大&#xff0c;和IDE的集成性也很好。 1&#xff1a;服务器部署 下载地址是&#xff1a;http://subversion.apache.org/packages.html 下载的…

编写下载服务器。 第六部分:描述您发送的内容(内容类型等)

就HTTP而言&#xff0c;客户端下载的只是一堆字节。 但是&#xff0c;客户真的很想知道如何解释这些字节。 它是图像吗&#xff1f; 或者也许是ZIP文件&#xff1f; 本系列的最后一部分描述了如何向客户端提示她下载的内容。 设置 内容类型描述了要返回的资源的MIME类型 。 此…

ruby中的self

self&#xff0c;自己&#xff0c;在ruby中表示当前对象或默认对象。程序执行的任一时刻&#xff0c;有且仅有一个self。 1.谁成为self&#xff0c;在什么位置成为self&#xff1f; 要知道哪个对象是self&#xff0c;就必须知道当前的上下文。上下文主要有顶层上下文&#xff0…

二手宏碁上网本装linux,Acer国内20日首发“上网本” 放弃Linux使用XP

据相关媒体报道 8月20日将在国内正式推出XP系统版的8.9英寸超便携笔记本电脑Aspire One&#xff0c;放弃使用Linux系统&#xff0c;硬件配置方面&#xff0c;除了依然采用英特尔Atom处理器之外&#xff0c;推出120GB传统硬盘和SSD两个版本。其中&#xff0c;XP系统 120G传统硬盘…

免费WiFi,仅仅为好久没联系的你们

昨日&#xff0c;认识五年的朋友搬来与我一起住了&#xff0c;说不上来&#xff0c;没有激动&#xff0c;仅仅是突然感觉生活又多了一点生机。兴致上来&#xff0c;晚上立马联系了已经近四个月没有联系的好友&#xff0c;才知道他们的生活也因这几个月发生了翻天覆地的变化。究…

五猴分桃c语言课程设计,c语言程序设计五猴分桃问题实验报告.doc

c语言程序设计五猴分桃问题实验报告.doc 课程设计报告学院、系&#xff1a;吉林大学珠海学院计算机科学与技术系专业名称&#xff1a;软件工程课程设计科目C语言程序课程设计所在班级&#xff1a;10班学生学号&#xff1a;04121010学生姓名&#xff1a;赵学文指导教师&#xff…

c语言100以内奇数的和为多少,编写C#程序,计算100以内所有奇数的和。谢谢了,大神帮忙啊...

编写C#程序&#xff0c;计算100以内所有奇数的和。谢谢了&#xff0c;大神帮忙啊以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;编写C#程序&#xff0c;计算100以内所有奇数的和。谢谢了&am…

监控系统的多协议直播(RTSP RTMP HTTP Live Streaming)

监控系统的多协议直播&#xff08;RTSP RTMP HTTP Live Streaming) 转载于:https://www.cnblogs.com/cl1024cl/p/6204791.html

阿里媒体转码公共参数_Xuggler教程:转码和媒体修改

阿里媒体转码公共参数注意&#xff1a;这是我们的“ Xuggler开发教程 ”系列的一部分。 在上一教程中&#xff0c;我对视频处理Xuggler进行了简短介绍 。 在这一部分中&#xff0c;我们将看到Xuggler和FFmpeg提供的一些更令人兴奋的功能&#xff0c;例如视频转码和媒体修改。 别…

52单片机iic读写c语言,如何52单片机的I2C读写24C08程序问题排查修改

------波形在一楼isoimg2130老师提供在单片机正常运行的程序&#xff1a;#include "reg52.h"#include "intrins.h"typedef unsigned char u8;sbit SCLP2^1; //I2C 时钟sbit SDAP2^2; …

qfp封装能够linux,QFP、PQFP、LQFP、TQFP封装形式及PCB详解

问题&#xff1a;画PCB时&#xff0c;会发现很多的集成电路都是QFP封装&#xff0c;比如很多的单片机都有这种封装。各个器件商会在自己的数据手册中说明他的器件是QFP&#xff0c;LQFP或TQFP&#xff0c;然后&#xff0c;有的给出封装尺寸图&#xff0c;有的则不给。那么&…

dede文章列表加上序号效果

dede文章列表加上序号效果 css代码部分 <style type"text/css"> <!-- .downtop { FLOAT: left; OVERFLOW: hidden; WIDTH: 218px; HEIGHT: 278px } .downtop UL.text { MARGIN: 0px 10px; WIDTH: 198px; PADDING-TOP: 5px } .downtop UL.text LI { WIDTH: 1…

HDU 2845 Beans

本来是很简单的一道题&#xff0c;却想了好长时间 由于数据量比较大&#xff0c;所以逐行读入&#xff0c;逐行处理 先处理每一行的不相邻元素和的最大值&#xff0c;记录在数组b中 最后计算不相邻行的和的最大值 二者的状态转移方程都类似&#xff1a;dp[j] max(dp[j - 1], d…