自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

愿岁月如歌

道法自然除心魔

  • 博客(304)
  • 资源 (1)
  • 收藏
  • 关注

转载 有一种感动叫ACM(记WJMZBMR在成都赛区开幕式上的讲话)

各位选手,各位教练,大家好,我是来自清华大学交叉信息学院的陈立杰,今天很荣幸站在这里代表全体参赛选手发言。对于我来说,这是我第一次正式参加ACM的比赛。不过我跟ACM之间的缘分,大概在很早的时候就已经存在了。     我还依稀记得,在我初三的时候,晚上我的一个好朋友在用手机跟妹子聊天,而我在用手机看OI和ACM的题目。自习课上我的那个朋友跟妹子一起学习,而我则翘课想去机房,有时候机房老师不

2017-03-14 05:29:33 968

原创 rcore lab3 基于优先级的分时调度算法实现

实验三 [????实验要求] [????ch3分支实现代码]本实验主要完成了实验要求的:修改ch2的代码, 在遇到不支持的trap的时候不要panic , 而是返回-1sys_write时增加对于物理内存的检查, 只能打印属于自己物理内存的信息, 超出则返回 -1通过ch2的所有test主要思路:实现sys_yield主要难点在于转发到内核的处理函数(可以借鉴其他sys_call的实现),只要简单的调用suspend_current_and_run_next()就好了实现 sys_

2021-08-19 19:13:53 355

原创 常用的C++11,14,17 新特性

文章目录列表初始化列表初始化列表初始化在C++11中被提出, 列表初始化可以作用于任意的类型对于之前版本中需要初始化的任何地方,我们都可以使用列表初始化替换列表初始化可以将堆上创建的数组直接初始化通过initializer_list + 列表初始化可以很方便的实现变长参数的传入#include<cstdio>using namespace std;class Node{ public: int x,y; };#include <initializ

2021-08-16 17:38:26 282

原创 [CS144][lab2]

实验一 [????实验要求] [????lab2分支实现代码]Lab_work:主要完成了TCP_receiver的主要功能结合之前实现的byte_stream和重组器,实现了从接收处理握手请求,接收无序数据段,优雅断开的主要功能解决的问题:对于携带数据为空的请求,要按照FIN + SYN计算其占用的序列号个数接收端可接收窗口的计算要考虑接收的第一个SYN占用的序列号收到FIN时,便可直接设置最终的ACK向_reassembler传递的index 和 data 都按照窗口进行取交集,

2021-07-25 16:11:46 207

原创 [CS144][lab1]

实验一 [????实验要求] [????lab1分支实现代码]lab1的目标是基于lab1的byte_stream,完成无序数据段的有序重组数据段到达的次序可能不同,并且可能存在重叠的部分通过一个priority queue快速获取index 最小的段总体实现难度不大,主要是需要看test,通过测试数据看需要实现什么功能…...

2021-07-07 19:43:24 142

原创 [CS144] lab0

实验一 [????实验要求] [????lab0分支实现代码]完成了实验要求Coding的2部分:实现通过socket 发送HTTP请求, 实现在sponge/apps/webget.cc实现了内存中的简易stream , 实现在sponge/libsponge/byte_stream.cc

2021-07-06 16:04:50 102

原创 [MIT 6.824][资料整理]

删除线格式

2021-04-25 16:22:54 170

原创 [Computer Networking学习][一个TCP的实现]

huangrt的笔记课程主页

2021-04-23 15:13:56 136

原创 rcore lab2 支持sys_write的内存检查

实验一 [????实验要求] [????ch2分支实现代码]本实验主要完成了实验要求的:修改ch2的代码, 在遇到不支持的trap的时候不要panic , 而是返回-1sys_write时增加对于物理内存的检查, 只能打印属于自己物理内存的信息, 超出则返回 -1通过ch2的所有test主要思路:首先将内核栈和用户栈的长度都设置成4096,因为当前的用户进程只能运行在固定区域,所以需要检测两部分: ①用户栈 ②用户代码const FD_STDOUT: usize = 1;cons

2021-04-06 18:11:21 987 1

原创 rcore lab1 完成彩色log打印

