当前位置: 首页 > news >正文

LINUX多进程相关

1.进程的概念:

    1.程序:是一段存放在外存中代码的集合(静态的)
    2.进程:是一个程序动态执行的过程,包括创建、调度、消亡(动态的)

    正在执行的程序 ---进程 (动态)
    程序 ----加载到内存去运行--- 进程
    进程是 程序运行的实体。

    进程运行需要消耗两个主要资源:
    cpu+内存
    
    进程和程序的区别:
    1)程序是永存,进程是暂时的
    2)进程有程序状态的变化,程序没有
    3)进程可以并发,程序无并发
    4)进程与进程会存在竞争计算机的资源
    5)一个程序可以运行多次,变成多个进程
        一个进程可以运行一个或多个程序

 
2.进程的创建:

    进程创建后,操作系统为进程分配独立的4G虚拟空间
    进程是操作系统资源分配的最小单位。
    进程空间包括:
        1.文本区(.text)
            存储代码和指令
        2.数据区
            1.字符串常量区
                .rodata 
            2.未初始化静态变量/全局变量
                .bss
            3.已初始化静态变量/全局变量
                .data
        
        3.系统数据段
            1.堆区
                程序员手动管理区域
                程序员负责申请(malloc)释放(free)
        
                
            2.栈区
                操作系统管理区域
                操作系统负责申请释放
                
                
        4.内核区域
            1.CPU管理
            2.内存管理
            3.文件系统管理
            4.硬件设备管理
            5.进程管理

3.进程调度:

    保障多个任务能同时执行
        宏观并行
            多个任务同时向下执行
        微观串行
            CPU在多个任务中快速切换,保障多个任务同时向下执行
    
        
    进程调度算法:
        1.先来先执行,后来后执行
        2.短作业优先
        3.高优先级调度算法
        4.时间片轮转调度算法

    
        
        时间片:CPU在一个任务中执行的一段时间

        PCB块: 一个结构体, process control block
        500多行
        
        PCB块保存内容:
        1.PID,进程标识符
        2.当前工作路径
        3.进程打开的文件列表,文件描述符
        4.进程状态,优先级等
        5.cpu调度现场信息保护等

4.进程状态:

    1.运行态(用户运行态、内核运行态)     R
        正在执行,且被CPU任务调度所执行的进程
        
    2.就绪态    R
        正在执行,没有CPU任务调度执行的进程(只缺少cpu)
        
    3.可唤醒等待态    S
        也称为睡眠态,阻塞等待资源的进程
        
    4.不可唤醒等待态 D
        不想被CPU任务调度所打断的进程任务可以设置为不可唤醒等待态
        
    5.暂停态    T
        被暂停执行的进程
        
    6.僵尸态    Z
        进程执行结束,空间没有被回收
        
    7.结束态    X
        进程执行结束,空间被回收

5.进程相关命令:

        1.ps -aux
          查看进程状态
          ps -aux|grep a.out
          
        2.top 
          根据CPU占用率查看进程信息
          q 退出
        

          
        3.ps -ef
          查看当前时刻进程信息        

          PID:进程的ID号(唯一)
          PPID:父进程的ID号

        4.pstree
          查看进程关系
          
          pstree -p   
          查看所有进程关系及pid号
          
          pstree -sp + 进程id号
          查看某一进程关系
          
        5.kill
          killall
          给进程发送一个信号
          
          kill -9 进程PID
          killall -9 进程名
          
          kill -l  查看信号
            1) SIGHUP     2) SIGINT     3) SIGQUIT     4) SIGILL     5) SIGTRAP
             6) SIGABRT     7) SIGBUS     8) SIGFPE     9) SIGKILL    10) SIGUSR1
            11) SIGSEGV    12) SIGUSR2    13) SIGPIPE    14) SIGALRM    15) SIGTERM
            16) SIGSTKFLT    17) SIGCHLD    18) SIGCONT    19) SIGSTOP    20) SIGTSTP
            21) SIGTTIN    22) SIGTTOU    23) SIGURG    24) SIGXCPU    25) SIGXFSZ
            26) SIGVTALRM    27) SIGPROF    28) SIGWINCH    29) SIGIO    30) SIGPWR
            31) SIGSYS    34) SIGRTMIN    35) SIGRTMIN+1    36) SIGRTMIN+2    37) SIGRTMIN+3
            38) SIGRTMIN+4    39) SIGRTMIN+5    40) SIGRTMIN+6    41) SIGRTMIN+7    42) SIGRTMIN+8
            43) SIGRTMIN+9    44) SIGRTMIN+10    45) SIGRTMIN+11    46) SIGRTMIN+12    47) SIGRTMIN+13
            48) SIGRTMIN+14    49) SIGRTMIN+15    50) SIGRTMAX-14    51) SIGRTMAX-13    52) SIGRTMAX-12
            53) SIGRTMAX-11    54) SIGRTMAX-10    55) SIGRTMAX-9    56) SIGRTMAX-8    57) SIGRTMAX-7
            58) SIGRTMAX-6    59) SIGRTMAX-5    60) SIGRTMAX-4    61) SIGRTMAX-3    62) SIGRTMAX-2
            63) SIGRTMAX-1    64) SIGRTMAX    
          
        6.jobs
          查看当前终端下的后台执行任务
          
        7.fg 编号
          让一个后台执行的任务放到前台执行

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Hadoop3:HDFS存储优化之小文件归档
  • XML 编辑器:功能、选择与使用技巧
  • 北斗高精度服务:无人驾驶领域的创新引擎
  • 基于opencv的图片加水印实现方案
  • ubuntu 通讯学习笔记
  • GESP CCF C++ 三级认证真题 2024年6月
  • 常用的设计模式有哪些
  • List数据的几种数据输出方式
  • Qt中 .pro、.pri、.prf、.prl文件简解
  • LG 选择 Flutter 来增强其智能电视操作系统 webOS
  • winform 去掉Chart左侧空白
  • 智慧水利:迈向水资源管理的新时代,结合物联网、云计算等先进技术,阐述智慧水利解决方案在提升水灾害防控能力、优化水资源配置中的关键作用
  • 电脑显示mfc140u.dll丢失的修复方法,总结7种有效的方法
  • WHAT - Tailwind CSS 的灵活布局(Flex Grid)
  • live555 rtsp服务器实战之doGetNextFrame
  • JavaScript 如何正确处理 Unicode 编码问题!
  • Android系统模拟器绘制实现概述
  • Centos6.8 使用rpm安装mysql5.7
  • CSS相对定位
  • ES6系统学习----从Apollo Client看解构赋值
  • JavaScript设计模式系列一:工厂模式
  • JavaScript新鲜事·第5期
  • JSDuck 与 AngularJS 融合技巧
  • Magento 1.x 中文订单打印乱码
  • Map集合、散列表、红黑树介绍
  • markdown编辑器简评
  • mysql 数据库四种事务隔离级别
  • nodejs调试方法
  • PaddlePaddle-GitHub的正确打开姿势
  • SwizzleMethod 黑魔法
  • 闭包--闭包之tab栏切换(四)
  • 测试开发系类之接口自动化测试
  • 持续集成与持续部署宝典Part 2:创建持续集成流水线
  • 理清楚Vue的结构
  • 模仿 Go Sort 排序接口实现的自定义排序
  • 前端学习笔记之观察者模式
  • 如何解决微信端直接跳WAP端
  • 如何学习JavaEE,项目又该如何做?
  • 时间复杂度与空间复杂度分析
  • 使用 @font-face
  • 详解NodeJs流之一
  • 小试R空间处理新库sf
  • 原生JS动态加载JS、CSS文件及代码脚本
  • const的用法,特别是用在函数前面与后面的区别
  • Redis4.x新特性 -- 萌萌的MEMORY DOCTOR
  • scrapy中间件源码分析及常用中间件大全
  • 翻译 | The Principles of OOD 面向对象设计原则
  • 国内开源镜像站点
  • 如何用纯 CSS 创作一个货车 loader
  • 我们雇佣了一只大猴子...
  • #HarmonyOS:基础语法
  • (1)Jupyter Notebook 下载及安装
  • (4)Elastix图像配准:3D图像
  • (pt可视化)利用torch的make_grid进行张量可视化
  • (附源码)springboot 基于HTML5的个人网页的网站设计与实现 毕业设计 031623