1.4号io网络

1.多进程

引入目的:让多个任务实现并发执行

并发执行:同一时间只有一个进程执行,通过时间轮询调度多个进程,由于时间每个进程所用时间极短,所以宏观表现为多个进程同时进行。

并行执行:多个任务器执行多个进程,同一时间多个进程在执行。

1.1进程概念

1.程序的一次运行过程称为进程

2.进程是有生命周期的,是一个动态过程,分为创建态、就绪态、运行态、阻塞态、消亡态

3.进程是资源分配的最小单位,系统会给每个进程分配4G的虚拟内存,其中0--3G的用户空间是独立的,3--4G的内核空间时共享的

4.进程是独立的,可以被任务器调度,调度的原则是时间片轮询、上下文切换

1.2进程的内存管理

1> 系统会给每个进程分配4G的虚拟内存

2> 多个进程会独立拥有0--3G的用户空间,用户空间又分为栈区、堆区、静态区

3> 多个进程共享一份内核空间

4> 物理内存:内存条(硬件上)真正存在的存储空间

5> 虚拟内存:程序运行后,有4G的虚拟地址,由物理内存通过内存映射单元映射而来,在需要使用内存的时候,会映射到物理内存上

6> 在32位操作系统上,虚拟内存的空间是4G

在64位系统上,虚拟内存的空间是256T = 2^48

1.3进程和程序的区别

进程:进程是动态的,进程是程序的一次执行过程,有生命周期,进程会为自己分配内存空间,是资源分配的最小单位

程序:程序是静态的,没有所谓的生命周期,它是在磁盘上存放的二进制文件

1.4进程的种类

进程一共分为三类:交互进程、批处理进程、守护进程

交互进程:他是由shell控制,可以直接与用户进行交互,例如文本编辑器

批处理进程:维护了一个队列,被放入队列中的进程会统一进行处理。例如gcc编译器的一步到位的编译

守护进程:脱离终端而存在的进程,随着系统的启动而运行,随着系统的关闭而结束。例如服务进程

1.5进程的PID概念

PID:进程号(process ID)

PPID:父进程号

进程号是进程的唯一标识,他是一个大于等于0的一个整数,并且每个进程的进程号不会重复

每个进程都是继承父进程而得到的,所以每个进程都会有父进程

在linux系统中的根目录下的proc目录中,存放的以数字命名的都是一个进程

1.6特殊的进程

1> 系统启动后,至少要运行三个特殊进程,进程号分别是 0、1、2

2> 0号进程:又称为 idel进程,他是有linux系统启动后的第一个进程,是1号和2号进程的父进程,这个进程也叫空闲进程,当系统中的其他进程都不执行时,运行该进程。

3> 1号进程:称为 init进程,是由0进程产生,完成一些系统启动时的必要初始化工作,也是孤儿进程的父进程,可以完成对孤儿进程的收尸工作

4> 2号进程:称为kthreadd进程,是右0号进程产生,用于调度相关进程,也称调度进程

5> 孤儿进程:当前进程还在运行,但是其父进程已经退出,该进程称为孤儿进程,会被init进程收养

6> 僵尸进程:当前进程已经运行结束,但是其父进程没有为其收尸

1.7有关进程的shell指令

查看进程信息指令:ps

ps -ef : 可以查看进程间的关系

ps -ajx:可以查看进程的状态

ps -aux:可以查看当前进程所占内存和cpu的资源占有率

top指令:动态查看进程相关信息

htop指令:带颜色查看进程相关信息

单独获取进程的进程号:pidof 进程名

向进程发送信号指令:kill指令  (重点)

使用格式:kill -信号号 pid

能够发送的信号,可以通过指令kill -l 查看.

2.进程状态

2.1进程状态的描述

man ps

2.2进程状态的切换

进程主要的状态一共有五种:创建态、就绪态、运行态、阻塞态、死亡态

2.3具体状态转换的实例

运行一个可执行程序,并查看其状态

查看后台运行进程的作业号:jobs

将停止的进程,切换到后台运行:bg 作业号

将后台运行的进程,切换到前台运行:fg 作业号

直接将程序运行于后台:./a.out &

3.多进程编程

3.1创建进程

1.进程创建过程是子进程拷贝父进程的资源,进而产生一个独立的进程个体,子进程会拥有父进程在创建进程之前的所有资源

2.创建进程的api函数 fork

#include <sys/types.h>

#include <unistd.h>

pid_t fork(void);

功能:创建出一个子进程

参数:无

返回值:在父进程中,该函数返回子进程的pid号,在子进程中该函数返回0,失败返回-1并置位错误码,并且不会创建出子进程

注意:当子进程创建出来后,父子进程都会执行fork之后的语句

3.不关注返回值的情况时,n个fork会产生2^n个进程,并且多个进程之间没有先后顺序执行

3.2getpid/getppid 进程号的获取

#include <sys/types.h>

#include <unistd.h>

pid_t getpid(void);

功能:获取当前进程的pid号 参数:无 返回值:成功返回当前进程的pid号,不会失败

pid_t getppid(void);

