Linux软件高级编程-进程基本概念--day6

news2025/1/12 4:58:31

1.进程:

           程序:

                  存放在外存的一段数据组成的文件

           进程:

                  是一个程序动态执行的过程,包括进程的创建、进程的调度、进程的消亡

2.进程相关命令:

           1)top:

                       动态查看当前系统中所有进程信息(根据CPU占用率排序)

                   PID:唯一识别进程的ID号(>0)

                   优先级:Linux系统中数据高,优先级高(-20 --- 19);
                                  Windows系统中数值高,优先级高

                   进程状态:

                            R:运行态/就绪态

                            S:睡眠态/可唤醒等待态

                            D:不可唤醒等待态

                            T:暂停态

                            Z:僵尸态

                            X:结束态

             2)nice :

                      以指定优先级来运行进程

                      eg:nice  -n  优先级  要执行的集成任务

                   renice:重新设定一个正在运行的进程的优先级

                      eg:renice  -n  优先级  进程PID

             3)kill:

                      杀死指定的进程任务  

                      eg:kill  -9  进程PID

                   killall:杀死进程名对应的所有进程任务

                      eg:killall  -9  进程名

             4)ps  -ef:

                       查看当前时刻所有进程的信息

                   PPID:父进程的ID号

                   ps  -ef  grep  a.out

             5)pstree:

                        查看进程树

             6)ps  -aus:

                        查看当前时刻的进程信息

             7)./a.out  &:

                        将a.out放在后台执行

             8)jobs:

                        查看一个终端下后台执行的所有任务

             9)fg  编号:

                        将后台任务放到前台执行

3.进程的创建

           32bits

           一个进程在运行时,操作系统会为该进程分配0 -- 4G虚拟内存空间,分为文本段、数据段、系统数据段

             文本段:

                        也称文本区,存放代码和指令

             数据段:

                        也称数据区,可以细分为

                        1)字符串常量区

                        2)未初始化全局变量/静态变量

                        3)已初始化全局变量/静态变量

             系统数据段:

                        包含堆区和栈区

4.进程中蓄奴地址和物理地址的关系

        1)0  ---  4G虚拟内存空间只有一个

        2)实际物理地址中每个进程空间独立

        3)通过MMU内存映射单元,单一个进程执行时,将物理地址中的数据加载到虚拟地址中运行

5.进程的调度

       1)常见的调度算法

              1.先来先执行,后来后执行

              2.高优先级调度算法

              3.时间片轮转调度算法

              4.多级队列反馈调度算法

              5.负载均衡调度算法

                 时间片:1.CPU在一个任务中的运行时间称为一个时间片

        2)宏观并行,微观并行

        3)进程的状态

                  R        运行态、就绪态

                  S        睡眠态/可唤醒等待态

                  D        不可唤醒等待态 

                  T         暂停态  

                  Z         僵尸态

                  X         结束态

6.进程相关的函数接口

      1.进程的创建 

              fork

              功能:创建一个子进程,新创建的进程称为原来进程的子进程,原来的进程称为新进程的父进程

              参数:void 缺省

              返回值:成功子进程返回0
                            父进程返回子进程的PID

                            失败返回-1

              父进程调用fork创建子进程,子进程拷贝父进程的文本段、数据段、系统数据段

              getpid

                        pid_t getpid(void);

                功能:

                       获得调用进程的PID号
      
             

              getppid

                        pid_t getppid(void);

                 功能:

                        获得调用进程的PPID

       2.进程的结束

            exit

              void  exit(int  status);

              功能:

                      让进程结束

              参数:

                      status:进程结束的状态

               返回值:

                      缺省

               exit在主函数中使用和return效果一致exit会刷新缓存区

           _exit

               void exit(int status);

               功能:
                       让进程直接结束

               参数:
                       status:进程结束的状态

               返回值: 
                       缺省

