MIT

MIT 6.S081 Lec14: File system

Overview 文件系统的设计目标就是组织和存储数据,文件系统一个比较重要功能是持久化,即重启之后,数据不会丢失。xv6 通过把数据存储在 virtio disk 上来实现持久化。 文件系统设计的几大挑战: The file system needs on-disk data structures ......
system File MIT 081 Lec

Mit6.s081 Lec15: xv6 的 logging system

Logging layer file system 设计的一大重要问题就是 crash recovery。这是因为文件系统操作往往涉及向磁盘多次写入,而几次写入之后的 crash 可能导致磁盘上的文件系统处于一个不一致的状态。 For example, suppose a crash occurs ......
logging system Mit6 Mit 081

MIT 6.S081 File system performance and fast crash recovery

引入 当我们针对文件系统讨论 logging 或者 journal 时,其实是在讨论同一件事,二者是同义词。 这一部分主要是讨论 Linux 的 ext3 文件系统,它相比 ext2,可以就说就是加了一层 logging,其他基本没有改变。我们要关注 ext3 与 xv6 的文件系统的不同之处,重点 ......
performance recovery system crash File

Mit6.s081 Lec14

Logging layer file system 设计的一大重要问题就是 crash recovery。这是因为文件系统操作往往涉及向磁盘多次写入,而几次写入之后的 crash 可能导致磁盘上的文件系统处于一个不一致的状态。 For example, suppose a crash occurs ......
Mit6 Mit 081 Lec 14

MIT 6.S081 Lec13: File system

Overview 文件系统的设计目标就是组织和存储数据,文件系统一个比较重要功能是持久化,即重启之后,数据不会丢失。xv6 通过把数据存储在 virtio disk 上来实现持久化。 文件系统设计的几大挑战: The file system needs on-disk data structures ......
system File MIT 081 Lec

MIT 6.5840 Raft Implementation(2B, Log Replication)

Raft实现思路+细节(2B) 任务分解 2B中最主要的任务就是进行日志的复制。Raft是一个强领导人的系统,这意味着所有的日志添加都是由领导人发起的,与之相类似的,还有很多其他的结论(它们都是比较显然的),读者可以自行证明。 我们可以这样地分解复制日志的过程 我们首先需要完善Raft结构体的内容。 ......
Implementation Replication 6.5840 5840 Raft

Mit 6.824 学习记录

# MapReduce ![](https://cdn.nlark.com/yuque/0/2022/jpeg/32393257/1671156383551-0496d819-83b3-49e1-94fa-70170811df89.jpeg) ## 实验 ### 干嘛 实现一个分布式的 MapRed ......
6.824 Mit 824

MIT 6.5840 Raft Implementation(2A, Leader Election)

# Raft实现思路+细节 ## 2A ### 任务分解 总体来说,2A中主要的任务就是选出领导人,在选出领导人的时候,我们要遵循下图。 ![image-20230721094031857](C:\Users\18221\AppData\Roaming\Typora\typora-user-imag ......
Implementation Election 6.5840 Leader 5840

MIT 6.S081 Thread switching

Multiplexing xv6 通过将 cpu 从一个进程切换到另一个进程来实现 multiplex(多路复用),进程的切换会在两种情形下发生: xv6 的 sleep 与 wakeup 机制在进程等待 IO 完成或者等待子进程退出又或者在 sleep 系统调用中等待的时候切换进程。 xv6 会周 ......
switching Thread MIT 081

MIT 6.S081 Multiprocessors and locking

why lock 防止多核并行运行下的 race condition 导致的错误。 内核中的数据是典型的 concurrently-accessed 的数据。 race condition and how the lock avoid it A race condition is a situati ......
Multiprocessors locking MIT 081 and

MIT6.s081/6.828 lectrue1:Introduction and examples

