zoukankan      html  css  js  c++  java
  • python 进程

    进程探究

    进程:这是一个在内存中运行的任务实例

    • Linux下进程属性:

      • 进程拥有自己独立的PID(身份证号)

        • 0 ~ 65535 PID是有限的

        • 当你一台Linux有了超过65535个进程,第65536个进程 无法启动!

      • 独立的内存空间,独立的地址。

      • PID:

        • 0:这个进程是真正的调度进程(idle进程),是系统初始化的第一个进程,是所有其他进程的祖先!

        • 1:这个进程是Init进程,后续的系统启动,由0进程创建,第一个子进程,完成剩余的系统引导工作。

        • 2:线程/进程 管理进程

      • PCB控制块 process control block

        • 进程PCB是用来管理进程,维护进程属性的一个数据块

        • 记录进程中的属性特征,进程的运行状态

        • 没有合法PCB的进程,不会被操作系统所识别管理

      • PCB进程控制块中主要有以下:

        • 进程标识符 PID。

        • 调度信息:进程优先级

        • 进程状态:挂起,就绪,执行,中断,僵尸。

        • 进程使用的内存空间:文件,套接字(socket),网卡,硬件设备。

        • 处理器信息:计数器,寄存器,指针。


    • 进程的状态:

      • R:就绪/运行 READY RUNNING

        • 实际在CPU上运行的进程,可以被称作运行状态

        • 接下来要执行的进程,处于就绪状态,那么也会被称作R

      • S:可中断睡眠状态

        • 进程去等待资源,等待别人链接,等待读取文件内容,等待打开硬件设备,CPU资源不够用

        • 等待的进程,有专门的任务队列维护,通过一定的事件可以重新激活这些进程进入运行状态R

      • D:不可中断睡眠状态

        • 一般是一些内核进程,Kill -9无法直接杀死,并且无法直接唤醒

        • 这样的进程也处于睡眠状态

        • 这种睡眠状态是为了保护一些硬件资源,保护一些设备。

      • T:暂停状态

        • 调试程序,打断点

      • X:停止状态

      • Z:进程在退出时,必须要经过僵尸状态

        • 每个进程在退出的时候,都会释放掉内存,但是如果父进程并没有对他做PCB释放,

        • 这个PCB进程控制块就会保留下来,会一致占用PID


    • 僵尸进程:

      • 父进程创建子进程,但是并没有及时回收工作完毕的子进程

      • 没有被释放资源的子进程就会被称作僵尸进程

      • 在于PCB进程控制块无法及时得到释放,所以会导致无法创建新的进程,占用了PID资源。

      • 注意:开发者要注意回收僵尸进程,没人会帮你释放僵尸进程。

    • 孤儿进程:

      • 父进程先结束了

      • 还在执行的子进程没人管了。

      • 孤儿进程就由此诞生了

      • 孤儿进程会被INIT进程接管,然后完成之后,INIT进程帮你回收。


    • 进程状态下一级别:

      • s:进程的会话负责人

      • <:进程有高优先级

      • N:进程有低优先级

      • l:具备多线程的进程

      • +:位于后台的进程


    • Nice值:Linux进程优先级 整数

      • 权限:-20 - +19

      • 数字越小,优先级越高

      • 只有超级用户可有把进程优先级设置为负数

    • VSZ:进程占用的虚拟内存大小

    • RSS:这个进程占用的固定内存大小

    • PRI/NI:进程优先级

    • TTY:打开的虚拟终端

    • PPID:当前进程的父进程ID

    • COMMAND:开启这个进程的命令

    • USER:开启进程的用户(表示了当前进程有什么样的权利)

    • F:进程旗标(process flag)

      • 进程的权限

      • 4:ROOT权限

       生命不息
       希望不止
       将来的你
       一定会感谢现在拼命的自己
       fighting!!!
  • 相关阅读:
    VS2010制作网站自定义安装程序 转
    SQL Express几个版本的区别
    WebGIS(PostgreSQL+GeoServer+OpenLayers)之二 GeoServer安装与数据配置
    CentOS设置ipv4和ipv6
    Linux下Vim的启动与退出
    Linux字符界面基本操作
    CentOS字符界面与图形界面的切换
    mysql显示SQL语句执行时间
    将shp文件导入到mysql数据库中
    MySQL导入sql 文件的5大步骤
  • 原文地址:https://www.cnblogs.com/lonelyshy/p/9693882.html
Copyright © 2011-2022 走看看