MIT 6006 课程大纲

人的新鲜感总是难以为继,我们总是会不经意间开始厌倦已经熟悉的人和事

<iframe src=”https://www.youtube.com/v/Nz1KZXbg

课程安排

LEC # TOPICS KEY DATES
Unit 1: Introduction
1 Algorithmic thinking, peak finding Problem set 1 out
2 Models of computation, Python cost model, document distance
Unit 2: Sorting and Trees
3 Insertion sort, merge sort
4 Heaps and heap sort
5 Binary search trees, BST sort
6 AVL trees, AVL sort
7 Counting sort, radix sort, lower bounds for sorting and searching
Unit 3: Hashing
8 Hashing with chaining
9 Table doubling, Karp-Rabin
10 Open addressing, cryptographic hashing

课程阅读

课程 内容 完成情况
LEC1 阅读:课程大纲 完成
观看:Unix系统介绍 完成
LEC2 阅读:PC hardware and x86 programming slides 完成
阅读:notes 完成
阅读:Bootstrap/PC hardware appendices and the related xv6 source files 完成,但是剩下三个题目不会
LEC3 阅读:gdb (mit.edu) 完成
阅读:K&R2.9、5.1-5.5、6.4章节 完成,2.9节三个练习没做
LEC4 阅读:Shell & OS organization 剩下三个挑战问题和两个问答题没做
阅读:chapter 0 of the xv6 book 完成
LEC5 阅读:Isolation mechanisms 完成
阅读:Chapter 1: Operating system organization” and the related xv6 source files 读到了22页
LEC6 阅读:Virtual memory (1) 完成
阅读:page table translation and registers 完成
阅读:slides 完成
阅读:Chapter 2: Page Tables 完成
LEC7 阅读:Virtual memory (2)
阅读:JOS virtual memory layout
阅读:slides
LEC8 阅读:System calls, interrupts, exceptions
阅读:IDT 完成
阅读:Traps, interrupts, and drivers” and the related xv6 source files 大致浏览了一遍,代码还没看
LEC9 阅读:Multiprocessors and locking (mit.edu)
阅读:slides (mit.edu)
阅读: “Locking” with spinlock.c and skim mp.c
LEC10 阅读:Processes and switching
阅读:“Scheduling” up to “Sleep and wakeup” and proc.c, swtch.S
LEC11 阅读:sleep&wakeup
阅读:remainder of “Scheduling”, and corresponding parts of proc.c
LEC12 阅读:File systems
阅读:bio.c, fs.c, sysfile.c, file.c and “File system” except for the logging sections
LEC13 阅读:Crash recovery
阅读:log.c and the logging sections of “File system”
LEC14 阅读:File system performance and fast crash recovery
阅读:Journaling the Linux ext2fs Filesystem (1998)
LEC15 阅读:Virtual Memory (3)
阅读:slides
阅读:Virtual Memory Primitives for User Programs (1991)
LEC16 阅读:OS Organization
阅读:Exokernel (1995)
LEC17 阅读:Kernels and HLL
阅读:Biscuit paper (2018)
LEC18 阅读:Scalable locks
阅读:slides
阅读:code
阅读:Non-scalable locks paper (2012)
LEC19 阅读:Scaling OSes slides
阅读:RCU (2013)
LEC20 阅读:Virtual Machines (1)
阅读:slides
LEC21 阅读:Virtual Machines (2)
阅读:slides
阅读:Dune: Safe User-level Access to Privileged CPU Features (2012)
LEC22 阅读:High-performance networking
阅读:IX: A Protected Dataplane Operating System for High Throughput and Low Latency (2014)

课程视频

由于本课程视频较为模糊,因此我们以其他的视频进行替代

课程 内容 完成情况
第一讲 lecture-1-algorithmic-thinking-peak-finding 完成
第二讲
第三讲
第四讲
第五讲
第六讲
第七讲
第八讲 Hashing with Chaining

作业

作业 内容 完成情况
boot xv6 (mit.edu) Boot xv6 完成
Finding and breaking at an address 完成
Exercise: What is on the stack?
shell (mit.edu) 完成:6.033: Hands-on Assignment (UNIX) (mit.edu)
阅读:chapter 0 of the xv6 book 完成
阅读:6.828 shell 完成
完成:实验环境搭建 完成
完成:执行简单命令 完成
完成:IO重定向 完成
完成:实施管道 完成
完成:挑战练习
xv6 system calls (mit.edu) 完成:syscall函数 完成
完成:date函数 完成
lazy page allocation 完成:修改sbrk函数 完成
完成:lazy allocation 框架搭好了,但尚未实现
Threads and Locking 完成:对put进行加锁保护 完成,但是Hash表原理不太懂

实 验

实验 内容 完成情况
Lab1 完成
Lab2 阅读:Introduction 完成
完成:实验环境搭建 完成
阅读:第一部分,物理页管理 完成
阅读:第二部分,虚拟内存 完成
阅读:第三部分,内核地址空间 完成
编程:编写一个物理内存分配 boot_alloc 完成
第一部分:编写mem_init() 完成
第一部分:编写page_init 完成
第一部分:编写page_alloc和page_free 完成
第二部分:编写pgdir_walk 完成
第二部分:

测试

参考文献

0%