日常学习--20240706

1、udp协议的特点有哪些?

a、无连接,发送和接收数据不需要建立连接,开销小,实时性好

b、不可靠传输,不保证数据包能够到达目的地,也不保证数据包的顺序

c、面向数据报的,以数据报形式发送数据

// 创建DatagramPacket对象,包含要发送的数据、长度、服务器地址和端口
DatagramPacket packet = new DatagramPacket(buffer, buffer.length, address, port);

d、支持广播和多播形式,UDP支持广播和多播功能,这使得UDP能够向多个目的地址发送相同的数据报。

2、TCP如何保证可靠的传输?

序列号和确认应答、超时重传、校验和、流量控制、拥塞控制、连接自动管理、数据分块的方式保证可靠传输。

序列号和确认应答:保证数据到达客户端,客户端能够对数据进行去重、排序等

超时重传:客户端超过定时器时间未应答,则重传

校验和:客户端对数据进行校验和计算对比服务端校验和,如果不一致,则认为数据在传输过程中发生异常,要求服务端重传。

流量控制:服务端会依据客户端的接收窗口大小,调整自己的发送数据速率,避免客户端过多数据堆积,导致丢包重发

拥塞控制:在网络拥堵时,服务端会自动调整自己的发送速率

连接管理:TCP三次握手和四次挥手,确保服务端和客户端已连接

数据分段:TCP数据报文分块,出现丢包等异常时只需重发异常部分。

3、Linux系统的零拷贝技术?

零拷贝(Zero-Copy)就是一种避免 CPU 将数据从一块存储拷贝到另外一块存储的技术,是指将数据直接从磁盘文件复制到网卡设备中,而不需要经由应用程序之手。

传统read+write方式:四次上下文切换和四次数据拷贝(其中两次有CPU参与)

主要方式有:

mmap+write方式:四次上下文切换和三次数据拷贝(用户空间到socket缓冲区时CPU参与)

splice(通过内核管道做中转传递数据),两次上下文切换和两次数据拷贝(要求有一个文件描述符需要支持管道)

sendfile方式:Linux2.4以前,两次上下文切换和三次拷贝(有一次是内核缓冲区拷贝到socket缓冲区);Linux2.4及以后,两次上下文切换和两次拷贝(磁盘到内存缓冲区,内存缓冲区到网卡缓冲区;原来的内核缓冲区到socket内存缓冲区改为了非传统拷贝,在socket缓冲区中引用指向内核缓冲区包含了偏移量等)

4、说一说进程调度算法有哪些

  •  先来先服务(FCFS,First-Come, First-Served):按照进程到达的先后顺序进行调度,先到达的进程先执行。
  • 短作业优先调度(SJF, Shortest Job First):选择估计运行时间最短的进程优先执行,以减少平均等待时间。特点:可以最大程度地减少平均等待时间,但可能会导致长作业被饿死(即长时间得不到执行)。

  • 时间片轮转调度(RR, Round-Robin):所有进程按照到达顺序排成一个队列,每个进程执行一个时间片后,将CPU时间片分配给下一个进程。特点:适用于时间片较短的情况,能够平衡各个进程的执行,但可能导致上下文切换频繁。

  • 优先级调度(PSA, Priority Scheduling Algorithm):为每个进程分配一个优先级,优先级高的进程先获得CPU时间片。特点:可以根据不同的情况调整优先级,但可能导致低优先级的进程长时间等待,出现饥饿现象。

  • 多级反馈队列调度(MFQ, Multi-level Feedback Queue Scheduling):将进程分为多个队列,每个队列有不同的优先级和时间片大小。进程在一个队列中执行完毕后,可以进入下一个优先级较高的队列。特点:能够兼顾不同类型的作业,既可以保证短作业优先执行,又可以避免长作业饥饿。

  • 最高响应比优先调度(HRRN, Highest Response Ratio Next):根据等待时间和估计运行时间的比值(响应比)来选择下一个执行的进程,以最大化响应比。特点:可以减少平均等待时间,但需要预先知道每个进程的运行时间。

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

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

