操作系统(九)

4.1页式存储 计算机组成原理之页式存储 阅读详情

 

操作系统(九)
1,页淘汰
页淘汰算法主要有以下几种:
(1)最简单的页淘汰算法FIFO:在内存时间最长的页(记最早进入内存的页先被淘汰)该模式的缺点是在内存时间最长的页可能是最有可能被访问到的资源,而该模式下很可能把最长被访问,最近经常被访问的页淘汰出去。这些页又很快被淘汰出去了。
(2)最近最少使用页淘汰法:平时每当一页被访问时,就对该页做一个时间标记。当页淘汰进程工作时,首先淘汰当前时间最早的那些页。因为每次访问都对应相应的页做时间标记。因为每次访存都要对页作出标记。因此这种方法的开销较大。
(3)最近未使用页淘汰算法。最常使用的方法。该算法的原理是:
平时对每个已分配的页设一个修改位和一个访问位,最初的时候两个位都设为1。当该页被访问时将其访问位置为1,当该页被修改时将其修改位置为1。当页淘汰进程定期工作时,首先淘汰那些访问位为0的页。然后,如果还需要继续淘汰,则淘汰那些访问位为1,但修改为0的页。由于大多数页迟早都要被访问,故页淘汰进程定期遍历内存页,故页淘汰进程定期遍历内存中的页——将页的访问位置为0。
为了防止被淘汰的页很快被访问导致的反复掉如调出,有些操作系统中将被淘汰的页集中放在一个自由链表中。若在,则原拥有者恢复其有效位和相应的页表项,不需要再从外存调入。若被修改的页在返回外存之前就被访问,也可以在回写之前就被回收。

工作集(working)和颠簸(thrashing)
工作集的概念是¨对于每个进程每一时刻,为确保该进程能执行下去,在物理内存中必须存在的页面集¨。进程在不同的时刻需要不同的页面集,当一个进程访问一个不在其工作集中的地址,就产从生缺页中断。当内存负担过重时,小于(最小)工作集的进程容易连续地,过多地出现缺页的情况。这种现象被成为颠簸。系统对于颠簸的处理是将一个或若干个进程调出内存,直至有足够的空闲页面,不再颠簸为止。