7.进程的消亡

   1.僵尸态

               进程代码执行结束,空间没有被回收,称为僵尸进程

   2.如何避免产生僵尸进程

               1)让父进程先结束

               2)让父进程回收子进程空间

   3.孤儿进程

               进程的父进程先结束,此时该进程称为孤儿进程,被系统进程收养,进程再结束时,会被系统进程回收进程空间

8. wait函数

          pid t wait(jnt *wstatus);

          功能:

                   回收子进程空间

          参数:

                   wstatus:存放子进程结束状态空间的首地址

          返回值:

                   成功返回回收到的子进程PID失败返回-1

wait函数的作用

          1)wait函数具有阻塞作用

          2)wait函数具有同步作用

  WIFEXITED(wstatus)
  进程是否正常退出 

  WEXITSTATUS(wstatus)
  进程结束状态值

  WIFSIGNALED(wstatus)
  进程是否被信号杀死

  WTERMSIG(wstatus)
  获得杀死进程的信号编号

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

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

相关文章

Jmeter系列(1)Mac下载安装启动

目录 Jmeter下载安装启动下载启动 Jmeter下载安装启动 注意⚠️:使用jmeter需要有java环境 下载 官网下载地址:https://jmeter.apache.org/ 会看到这里有两个版本,那么有什么区别么? Binaries是可执行版,直接下载解…

Redis哨兵模式和Redis Cluster模式

文章目录 🔊博主介绍🥤本文内容Redis Cluster 模式支持自动故障转移功能吗?Redis Cluster 模式支持自动故障转移功能和哨兵有什么区别?Redis Cluster 模式和哨兵模式(Sentinel)在自动故障转移方面有一些关键…

Niginx介绍和安装使用

Nginx是什么? Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一…

什么是Elasticsearch SQL

什么是Elasticsearch SQL 一. 介绍二. SQL 入门 前言 这是我在这个网站整理的笔记,有错误的地方请指出,关注我,接下来还会持续更新。 作者:神的孩子都在歌唱 一. 介绍 Elasticsearch SQL 是一个 X-Pack 组件,允许针对 Elasticsea…

linux系统---防火墙拓展

目录 一、iptables 1.基本语法 2.四表五链——重点记忆 2.1四表 2.2五链 2.3总结 3.iptables选项示例 3.1 -Z 清空流量计数 3.2 -P 修改默认规则 3.3 -D 删除规则 3.4 -R 指定编号替换规则 4.白名单 5.通用匹配 6.示例 6.1添加回环网卡 6.2可以访问端口 6.3 主…

matlab|计及源荷不确定性的综合能源生产单元运行调度与容量配置随机优化模型

目录 1 主要内容 1.1 风光场景聚类 1.2 主模型程序结果 1.3 随机模型和确定性模型对比 1.4 有无储气对比 1.5 煤价灵敏性分析 1.6 甲烷价格灵敏性分析 2 部分程序 3 下载链接 1 主要内容 本程序复现《计及源荷不确定性的综合能源生产单元运行调度与容量配置两阶段随机…

Bert基础(四)--解码器(上)

1 理解解码器 假设我们想把英语句子I am good(原句)翻译成法语句子Je vais bien(目标句)。首先,将原句I am good送入编码器,使编码器学习原句,并计算特征值。在前文中,我们学习了编…

Spring Boo项目中方法参数对象中字段上存在的自定义注解如何进行拦截解析

一、前言 在Spring Boot项目开发过程中,我们经常会使用到自定义注解的方式进行业务逻辑开发,此时注解我们一般是放在方法或者类上面,通过AOP切面拦截的方式进行自定义业务逻辑填充。但是如果自定义注解放在类的字段上,此时应该如…

Power Apps-组件使用全局变量

组件并不可以直接使用全局变量,若想使用全局变量可以使用如下方法: 首先点击整个组件,在右侧边栏中找到自定义属性,点击添加新的自定义属性 填写相关信息,显示名称和名称填写全局变量名称,说明随意编辑 再…