功能:获取当前进程的父进程的pid号 参数:无 返回值:成功返回当前进程的父进程pid号,不会失败

3.3exit/_exit 进程退出函数

#include <stdlib.h>

void exit(int status);

功能:刷新标准io的缓冲区后,退出进程 参数:进程退出时的状态,会将 status&0377的结果返回给父进程 EXIT_SUCCESS(0):表示成功退出 EXIT_FAILURE(1):表示失败退出 返回值:无

#include <unistd.h>

void _exit(int status);

功能:不刷新标准io的缓冲区,直接退出进程 参数:进程退出时的状态,会将 status&0377的结果返回给父进程 EXIT_SUCCESS(0):表示成功退出 EXIT_FAILURE(1):表示失败退出 返回值:无

3.4wait/waitpid 进程资源的回收

#include <sys/types.h>

#include <sys/wait.h>

pid_t wait(int *wstatus);

功能:阻塞等待子进程的结束并回收子进程的资源,如果子进程不退出,则父进程会一直在该函数处阻塞 参数:接受子进程退出时的状态,一般填NULL,表示不接收 返回值:成功返回退出的子进程的pid号,失败返回-1并置位错误码

pid_t waitpid(pid_t pid, int *wstatus, int options);

功能:可以阻塞也可以非阻塞形式回收子进程的资源

参数1:进程号 >0:表示回收特定的子进程的资源(常用) =0:回收当前进程所在进程组中的任意一个子进程 =-1:表示回收任意一个子进程 (常用) <-1:表示回收其他组(组id为pid的绝对值)中的任意一个子进程

参数2:接收子进程退出时的状态,一般填NULL,表示不接收

参数3:是否阻塞的选项 0:表示阻塞 WNOHANG:表示非阻塞回收

返回值:>0:表示成功回收一个子进程,返回该子进程的pid =0:非阻塞回收资源时,没有子进程退出,该函数返回0 =-1:失败返回-1并置位错误码

3.5创建三个进程

三进程拷贝两个文件,第一个 子进程拷贝前半部分,第二个子进程拷贝后半部分

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

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

相关文章

【福利】百度内容审核平台实战

文章目录 前言功能概述产品价格快速入门&#xff08;账号登录及资源领取、在线验证、编写示例程序&#xff09;实战演示1、首先创建一个应用2、引入百度的SDK3、测试用例百度内容审核-文本 200QPS百度内容审核-图像 50QPS 写在最后 前言 百度内容审核平台主要针对图像、文本、…

C语言可变参数输入

本博文源于笔者正在学习的可变参数输入&#xff0c;可变参数是c语言函数中的一部分&#xff0c;下面本文就以一个很小的demo演示可变参数的编写 问题来源 想要用可变参数进行多个整数相加 方法源码 #include<stdio.h> #include<stdlib.h> #include<stdarg.h…

接口测试基础(超详细)

一、HTTP 1、http请求头和响应头包含那些内容&#xff1f; 请求头信息 请求报头允许客户端向服务器端传递请求的附加信息以及客户端自身的信息。 2、常用的请求报头如下&#xff1a; Accept&#xff1a;浏览器可接受的MIME类型。 l MIME用于设定某种扩展名的文件用哪种应用程…

tiktok_浅谈hook ios之发包x-ss-stub

frida-trace ios手机一部&#xff0c;需要越狱的电脑一台idacrackerXI 目标app&#xff1a; ipa 包&#xff0c;点击前往 密码&#xff1a;8urs 协议分析起始从抓包开始&#xff0c;个人习惯 一般安卓逆向可以直接搜关键词&#xff0c;但是ios 都在 Mach-O binary (reverse…

基于ssm学生社团管理系统+vue论文

摘 要 如今的时代&#xff0c;是有史以来最好的时代&#xff0c;随着计算机的发展到现在的移动终端的发展&#xff0c;国内目前信息技术已经在世界上遥遥领先&#xff0c;让人们感觉到处于信息大爆炸的社会。信息时代的信息处理肯定不能用之前的手工处理这样的解决方法&#x…

DAPP和APP的区别在哪?

随着科技的飞速发展&#xff0c;我们每天都在与各种应用程序打交道。然而&#xff0c;你是否真正了解DAPP和APP之间的区别呢&#xff1f;本文将为你揭示这两者的核心差异&#xff0c;让你在自媒体平台上脱颖而出。 一、定义与起源 APP&#xff0c;即应用程序&#xff0c;通常指…

一文读懂JVS逻辑引擎如何调用规则引擎:含详细步骤与场景示例

在当今的数字化时代&#xff0c;业务逻辑和规则的复杂性不断增加&#xff0c;这使得逻辑引擎和规则引擎在处理业务需求时显得尤为重要。逻辑引擎和规则引擎通过定义、解析和管理业务逻辑和规则&#xff0c;能够帮助企业提高工作效率、降低运营成本&#xff0c;并增强决策的科学…

数据科学低代码工具思考2—现状分析

数据科学工具伴随着计算机技术的发展也在持续的演进。数据库、大数据以及人工智能等时代标志性技术的出现&#xff0c;对数据科学工具的能力也有了更高的要求。一般而言&#xff0c;工具发展的趋势都是首先会出现一个能够支持数据科学计算的开发框架&#xff0c;方便用户能够更…