相关文章

mysql signed unsigned zerofill详解

灵感来源 mysql中有符号signed,无符号unsigned与零填充zerofill UNSIGNED 无符号UNSIGNED是一个属性,你可以在创建或修改表时为整数类型的列指定它。无符号属性意味着该列只能存储非负整数(0和正整数),而不是默认的有…

uniapp微信接口回调 response.sendRedirect nginx 报404错误

如题 参考 uniapp打包H5时,访问index.html页面白屏报错net::ERR_ABORTED 404 - 简书 nginx中修改 配置文件 location / { try_files $uri $uri/ /index.html; root html; index index.html index.htm; } uniapp里配置 重新载入

CentOS 6.5 配置国内在线yum源和制作openssh 9.8p1 rpm包 —— 筑梦之路

CentOS 6.5比较古老的版本了&#xff0c;而还是有一些古老的项目仍然在使用。 环境说明 1. 更换国内在线yum源 CentOS 6 在线可用yum源配置——筑梦之路_centos6可用yum源-CSDN博客 cat > CentOS-163.repo << EOF [base] nameCentOS-$releasever - Base - 163.com …

STM32-LED和蜂鸣器

本内容是基于江协科技STM32视频整理而得。 1. LED和蜂鸣器 1.1 LED和蜂鸣器简介 LED&#xff1a;发光二极管&#xff0c;正向导通点亮&#xff0c;反向通电不亮 有源蜂鸣器&#xff1a;内部自带振荡源&#xff0c;将正负极接上直流电压即可持续发声&#xff0c;频率固定。 无…

【反悔堆 反悔贪心】2813. 子序列最大优雅度

本文涉及知识点 反悔堆 反悔贪心 LeetCode 2813. 子序列最大优雅度 给你一个长度为 n 的二维整数数组 items 和一个整数 k 。 items[i] [profiti, categoryi]&#xff0c;其中 profiti 和 categoryi 分别表示第 i 个项目的利润和类别。 现定义 items 的 子序列 的 优雅度 可…

哈弗架构和冯诺伊曼架构

文章目录 1. 计算机体系结构 2. 哈弗架构&#xff08;Harvard Architecture&#xff09; 3. 改进的哈弗架构 4. 冯诺伊曼架构&#xff08;Von Neumann Architecture&#xff09; 5. 结构对比 1. 计算机体系结构 计算机体系结构是指计算机系统的组织和实现方式&#xff0c…

Java.lang.Thread类和Java的主线程

一.Java.lang.Thread类 支持多线程编程 常用方法 二.主线程 ◆Java程序启动时&#xff0c;一个线程立即随之启动&#xff0c;通常称之为程序的主线程 ◆main()方法即为主线程入口 ◆产生其他子线程的线程 ◆必须最后完成执行&#xff0c;因为它执行各种关闭动作 示例 使用…

企业相册名片管理小程序模板

微信小程序个人名片公司信息,增添公司信息,增添企业信息,编辑个人信息,查看更多,名片通讯录。 企业相册名片管理小程序模板

BUUCTF - Basic

文章目录 1. Linux Labs 【SSH连接漏洞】2. BUU LFI COURSE【文件包含漏洞】3. BUU BRUTE【暴力破解用户名密码】4. BUU SQL COURSE【SQL注入-当前数据库】5. Upload-Labs-Linux 1【文件上传漏洞】7. Buu Upload Course 1【文件上传包含漏洞】8. sqli-labs 1【SQL注入-服务器上…

Python | Leetcode Python题解之第220题存在重复元素III

题目&#xff1a; 题解&#xff1a; class Solution(object):def containsNearbyAlmostDuplicate(self, nums, k, t):from sortedcontainers import SortedSetst SortedSet()left, right 0, 0res 0while right < len(nums):if right - left > k:st.remove(nums[left]…

【TORCH】绘制权重分布直方图,权重torch.fmod对torch.normal生成的随机数进行取模运算

要绘制上述代码中权重初始化的分布&#xff0c;可以分别展示每一层初始化权重的直方图。我们将用 torch.fmod 对 torch.normal 生成的随机数进行取模运算&#xff0c;确保权重值在 -2 到 2 之间。 含义解释 torch.normal(0, init_sd, size...)&#xff1a;生成服从均值为 0、…

vs2022安装qt vs tool

1 缘由 由于工作的需要&#xff0c;要在vs2022上安装qt插件进行开发。依次安装qt&#xff0c;vs2022&#xff0c;在vs2022的扩展管理中安装qt vs tool。 2 遇到困难 问题来了&#xff0c;在qt vs tool的设置qt version中出现问题&#xff0c;设置msvc_64-bit时出现提示“invali…

yolov8实战——yolov8TensorRT部署(python推理)(保姆教学)

yolov8实战——yolov8TensorRT部署&#xff08;python推理&#xff09;&#xff08;保姆教学&#xff09; 一 、准备好代码和环境安装TensorRt下载代码和安装环境 部署和推理构建ONNX构建engine无torch推理torch推理 最近用到yolov8&#xff0c;但是寻找了一圈才找到了yolov8最…

【面向就业的Linux基础】从入门到熟练,探索Linux的秘密(十一)-git(3)

Git是目前最流行的版本控制系统之一&#xff0c;在现代软件开发中扮演着重要的角色。它能够有效地跟踪文件变化、协作开发&#xff0c;并存储项目的历史记录。本文的目的是向读者介绍Git的基本概念和工作原理&#xff0c;帮助初学者快速上手使用Git&#xff0c;并帮助有经验的开…

转盘输入法-键盘加鼠标版本

序 转盘输入法&#xff0c;给你的聊天加点新意。它不用常见的九宫格或全键盘&#xff0c;而是把字母摆在圆盘上&#xff0c;一滑一滑&#xff0c;字就出来了&#xff0c;新鲜又直接。 键盘加鼠标版本GIF演示 演示软件下载 转盘输入法PC演示版本EXE下载https://download.csdn…

Autosar MCAL-S32k324 Crypto配置-RandomNumber生成及使用

文章目录 前言CryptoPrimitivesCryptoPrimitiveAlgorithmFamilyCryptoPrimitiveAlgorithmModeCryptoPrimitiveAlgorithmSecondaryFamilyCryptoPrimitiveServiceCryptoDriverObject代码使用Random Generate执行流程配置job函数使用示例总结前言 之前介绍过AES-CMAC算法的配置,…

期末上分站——计组(3)

复习题21-42 21、指令周期是指__C_。 A. CPU从主存取出一条指令的时间 B. CPU执行一条指令的时间 C. CPU从主存取出一条指令的时间加上执行这条指令的时间。 D. 时钟周期时间 22、微型机系统中外设通过适配器与主板的系统总线相连接&#xff0c;其功能是__D_。 A. 数据缓冲和…

尚硅谷 一 JS简介

一 JS简介 1.1 JS起源 Javascript是一种由Netscape(网景)的LiveScript发展而来的原型化继承的面向对象的动态类型的区分大小写的客户端脚本语言&#xff0c;主要目的是为了解决服务器端语言&#xff0c;遗留的速度问题&#xff0c;为客户提供更流畅的浏览效果。当时服务端需要…

DDR的拓扑与仿真

T型拓扑 vs Fly-by 由于T型拓扑在地址、命令和时钟都是同时到达每个DDR芯片&#xff0c;所以同步的切换噪声会叠加在一起&#xff0c;DDR越多这个信号上叠加的噪声越大&#xff0c;T型拓扑的优点是地址、命令和时钟都是同时到达&#xff0c;所以不需要做写均衡Write leveling。…

pandas中 groupby分组详解 1

引言 在一个使用 pandas 做数据分析的项目过程中&#xff0c;再次深刻理解了一下 pandas 中使用 groupby 进行分组的一些细节问题&#xff0c;以及对想要做的操作如何实现&#xff0c;在此记录&#xff1b; 问题 1&#xff1a;groupby 分组查看分组结果&#xff0c;以及重设分…