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

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://xiahunao.cn/news/2809503.html

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

相关文章

数据结构与算法:红黑树讲解

关于红黑树, 这篇讲的更详细易懂。 https://www.cnblogs.com/jakelin/p/14324966.html 一颗平衡的二叉搜索树的任意节点平均查找效率为树的高度h,即O(lgn)。 但是如果二叉搜索树的失去平衡(元素全在一侧),搜索效率就…

【变压器故障诊断分类及预测】基于GRNN神经网络

课题名称:基于GRNN神经网络的变压器故障诊断分类及预测 版本日期:2024-02-10 运行方式:直接运行GRNN0507.m文件 代码获取方式:私信博主或QQ:491052175 模型描述: 对变压器油中溶解气体进行分析是变压器…

JavaScript 进阶02

深入对象 构造函数 构造函数是用于创建对象的函数。 <script> //构造函数 构造函数的首字母大写 function Obj(name,age,aaa){this.namenamethis.ageage } //调用函数 const obj1new Obj("小明",4) console.log(obj1) </script> 使用 new 关键字调用…

[AutoSar]BSW_Com03 DBC详解 (一)

目录 关键词平台说明一、DBC 定义1.1 相关工具 二、主要组成部分介绍2.1 Networks2.2 ECUs2.3 Network nodes2.4 messages2.5 signal2.6 Value Tables 三、主要组成部分关系图 关键词 嵌入式、C语言、autosar、OS、BSW 平台说明 项目ValueOSautosar OSautosar厂商vector &am…

docker-compose 搭建laravel环境

laravel环境包含nginx,mysql,php7.4,redis 一、安装好docker后pull镜像 1.nginx镜像 docker pull nginx:latest单独启动容器 docker run --name nginx -p 80:80 -d nginx 2.php镜像 docker pull php:7.4-fpm3.mysql镜像 docker pull mysql:5.74.redis镜像 docker pull r…

ChatGPT调教指南 | 咒语指南 | Prompts提示词教程(三)

在人工智能成为我们日常互动中无处不在的一部分的时代&#xff0c;与大型语言模型(llm)有效沟通的能力是无价的。“良好提示的26条原则”为优化与这些复杂系统的交互提供了全面的指导。本指南证明了人类和人工智能之间的微妙关系&#xff0c;强调清晰、专一和结构化的沟通方法。…

【数据结构初阶 8】二叉树练习题

文章目录 &#x1f308; 01. 求二叉树结点个数&#x1f308; 02. 求二叉树叶结点个数&#x1f308; 03. 求二叉树的高度&#x1f308; 04. 求第 k 层结点个数&#x1f308; 05. 查找值为 x 的结点&#x1f308; 06. 判断是否是单值二叉树&#x1f308; 07. 判断两棵树是否相同&…

单片机05__串口USART通信__按键控制向上位机传输字符串

串口USART通信 通用UART介绍 1.通信的概念 计算机与外界进行信息交换的过程称之为通信。 在通信的过程中&#xff0c;通信双方都需要遵守的规则称之为通信协议。 硬件协议&#xff1a;将数据以什么样的方式传输过去 软件协议&#xff1a;将数据以什么样的顺序传输过去 2.常用…

今日早报 每日精选15条新闻简报 每天一分钟 知晓天下事 2月26日,星期一

每天一分钟&#xff0c;知晓天下事&#xff01; 2024年2月26日 星期一 农历正月十七 1、 气象台&#xff1a;3月初之前南方大部将维持阴雨雪天气。 2、 据海关统计&#xff0c;京津冀协同发展十年成效显著&#xff0c;外贸总量跨两个万亿台阶。 3、 2024年研考初试成绩今天起…

逆向茶话会笔记

安卓逆向 用用burp设置代理或者用charles抓包 windows httpopen 类比web站点渗透测试 推荐书 飞虫 安卓大佬不怎么打ctf 喜欢在看雪和吾爱破解 提问环节 q websocket grpc抓包有什么推荐的工具&#xff1f; a 不太了解 游戏安全和llvm 既要逆游戏也要逆外挂 逆游戏入…

自己测试CSDN质量分3

你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好 质量分测试网址

【Leetcode】938. 二叉搜索树的范围和

文章目录 题目思路代码结论 题目 题目链接 给定二叉搜索树的根结点 root&#xff0c;返回值位于范围 [low, high] 之间的所有结点的值的和。 示例 1&#xff1a; 输入&#xff1a;root [10,5,15,3,7,null,18], low 7, high 15 输出&#xff1a;32 示例 2&#xff1a; 输入…

【VSCode】解决VSCode远程连接问题:远程主机可能不符合 glibc 和 libstdc++

今天用VSCode进行ssh连接时&#xff0c;提示“远程主机可能不符合 glibc 和 libstdc VSCode 服务器的先决条件”。查了一下发现这个问题主要是由于VSCode在一月份发布的最新版本v1.86中要求远程主机 glibc>2.28导致的&#xff0c;所以ssh连接Ubuntu 18.04的时候就会提示这个…

apachectl: line 79: 20233 Segmentation fault (core dumped) $HTTPD “$@“

[TOC](apachectl: line 79: 20233 Segmentation fault (core dumped) $HTTPD “$”) 1、问题描述 apache 启动报错 apachectl: line 79: 20233 Segmentation fault (core dumped) $HTTPD “$” 2、问题分析 参考链接: https://stackoverflow.com/questions/43726930/apache…

【JVM】线上一次fullGC排查思路

fullGC问题背景 监控告警发现&#xff0c;今天开始我们线上应用频繁出现fullGC&#xff0c;并且每次出现后磁盘都会被占满 查看监控 查看监控发现FULLGC的机器均为同一个机房的集器&#xff0c;并且该机房有线上error报错&#xff0c;数据库监控对应的时间点也有异常&#x…

sonar-java 手写一个规则-单元测试分析

前言 最近做项目&#xff0c;定制sonar规则&#xff0c;提高Java代码质量&#xff0c;在编写的sonar规则&#xff0c;做验证时&#xff0c;使用单元测试有一些简单的心得感悟&#xff0c;分享出来。 自定义规则模式 sonar的自定义规则很简单&#xff0c;一般而言有2种模式可…

JAVA工程师面试专题-《Mysql》篇

目录 一、基础 1、mysql可以使用多少列创建索引&#xff1f; 2、mysql常用的存储引擎有哪些 3、MySQL 存储引擎&#xff0c;两者区别 4、mysql默认的隔离级别 5、数据库三范式 6、drop、delete 与 truncate 区别&#xff1f; 7、IN与EXISTS的区别 二、索引 1、索引及索…

数据库应用:Windows 部署 MySQL 8.0.36

目录 一、实验 1.环境 2.Windows 部署 MySQL 8.0.36 3.Windows配置环境变量 4.Navicat链接MySQL 二、问题 1.安装MySQL 报错 一、实验 1.环境 &#xff08;1&#xff09;主机 表1 主机 主机软件版本IP备注WindowsMySQL8.0.36localhost 2.Windows 部署 MySQL 8.0.…

云原生之容器编排实践-ruoyi-cloud项目部署到K8S:MySQL8

背景 前面搭建好了 Kubernetes 集群与私有镜像仓库&#xff0c;终于要进入服务编排的实践环节了。本系列拿 ruoyi-cloud 项目进行练手&#xff0c;按照 MySQL &#xff0c; Nacos &#xff0c; Redis &#xff0c; Nginx &#xff0c; Gateway &#xff0c; Auth &#xff0c;…

顺序表知识点——顺序表的增删查改

目录 准备文件 创建顺序表蓝图 顺序表初始化函数接口 顺序表的销毁函数接口 顺序表的打印函数接口 顺序表的插入函数接口 顺序表的删除函数接口 从本节开始&#xff0c; 复习数据结构。 空间复杂度还有时间复杂度之后利用例题学习。 这节先学习顺序表的增删查改。 首…