目前课程官网能够查到 2020,2021.2022 秋季的课程表,但是视频都是 2020 年录制的那一版 简单复习+回顾下自己的 OS 学习之旅 ## 参考资料: 官网:https://pdos.csail.mit.edu/6.828/2022/schedule.html 视频翻译:https:// ......
Introduction lectrue1 examples lectrue 6.828

MIT 6.S081 Page faults

概述 这一章主要聚焦于,我们利用 virtural memory 和 page fault 这两个机制,能够实现一些什么样的有意思的优化。 虚拟内存的有两大优势: Isolation,保证每个进程都有它自己的虚拟地址空间,写自己的虚拟地址处的数据不会破坏其他进程的数据; Levle of indir ......
faults Page MIT 081

MIT6.S081学习笔记--lec 1

# 引言 ## 操作系统的目标 + abstract H/W `抽象化硬件` + multiplex `多路复用` + isolation `隔离性` + sharing `共享(进程通信,数据共享)` + security / access control `安全性/权限控制` + perform ......
笔记 MIT6 MIT 081 lec

[已过万次测试] MIT 6.5840 2023 Lab 4 Shard KV Server TaskA, TaskB, Challenge 通关总结

# MIT 6.5840 2023 Lab 4 Shard KV Server TaskA, TaskB, Challenge ## 前言 这波是终于写完了MIT 6.5840 的所有lab了。lab均是独立完成,没有任何参考,哈哈,还是挺有成就感的。lab4其实在上周就已经写完了,不过比较懒,拖了 ......
Challenge 6.5840 Server Shard TaskA

MIT 6.S081 Isolation & System call entry/exit

Trap 机制 程序运行往往需要完成用户空间和内核空间的切换,每当: 程序执行系统调用(system call); 程序出现了 page fault 等错误; 一个设备触发了中断; 都会发生这样的切换。 这里用户空间切换到内核空间通常被称为 trap,因此有时候我们会说程序“陷入”到内核态。trap ......
Isolation System entry call exit

qoj6350. MIT

$k$ 固定的版本:。 先转成 Cyclic Distance 的版本:对于所有 $k$,求出选 $2k$ 个点,最大的 $\sum_{i=1}^{k} dis(p_i,p_{i\bmod k+1})$。 首先可以猜测一个结论:选 $x+1$ 个点的最优方案是在选 $x$ 个点的方案上加一个点。 实 ......
6350 qoj MIT

Raft-2023的一些笔记(SJTU-ACM-PPCA & MIT 6.804)