实验一 [????实验要求] [????ch1分支实现代码]本实验主要完成了实验要求的:支持级别控制的日志支持不同级别的日志使用不同的颜色显示主要思路:使用不依赖std的log库,参考rcore的logging实现use core::fmt;use crate::console;use log::{self, Level, LevelFilter, Log, Metadata, Record};pub fn init() { static LOGGER: Logger

2021-04-06 15:24:15 643 1

原创 THU-OS rCore学习总结 基于Rust + RISC-V

2021课程主页源码指导书Rust编程之道视频

2021-03-24 17:05:28 3161 3

原创 [THU OS 2021] lab1

1

2021-02-22 23:46:11 121

原创 THU操作系统实验 & ucore_lab2

文章目录【练习一 @理解通过 make 生成执行文件的过程】【练习一 @理解通过 make 生成执行文件的过程】

2021-02-03 22:17:02 184

原创 THU操作系统实验 & ucore_lab1

文章目录1.理解通过 make 生成执行文件的过程。(要求在报告中写出对下述问题的回答)1.理解通过 make 生成执行文件的过程。(要求在报告中写出对下述问题的回答)完成本题首先需要学习makefile的编写规则,可以简单看下 makefile入门遇到不懂的查GNU MAKE手册 链接: https://pan.baidu.com/s/1_v0m_XPpsXamYGEPkFlJeA 密码: wod9...

2021-01-14 21:01:12 653 1

原创 [ucore]使用MAC时 make debug 无法启动终端

因为默认使用的linux的gnome-terminal , mac的话修改位xterm就行了具体可以再makefile里面将TERMINAL的值改为xterm,这样就可以成功启动debug了

2020-12-23 14:29:36 216

原创 ucore学习资料整理

ucore资料整理课程WIKI主页PIZZA讨论区操作系统课程常见问题及回答课上问答在线ucore操作系统实验任务书BILIBILI视频lab1

2020-12-22 17:21:05 227

原创 Redis的设计与实现-读书笔记(二)

文章目录整数集合整数集合的实现整数集合的升级压缩列表压缩列表的构成连锁更新整数集合当集合元素全是整数并且数量不多时,redis就会选择整数集合作为底层实现整数集合的实现typedef struct intset{ uint32_t encoding; //编码方式 uint32_t length; // 集合元素数量 int8_t contents[];根据encoding选择类型 ...

2019-12-12 01:51:22 100

原创 数据库面试题

文章目录MySQL的复制原理以及流程MySQL中myisam与innodb的区别,至少5点MySQL中varchar与char的区别以及varchar(50)中的50代表的涵义问了innodb的事务与日志的实现方式MySQL binlog的几种日志录入格式以及区别MySQL数据库cpu飙升到500%的话他怎么处理?sql优化各种方法500台db,在最快时间之内重启你是如何监控你们的数据库的?你们的...

2019-12-11 12:29:02 81

原创 c++资料

extern关键字作用 static关键字作用 Volatile是什么 说说const的作用,越多越好 new与malloc区别 C++多态性与虚函数表C++多态的实现? (纯)虚函数的作用? 虚函数用于实现多态,这点大家都能答上来但是虚函数在设计上还具有封装和抽象的作用。比如抽象工厂模式。 动态绑定是如何实现的? 静态多态和动态多态。静态多态是指通过模板技术或者函数重载技术实...

2019-12-11 12:27:35 451

原创 数据结构

文章目录排序冒泡排序选择排序插入排序希尔排序快速排序归并算法堆排序计数排序最长公共子序列(LCS)树AVL树红黑树与AVL树,各自的优缺点总结B树B+树红黑树二叉树先序遍历.已知先序和中序,求后序遍历(poj2255)。二叉树转双向链表乘法哈希排序冒泡排序最简单的一种排序算法。先从数组中找到最大值(或最小值)并放到数组最左端(或最右端),然后在剩下的数字中找到次大值(或次小值),以此类推,直...

2019-12-11 12:27:15 97

原创 c++面试新资料

文章目录1.什么是虚函数?什么是纯虚函数?2.基类为什么需要虚析构函数?3.当i是一个整数的时候i++和++i那个更快?它们的区别是什么?4.vector的reserve和capacity的区别?5.如何初始化const和static数据成员?6.static 和const分别怎么用,类里面static和const可以同时修饰成员函数吗?7.指针和引用的区别8.什么是多态?多态有什么用途?10.n...

2019-12-11 12:27:09 186

原创 线程与进程的状态转换

线程的状态变换进程的状态变化

2019-12-11 12:26:50 113

原创 多路IO复用-Select,poll,epoll

文章目录1.Select2. poll3.epoll比较1.Select2. poll3.epoll比较

2019-12-11 12:26:40 135

原创 操作系统资料集锦

文章目录内存管理进程与线程调度内存管理虚拟内存 添加链接描述进程与线程调度线程与进程的区别 添加链接描述线程与进程的状态转换 添加链接描述...

2019-12-11 12:26:07 174 1

原创 New ComputerNetworking Source

文章目录网络层运输层应用层区别网络层IP添加链接描述ICMP 添加链接描述运输层UDP 添加链接描述TCP 添加链接描述NAT 添加链接描述应用层DNS协议 添加链接描述HTTPcookie与session 添加链接描述HTTP 添加链接描述HTTPS 添加链接描述DHCP 添加链接描述FTP 添加链接描述SMTP(基于FTP) 添加链接描述...

2019-12-04 15:57:46 131

原创 Redis的设计与实现-读书笔记(一)

文章目录SDSSDS的定义SDS与C风格字符串的区别链表Redis中链表的结构字典字典的实现解决键冲突处理负载因子SDSSDS的定义在Redis中使用SDS(简单动态字符串)来代替c风格字符串struct SDS{ int len,free; char buf[];}SDS与C风格字符串的区别O(1)获取SDS长度通过分析free来杜绝缓冲区溢出通过空间预分配(大于1M分...

2019-11-27 22:06:33 104

原创 操作系统内存管理_虚拟内存

文章目录虚拟内存的基本思想进程运行内存模型分页段页式存储分页和分段的区别虚拟内存的基本思想按照固定大小将进程的地址空间分为多个页面,每一个页面内部都有连续的地址.这些页被映射到物理内存,但是并不是所有的页都在内存中时程序才能运行.当程序需要已经在物理内存中的地址空间时,由硬件完成映射;当程序引用不在内存中的地址空间时,产生缺页中断,由操作系统将页面调入内存.进程运行内存模型分页地址...

2019-11-06 20:47:58 356

原创 atoi的C++实现

//支持32位下利用除法的溢出判定class Solution{public: string trim(string s) { if (s.empty()) { return s; } s.erase(0, s.find_first_not_of(" ")); s.er...

2019-11-04 11:15:59 133

原创 STL源码剖析:迭代器

目录迭代器是什么迭代器的设计如何获得迭代器指向的数据类型迭代器的五种类型迭代器内部常用的五种型别std::iterator流程总结SGI对traits进行扩展迭代器是什么迭代器是一种模式,实现了通过一个统一接口访问STL容器的方法。STL作为桥梁链接了STL算法与容器。例如,我们可以通过Sort(a.begin() , a.end())完成一次利用算法对vector类型容器a的排序。迭代器的...

2019-11-03 21:45:41 153

原创 MIT6.828 BootLoader代码分析

#include <inc/mmu.h>;bootloader完成了16位模式的初始化,包括gdt,ds,es,ss等 , 然后进入保护模式并初始化, 然后call main.c# Start the CPU: switch to 32-bit protected mode, jump into C.# The BIOS loads this code from the fi...

2019-11-01 21:13:44 296

原创 MIT6.828_2019_Lab翻译_utilities

实验:Xv6和Unix程序欢迎大家一起维护中文Lab文档!共同进步! Github这个实验将会让你熟悉Xv6和它的系统调用引导Xv6你必须使用一个X86 Athena machine;也就是说 uname -a 之后应该显示 i386 GNU/Linux or i686 GNU/Linux or x86_64 GNU/Linux。你可以登陆进一个公共的Athena host,通过使用指令s...

2019-11-01 18:12:45 2455

翻译 Innodb 入门(三:锁)

文章目录lock与latchlock与latch

2019-08-27 21:27:44 58

原创 InnoDB 学习(一:InnoDB体系架构)

文章目录体系架构后台线程体系架构后台线程

2019-08-27 00:26:01 124

原创 Redis (三:持久化)

目录RDB方式快照原理AOF方式同步硬盘数据总结RDB方式rdb通过snapshot实现根据配置规则save M N 即M秒内更改了至少N个键,就持久化用户执行save或bgsave,save会阻塞client请求,bgsave是异步的不阻塞flushall若定义过save规则,则执行flushall后snapshot一次,没定义过save则不执行主从复制时快照原理redis...

2019-08-24 17:50:46 80

原创 Redis 入门(二:transaction,timeout,sort,queue,pipe)

事务:都执行或都不执行127.0.0.1:6379> multiOK127.0.0.1:6379> srem number 1 QUEUED127.0.0.1:6379> srem number 3QUEUED127.0.0.1:6379> exec1) (integer) 12) (integer) 1事务的错误处理1语法错误比如参数个数错误:全部...

2019-08-23 16:46:19 284

原创 Redis 入门(一:基本数据类型与操作)

1.redis-server启动2.命令返回值:状态,错误,整数,字符串,多字符串配置文件redis-server (文件) 来按照文件配置启动热更新配置:config set loglevel warning多数据库默认16个 select 1 选择不是独立的操作set bar 1`127.0.0.1:6379> keys pattern(empty list o...

2019-08-23 03:26:04 183

原创 golang实现选择排序,快速排序,希尔排序,堆排序,快速排序,归并排序

func max_heapify(dad int , end int , arr []int){ son := dad * 2 + 1 for son <= end{ if son + 1 <= end && arr[son] < arr[son+1]{ son = son + 1 } if arr[dad] >= arr[son]{...

2019-08-16 22:40:59 134

转载 进程 线程 协程

进程时代image后来,现代化的计算机有了操作系统,每个程序都是一个进程,但是操作系统在一段时间只能运行一个进程,直到这个进程运行完,才能运行下一个进程,这个时期可以成为单进程时代——串行时代。和ENIAC相比,单进程是有了几万倍的提度,但依然是太慢了,比如进程要读数据阻塞了,CPU就在哪浪费着,伟大的程序员们就想了,不能浪费啊,怎么才能充分的利用CPU呢?后来操作系统就具有了...

2019-08-16 02:29:15 216

原创 golang实现C++中upper_bound & lower_bound

package main/*在从小到大的排序数组中,lower_bound( begin,end,num, flag=true):从数组的begin位置到end-1位置二分查找第一个大于或等于num的数字,找到返回该数字的index,不存在则返回end upper_bound( begin,end,num, flag=true):从数组的begin位置到end-1位置二分查找第一个大...

2019-08-15 17:28:20 1515

转载 Raft中文论文——寻找一种易于理解的一致性算法(扩展版)

寻找一种易于理解的一致性算法(扩展版)摘要Raft 是一种为了管理复制日志的一致性算法。它提供了和 Paxos 算法相同的功能和性能,但是它的算法结构和 Paxos 不同,使得 Raft 算法更加容易理解并且更容易构建实际的系统。为了提升可理解性,Raft 将一致性算法分解成了几个关键模块,例如领导人选举、日志复制和安全性。同时它通过实施一个更强的一致性来减少需要考虑的状态的数量。从一个用户研...

2019-08-11 15:22:17 233

软件工程原书pdf 第三版 钱乐秋

软件工程 第一章 概 述 1、定义: 软件 == 程序 + 数据 + 文档 1.数据:程序加工处理的对象。包括数据的表示、组织与存储。 数据 == 初始化数据 + 测试数据 2.文档(document) :开发、使用和维护程序所需的图文资料 。 文档 == 开发文档 + 管理文档。 3.程序(program) :能完成预定功能和性能的指令集合。 4.软件和程序的区别 程序只是完整软件产品的一部分。 编写程序只是软件开发过程数据中的一个阶段,一般来说,其工作量仅仅是软件开发全部工作量的10%-20%

2018-04-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除