- 博客(16)
- 收藏
- 关注
原创 在Ubuntu 20.04上构建RISC-V和QEMU环境
先从RISC-V GNU工具链开始。我们需要GCC,GDB,binutils等工具,先更新你的接下来,从GitHub clone RISC-V的GNU工具链:一旦我们的“装备”准备就绪,我们便可以开始编译这个工具链,切换到第二步,未知领地的“地图”——我们需要一个测试环境来验证我们的工具链是否正确安装,这就需要QEMU的支持。首先,但是出现了以下问题:这个错误信息表明你在尝试构建或安装Python项目时遇到了问题,具体是缺少ensurepip模块。ensurepip。
2024-10-02 00:09:30
1274
原创 计算机网络面试题41-60(自用)
source port 和 destination port两者分别为「源端口号」和「目的端口号」。源端口号就是指本地端口,目的端口就是远程端口。可以这么理解,我们有很多软件,每个软件都对应一个端口,假如,你想和我数据交互,咱们得互相知道你我的端口号。
2024-07-16 09:39:08
1047
原创 计算机网络面试题21-40(自用)
除了可以将用户信息通过Cookie 存储在用户浏览器(客户端)中,也可以利用 Session 存储在服务器端,存储在服务器端的信息更加安全。Session 可以存储在服务器上的文件、数据库或者内存中。也可以将 Session 存储在 Redis 这种内存型数据库中,效率会更高。用户进行登录时,用户提交包含用户名和密码的表单,放入 HTTP 请求报文中;服务器验证该用户名和密码,如果正确则把用户信息存储到 Redis 中,它在 Redis 中的 Key 称为 Session ID;
2024-07-13 19:41:26
652
原创 计算机网络面试题1-20(自用)
一个完整的业务可能会被TCP拆分成多个包进行发送,也有可能把多个小的包封装成一个大的数据包发送,这个就是TCP的拆包和粘包问题。原因1、应用程序写入数据的字节大小大于套接字发送缓冲区的大小.2、进行MSS大小的TCP分段。( MSS=TCP报文段长度-TCP首部长度)3、以太网的payload大于MTU进行IP分片。( MTU指:一种通信协议的某一层上面所能通过的最大数据包大小。解决方案1、消息定长。2、在包尾部增加回车或者空格符等特殊字符进行分割3、将消息分为消息头和消息尾。
2024-07-12 10:45:39
912
原创 操作系统面试题61-65(自用)
分段式分配:内存总量相同,100M,比如,内存分配依次5M,15M,50M,25M,程序运行一段时间之后,5M,15M的程序运行完毕,释放内存,其他程序还在运行,再次分配一个10M的内存供其它程序使用,只能从头开始分片,这样,就会存在10M+5M的外部碎片。固定分配,将100M分割成10块,每块10M,一个程序需要45M,那么需要分配5块,第五块只用了5M,剩下的5M就是内部碎片;分段式分配,按需分配,一个程序需要45M,就给分片45MB,剩下的55M供其它程序使用,,请求哪台都可以,主要起分流作用)
2024-07-09 21:25:06
386
原创 操作系统面试题41-60(自用)
1、最佳置换法(OPT)最佳置换算法(OPT,Optimal) :每次选择淘汰的页面将是以后永不使用,或者在最长时间内不再被访问的页面,这样可以保证最低的缺页率。最佳置换算法可以保证最低的缺页率,但实际上,只有在进程执行的过程中才能知道接下来会访问到的是哪个页面。操作系统无法提前预判页面访问序列。因此,最佳置换算法是无法实现的2、先进先出置换算法(FIFO)
2024-07-07 20:57:18
1141
原创 操作系统面试题21-40 自用
读写锁多个读者可以同时进行读写者必须互斥(只允许一个写者写,也不能读者写者同时进行)写者优先于读者(一旦有写者,则后续读者必须等待,唤醒时优先考虑写者)互斥锁一次只能一个线程拥有互斥锁,其他线程只有等待互斥锁是在抢锁失败的情况下主动放弃CPU进入睡眠状态直到锁的状态改变时再唤醒,而操作系统负责线程调度,为了实现锁的状态发生改变时唤醒阻塞的线程或者进程,需要把锁交给操作系统管理,所以互斥锁在加锁操作时涉及上下文的切换。
2024-07-05 21:34:52
941
原创 操作系统面试题1-20(自用)
③如果没有找到匹配的页号,则需要访问内存中的页表,找到对应页表项,得到页面存放的内存块号,再将内存块号与页内偏移量拼接形成物理地址,最后,访问该物理地址对应的内存单元。我们这里讨论的是用户态的多线程模型,同一个进程内部有多个线程,所有的线程共享同一个进程的内存空间,进程中定义的全局变量会被所有的线程共享,比如有全局变量int i = 10,这一进程中所有并发运行的线程都可以读取和修改这个i的值,而多个线程被CPU调度的顺序又是不可控的,所以对临界资源的访问尤其需要注意安全。因此,页式管理中地址是-维的。
2024-07-04 23:23:58
777
原创 超简单的Mac版VsCode配置c/c++环境新手教学
在vs code官网Visual Studio Code - Code Editing. Redefined下载vs code 点击RUN Code进行编译: 结果如下:
2022-07-12 16:09:38
3947
1
原创 编译原理 课程设计 LR(1)分析法
构造LR(1)分析程序,利用它进行语法分析,判断给出的符号串是否为该文法识别的句子,了解LR(K)分析方法是严格的从左向右扫描,和自底向上的语法分析方法
2022-06-09 12:56:41
3473
原创 编译原理 实验二 词法分析程序设计
1. 实验内容● TINY语言的词法由TINY Syntax.ppt描述;● TINY语言的词法分析器由TINY Scanner.rar的C语言代码实现;● TINY+语言的词法由TINY+ Syntax.doc描述。任务:理解TINY语言的词法及词法分析器的实现,并基于该词法分析器,实现拓展语言TINY+的词法分析器。要求:(1) TINY+词法分析器以TINY+源代码为输入,输出为识别出的token序列;(2) 词法分析器以最长匹配为原则,例如‘:=’应识别为赋值符号而非单独
2022-05-16 14:34:49
3255
2
原创 约瑟夫问题的C++实现(循环数组)
问题如图:核心思想:循环数组数组从0开始,然后i无限自增,我们只要对i%n,就可以构造一个循环数组了核心代码如下:#include<bits/stdc++.h>using namespace std;int main(void){ int n, k, m, p, q, sum = 0, i, t; cin >> n >> k >> m; p = n; q = k; int* arr = new.
2021-09-19 22:48:52
1289
原创 数据结构之顺序表
一、线性表线性表是n个数据特性相同的元素的组成有限序列,是最基本且常用的一种线性结构(线性表,栈,队列,串和数组都是线性结构),同时也是其他数据结构的基础。对于非空的线性表或者线性结构的特点:(1)存在唯一的一个被称作“第一个”的数据元素;(2)存在唯一的一个被称作“最后一个”的数据元素;(3)除第一个外,结构中的每个数据元素均只有一个前驱;(4)除最后一个外,结构中的每个数据元素均只有一个后继;二、两种实现方式1-1、顺序表示(顺序表)概念:用一组地址连续的存储单元.
2021-09-05 22:12:32
185
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