linux高级编程(进程)(1)

进程:

进程的含义?

进程是一个程序执行的过程,会去分配内存资源,cpu的调度

进程分类:
        1、交互式进程
        2、批处理进程   shell脚本 
        3、 守护进程 

进程与程序的区别:

    1)程序是永存,进程是暂时的
    2)进程有程序状态的变化,程序没有
    3)进程可以并发,程序无并发
    4)进程与进程会存在竞争计算机的资源
    5)一个程序可以运行多次,变成多个进程

一个进程可以运行一个或多个程序

进程的作用:

并发并行(各执行各的)

进程的状态:

4.进程的状态:
    3个状态,就绪→执行态→阻塞(等待,睡眠)基本操作系统
    linux中的状态,运行态,睡眠态,僵尸态,暂停态。

使用了一个结构体pcb(进程控制块),用于存储进程的数据,实现控制进程

(1)运行态(running):进程占有处理器正在运行。

(2)就绪态(ready):进程具备运行条件,等待系统分配处理器以便运行。

(3)阻塞态(blocked):又称为或睡眠(sleep)态,指进程不具备运行条件,正在等待某个事件的完成。

(4)僵尸态(zombie):子运行完,父没运行完,子进程会以终止状态保持在进程表中,并且会一直在等待父进程读取才能退出。

(5)孤儿态:父运行完,子没运行完,子处于托管状态,加重系统负担

进程的调度,进程上下文切换

内核主要功能之一就是完成进程调度, 硬件,bios,io,文件系统,驱动
    调度算法, other,idle
                rr,fifo
    宏观并行(从人的视角,程序是多个运行)
    微观串行(从计算机的视角,一次只能运行一行代码,也就是说这一时刻只能运行一个进程)

查询进程相关命令

    1.ps aux

    查看进程相关信息

        1.就绪态、运行态    R
        2.睡眠态、等待态    
            可唤醒等待态    S
            不可唤醒等待态    D
        3.停止态    T
        4.僵尸态    Z
        5.结束态    

    2.top
    根据CPU占用率查看进程相关信息
    
    3.killall -9 进程名
    发送信号 进程名对应的所有进程
    killall a.out

内存分布:

0-3G,是进程的空间,3G-4G是内核的空间

虚拟地址:
    在逻辑上不存在,即无法成为可供硬件读取的电信号,但实际占有内存空间,保护了程序运行

fork():

    父进程从文件头开始走,子进程从fork的位置开始走

    pid_t fork(); 叉子
    一次调用,会返回两次。
    子进程先运行和是父进程先进程,顺序不确定。
    变量不共享。
    子进程复制父进程的0到3g空间(物理内存)和父进程内核中的PCB,但id号不同。
    功能:通过该函数可以从当前进程中克隆一个同名新进程。
          克隆的进程称为子进程,原有的进程称为 父进程。
          子进程是父进程的完全拷贝。
          子进程的执行过程是从fork函数之后执行。
          
          子进程与父进程具有相同的代码逻辑。

    返回值:int 类型的数字。
            在父进程中:成功 返回值是子进程的pid号 >0
                        失败 返回-1;
            在子进程中:成功 返回值 0
                        失败 无

fork()&&fork()||fork();
    生成几个子进程?5个

首先,fork看做一个变两个,一个父一个子,并且,根据其子进程只会从生成该子节点的fork()开始运行,可以理解为从该节点处开始分叉

这里还要知道逻辑运算符的截断特性(短路特性),(即已经确定结果的值时,不会继续往后运行),给fork加上编号(1&&2||3),

在父进程中运行时:此时1返回值为1,在最上层展开分支;判断2,返回值也为1,在第二层的1后展开分支,||运算的结果此时已经能确定,不会去运行3

注意:此时相当于这个父节点有两个子节点

父进程运行完:

在子进程中运行时:此时1返回值为0,不会去判断2,只会执行3,也就是所有子节点分叉一次

最终结果:

2.getpid

pid_t getpid(void);
    功能:
        获得调用该函数进程的pid
    参数:
        缺省
    返回值:
        进程的pid

3.getppid

pid_t getppid(void);
    功能:
        获得调用该函数进程的父进程pid号
    参数:
        缺省
    返回值:
        返回父进程id号