盘交换区管理
盘交换区可以是一个分区,称为交换设备(swap device),也可以是一个或多个文件。成为交换文件(swap file)或调页文件(paging file)。交换分区比交换文件访问快(因为分区占据连续外存空间),但交换文件也可以占据连续外存空间(在建立交换文件时通过外存参数指定。盘内存交换分区的大小通常是物理内存的1.5~

页模式的评价、实际使用情况小结

(1)页式模式是不连续的内存管理方式,杜绝了空间总和够但是进程不能分配到进程空间的做法。

(2)与不连续模式,段页式相比,页式这种特有的不连续方式有以下的特点:

  • 彻底消除了内存的外部存储式碎片,任何空闲页面都可分配给需要空间空间的进程,这是它很大的一个优点。
  • 在采用虚存时,不会像其他模式那样,给盘交换区管理也带来与内存外部存储碎片同样的麻烦。由于外存存取缓慢的多,不可能再外存合并碎片,故外存的碎片有的时候比内存的碎片更加致命。采用页模式的盘交换区与页式的内存一样没有外部存储碎片。
  • 但是在页模式下仍然存在页内碎片,

动态伸缩

与多道连续模式相比,页模式下的动态伸缩不再受是否有相邻物理空间的影响。只要物理内存中还有空闲页面就可以动态扩充。不必要求是相邻的页面。单一分区模式和无管理模式一样,页式的扩充只受物理内存长度的限制

山东大学 软件学院 操作系统 实验九 利用文件系统的基本操作构造一个能管理学生成绩的文本文件的数据库管理系统。 设文本文件的学生成绩数据库每条记录有3个字段构成:学号20个字节,姓名20 个字节,成绩10个字节,字段间用空格分割对齐。 数据库管理系统具有基本的功能有:追加一条记录,.按记录号读出一条记录,按 记录号插入一条记录 ,.按记录号删除一条记录。 仅提供答案做参考 立即下载

相关推荐

微积分,用编程理解高数(python,C,C++)

很好理解,导数中,x是哪一点的导数,dx是精准度,y等于f(x)即函数。导数结果就是瞬时变化率。积分很好理解,a为下限,b为上限,y为函数,结果就是y=f(x)下a到b的面积。只要用定积分代入a=0,b=10(10s)y=x(1*x=1)就得到结果。F(x)为原函数,即微分后的函数是f(x)dx,微分前是F(x)一列车初始速度为10m/s,加速度为。才几十行代码,微积分也不是很难啊。,问速度达到20时车走了多少米。

linhhanpy的博客 1178

深入理解计算机系统-之-内存寻址(五)--页式存储管理

前景回顾前面我们讲解了操作系统段式存储管理的主要内容。 32位,在保护方式下,其能够访问的线性地址空间可达4GB,而且允许几乎不受存储空间限制的虚拟存储器程序。虚拟存储器地址空间能够可达64TB。它还提供了复杂的存储管理和硬件辅助的保护机构和增加了支持多任务操作系统的特别优化的指令。实际上,64TB的虚拟地址空间是有磁盘等外部存储器的支持下实现的。在编写程序是可以放在磁盘存储器上,但在执行时,必须把

OSKernelLAB(gatieme) 1万+

PCIe扫盲(三)

需要特别注意的是,PCIe的Spec中明确规定只有Root有权限发起配置请求(Originate Configuration Requests),也就是说PCIe系统里面的其他设备是不允许去配置其他设备的配置空间的,即peer-to-peer的配置请求是不允许的。当配置请求进行BDF路由的时候,正是依靠这些信息来确定要找的设备的。前面的文章还介绍过,Root和Switch的每一个端口中都包含一个P2P桥,并且知道桥的配置空间头(Configuration Space Header)是Type1型的。

Liuqz2009的专栏 2402

段式内存管理VS页式内存管理

在操作系统中,页式内存管理是非常重要的内容,页式内存管理,引出了多任务程序设计的基础。

weixin_42136255的博客 1906

计算机考研复试面试常问问题 数据结构篇(下)

计算机考研复试面试常问问题 数据结构篇(下) 使用前需知(拒绝白嫖,如果对你有帮助,你只需点个赞就行): 注意:有人在闲鱼上盗卖我的资料,而且还有很多同学买了,请各位擦亮双眼,我是整理出来免费分享给大家的! 大家请多点赞和评论,这样后面的同学更容易百度到,不至于被人盗卖,我就不加水印影响大家使用了! 第一次整理,度不好控制,有不好的地方希望大家理解,后面可能会改进,造福今年之后的同学们! ...

程序员宝藏的博客 1万+

嵌入式工程师必学(118):MCU的硬件定时器和中断

大多数微处理器都有一个或多个可编程硬件定时器,这些定时器包括对中断的支持。可以有不同类型的计时器,用于不同的应用程序。例如,LPC1768 具有四个 32 位通用定时器、一个看门狗定时器、一个重复中断定时器、一个系统滴答定时器、一个正交编码器接口、6 个 PWM 输出和一个支持中断的实时时钟。硬件定时器用于计时和计数作,允许处理器在 timer 进程运行时继续执行其他进程。硬件定时器是一种使用 clock 信号来增加 register 的电路。

码农17年的博客 211

【操作系统复习】Unit 3-2:页式内存管理

通常把进程分为系统进程和用户进程两大类作业与进程的区别作业、进程和程序之间的联系一个作业包括程序、数据、操作说明一个进程由组成这说明程序是进程的一部分,是进程的实体。一个作业可以划分为若干个进程来完成,而每个进程有其实体——程序和数据集合分页:把主存空间划分为大小相等且固定的块/分区,是主存的基本单位。进程以块为单位申请主存的块空间【每个分区就是一个“页框”(/页帧/内存块/物理块/物理页面),每个页框有个编号,称为“页框号”】分页式存储管理的基本思想。

LSGSM的博客 1611

杰理SDK UART 使用教程

本文介绍了JL701n芯片的UART串口通信使用教程,重点讲解了UART2的初始化配置、数据收发和中断处理功能。教程详细说明了代码结构、核心功能函数、配置参数和使用步骤,包括UART初始化、数据发送和接收中断处理等关键操作。同时提供了完整的API接口说明和注意事项,强调了中断处理限制、缓冲区管理、引脚配置等重要细节。最后给出了基本使用流程和高级任务处理示例,并针对常见问题提供了故障排除建议。本教程适用于需要在JL701n芯片上实现可靠串口通信的开发者。

qq_42014563的博客 1818

页式内存管理

基本原理     1.等分内存     页式存储管理将内存空间划分成等长的若干区域,每个区域的大小一般取2的整数幂,称为一个物理页面有时称为块。内存的所有物理页面从0开始编号,称作物理页号。     2.逻辑地址     系统将程序的逻辑空间按照同样大小也划分成若干页面,称为逻辑页面也称为页。程序的各个逻辑页面从0开始依次编号,称作逻辑页号或相对页号。每个页面内从0开始编址,称为页内地址。

weeks 2117

使用rknn进行facenet部署

修改facenet网络的forward函数代码。

如果想成为中心,那么就到中心去吧。 1044

3060台式机 Ubuntu 双系统部署 LingBot-Map 完整指南

摘要: 本文详细介绍了在配备RTX 3060显卡的台式机上部署Ubuntu双系统并安装LingBot-Map 3D重建模型的完整流程。LingBot-Map作为蚂蚁灵波科技开源的Transformer架构模型,在流式3D场景重建中展现出高效性能(20 FPS)和卓越精度(ATE仅6.42米)。指南涵盖关键准备步骤、UEFI分区原理、Ubuntu安装流程(推荐150GB空间及手动分区方案),以及后续驱动配置说明,特别强调RTX 3060需12GB显存支持,并提供了数据备份、Secure Boot处理等实用建议

huanghm88的专栏 309

九款Windows 7替补操作系统

 来自国外媒体的消息,微软新一代操作系统Windows 7无疑是业界中人们讨论的焦点,测评文章中展示的Windows 7酷炫特性调足了人们的胃口,许多发烧友都在期待10月22日全球发布后第一时间得到它。   事实上,除了Windows 7以外,操作系统领域里还有许多其他表现出色的产品,Windows 7的“爷爷”——Win XP就是典型的例子。   本周,资讯网站Eweek向我们推荐了九款Wi...

CURSED! 289

YOLOv11 改进 - 注意力机制 | EMA (Efficient Multi-Scale Attention) 高效多尺度注意力:跨空间学习与多分支协同增强特征表征,优化多尺度目标检测

本文介绍了高效多尺度注意力(EMA)模块及其在YOLOv11中的结合应用。现有注意力机制在通道维度缩减时可能影响深度视觉表示,EMA模块通过结合通道和空间信息、采用多尺度并行子网络结构等创新点,实现了高效的多尺度注意力机制。其基本原理包括通道和空间注意力结合、多尺度并行子网络设计等。在多个流行基准数据集上的实验表明,该模块能有效提高特征表示能力。我们将EMA集成进YOLOv11,实验证明改进后的模型在目标检测任务中性能优越,具有广泛应用前景

魔改工程师的博客 1293

操作系统复习 九-十二 章

操作系统复习 九-十二 章

Go_ahead_forever的博客 1520

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

你管这叫操作系统源码(九)

你管这叫操作系统源码——以小说的心态品读Linux0.11源码系列之九

wq_0708的博客 1096

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

九、操作系统详解

面试常见八股

weixin_44203609的博客 1413

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

九 操作系统OS

1、操作系统OS概念 2、进程管理 3、前趋图 4、进程的同步和互斥 3、信号量和PV操作 4、死锁 5、存储管理 6、作业管理

eternal_tc的博客 1077

操作系统课程设计---实验九 基于信号量机制的并发程序设计

操作系统课程设计—实验九基于信号量机制的并发程序设计 实验九 基于信号量机制的并发程序设计 1、实验目的 (1) 回顾操作系统进程、线程的有关概念,针对经典的同步、互斥、死锁与饥饿问题进行并发 程序设计与实现。 (2) 理解互斥体对象,利用互斥与同步操作编写读者-写者问题的并发程序,加深对 P (即semWait)、V(即 semSignal)原语以及利用 P、V 原语进行进程间同步与互斥操作的理解。 (3) 理解 Linux 支持的信息量机制,利用 IPC 的信号量系统调用编程实现哲学家进餐问题。 2、设

陈陈不like的博客 2838

操作系统 实验九

模拟页置换算法,统计缺页率。

zhanghanqmx的博客 228

九、Ubuntu Linux操作系统

dpkg(debian packages)是Debian软件包管理器的基础常用于安装、卸载和提供与.deb软件包相关的信息需要注意的是dpkg本身是一个底层的工具,并不具备从远程包仓库下载包以及处理包的依赖关系。

weixin_53445843的博客 1374

九问国产操作系统,九大掌门人首次同台激辩

整理 | 屠敏编辑 | 唐小引来源 |优快云(ID:优快云news)在国产基础软件发展的多年间,众多摸着石头过河的先行者无数次感叹「蜀道之难,难于上青天」,不仅包含数据库、中间件、...

AI科技大本营 4319

九、操作系统基础知识

一、计算机基本部件 (一)五大部件 (二)总线 (三)存储器 (四)指令 二、进程 (一)进程概念 (二)进程状态 (三)并行 && 并发 三、内存管理 (一)分页 (二)虚拟内存 四、操作系统发展

qq_43411555的博客 324

操作系统[系统学习九]

文章目录虚拟内存基本概念传统存储管理方式的特征、缺点局部性原理虚拟内存的定义和特征如何实现虚拟内存技术总结请求分页管理方式页表机制缺页中断机构地址变换机构总结页面置换算法最佳置换算法(OPT)先进先出置换算法(FIFO)最近最久未使用置换算法(LRU)时钟置换算法(CLOCK)简单的CLOCK算法改进的CLOCK算法总结页面分配策略驻留集页面分配、置换策略调入页面的时机从何处调页抖动(颠簸)现象工作集总结 虚拟内存基本概念 传统存储管理方式的特征、缺点 一次性 : 作业必须一次性全部装入内存才能运行

weixin_40996518的博客 1416

九问国产操作系统,九大掌门人万字回应!

整理 | 屠敏 责编 | 唐小引 出品 | 优快云(ID:优快云news) 九大操作系统掌门人对话:九问操作系统视频回顾:https://live.youkuaiyun.com/room/Hansen666666/6gbp7yLj 在国产基础软件发展的多年间,众多摸着石头过河的先行者无数次感叹「蜀道之难,难于上青天」,不仅包含数据库、中间件、芯片、操作系统等核心软硬件研发,也覆盖了每种技术领域的生态建设。 去年彼时,优快云 曾发布《国产数据库激荡 40 年》一文,深度剖析在被 Oracle、MySQL、..

优快云资讯 2万+

操作系统杂项(九)

主要对Linux系统的零碎知识点进行介绍。

欢迎各位大佬光临“寒舍”!请多多指点,共同进步! 1004
上一篇: 操作系统(八)
下一篇: test
starshift
博客等级 码龄21年 0粉丝 60原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值