Windows资源管理器
在Windows中可以直观地使用任务管理器来进行进程管理,了解系统的运行状态,比如CPU使用率、内存使用率,磁盘使用率。
使用任务管理器的目的有:
进程:是正在计算机执行的一个程序或命令,每个进程都是一个运行的实体,并占用一定的系统资源
程序:是人使用计算机语言编写的,可以实现特定目标或解决特定问题,并且可以执行的代码集合
进程(包工头):是源代码,数据的结合体,是一个资源单位,可以在Linux上查到对应信息
线程(工人):才是操作系统去干活的一个工作单位
我们的操作系统都是一堆进程,系统运行时,就产生了1号进程,然后其他进程都是1号进程创建的子进程,操作系统的运行,就是不断的创建进程、以及销毁进程的过程。
当父亲进程挂了,导致儿子进程成了孤儿,可以是一个或者多个。孤儿进程会被系统的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()
父亲进程创建出子进程后,如果子进程先挂了,父进程却不知道儿子进程挂了这件事,就无法正确送走儿子进程,清楚它在系统中的信息,这个儿子进程就成了僵尸进程,会对系统产生危害。(当系统中有了僵尸进程,可以通过ps命令找到它,状态是Z,zombie)
[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号
# 作用:查看服务器的进程占用资源 # 快捷键: z 打开,关闭颜色 M 将结果按照内存从高到低进行降序排列; m 切换内存的显示格式。 P 将结果按照CPU使用率从高到低进行排列 1 当服务器有多个cpu 时可以使用该快捷键来切换是否展示显示各个cpu 的详细信息 q 退出
如果 CPU 是单核的,则这个数值超过 1 就是高负载:如果 CPU 是四核的,则这个数值超过 4 就是高负载
获取CPU的信息