- 博客(230)
- 资源 (13)
- 问答 (6)
- 收藏
- 关注
原创 数据结构学习路线 | 博文导航与思维导图(计算机考研+期末考试===> 一步到位)
【线性表】【数据结构-线性表】顺序表和链表(几种链表操作技巧+几种链表形式)【栈与队列】【数据结构-栈和队列】详解栈和队列(代码+STL+原理)【树】【数据结构-树】1.树与森林(树的遍历、树的存储方法、并查集的实现)【数据结构-树】2.二叉树遍历与线索二叉树(图解+代码)【数据结构-树】3.详解二叉排序树(理论+代码)【数据结构-树】4.图解平衡二叉树和哈夫曼编码(逐步演绎,一文读懂)【图】【数据结构-图】1.图的构造和遍历(基本理论+代码)【数据结构-图】2.多图详解最小生成树(多
2021-02-17 13:52:59 2530 7
原创 DFD | 数据流图
【数据存储】是【通道】或【单个开口向右的矩形】【加工】是【圆形】或【圆角矩形】【外部实体】是【矩形】3 分钟学会 数据流图。【数据流】是【箭头】
2024-08-21 18:59:25 179
原创 面试_多线程
在并发编程中,我们经常用到非阻塞的模型,在之前的多线程的三种实现中,不管是继承thread类还是实现runnable接口,都无法保证获取到之前的执行结果。通过实现Callback接口,并用Future可以来接收多线程的执行结果。Future表示一个可能还没有完成的异步任务的结果,针对这个结果可以添加Callback以便在任务执行成功或失败后作出相应的操作。
2024-06-18 16:09:49 434
原创 nginx | nginx反向代理/负载均衡/缓存
如果进行缓存的话,就很容易出现用户访问到的数据不是服务器真实的数据。上面给的配置实例是从官方网站获取的,里面使用到了三个变量,分别是$cookie_nocache、$arg_nocache、$arg_comment。加权轮询:跟据配置的权重的大小而分发给不同服务器不同数量的请求。如果不设置,则默认为1。在nginx安装包下,有 conf/nginx.conf 文件,这是nginx服务器的基础配置,默认的配置也存放在此。(8)将编译后的objs中的nginx拷贝到nginx的sbin目录下。
2024-04-02 09:53:38 2227
原创 python | PYTHON正则表达式
操作符说明实例.表示任何单个字符[]字符集,对单个字符给出取值范围[abc]表示a、b、c,[a-z]表示a到z单个字符[^ ]非字符集,对单个字符给出排除范围[^abc]表示非a或b或c的单个字符*前一个字符0次或无限次扩充abc* 表示ab,abc,abcc,abccc等+前一个字符1次或无限次扩充abc+ 表示abc,abcc,abccc等?前一个字符0次或1次扩充abc? 表示ab,abc等|左右表达式任意一个ab
2024-01-02 16:20:37 935
原创 【Redis6快速深入学习04】Redis字符串(String)的使用和原理
String 是Redis五种最基本的类型之一,在使用时可以理解成与Memcached一模一样的类型,一个key对应一个value。String 类型是二进制安全的。意味着 Redis 的 string 可以包含任何数据。比如 jpg 图片或者序列化的对象。String 类型是 Redis 最基本的数据类型,一个 Redis 中字符串 value 最多可以是512M。
2023-11-29 10:08:46 553
原创 计算机考研 | 2009年 | 计算机组成原理真题
某计算机的CPU主频为500MHz,CPI为5(即执行每条指令平均需5个时钟周期)。假定某外设的数据传输率为0.5MB/s,采用中断方式与主机进行数据传送,以32位为传输单位,对应的中断服务程序包含18条指令,中断服务的其他开销相当于2条指令的执行时间。请回答下列问题,要求给出计算过程。(1)在中断方式下,CPU用于该外设I/O的时间占整个CPU时间的百分比是多少?(2)当该外设的数据传输率达到5MB/s时,改用DMA方式传送数据。
2023-10-30 11:31:40 416
原创 计算机考研 | 2010年 | 计算机组成原理真题
(3)若操作码0010B表示加法操作(助记符为add),寄存器R4和R5的编号分别为100B和101B,R4的内容为1234H,R5的内容为5678H,地址1234H中的内容为5678H,地址5678H中的内容为1234H,则汇编语句"add(R4),(R5)+"(逗号前为源操作数,逗号后为目的操作数)对应的机器码是什么(用十六进制表示)?改变后的内容是什么?该指令执行后,R5和存储单元5678H的内容会改变,R5的内容从5678H变为5679H,存储单元5678H中的内容变为该指令的计算结果68ACH。
2023-10-30 11:31:28 610
原创 计算机考研 | 2011年 | 计算机组成原理真题
虚拟地址024BACH = 0000 0010 0100 1011 1010 1100B,虚页号为0000 0010 0100B,TLB标记为0000 0010 010B(即012H),TLB组号为0B,因此,该虚拟地址所对应物理页面只可能映射到TLB的第0组。带符号整数加/减运算的溢出判断规则为:若加法器的两个输入端(加法)的符号相同,且不同于输出端(和)的符号,则结果溢出,或加法器完成加法操作时,若次高位的进位和最高位的进位不同,则结果溢出。上述程序段中,哪些带符号整数运算语句的执行结果会发生溢出?
2023-10-30 11:31:17 181
原创 计算机考研 | 2012年 | 计算机组成原理真题
计算机的性能指标、存储器的性能指标、DMA的性能分析,DMA方式的特点,多体交叉存储器的性能分析。
2023-10-30 11:31:01 264
原创 计算机考研 | 2013年 | 计算机组成原理真题
C、Z和N分别为CF、ZF 和NF的对应检测位,某检测位为1时表示需检测对应标志,需检测的标志位中只要有一个为Ⅰ就转移,否则不转移,例如,若C=1,Z=0,N=1,则需检测CF和 NF 的值,当CF=1或NF=1时发生转移;指令中的C、Z和N应分别设置为C=z=1,N=0,进行数之间的大小比较通常是对两个数进行减法,而因为是无符号数比较小于等于时转移,即两个数相减结果为0或者负数都应该转移,若是0,则ZF标志应当为1,所以是负数,则借位标志应该为1,而无符号数并不涉及符号标志NF。
2023-10-30 11:30:40 459
原创 计算机考研 | 2014年 | 计算机组成原理真题
系统执行到 bne指令时,PC自动加4,PC的内容为08048118H,而跳转的目标是08048100H,两者相差了18H,即24个单位的地址间隔,所以偏移地址的一位即是真实跳转地址的-24/-6=4位(1分)。已知计算机M采用32位定长指令字,即一条指令占4B,观察表中各指令的地址可知,每条指令的地址差为4个地址单位,即4个地址单位代表4B,一个地址单位就代表了1B,所以该计算机是按字节编址的。指令4为加法指令,即对应sum+=A[i],当数组A中元素的值过大时,则会导致这条加法指令发生溢出异常。
2023-10-30 11:30:19 265
原创 计算机考研 | 2017年 | 计算机组成原理真题
当n=24时,f(24)=1 1111 1111 1111 1111 1111 1111 B,而float型数只有24位有效位,舍入后数值增大,所以f2(24)比 f1(24)大 1。当n=23时,f(23)为24位1,float型数有24位有效位,所以不需舍入,结果精确。因为"i<=n-1"是带符号整数比较, n=0时,n-1的值是-1,当i=0时条件“i<=n-1”不成立,此时退出for循环。由于i和n是unsigned型的,故"i<=n-1"是无符号数比较,n=0时,n-1的机器数为全1,值是。
2023-10-08 09:15:00 400
原创 计算机考研 | 2018年 | 计算机组成原理真题
从以上五个小题可以看出来以下信息:注意虚地址和实地址的对应关系分清楚一个地址中各个字段的意义,根据字段给出的信息去答题,比如那些位数与组号相关,那些位数与块地址相关一些公式还是要背一下,才能下笔有把握。
2023-10-07 16:30:00 1265
原创 计算机考研 | 2019年 | 计算机组成原理真题
从以上五个小题可以看出来以下信息本题是考察计算机组成原理中指令系统和数据的表示和运算(考察的知识点)还有一部分汇编语言遇到不会做可以找一下题目中暗含的提示,比如本题的除了最后一个ret至另外,其他的跳转指令都加上了地址看题要细致,比如第五小题第一问,给了带符号位整数乘,则第一位是符号位,所以查看的是乘积位高33位实在不会做的,可以蒙一个,比如第五小题第二问。其实给了一个隐含提示,也就是异常处理,CPU的异常处理就是自陷,我答的是中断。
2023-10-06 16:30:00 598
原创 计算机考研 | 2020年 | 计算机组成原理真题
在执行程序段的过程中,每个主存块中的64B/4B= 16个数组元素依次读、写1次,因而对每个主存块,总是第一次访问缺失,此时会将整个主存块调入 Cache,之后每次都命中。0080 00C0H =0000 0000 1000 0000 0000 0000 1100 0000B,主存地址的低6位,为块内地址,为全0,故s位于一个主存块的开始处,占1024×4B/64B=64个主存块。主存地址中高32-6-6=20位为标记,采用8路组相联映射,故每行中的LRU位占3位,采用直写方式,故没有修改位。
2023-10-05 17:15:00 644
原创 计算机考研 | 2016年 | 计算机组成原理真题
因为采用直写策略时需要同时写快速存储器和慢速存储器,而写磁盘比写主存慢很多,所以,在Cache-主存层次,Cache可以采用直写策略,而在主存-外存(磁盘〉层次,修改页面内容时总是采用回写策略。每传送一个ASCII 字符,需要传输的位数有1位起始位、7位数据位(ASCII字符占7位)、1位奇校验位和1位停止位,故总位数为1+7+1+1=10。A,B是虚拟标记,页大小为8KB,页内偏移地址为13位,故A=B= 32-13= 19。因而A=19,B= 19,C= 11,D=13,E=9,F=9,G=6。
2023-10-04 22:10:37 1027
原创 计算机考研 | 2021年 | 计算机组成原理真题
从以上五个小题可以看出来以下信息本题是考察计算机组成原理中指令系统和数据的表示和运算(考察的知识点)可以看到,本题题干所给出的内容都是用的上的,到最后一个小题可以试着猜一下根据题干给出的信息,相当于给了暗语,要把信息翻译成有利于解题的数据。
2023-10-04 20:19:54 1039
原创 UML | 类图详解
UMLUML ——Unified modeling language UML(统一建模语言),是一种用于软件系统分析和设计的语言工具,它用 于帮助软件开发人员进行思考和记录思路的结果UML图有哪些用例图静态结构图∶类图、对象图、包图、组件图、部署图动态行为图∶ 交互图(时序图与协作图)、状态图、活动图UML类图详解UML 本身是一套符号的规定,就像数学符号和化学符号一样,这些符号用于描述软件模型中的各个元素和他 们之间的关系,比如类、接口、实现、泛化、依赖、组合、聚合等。类图主体类
2023-09-20 14:13:48 161 1
原创 Nginx | Nginx返回的状态码详情
307 (临时重定向) 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。303 (查看其他位置) 请求者应当对不同的位置使用单独的GET 请求来检索响应时,服务器返回此代码。302 (临时移动)服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。通常,这只是暂时状态。413 (请求实体过大) 服务器无法处理请求,因为请求实体过大,超出服务器的处理能力。414 (请求的 URI 过长) 请求的 URI(通常为网址)过长,服务器无法处理。
2023-07-26 22:34:55 1110
原创 Java 面试 | MySQL(2023版)
索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。索引是一种数据结构。数据库索引,是数据库管理系统中一个排序的数据结构,以协助快速查询、更新数据库表中数据。索引的实现通常使用B树及其变种B+树。更通俗的说,索引就相当于目录。为了方便查找书中的内容,通过对内容建立索引形成目录。索引是一个文件,它是要占据物理空间的。在 user 表中,有一个联合索引,这个联合索引涉及到三个字段,顺序分别为:profession,age,status。
2023-05-30 20:32:39 663
原创 Java 面试 | Redis(2023版)
也就是说扩容和收缩操作不是一次性、集中式完成的,而是分多次、渐进式完成的。如果保存在 Redis 中的键值对只有几个几十个,那么 rehash 操作可以瞬间完成,但是如果键值对有几百万,几千万甚至几亿,那么要一次性的进行 rehash,势必会造成 Redis 一段时间内不能进行别的操作。所以 Redis 采用渐进式 rehash。这样在进行渐进式 rehash 期间,字典的删除查找更新等操作可能会在两个哈希表上进行,第一个哈希表没有找到,就会去第二个哈希表上进行查找。
2023-05-22 18:26:29 494
原创 科软 | Linux课程总结报告
1、操作系统内核(kernel):操作系统本质是一组程序,用于管理计算机所有的活动以及驱动系统中的所有硬件。2、操作系统的内核直接参考硬件规格写成,因此同一个操作系统不能再不一样的硬件架构下运行。3、应用程序的开发都是参考操作系统提供的开发接口,所以应用程序只能在该操作系统上运行。(1)系统调用接口:进一步利用硬件资源,便于同内核通信,有利于开发人员。(2)程序管理:合理的利用cpu资源,即cpu调度机制。(3)内存管理:控制系统的内存,提供虚拟内存功能,当内存不足时可以提供内存交换功能。
2023-05-15 14:59:42 598 1
原创 计算机考研 | 英语二大作文/小作文
无可争议的是,图表/bie chart/条形图/表格显示中国汽车从2008年到2009年飙升/下降了8%。例:相反地,日本汽车的数量减少/增加到75%。显然,越来越多的人倾向于购买中国汽车。无可争议的是,图表/bie chart/条形图/表格显示,占36%的消费者在餐厅用餐。相比之下,只有8.4%的国民在家吃饭,这就不足为奇了。显然,更多的人倾向于在餐馆吃饭。(两者之间差别不大)(其余的类型占据了一小部分比例)
2023-05-15 14:02:06 214
原创 JUC并发编程19 | 读写锁
我参考了一些资料,对该 “”数据可见性“” 有了另一种理解,理解是 当前线程为了保证数据的可见性,这是指线程自己更改了数据,自己应该要察觉到数据的变化,如果没有读锁,更改完数据之后线程T获取到了写锁并更改了数据,则当前线程读到的数据是线程T更改的,并不是自己更改的,当前线程并不知道是线程T修改了自己要读的(原来自己改的)数据,所以可能导致当前线程在执行后续代码的时候结果出错,这时就导致了数据的不可见,即当前线程并无法察觉到自己修改的值!并且,当释放锁或者转换锁的时候,都要传入最初获取的stamp值。
2023-05-12 12:29:42 674
原创 JUC并发编程17 | synchronized锁升级
谈谈你对 Synchronized 的理解synchronized 的锁升级高并发时,同步调用应该去考量锁的性能损耗。能用无锁数据结构,就不要用锁;能所区块,就不要所整个方法体;能用对象锁,就不要用类锁。尽可能使加锁的代码工作量尽可能小,避免在所代码中调用RPC方法。synchronized 可以实现数据的安全,但是会带来性能的下降。锁升级的过程:无锁、偏向锁、轻量级锁(cas等),重量级锁(synchronized)synchronized锁升级过程总结:一句话,就是先自旋,不行再阻塞。
2023-05-12 12:25:18 555
原创 JUC并发编程16 | CAS自旋锁
是什么,干什么,解决了什么痛点?如何解决,如何使用。原子类:java.util.concurrent.atomic在没有CAS之前,多线程环境不使用原子类保证线程安全i++等操作,会出现数据问题,如果直接加锁synchronized,资源的开销就比较大在出现CAS之后,多线程环境,使用原子类保证线程安全i++,类似我们的乐观锁。
2023-05-12 12:17:27 1000
原创 JUC并发编程15 | Java内存模型JMM与volatile
编译器未有优化程序性能而对指令序列进行重排序的一种手段,有时候会改变程序的语句的先后顺序。
2023-05-12 12:16:24 743
原创 JUC并发编程14 | ThreadLocal
最佳实践ThreadLocal.withInitial(()->初始化值),不设置可能会报空指针异常建议把ThreadLocal修饰为static用完记得手动删除removeThreadLocal并不解决线程间共享数据的问题ThreadLocal适用于变量在线程间隔离且在方法间共享的场景ThreadLocal通过隐式的在不同线程内创建独立实例副本避免了实例线程安全的问题。
2023-05-12 12:10:36 698
原创 中科大软院linux | 进程切换的工作机制
> switch_mm_irqs_off //进程地址空间切换- > switch_to //处理器状态切换通过这一过程,Linux内核便完成了进程的切换。实际上在不同的体系结构下,只有switch_to函数是有较大差异的,因为不同的体系结构下的寄存器和堆栈有所不同,涉及具体的操作自然也是不同的,其他的函数基本上是通用的。
2023-04-25 20:09:04 592 1
原创 科软Linux | lab4.以time/gettimeofday系统调用为例分析ARM64 Linux 5.4.34
异常向量表分为4组,每组有4个向量入口地址,分别处理4种不同类型的异常。每个向量入口空间128字节,也就是说,在这个异常向量空间里可以放入32条指令(每条指令4字节)。中可以找到代码,这段代码配置了不仅配置了异常向量表,还配置了0号进程的内核堆栈和进程描述符。寄存器里,同时Linux系统从用户态切换到内核态(从EL0切换到EL1),这时SP指的是。,得出该异常向量空间的入口地址,然后跳转到那里,执行里面的第一条指令。的系统调用内核处理函数,它们最终通过脚本转换按照系统调用号依次存入。
2023-03-31 20:38:12 301
原创 AC笔记 | Leetcode 0394 —— 辅助栈
很显然这道题看答案了,按理来说从数据结构和逻辑都不是很难。后,自己混乱了,其实还是可以做下去的。比如把栈作为string栈,出栈到 2,得到答案。
2023-03-26 16:05:18 244
原创 中科大软院linux _la3--基于VS Code的Linux内核调试环境搭建及start_kernel跟踪分析
进入函数之后看到了kernel_init,即1号进程,它是所有用户进程的祖先,由kernel_thread函数创建,kernel_thread函数创建一个新的内核线程(实际linux不支持线程所以是一个内核进程),该线程的入口地址是kernel_init()函数。这个函数是由0号进程执行的。这里我们看到了0号进程init_task被设置整个系统的第一个进程(0进程是手工创建的,其他进程都是0号进程创建的)在内核引导时,init_task会被创建并启动,它是所有其他进程的起点。
2023-03-23 21:53:41 324
使用python处理系统和文件数据就那么简单!.rar
2020-08-03
jdk api_1.8(浏览器打开).zip
2020-03-06
网络嗅探器课程设计.doc
2019-06-10
个人网络嗅探器 (Sniffer) .rar
2019-06-10
现代数据库技术实验指导书.doc
2019-06-07
数据库课程设计——图书管理系统(工程文件稍加修改直接可用)
2019-01-27
数据库课程实验题目+代码
2018-11-22
Spring源码读的是什么?
2020-07-09
登录时动态替换undefined动态,但是一直没有变化
2020-04-25
关于Servlet请求不能响应的问题
2020-04-24
idea mysql连接池 NullPointerException
2020-04-21
关于StaticLoggerBinder无法加载的问题
2020-04-12
ideal中新添加的import都变成了灰色
2020-03-28
TA创建的收藏夹 TA关注的收藏夹
TA关注的人