程序锅

  • 首页
  • 分类
  • 标签
  • 归档
  • 关于

  • 搜索
基础知识 Etcd LeetCode 计算机体系结构 Kubernetes Containerd Docker 容器 云原生 Serverless 项目开发维护 ELF 深入理解程序 Tmux Vim Linux Kernel Linux numpy matplotlib 机器学习 MQTT 网络基础 Thrift RPC OS 操作系统 Clang 研途 数据结构和算法 Java 编程语言 Golang Python 个人网站搭建 Nginx 计算机通用技术 Git

MIT 6.828 课程 | 1-PC Bootstrap

发表于 2019-11-25 | 分类于 MIT6.828 | 0 | 阅读次数 2519
Introduction这个Lab分成3个部分第一部分主要专注于熟悉x86汇编语言、qemu x86仿真软件以及PC的上电之后的启动过程;第二部分主要讲的是6.828 kernel的boot loader,可见相应的boot目录;第三部分主要讲6.828 kernel的初始化,这个kernel叫做J
阅读全文 »

MIT 6.828 课程 | HW10-bigger files for xv6

发表于 2019-11-25 | 分类于 MIT6.828 | 0 | 阅读次数 3484
在这个实验中我们将会增加xv6文件最大的大小。当前的xv6 文件的大小是被限制在140 sectors,这个限制是因为xv6 inode包含了12个“直接”的 block numbers和一个“单间接”的block number,这个“单间接”的block number指向了一个包含128 bloc
阅读全文 »

MIT 6.828 课程 | 4-Preemptive Multitasking PartC

发表于 2019-11-25 | 分类于 MIT6.828 | 0 | 阅读次数 2107
Part C: Preemptive Multitasking and Inter-Process communication (IPC)partC主要是实现抢占式调度以及允许environment之间传递消息。Clock Interrupts and Preemption当运行user/spin测
阅读全文 »

MIT 6.828 课程 | HW6-Threads and Locking

发表于 2019-11-25 | 分类于 MIT6.828 | 0 | 阅读次数 1893
在这个作业中,我们将会使用hash table来研究threads和locks的并行编程。这个HW需要运行在一台真正的计算机上(not xv6,not qemu),并且这台机器是要求多核的;作业所需要的源代码:ph.c源代码的讲解首先我们来看一下ph.c中的main()函数intmain(int a
阅读全文 »

MIT 6.828 课程 | HW11-xv6 log

发表于 2019-11-25 | 分类于 MIT6.828 | 0 | 阅读次数 3285
这个作业将会从两方面来探索xv6 log(也就是日志文件系统)。一方面,你将会人为的创建一个 crash 来阐述为什么需要 log。另一方面,你将会解除掉 xv6 logging system 中一个低效的问题。Creating a Problemxv6 log 的目的是为了让文件系统中对磁盘更新的
阅读全文 »

MIT 6.828 课程 | HW4-lazy page allocation

发表于 2019-11-25 | 分类于 MIT6.828 | 0 | 阅读次数 3041
xv6应用程序使用sbrk()system call来向kernel 请求heap memory。在kernel中已经实现了,sbrk()分配物理内存并且映射它到进程的虚拟地址。有些程序分配了内存,但不使用他们,比如在实现大型稀疏矩阵的时候。复杂的kernel延迟分配每一页的内存直到应用程序尝试使用
阅读全文 »

MIT 6.828 课程 | 3-User Environments PartA

发表于 2019-11-25 | 分类于 MIT6.828 | 0 | 阅读次数 3628
在这个Lab中,我们将要实现基础的内核设施,让一个被保护的user mode environment成功运行(比如process)。我们将要去实现一个可以跟踪用户environment的数据结构,创建一个单独的用户environment并且把一个程序的镜像加载到里面,最后还要运行它。我们也会让JOS
阅读全文 »

MIT 6.828 课程 | HW5-CPU alarm

发表于 2019-11-25 | 分类于 MIT6.828 | 0 | 阅读次数 3271
在这个实验中,我们将会向xv6里面添加一个特性,这个特性将会定期发出一个警告当一个进程在使用CPU time的时候。这对compute-bound 进程来说是相当有用的,因为我们可以限制他们消耗CPU的时间,或者对于那些想要定期的行为的进程来说也是很有用的。更加普遍的来说,你将会实现一个用户级的中断
阅读全文 »

MIT 6.828 课程 | 4-Preemptive Multitasking PartB

发表于 2019-11-25 | 分类于 MIT6.828 | 0 | 阅读次数 2659
Part B: Copy-on-Write ForkUnix提供fork()system call作为主要的进程创建原语。fork()system call 复制调用进程(the parent)的地址空间,然后去创建一个新的进程(the child)。xv6实现的fork()是将parent pa
阅读全文 »

RPC | Thrift 发送过程

发表于 2019-10-20 | 分类于 RPC | 0 | 阅读次数 2069
这边梳理一下整个RPC通信以及数据包的过程(从看源代码角度出发的),首先是客户端调用ping这个函数,Test test;test.num1 = 1000;test.num2 = 1000;test.str = "000000";test.bs = "111111&qu
阅读全文 »
18 19 20
dawnguo

dawnguo

215 日志
24 分类
37 标签
RSS
Creative Commons
© 2018 — 2025 程序锅
0%