MATLAB环境下基于距离正则化水平集演化方法的图像分割

水平集图像分割方法实际上是基于曲线演化理论的一种数学方法在图像上的表示,能够处理曲线的拓扑结构变化,而且其数值实现的稳定性高,医学超声图像由于其成像原理一般会具有较高的斑点噪声并且一些区域存在对比度低的情况。传统的图像分割算法并不能在医学…

租赁小程序|租赁系统|租赁软件开发带来高效运营

随着社会的不断发展和科技的不断进步,越来越多的企业开始关注设备租赁业务。设备租赁作为一种短期使用设备的方式,为企业提供了灵活和成本节约的优势。针对设备租赁业务的管理和提升企业竞争力的需求,很多企业选择定制开发设备租赁系统。本文…

【每日一题】938. 二叉搜索树的范围和-2024.2.26

题目: 938. 二叉搜索树的范围和 给定二叉搜索树的根结点 root,返回值位于范围 [low, high] 之间的所有结点的值的和。 示例 1: 输入:root [10,5,15,3,7,null,18], low 7, high 15 输出:32示例 2: 输入…

ESP32(VSCode+PlatformIO)开发环境搭建教程(2024版)

目录 一、安装vscode:[点击下载](https://code.visualstudio.com/Download)二、安装Python环境三、安装VSCode platformio插件四、使用PlatformIO创建项目五、编译下载 一、安装vscode:点击下载 二、安装Python环境 本文以Win11系统做演示,其…

Unity(第六部)向量的理解和算法

标量:只有大小的量。185 888 999 (类似坐标) 向量:既有大小,也有方向。(类似以个体为主体的方向,前方一百米) 向量的模:向量的大小。(类似以个体为主体的方向,前方一百米、只取一百米…

配置用户自动获取IPv6地址的案例

知识改变命运,技术就是要分享,有问题随时联系,免费答疑,欢迎联系! ​​​​​​https://www.xmws.cn华为认证\华为HCIA-Datacom\华为HCIP-Datacom\华为HCIE-DatacomLinux\RHCE\RHCE 9.0\RHCA\ Oracle OCP\CKA\K8S\ CIS…

蓝桥杯-最小砝码

知识点&#xff1a;本题主要考察任何一个物体都可以用 3进制表示。 #include <iostream> #include<cmath> using namespace std; //知识点:任何一个物体都可以用 3进制表示 int main() { int n; cin >> n; int sum 0; for (int i 0;; i)…

初学学习408之数据结构--数据结构基本概念

初学学习408之数据结构我们先来了解一下数据结构的基本概念。 数据结构&#xff1a;是相互之间存在一种或多种特定关系的数据元素的集合。 本内容来源于参考书籍《大话数据结构》与《王道数据结构》。除去书籍中的内容&#xff0c;作为初学者的我会尽力详细直白地介绍数据结构的…

【Prometheus】概念和工作原理介绍

目录 一、概述 1.1 prometheus简介 1.2 prometheus特点 1.3 prometheus架构图 1.4 prometheus组件介绍 1、Prometheus Server 2、Client Library 3、pushgateway 4、Exporters 5、Service Discovery 6、Alertmanager 7、grafana 1.5 Prometheus 数据流向 1.6 Pro…

liunx前后端分离项目部署

文章目录 1、nginx的安装和自启动2.nginx负载均衡3.前后端项目部署-后端部署4.前后端项目部署-前端部署 1、nginx的安装和自启动 yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel1.安装我们nginx所需要的依赖 wget http://nginx.org/download/nginx-1.…

S32 Design Studio PE工具配置TMR

配置步骤 配置内容 生成的配置结构体如下&#xff0c;在Generated_Code路径下的lpTmr.c文件和lpTmr.h文件。 /*! lpTmr1 configuration structure */ const lptmr_config_t lpTmr1_config0 {.workMode LPTMR_WORKMODE_PULSECOUNTER,.dmaRequest false,.interruptEnable tr…