- 博客(56)
- 资源 (4)
- 收藏
- 关注
原创 python中open os.open以及os.fdopen的区别
总结:open等价于 os.open + os.fdopenopen()创建新的文件对象,os.open()创建操作系统级文件描述符,os.fdopen()从文件描述符中创建一个文件对象。文件对象是包含文件描述符的Python类,使文件更方便,容易出错。它们提供了例如错误处理,缓冲,逐行读取,字符集转换,并在收集垃圾时关闭。文件描述符是用于处理由操作系统内核直接提供的文件的低级功能。文件描述符是一个小整数,用于标识内核为每个进程保留的打开文件的表中的打开文件。许多系统调用接受文件描述符,但它们不方
2022-02-23 11:46:24
2850
原创 实际物理内存16G,但可用的只有2G,远小于实际物理内存
1、X86 架构机器在上电之后,BIOS 会初始化并探测系统可用和预留的内存信息,并将其存储在指定位置,内核在初始 话过程中,可以通过 BIOS 提供的一系列中断来获得内存相关的信息。[ 0.000000] e820: BIOS-provided physical RAM map:[ 0.000000] BIOS-e820: [mem 0x0000000000000000-0x00000000000997ff] usable[ 0.000000] BIOS-e820: [mem 0x
2022-02-15 10:59:45
8402
原创 python中多线程启动: start和run方法的区别
结论:启动线程,如果对target进行赋值,并且没有重写run方法,则线程start的时候会直接调用target中对应的方法具体代码如下:1、初始化一个线程threading.Thread.__init__(self,target=thread_run())def __init__(self, group=None, target=None, name=None, args=(), kwargs=None, *, daemon=None): ass
2022-02-12 14:59:44
3115
转载 linux内存源码分析 - SLAB分配器概述
在页框分配器中主要是管理物理内存,将物理内存的页框分配给申请者,而且我们知道也可页框大小为4K(也可设置为4M),这时候就会有个问题,如果我只需要1KB大小的内存,页框分配器也不得不分配一个4KB的页框给申请者,这样就会有3KB被白白浪费掉了。为了应对这种情况,在页框分配器上一层又做了一层SLAB层,SLAB分配器的作用就是从页框分配器中拿出一些页框,专门把这些页框拆分成一小块一小块的小内存,当申请者申请的是小内存时,系统就会从SLAB中获取一小块分配给申请者。它们的整个关系如下图:...
2021-09-30 14:07:57
220
转载 linux内存管理源码分析 - 页框分配器
转载自linux内存管理源码分析 - 页框分配器 - tolimit - 博客园 (cnblogs.com)内存的分段和分页实际中编码时遇到的内存地址并不是对应于实际内存上的地址,我们编码中使用的地址是一个逻辑地址,会通过分段和分页这两个机制把它转为物理地址。而由于linux使用的分段机制有限,可以认为,linux下的逻辑地址=线性地址。也就是,我们编码使用的是线性地址,之后只需要经过一个分页机制就可以把这个地址转为物理地址了。所以我们更重要的可能是去说明一下linux的分页模型。 .
2021-09-30 09:48:00
289
转载 第 11 章. Drawing Textures 绘制纹理
首发于Vulkan 学习指南关注专栏写文章第 11 章. Drawing Textures 绘制纹理SnowFox图形学 AI 分布式 操作系统 编译器 架构 后端 多线程4 人赞同了该文章第 11 章. Drawing Textures 绘制纹理在前一章中,我们学习了如何更新资源的内容并使用描述符在着色器阶段读取它们。 我们还介绍了 push 常量,它是在着色器阶段使用命令缓冲区更新常量数据的...
2019-08-21 20:50:30
797
转载 第 10 章. 描述符 Descriptors 以及 Push 常量 Constant
首发于Vulkan 学习指南关注专栏写文章第 10 章. 描述符 Descriptors 以及 Push 常量 ConstantSnowFox图形学 AI 分布式 操作系统 编译器 架构 后端 多线程2 人赞同了该文章第 10 章. 描述符 Descriptors 以及 Push 常量 Constant在前一章中,我们在显示输出中渲染了第一个绘图对象。 在本章中,我们将采用先前的实现,并在 Un...
2019-08-21 20:49:35
940
转载 第 9 章. Drawing Objects 绘制对象
首发于Vulkan 学习指南关注专栏写文章第 9 章. Drawing Objects 绘制对象SnowFox图形学 AI 分布式 操作系统 编译器 架构 后端 多线程4 人赞同了该文章第 9 章. Drawing Objects 绘制对象在上两章中,我们实现了渲染通道实例并显示了具有指定背景色的交换链图像。 在前一章中,我们将各种管线状态与 Render Pass 一起放入图形管线中。 在本章...
2019-08-21 20:48:49
1101
转载 第 8 章 管线以及管线状态管理
首发于Vulkan 学习指南关注专栏写文章第 8 章 管线以及管线状态管理SnowFox图形学 AI 分布式 操作系统 编译器 架构 后端 多线程9 人赞同了该文章第 8 章 管线以及管线状态管理在上一章中,我们理解了 Vulkan 中的缓冲区资源,并使用它在物理设备内存上以顶点缓冲区的形式存储几何图形数据信息。 我们实现了一个 Render Pass 和 framebuffer 对象。 此外,...
2019-08-21 20:47:55
1438
转载 第 7 章. 缓冲区资源,渲染通道,帧缓冲区以及使用 SPIR-V 的着色器
首发于Vulkan 学习指南关注专栏写文章第 7 章. 缓冲区资源,渲染通道,帧缓冲区以及使用 SPIR-V 的着色器SnowFox图形学 AI 分布式 操作系统 编译器 架构 后端 多线程1 人赞同了该文章在前一章中,我们了解了 Vulkan 资源类型;我们了解图像资源(VkImage)是什么,以及如何在交换链图像中实现它们。 在本章中,我们将讨论第二种 Vulkan 资源,称为缓冲区资源(V...
2019-08-21 20:47:05
1118
转载 第 6 章. 分配图像资源并使用 WSI 构建 Swapchain
首发于Vulkan 学习指南关注专栏写文章第 6 章. 分配图像资源并使用 WSI 构建 SwapchainSnowFox图形学 AI 分布式 操作系统 编译器 架构 后端 多线程在前一章中,我们介绍了与内存管理和命令缓冲相关的概念。 我们明白了主机内存和设备内存以及在 Vulkan API 中分配的方式。 我们还介绍了命令缓冲区,实现了命令缓冲区记录 API 的调用并将它们提交给队列进行处理。...
2019-08-21 20:46:02
1295
转载 第 4 章. Vulkan 中的调试
首发于Vulkan 学习指南关注专栏写文章第 4 章. Vulkan 中的调试SnowFox图形学 AI 分布式 操作系统 编译器 架构 后端 多线程在上一章中,我们初始化了 Vulkan API 并知道了层和扩展的概念。 我们连接物理硬件设备并理解了它所暴露的不同类型的队列。 由于我们正在为实际具体的实现做前期的准备工作,因此了解 Vulkan 中的调试功能,从而避免不愉快的错误,就显得非常重...
2019-08-21 20:45:06
1683
1
转载 第 3 章 与设备握手
首发于Vulkan 学习指南关注专栏写文章第 3 章 与设备握手SnowFox图形学 AI 分布式 操作系统 编译器 架构 后端 多线程1 人赞同了该文章利用我们前两章中获得的知识,我们现在已经达到了可以从 0 开始进行 Vulkan 编程的水平。 这两章奠定了基础,并帮助我们理解这一革命性 API 的基本原理。 现在,在更高层次上,我们要了解该技术背后的动机,核心块以及相关的功能和术语。 另外...
2019-08-21 20:44:03
714
转载 第 2 章 你的第一个 Vulkan 伪代码程序
首发于Vulkan 学习指南关注专栏写文章第 2 章 你的第一个 Vulkan 伪代码程序SnowFox图形学 AI 分布式 操作系统 编译器 架构 后端 多线程7 人赞同了该文章在上一章中,我们提供了一个比较基本的介绍,以便可视化新一代的 Vulkan API。 我们通过这套 API 的高级生态系统设计进行了盘点,并了解内部模块的功能,以此来理解其执行模式。在本章中,我们会了解一下 Vulka...
2019-08-21 20:43:06
950
转载 第 1 章 次世代 3D 图形 API 入门
首发于Vulkan 学习指南关注专栏写文章第 1 章 次世代 3D 图形 API 入门SnowFox图形学 AI 分布式 操作系统 编译器 架构 后端 多线程35 人赞同了该文章Vulkan 是一套革命性的高性能 3D 图形、计算 API,适用于现代 GPU 管线系统,用来满足社区的苛刻要求。 这套 API 提供了一种全新的方式来克服现有传统 API 的复杂性和差异性。 Vulkan 是一套“显...
2019-08-21 20:41:37
577
转载 第 5 章. Vulkan 中的命令缓冲区以及内存管理
首发于Vulkan 学习指南关注专栏写文章第 5 章. Vulkan 中的命令缓冲区以及内存管理SnowFox图形学 AI 分布式 操作系统 编译器 架构 后端 多线程1 人赞同了该文章命令缓冲区是若干命令的集合,它会被提交给适当的硬件队列供 GPU 进行处理。 然后,在真正的 GPU 处理开始之前,驱动程序会提取命令缓冲区并对其进行验证和编译。本章将介绍命令缓冲区的概念。 我们将学习命令池的创...
2019-08-21 20:39:09
1355
转载 c++中可变参数
版权声明:本文为博主原创文章,转载请标明出处。原文地址:http://blog.youkuaiyun.com/qq_35280514 https://blog.youkuaiyun.com/qq_35280514/article/details/51637920 ...
2019-06-22 11:14:47
394
转载 c++中可变参数
版权声明:本文为博主原创文章,转载请标明出处。原文地址:http://blog.youkuaiyun.com/qq_35280514 https://blog.youkuaiyun.com/qq_35280514/article/details/51637920 ...
2019-06-22 11:14:47
79
转载 c++中可变参数
版权声明:本文为博主原创文章,转载请标明出处。原文地址:http://blog.youkuaiyun.com/qq_35280514 https://blog.youkuaiyun.com/qq_35280514/article/details/51637920 ...
2019-06-22 11:14:47
149
转载 c++中可变参数
版权声明:本文为博主原创文章,转载请标明出处。原文地址:http://blog.youkuaiyun.com/qq_35280514 https://blog.youkuaiyun.com/qq_35280514/article/details/51637920 ...
2019-06-22 11:14:47
119
转载 c++中可变参数
版权声明:本文为博主原创文章,转载请标明出处。原文地址:http://blog.youkuaiyun.com/qq_35280514 https://blog.youkuaiyun.com/qq_35280514/article/details/51637920 ...
2019-06-22 11:14:47
125
转载 c++中可变参数
版权声明:本文为博主原创文章,转载请标明出处。原文地址:http://blog.youkuaiyun.com/qq_35280514 https://blog.youkuaiyun.com/qq_35280514/article/details/51637920 ...
2019-06-22 11:14:47
348
转载 c++中可变参数
版权声明:本文为博主原创文章,转载请标明出处。原文地址:http://blog.youkuaiyun.com/qq_35280514 https://blog.youkuaiyun.com/qq_35280514/article/details/51637920 ...
2019-06-22 11:14:47
139
转载 c++中可变参数
版权声明:本文为博主原创文章,转载请标明出处。原文地址:http://blog.youkuaiyun.com/qq_35280514 https://blog.youkuaiyun.com/qq_35280514/article/details/51637920 ...
2019-06-22 11:14:47
88
转载 c++中可变参数
版权声明:本文为博主原创文章,转载请标明出处。原文地址:http://blog.youkuaiyun.com/qq_35280514 https://blog.youkuaiyun.com/qq_35280514/article/details/51637920 ...
2019-06-22 11:14:47
161
转载 c++中可变参数
版权声明:本文为博主原创文章,转载请标明出处。原文地址:http://blog.youkuaiyun.com/qq_35280514 https://blog.youkuaiyun.com/qq_35280514/article/details/51637920 ...
2019-06-22 11:14:47
229
转载 c++中可变参数
版权声明:本文为博主原创文章,转载请标明出处。原文地址:http://blog.youkuaiyun.com/qq_35280514 https://blog.youkuaiyun.com/qq_35280514/article/details/51637920 ...
2019-06-22 11:14:46
233
转载 深入理解HTTP协议
来源:http://www.blogjava.net/zjusuyong/articles/304788.html深入理解HTTP协议1. 基础概念篇1.1 介绍 HTTP是Hyper Text Transfer Protocol(超文本传输协议...
2019-05-20 13:27:23
212
转载 socketaddr和socketaddr_in的区别于联系
socketaddr和socketaddr_in的区别于联系 struct sockaddr { unsigned short sa_family; /* 地址族, AF_xxx */ char sa_data[14]; /* 14字节的协议...
2019-05-20 10:08:34
1696
转载 socket中send和rev函数详解,
<div id="post_detail"> Socket send函数和recv函数详解 int send( SOCKET s, const char FAR *buf, int len, int flags ); 不论是客户还是服务器应用程序都用send函数来向TCP连接的另一端发送数据。客...
2019-05-20 09:38:59
1607
转载 socket编程中最常用的几个数据类型和转换函数
socket编程中最常用的几个数据类型和转换函数 高位字节优先和低位字节优先。Internet上数据以高位字节优先顺序在网络上传输,所以对于在内部是以低位字节优先方式存储数据的机器,在Internet上传输数据时就需要进行转换。第一个结构类型是:struct sockaddr 该类型是用来保存socket信息的 struct sockad...
2019-05-19 11:01:02
736
转载 socket函数详解
socket函数 SOCKET()我们使用系统调用socket()来获得文件描述符:#include<sys/types.h>#include<sys/socket.h>int socket(int domain,int type,int protocol);第一个参数domain设置为“AF_INET”。第二个参数是套接口的...
2019-05-19 10:28:48
2203
转载 网络编程(二)一些重要函数的理解
转自:http://blogold.chinaunix.net/u/4502/showart.php?id=13488服务套和客户机的信息函数1、字节转换函数 在网络上面有着许多类型的机器,这些机器在表示数据的字节顺序是不同的, 比如i386芯片是低字节在内存地址的低端,高字节在高端,而alpha芯片却相反. 为了统一起来,在Linux...
2019-05-17 20:13:57
167
转载 网络编程(一)
转自:http://blogold.chinaunix.net/u/4502/showart.php?id=13285初等网络函数介绍(TCP)及示例程序1、socket int socket(int domain, int type,int protocol) domain:说明我们网络程...
2019-05-17 20:10:23
83
转载 C++---常量成员函数、常量对象、常引用
当一个类的对象被定义为常量对象时,他的值经初始化后就不能再被修改常量成员函数:不能修改非静态成员变量的值,也不能调用其他非静态非常量成员函数,常量对象上可以执行常量成员函数,而不能执行非常量成员函数,也不能对常量对象的非静态成员变量进行修改;在一个类成员函数中,可以有两个成员函数,他们的参数个数和类型可以相同,但是一个常量类型,一个不是,这样算是重载,不算重复定义因为非常量对象上不能常...
2019-04-28 23:32:38
916
转载 智能指针
#include <iostream>#include <string>#include <cstring>#include <cstdlib>#include <cstdio>#include <cmath>#include <vector>#include <stack>#inclu...
2019-04-27 23:24:07
131
转载 智能指针
智能指针(smart pointer)的一种通用实现技术是使用引用计数(reference count)。智能指针类将一个计数器与类指向的对象相关联,引用计数跟踪该类有多少个对象共享同一指针。 每次创建类的新对象时,初始化指针并将引用计数置为1;当对象作为另一对象的副本而创建时,拷贝构造函数拷贝指针并增加与之相应的引用计数;对一个对象进行赋值时,赋值操作符减少左操作数所指对象的引用计数(如...
2019-04-27 23:17:28
152
转载 C++复制构造函数和赋值操作符的区别
转 C++复制构造函数和赋值操作符的区别 2014年12月24日 21:11:27 FlyingBird_SXF 阅读数:494 ...
2019-04-27 21:56:27
185
转载 TCP/IP网络编程之多进程服务端(二)
TCP/IP网络编程之多进程服务端(二) 信号处理本章接上一章TCP/IP网络编程之多进程服务端(一),在上一章中,我们介绍了进程的创建和销毁,以及如何销毁僵尸进程。前面我们讲过,waitpid是非阻塞等待子进程销毁的函数,但有一个不好的缺点就是要每隔一段时间判断子进程是否销毁,只有销毁完后才能执行父进程接下去的程序。这样显然会造成父进程一些资源上的...
2019-04-26 16:37:04
242
转载 TCP/IP网络编程之多进程服务端(一)
TCP/IP网络编程之多进程服务端(一) 进程概念及应用我们知道,监听套接字会有一个等待队列,里面存放着不同客户端的连接请求,如果有一百个客户端,每个客户端的请求处理是0.5s,第一个客户端当然不会不满,但第一百个客户端就会有相当大的意见了。为了要使得所有客户端都尽可能的满意,我们应采用并发服务端,使其同时向所有发起请求的客户端提供服务。而且,网络程...
2019-04-26 16:35:39
264
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人