父子进程的关系:

子进程是父进程的副本。子进程获得父进程数据段,堆,栈,正文段共享。
    
    在fork之后,一般情况那个会先运行,是不确定的。如果非要确定那个要先运行,需要IPC机制。
    
    区别:
    1)fork的返回值
    2)pid不同

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

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

相关文章

onlyoffice官方文档中打开文件示例的相关测试

文档地址&#xff1a;https://api.onlyoffice.com/zh/editors/open 开发环境&#xff1a; 后端&#xff1a;zdppy_api开发的一个文档服务前端&#xff1a;vue3开发的客户端 我们在index.html中&#xff0c;引入了文档服务的js文件&#xff1a; <!doctype html> <h…

SonarQube集成Jenkins平台搭建

SonarQube平台搭建 一、项目搭建的必要条件 SonarQube 8.9.10 previous LTS 依据公司现有服务目前的Jdk版本1.8&#xff0c;需要选择一个适用的长期支持版本&#xff0c;我在这里选用的是SonarQube 8.9.10 previous LTS。下载地址&#xff1a;Download Previous SonarQube Ver…

甲骨文(Oracle)云AI专家级证书免费获取攻略

这次分享的是甲骨文云(Oracle)2024年最新最热门的AI专家级证书&#xff0c;活动截止日期7/31。 考试为闭卷监考形式&#xff0c;但小李哥已经把题库准备好&#xff0c;分享给大家。 甲骨文Oracle☁️云计算凭借其Oracle原生产品(数据库、ERP等)在云计算市场中具有一定地位。目前…

常见图像分割模型介绍:FCN、U-Net、SegNet、Mask R-CNN

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推…

Node.js全栈指南:浏览器显示一个网页

上一章&#xff0c;我们了解到&#xff0c;如何通过第二章的极简 Web 的例子来演示如何查看官方文档。为什么要把查阅官方文档放在前面的章节说明呢&#xff1f;因为查看文档是一个很重要的能力&#xff0c;就跟查字典一样。 回想一下&#xff0c;我们读小学&#xff0c;初中的…

泰迪智能科技大数据挖掘企业服务平台典型合作案例介绍

泰迪大数据挖掘企业服务平台 是一款通用的、企业级、智能化的数据分析模型构建与数据应用场景设计工具&#xff0c;能够一体化地完成数据集成、模型构建、模型发布&#xff0c;为数据分析、探索、服务流程提供支撑&#xff0c;提供完整的数据探索、多数据源接入、特征处理、模型…

高考志愿填报:选好专业还是选好学校?

目录 引言 专业解析 工科类专业 文科类专业 医药类专业 商科类专业 名校效应分析 名校声誉的影响 教育资源和研究机会 学术氛围和创新能力 就业优势 好专业和好学校的权衡 职业目标的判断 行业需求的考量 教育质量的比较 结论 引言 2024年高考帷幕落下&#xff…

七天速通javaSE:第四天 java方法

文章目录 前言一、什么是方法&#xff1f;二、方法的定义与调用1. 方法的定义2. 方法的调用3. 练习&#xff1a;定义比大小方法并调用 三、方法的重载四、递归五、可变参数拓展&#xff1a;命令行传递参数 前言 本章将学习java方法。 一、什么是方法&#xff1f; java方法是用…

uniapp 微信小程序端使用百度地图API

1、登录百度地图开放平台 https://lbsyun.baidu.com/&#xff08;没有账号则先去创建一个百度账号&#xff09; 2、进入百度地图开放平台控制台&#xff08;导航栏“控制台”&#xff09;&#xff0c;点击“应用管理”-“我的应用” 3、选择“创建应用”&#xff0c;应用模块选…

机器学习辅助的乙醇浓度检测(毕设节选)

目录 1.为什么要机器学习 2. 神经网络一般组成 3.BP神经网络工作过程 4.评价指标 5.实操代码 1.为什么要用机器学习 人工分析大量的谐振模式&#xff0c;建立各种WGM的响应与未知目标之间的关系&#xff0c;是一个很大的挑战。机器学习(ML)能够自行识别全谱的全部特征。作为…

【PythonWeb开发】Flask自定义模板路径和静态资源路径

在大型的 Flask 项目中&#xff0c;确实可能会有多个子应用&#xff08;Blueprints&#xff09;&#xff0c;每个子应用可能都有自己的静态文件和模板。为了更好地管理和组织这些资源&#xff0c;可以使用static_folder 和template_folder 属性来统一管理。必须同时设置好主应用…

期货交易记录20240626

文章目录 期货交易系统构建第一步、选品第二步、心态历练第三步、开仓纪律第四步、持仓纪律第五步、接下来的计划 2024年6月26号&#xff0c;开始写期货交易的第四篇日记。 交易记录&#xff1a;做了一笔纯碱的多单&#xff0c;在回撤了400个点左右后&#xff0c;看到企稳信号后…

LLM文本数据集775TB:覆盖32个领域,444个数据集

大语言模型在各领域展现出巨大潜力&#xff0c;其性能在很大程度上依赖于训练和测试所用的数据集。然而&#xff0c;目前在如何构建和优化这些数据集方面&#xff0c;尚缺乏统一的认识和方法论。下面从五个方面整合和分类了LLM数据集的基本内容&#xff1a;预训练语料库、指令微…

day38动态规划part01| 理论基础 509. 斐波那契数 70. 爬楼梯 746. 使用最小花费爬楼梯

**理论基础 ** 无论大家之前对动态规划学到什么程度&#xff0c;一定要先看 我讲的 动态规划理论基础。 如果没做过动态规划的题目&#xff0c;看我讲的理论基础&#xff0c;会有感觉 是不是简单题想复杂了&#xff1f; 其实并没有&#xff0c;我讲的理论基础内容&#xff0c;…

【TB作品】MSP430G2553,单片机,口袋板, 烘箱温度控制器

题3 烘箱温度控制器 设计一个基于MSP430的温度控制器&#xff0c;满足如下技术指标&#xff1a; &#xff08;1&#xff09;1KW 电炉加热&#xff0c;最度温度为110℃ &#xff08;2&#xff09;恒温箱温度可设定&#xff0c;温度控制误差≦2℃ &#xff08;3&#xff09;实时显…

如何创建一个vue项目

目录 1.环境准备 2.检查node和npm版本&#xff0c;确定已安装nodejs 3.全局安装vue/cli、webpack、webpack-cli、vue/cli-init 4.检查vue版本,注意V是大写 5.创建vue项目 6.得到的vue项目目录结构如下&#xff1a; 1.环境准备 安装nodejs,或者安装nvm&#xff0c;并使用…

记录一次CMS的代码审计

本次代码审计使用了白加黑的手法&#xff0c;用黑盒的视角测试功能点&#xff0c;用白盒的方式作为验证。 0x1 XSS guestbook处&#xff0c;可以看到有一个留言板 idea搜索guestbook。发现代码如下&#xff0c;其中的getModel是获取数据的方法。Guestbook.class就是具体要获取…

zkWASM:ZK+zkVM的下一站?

1. 引言 ZK技术具备极大通用性&#xff0c;也帮助以太坊从去中心化投资走向去信任化的价值观。“Don’t trust, Verify it!”&#xff0c;是ZK技术的最佳实践。ZK技术能够重构链桥、预言机、链上查询、链下计算、虚拟机等等一系列应用场景&#xff0c;而通用型的ZK协处理器就是…

【Docker】镜像

目录 1. 镜像拉取 2. 镜像查询 3. 镜像导出 4. 镜像上传 5. 镜像打标签 6. 镜像上推 7. 镜像删除 8. 镜像运行及修改 8.1 在registry 节点运行 mariadb 镜像&#xff0c;将宿主机 13306 端口作为容器3306 端口映射 8.2 查看容器ID 8.3 进入容器 8.4 创建数据库xd_d…

SK Hynix 3D DRAM良率突破56.1%,开启存储新时代

根据韩国财经媒体Business Korea独家报道&#xff1a;在刚刚结束的VLSI 2024国际研讨会上&#xff0c;韩国半导体巨头SK Hynix公布了一项振奋人心的进展&#xff1a;其五层堆叠3D DRAM的制造良率已达到56.1%。此成果标志着3D DRAM技术在商业化道路上迈出了坚实的一步&#xff0…