RHCE9学习指南 第20章 计划任务

有时需要在某个指定的时间执行一个操作&#xff0c;此时就要使用计划任务了。计划任务有两种&#xff1a;一个是at计划任务&#xff0c;另一个是crontab计划任务。 下面我们分别来看这两种计划任务的使用。 20.1 at at计划任务是一次性的&#xff0c;到了指定的时间点时就开始…

mac图片格式转换软件有哪些?推荐6个实用软件

mac图片格式转换软件有哪些&#xff1f;在数字时代&#xff0c;图片格式的转换已成为我们日常工作中不可或缺的一部分。对于Mac用户来说&#xff0c;选择一款高效、便捷的图片格式转换软件尤为重要。本文将为你介绍几款备受推崇的Mac图片格式转换软件&#xff0c;让你轻松应对各…

MySQL 5.7.35下载安装使用_忘记密码_远程授权

文章目录 MySQL 5.7.35下载安装使用_忘记密码_远程授权MySQL下载地址mysql安装点击安装&#xff0c;最好以管理员身份运行选择自定义安装选择64位勾选启动自定义产品执行点击同意点击下一步点击执行下一步配置数据库端口号设置登录密码&#xff0c;如果密码忘记&#xff0c;下面…

最新PyCharm安装详细教程及pycharm配置_pycharm安装教程

目录 一、PyCharm简介及其下载网站 二、单击网站的Downloads&#xff0c;进入二级页面&#xff0c;选择对应的操作系统下载PyCharm 三、PyCharm的安装程序的安装及其配置(configuration) 1、运行PyCharm Setup 2、安装位置设置 3、安装选项设置 4、开始菜单中PyCharm快捷方式的…

CMake入门教程【高级篇】管理MSVC编译器警告

😈「CSDN主页」:传送门 😈「Bilibil首页」:传送门 😈「动动你的小手」:点赞👍收藏⭐️评论📝 文章目录 1.什么是MSVC?2.常用的屏蔽警告3.MSVC所有警告4.target_compile_options用法5.如何在CMake中消除MSVC的警告?6.屏蔽警告编写技巧

如何使用css隐藏掉滚动条

1.解决方案 在滚动元素上再包裹一个父元素&#xff0c;然后&#xff0c;该元素添加如下代码&#xff1a; &#xff08;注&#xff1a;PC端浏览器滚动条为8px&#xff09;使元素偏移原来位置8px&#xff0c;目的就是将滚动条区域移动到父元素边框外面&#xff0c;然后&#xff…

PFA试剂瓶——实验室存储运输化学试剂样品容器

PFA是一种高性能的塑料材料。它是一种热塑性塑料&#xff0c;由全氟化&#xff0c;聚合物制成&#xff0c;具有高度的化学稳定性性。由于其优异的性能&#xff0c;PFA被广泛应用于多个领域&#xff0c;尤其是作为存储和运输各种化学试剂的容器&#xff0c;耐受-200℃至260C的温…

云流量回溯的工作原理及关键功能

云计算和网络技术的快速发展为企业提供了更灵活、高效的业务运营环境&#xff0c;同时也引发了一系列网络安全挑战。在这个背景下&#xff0c;云流量回溯成为网络安全领域的一个关键技术&#xff0c;为企业提供了对网络活动的深入洞察和实时响应的能力。 一、 云流量回溯的基本…

UTONMOS:探索元宇宙,开启未来游戏新篇章

在元宇宙的世界里&#xff0c;游戏不再只是消遣&#xff0c;而是一个全新的互动世界&#xff0c;等待你来探索&#xff01; 逼真的虚拟现实技术&#xff0c;让你沉浸在充满想象力的游戏世界中&#xff0c;体验前所未有的刺激和乐趣。 与来自全球的玩家互动交流&#xff0c;结…

CodeWave智能开发平台--03--目标:应用创建--09供应商详情页面下

摘要 本文是网易数帆CodeWave智能开发平台系列的第13篇&#xff0c;主要介绍了基于CodeWave平台文档的新手入门进行学习&#xff0c;实现一个完整的应用&#xff0c;本文主要完成09供应商详情页面下主营产品展示及权限管理 CodeWave智能开发平台的13次接触 CodeWave参考资源…

国标28181平台的手机视频监控客户端的电子地图功能对比

目 录 一、手机客户端 1、概述 2、具体功能简述 二、电子地图功能 1、经纬度定位 2、附近设备 3、实时浏览功能 4、录像回放 5、缩放功能 三、手机web客户端和CS客户端上的电子地图功能对比 1、对比表 2、测距&#xff08;PC客户端功能&#xff09; 3…

2. Presto应用

该笔记来源于网络&#xff0c;仅用于搜索学习&#xff0c;不保证所有内容正确。文章目录 1、Presto安装使用2、事件分析3、漏斗分析4、漏斗分析UDAF开发开发UDF插件开发UDAF插件 5、漏斗测试 1、Presto安装使用 参考官方文档&#xff1a;https://prestodb.io/docs/current/ P…