系统相关
首页 > 系统相关> > 进程与资源管理篇(一)

进程与资源管理篇(一)

作者:互联网

一、资源管理器

Windows资源管理器
在Windows中可以直观地使用任务管理器来进行进程管理,了解系统的运行状态,比如CPU使用率、内存使用率,磁盘使用率。
使用任务管理器的目的有:

二、进程

2.1概念

进程:是正在计算机执行的一个程序或命令,每个进程都是一个运行的实体,并占用一定的系统资源
程序:是人使用计算机语言编写的,可以实现特定目标或解决特定问题,并且可以执行的代码集合

2.2进程与程序的关系

2.3进程与线程

进程(包工头):是源代码,数据的结合体,是一个资源单位,可以在Linux上查到对应信息
线程(工人):才是操作系统去干活的一个工作单位

2.4关于进程fork的概念

我们的操作系统都是一堆进程,系统运行时,就产生了1号进程,然后其他进程都是1号进程创建的子进程,操作系统的运行,就是不断的创建进程、以及销毁进程的过程。

2.5孤儿进程

当父亲进程挂了,导致儿子进程成了孤儿,可以是一个或者多个。孤儿进程会被系统的1号进程收养,并且由1号进程来回收,处理这些孤儿进程,不会对系统产生什么危害。

代码运行孤儿进程

[root@localhost ~]# cat guer.py
#coding:utf-8
import os
import sys
import time

pid = os.getpid()
ppid = os.getppid()
print 'im father: ', 'pid: ', pid, 'ppid: ', ppid
son_pid = os.fork()
print('now song_pid is: ',son_pid)
#执行pid=os.fork()则会生成一个子进程
#返回值pid有两种值:
#    如果返回的pid值为0,表示在子进程当中
#    如果返回的pid值>0,表示在父进程当中
if son_pid > 0:
    print 'father going die...'
    # 让老父亲,主动退出,挂掉
    sys.exit(0)

# 保证主线程退出完毕
# 程序延迟了1秒,还在运行中,儿子进程还未挂,成了孤儿
time.sleep(20)

print 'im child: ', os.getpid(),'now my father is: ', os.getppid()

2.6僵尸进程

父亲进程创建出子进程后,如果子进程先挂了,父进程却不知道儿子进程挂了这件事,就无法正确送走儿子进程,清楚它在系统中的信息,这个儿子进程就成了僵尸进程,会对系统产生危害。(当系统中有了僵尸进程,可以通过ps命令找到它,状态是Z,zombie)

2.6.1代码运行僵尸进程

[root@localhost ~]# cat jiangshi.py
#coding:utf-8
from multiprocessing import Process
import time,os

def run():
    print('son_pid: ',os.getpid())

if __name__ == '__main__':
    p=Process(target=run)
    p.start()

    print('father_pid: ',os.getpid())
    time.sleep(1000)


2.6.2 如何解决僵尸进程
使用ps -ef命令,可以找出父亲进程和僵尸进程的pid号

三、进程管理命令

3.1 top命令

# 作用:查看服务器的进程占用资源
# 快捷键:
z 打开,关闭颜色

M 将结果按照内存从高到低进行降序排列;
m 切换内存的显示格式。
P 将结果按照CPU使用率从高到低进行排列
1 当服务器有多个cpu 时可以使用该快捷键来切换是否展示显示各个cpu 的详细信息
q 退出

3.1.1系统整体信息

第一行


如果 CPU 是单核的,则这个数值超过 1 就是高负载:如果 CPU 是四核的,则这个数值超过 4 就是高负载

获取CPU的信息

查看当前机器的核数


查看当前机器的核数(多核情况,排序,去重,统计)

虚拟机硬件设置

第二行

标签:pid,CPU,print,进程,使用率,os,资源管理
来源: https://www.cnblogs.com/fjh0517/p/16046659.html