阿谢的BLOG


  • Home

  • Life

  • Theory

  • Practice

  • About

  • Archives

  • Search

MIT 6.828 book_xv6:Chapter 3

Posted on 2019-04-14

运行进程时,CPU执行正常的处理器循环:读取指令,增加程序计数器,执行指令,重复。但有些事件,必须从对用户程序的控制转移回内核,而不是执行下一条指令。这些事件包括希望得到注意的设备指令、执行非法操作的用户程序(例如,引用没有PTE的虚拟地址),或用户程序要求内核提供具有系统调用的服务。在处理这些事件时,有三个主要挑战:
1)内核必须安排处理器从用户模式切换到内核模式(和返回);
2)必须协调内核和设备之间的并行活动;
3)内核必须很好地理解设备的接口;
解决这三个难题需要对硬件有详细的了解并小心的编写代码,并且可能会产生不透明的内核代码。本章解释xv6如何解决这些问题。

Read more »

MIT 6.828 book_xv6:Chapter 6

Posted on 2019-04-13

文件系统的目的是为了组织和保存数据。文件系统通常支持在用户和应用之间分享数据,并且支持持久化,以便数据在重启后依旧有效。

Read more »

Shell script & Make

Posted on 2019-04-13

Shell script和Makefile

Read more »

MIT 6.828 book_xv6:Chapter 4

Posted on 2019-04-13

Xv6在多处理器上运行,多核CPU的计算机独立执行代码。这些多核CPU在单个物理地址空间上运行,并共享数据结构;xv6必须引入一个协调机制,以防止它们相互干扰。即使在单处理器上,xv6也必须使用某种机制来防止中断处理程序干扰非中断代码。Xv6对两者都使用相同的低级概念:锁。锁提供互斥,确保一次只能有一个CPU拥有锁。如果xv6仅访问数据结构,同时持有特定的锁,则xv6可以确保一次只有一个CPU访问数据结构。在此情况下,我们说锁保护了数据结构。

Read more »

MIT 6.824 Lab:MapReduce

Posted on 2019-04-09

构建MapReduce库

Read more »

MIT 6.824 Distributed System

Posted on 2019-04-09

MIT6.824 分布式系统课程

Read more »

MIT 6.828 Assignment:Boot xv6

Posted on 2019-04-08

启动!

Read more »

MIT 6.828 Assignment:System Calls

Posted on 2019-04-08

系统调用

Read more »

MIT 6.828 book_xv6:Chapter 2

Posted on 2019-04-07

页表

Read more »

《众病之王》

Posted on 2019-04-01

癌症是一段跑偏的代码,会不断产生数据,直到内存溢出,耗尽所有资源。奶奶死于肺癌,姑父正遭受肺癌的折磨。如果不是他们,我无法体会癌症的可怕。愿大家有个健康的人生!

Read more »
123…16

123xzy

155 posts
81 tags
GitHub ZhiHu E-Mail
© 2019 123xzy
Powered by Hexo
|
Theme — NexT.Muse v5.1.4
: