【运维面试100问】(十一)淡淡I/O过程

  本站以分享各种运维经验和运维所需要的技能为主

《python零基础入门》:python零基础入门学习

《python运维脚本》: python运维脚本实践

《shell》:shell学习

《terraform》持续更新中:terraform_Aws学习零基础入门到最佳实战

《k8》暂未更新

《docker学习》暂未更新

《ceph学习》ceph日常问题解决分享

《日志收集》ELK+各种中间件

《运维日常》运维日常

《linux》运维面试100问

I/O过程 

I/O 介绍
I/O 通常有内存 IO 、网络 I/O 、磁盘 I/O 等,但我们通常说的是网络 I/O 以及磁盘 I/O 。网络 I/O :本质是 socket 读取
每次 I/O 请求,都会有两个阶段组成: 第一步:等待数据,即数据从磁盘到内核内存;将数据从磁盘文件先加载到
内核内存空间(缓冲区),等待数据准备完成,时间较长。第二步:复制数据,即数据内核内存到进程内存;将数
据从内核缓冲复制到用户空间的进程内存中,时间较短。
Web 请求处理过程
1. 客户端发起情况到服务器网卡
2. 服务器网卡接受到请求后转交给内核处理
3. 内核根据请求对应的套接字,将请求交给工作在用户空间的 Web 服务器进程
4.Web 服务器进程根据用户请求,向内核进行系统调用,申请获取相应资源(如:客户端获取图片)
5. 内核发现 Web 服务器进程请求的是一个存放在本地硬盘上的资源,因此通过驱动程序连接磁盘
6. 内核调用磁盘,获取需要的资源
7. 内核将资源存放在自己的缓存区中,并通知 Web 服务器进程
8.Web 服务器进程通过系统调用取得资源,并将其复制到进程自己的缓冲区中
9.Web 服务器进程形成响应,通过系统调用再次发给内核以响应请求
10. 内核将响应发送至网卡
11. 网卡发送响应给用户
通过这样的一个复杂过程,一次请求就完成了
简单来说就是: 用户请求 —— 》送达用户空间 —— 〉系统调用 —— 》内核空间 —— 〉内核到磁盘上读取图片资源 —— 》返回到用户
空间 —— 〉响应给用户
上述简单的说明了一下,客户端向 Web 服务器请求过程,
在这个过程中,有两个 I/O 过程:
一是客户端请求的网络 I/O,
二个是 Web 服务器请求图片磁盘 I/O

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

手把手教你基于 FastGPT 搭建个人知识库

前言 大家好,我是潇潇雨声。我发现在使用 GPT 时,尽管它能够生成一些小红书文案和日志,但内容常常显得空洞缺乏深度。今天我想分享一个解决这个问题的方法,那就是基于开源项目 FastGPT[1]。 我们可以通过向 GPT 提供一些有针对性的…

大数据技术基本功-数据采集

产品指南|DataScale自定义采集器功能介绍产品指南|开发 DataScale Collector​​​​​​​

鸿蒙和各大厂合作,是不是要火起来

今年9月底,在华为秋季全场景新品发布会上,华为常务董事、终端BG CEO余承东宣布,鸿蒙原生应用全面启动,HarmonyOS NEXT开发者预览版将在2024年第一季度开放。 近日,腾讯、阿里、美团、网易,外包大厂中软国际…

从零开始创建GPTs 人人都可以编写自己的ChatGPT产品

在这个人工智能迅猛发展的时代,GPT(生成式预训练变换器)已经成为一项令人兴奋的技术,它打开了创意和知识的新大门。无论你是一名编程新手、一位热爱探索的学生,还是对未来充满好奇的专业人士,GPTs都可以为你…

代码随想录算法训练营Day7 | 233.用栈实现队列、225.用队列实现栈

LeeCode 233 用栈实现队列 本题思路:使用两个栈来实现队列,应该怎么做呢?我们通过画图来分析下 入队列的时候,直接在 stackin 入出队列的时候,肯定是先出 1 ,此时把,stackin 中全部 弹出到 入到…

DBeaver连接hive

1.新建hive连接 其中主机填写hive所在节点地址,端口10000为默认,数据库名不填则是默认default数据库,用户名密码填写hadoop集群中能操作hdfs的用户和密码。 2.编辑驱动,驱动的jar包从安装的hive下的jdbc路径下获取,例…

【HarmonyOS开发】ArkTs使用Http封装

1、鸿蒙中如何进行网络请求 1.1 三方库请求 ohos/axios ohos/retrofit ohos/httpclient 1.2 鸿蒙原生请求 ohos.net.http 2、ArkTs请求模块ohos.net.http 本模块提供HTTP数据请求能力。应用可以通过HTTP发起一个数据请求,支持常见的GET、POST、OPTIONS、HEAD…

【电源专题】Buck电源上电震荡谁的错?

在文章:【电源专题】案例:Buck芯片上电瞬间波形震荡?从别的人案例中来学习软启参数中我们通过别人的文章了解到了Buck芯片上电瞬间波形震荡有几个方法可以解决,但主要还是围绕着软启动参数去学习。因为文章中无法知道编者所用的电源芯片和电路,所以无法进行分析。 最近我…

《每天一分钟学习C语言·七》指针、字节对齐等

1、 对于二维数组如a[3][4]可以当做有三个元素的一维数组,每个元素包含四个小元素。 2、 printf(“%-5d”, i); //负号表示左对齐,5d表示空五个光标的位置 3、 栈:先进后出,堆:先进先出 4、 (1&#xff…

零代码助力服装行业数字化转型

内容来自演讲:涂岳俊 | 广州市衣湛国际信息科技有限公司 | CEO 摘要 这篇文章讨论了为什么选择明道云零代码平台,以及它如何帮助服装企业解决各种问题。作者分享了自己的经验,并列举了一些成功的案例来证明零代码平台的优势。文章还提到了在…

分布式锁概述

一、概念 1、什么是分布式锁 我们知道传统进程内的多线程之间可以利用锁机制来实现它的同步,同时进程之间也可以互相通信,那我我们如果使用分布式服务的话,有应该怎么实现集群内多服务之间访问公共资源,并且确保它们不会出现问题…

RobotMaster学习——工序导入,参数设置,轨迹生成

目录 引出1.导入工序2.修改刀具其他刀具参数 3.进行工序分配4.设置TCP5.设置工作站6.工序整体导入配置7.进行计算 总结 引出 RobotMaster的操作流程,从导入工序到生产轨迹。 1.导入工序 2.修改刀具 要选择第七把刀具 其他刀具参数 第一把刀具 第二把刀具 第三把刀…

自制数据库空洞率清理工具-C版-01-EasyClean-V1.0(支持南大通用数据库Gbase8a)

目录 一、环境信息 二、简述 三、支持功能 四、空洞率 五、工具流程图 六、安装包下载地址 七、参数介绍 1、命令模板 2、命令样例 3、参数表格 八、安装步骤 1、配置环境变量 2、生效环境变量 3、检验动态链接是否正常 九、运行效果 一、环境信息 名称值CPUInt…

MySQL——内置函数

目录 一.日期函数 1.current_date() 2.current_time() 3.current_stamp() 4.date_add() 5.date_sub() 6.datediff 7.date 8.now 二.字符串函数 1.charset() 2.concat() 3.length() 4.replace 5.substring(str,postion,length) 6.instr(string,substr…

基于ssm+jsp二手车估值与销售网络平台源码和论文

随着信息化时代的到来,管理系统都趋向于智能化、系统化,二手车估值与销售网络平台也不例外,但目前国内仍都使用人工管理,市场规模越来越大,同时信息量也越来越庞大,人工管理显然已无法应对时代的变化&#…

ansible-playbook的Temlates模块 tags模块 Roles模块

Temlates模块 jinja模板架构,通过模板可以实现向模板文件传参(python转义)把占位符参数传到配置文件中去,生产一个目标文本文件,传递变量到需要的配置文件当中 (web开发) nginx.conf.j2 早文件当中配置的是占位符(声明…

vivado 自动派生时钟

自动派生时钟 自动派生的时钟也称为自动生成的时钟。Vivado IDE自动在时钟修改块(CMB)的输出引脚上创建这些的约束,只要已经定义了相关的主时钟。在AMD 7系列设备系列中,CMB有: •MMCM*/PLL* •BUFR •相位器* 在…

Spring源码分析 @Autowired 是怎样完成注入的?究竟是byType还是byName亦两者皆有

1. 五种不同场景下 Autowired 的使用 第一种情况 上下文中只有一个同类型的bean 配置类 package org.example.bean;import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration;Configuration public class FruitCo…

过度加大SSD内部并发何尝不是一种伤害-part2

方案设计完了,如何验证效果如何呢?作者是这么做的。 第一步,选择模拟环境:PLAN方案在定制的FEMU(Flash Emulation Module)上实现,该模块支持TRIM和多流功能,具体参数如下&#xff1…

modbus_tcp的实现 through python.

0.引言 当前科技似乎处于加速发展期,各个模块都在快速迭代,迭代的速度会让既有的一些经验产生问题,在用python实现modbus_tcp协议时,网上流传的一些代码中import语句会出现问题。导致pymodbus模块用起来很不好用。 这个原因出在…