这里可能没有你想看的...
04
07
weekCompetition392 weekCompetition392
第 392 场周赛复盘。 排名 367 / 3193 1. 最长的严格递增或递减子数组 给你一个整数数组 nums 。 返回数组 nums 中 严格递增 或 严格递减 的最长非空子数组的长度。 思路 维护两个数组,分别是以当前元素为末
2024-04-07
03
31
21
TCP Things TCP Things
聊聊传输控制协议(TCP, Transmission Control Protocol)。 简述 TCP 位于传输层,是面向连接且基于字节流的可靠协议。 所谓面向连接,就是指如果使用 TCP 协议进行数据传输,那么必须在数据传输之前进行「
03
CS149 の 笔记 CS149 の 笔记
并行计算。>>> 传送门 <<< Lecture 1: Why Parallelism 很早以前实现并行的性价比并不高,因为人们只需要等最新的 CPU 出来就行。厂商通过以下两种方式提升 CPU 性能:
2024-03-03
11
13
.C 文件の编译过程(Compile Process) .C 文件の编译过程(Compile Process)
对于一个程序员而言,不仅仅要知道代码是怎么写的,还得知道你的源代码文件是怎么经过一系列操作变成可执行文件的。 参考神书《CSAPP》 整体流程 本文将以以下程序为基础进行分析。 main.c#include <stdio.h&g
2023-11-13
09
C++ の 标准模板库(STL) C++ の 标准模板库(STL)
标准模板库(Standard Template Library, STL)是一个 C++ 软件库,大量影响了 C++ 标准程序库但并非是其的一部分。其中包含 5 个组件,分别为迭代器、容器、容器适配器、算法、函数。 迭代器 容器 std:
2023-11-09
08
设计模式 设计模式
设计模式是软件设计中常见问题的典型解决方案。每个模式就像一张蓝图,可以通过对其进行定制来解决代码中的特定设计问题。 创建型 单例模式 单例模式保证一个类只有一个全局共享的实例,并提供一个访问该实例的全局 API。 所有单例的实现都包含以下
2023-11-08
04
6.s081 Lab9 Mmap 6.s081 Lab9 Mmap
最后一个,也是最有挑战性的一项 coding 任务,是所有前置 lab 的知识综合。 Preparation 切换到对应分支 $ git fetch $ git checkout mmap $ make clean 我们需要实现的 mma
2023-11-04
02
6.s081 Lab8 File System 6.s081 Lab8 File System
现在开始进入文件系统的阶段。 Preparation 切换到对应分支 $ git fetch $ git checkout fs $ make clean Task1: Large files 该任务要求我们为 inode 实现二级间接索
2023-11-02
01
6.s081 Lab7 Lock 6.s081 Lab7 Lock
这个 lab 就是对原先的并发控制进行优化。 Preparation 切换到对应分支 $ git fetch $ git checkout lock $ make clean Task1: Memory allocator 原来的内存分配
2023-11-01
10
31
6.s081 Lab6 Networking 6.s081 Lab6 Networking
这里要我们在软件层面实现数据包的收发操作。 Preparation 切换到对应分支 $ git fetch $ git checkout net $ make clean 模拟网络 我们将使用名为 E1000 的网络设备来处理网络通信,实
2023-10-31
30
6.s081 Lab5 Multithreading 6.s081 Lab5 Multithreading
现在进入操作系统的另一大特性:并发。 线程切换 in xv6 在 xv6 中,每个进程都可以视为有一个主线程,逐行运行指令,享有所有寄存器的使用权。然而,时间片到期,也就是进程收到时钟中断后,会调用 yield() 函数自愿让出 CPU。
2023-10-30
30
26
6.s081 Lab3 Traps 6.s081 Lab3 Traps
现在是,陷入内核时间。 Preparation 切换到对应分支 $ git fetch $ git checkout traps $ make clean Task1: RISC-V assembly 第一个任务就是了解一下 RISC-V
2023-10-26
25
6.s081 系统调用流程 6.s081 系统调用流程
番外篇,探究通过 shell 运行命令时,系统调用到底是个什么流程。 用户层是如何进行系统调用的 以 sleep.c 为例,在 lab0 中我们知道要修改 Makefile 中的 UPROGS 变量,并且 user/user.h 中也为我
2023-10-25
24
6.s081 Lab2 Page Tables 6.s081 Lab2 Page Tables
在本 lab 中,我们将进行页表机制的探索。 Preparation 切换到对应分支 $ git fetch $ git checkout pgtbl $ make clean Task1: Speed up system calls 该
2023-10-24
23
6.s081 Lab1 System Calls 6.s081 Lab1 System Calls
本 lab 要求我们进行系统调用代码的编写。 Preparation 切换到对应分支 $ git fetch $ git checkout syscall $ make clean 可以看到 Makefile 里内容都重置了,且测试脚本
2023-10-23
22
6.s081 Lab0 Xv6 and Unix Utilities 6.s081 Lab0 Xv6 and Unix Utilities
热身运动,实现一些 shell 命令。 Boot xv6 首先去 lab tool page 把实验所需工具都给装上,然后查看一下各个工具的版本,检查是否安装成功。 $ tool --version 获取代码,切换到实验对应分支,准备开撸
2023-10-22
2 / 6