Raft算法介绍 这是对Raft算法的一个粗略介绍,来源是Raft (thesecretlivesofdata.com) 前置 首先,我们定义一个节点为一台存储数据的服务器。 我们在体系中有很多这样的节点,也可以有一些客户来发送信息(例如值)给服务器。 显然的,如果只有一个节点,那么一致性(cons ......
SJTU-ACM-PPCA 笔记 6.804 Raft 2023

MIT 6.S081 页表

Paging hardware 总的来说,Xv6 的虚拟内存到物理内存的映射方式与 x64 是一致的,都是使用页表来进行映射。区别在于,Xv6 只使用了三级页表,而 x64 则是使用四级页表,另外,二者的页表层级的命名也有区别,对 Xv6 来说,最高级的页表是 L3(其地址存放于寄存器 satp 中 ......
MIT 081

MIT 6.S081 操作系统组织架构

进程概述 64 位的 RISC-V 的 VAS 是 39 位的,即 VA 只有 39 位,而 Xv6 则只有 38 位,最大虚拟地址为 #define MAXVA 0x3fffffffff。 VAS 的顶端,即最高位存放了两个 page,一个是用于 trampoline,一个用于 mapping t ......
组织架构 架构 系统 MIT 081

MIT6.5840 lab2,3 记录

# 参考链接 [课程地址](https://pdos.csail.mit.edu/6.824/index.html) [如何Debug](https://blog.josejg.com/debugging-pretty/):没有它可怎么活,几万行的日志怎么看 [Students' Guide to ......
MIT6 5840 lab2 MIT lab

MIT 6.s081 实验环境搭建

准备工作 Linux 系统,我是在实验室配的主机上装了 Debian Bookworm,然后mac 通过 ssh 连接上去进行操作,宿舍里则是使用的 wsl2,里面的发行版也是 Debian Bookworm。 开始配置 clone 源码 在 ~/Documents/code/mit 目录下执行 g ......
环境 MIT 081

MIT6.S081 DAY 1 2023.6.10

# MIT6.S081 DAY 1 2023.6.10 希望自己能在这个暑假把整个OS课程跟下来吧,xv6什么的实验和课设都能完成就更好了,希望自己的实力在暑假能得到提升! 加油加油加油! ## 1 - Introduction and Examples ![img](https://img2023 ......
MIT6 2023 MIT 081 DAY

开源许可证 GPL、BSD、MIT、Mozilla、Apache和LGPL的区别

开源许可证 GPL、BSD、MIT、Mozilla、Apache和LGPL的区别 二、详细说明1.BSD许可证(https://en.wikipedia.org/wiki/BSD_licenses)BSD开源协议是一个给于使用者很大自由的协议。基本上使用者可以”为所欲为”,可以自由的使用,修改源代码 ......
许可证 Mozilla Apache LGPL GPL

开源许可证 GPL、BSD、MIT、Mozilla、Apache和LGPL的区别

开源(Open Source):开源是指公开软件的源代码。开源软件在发行的时候会附上软件的源代码,并授权允许用户更改、传播或者二次开发。 软件的分类: 商业:收费,源码不公开 共享:免费,源码不公开 自由:源码公开 开源协议: 世界上的开源许可证(Open Source License)大概有上百种 ......
许可证 Mozilla Apache LGPL GPL

Week1.图文并茂解释开源许可证GPL, BSD, MIT, Mozilla, Apache和LGPL的区别

许可证由松到严排序: MIT BSD Apache LGPL GPL 图片源自乌克兰程序员Paul Bagwell,由阮一峰汉化。 MIT(MIT) 来源于大学,MIT 许可证是史上最为简洁和慷慨(permissive)的开源协议之一。作者只想保留版权,而无任何其他了限制.也就是说,你必须在你的发行 ......
图文并茂 许可证 Mozilla 图文 Apache

五种开源协议的比较(BSD,Apache,GPL,LGPL,MIT)

当Adobe、Microsoft、Sun等一系列巨头开始表现出对”开源”的青睐时,”开源”的时代即将到来!现今存在的开源协议很多,而经过Open Source Initiative组织通过批准的开源协议目前有58种。我们在常见的开源协议如BSD,GPL,LGPL,MIT等都是OSI批准的协议。如果要 ......
Apache LGPL BSD GPL MIT

MIT协议原文及中文翻译

MIT协议原文及翻译 参考链接 原文: Copyright ( C ) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated docum ......
原文 MIT

「实验记录」MIT 6.824 Lab1 MapReduce

I. Source MIT-6.824 2020 课程官网 Lab1: MapReduce 实验主页 simviso 精品付费翻译 MIT 6.824 课程 II. My Code source code 的 Gitee 地址 Lab1: MapReduce 的 Gitee 地址 课程官网提供的 L ......
MapReduce 6.824 Lab1 MIT 824

mit6.s081 lab2: system calls

1.system call tracing(moderate) 要求:创建一个系统调用来实现跟踪特性,它采用一个参数来指定跟踪哪一个系统调用,例如:跟踪fork系统调用,程序调用trace(1<<SYS_fork),其中SYS_fork是kernel/syscall.h中的系统调用号。如果在掩码中设 ......
system calls mit6 lab2 mit

【MIT 6.824】学习记录

好像2023年这个课改名成了MIT 6.5840了,never mind ......
6.824 MIT 824