Hello World
真实操作系统内存使用情况 下图是一台Athena计算机(注,MIT内部共享使用的计算机)的top指令输出。如果你查看Mem这一行, 首先是计算机中总共有多少内存(33048332),如果你再往后看的话,你会发现大部分内存都被使用了(4214604 + 26988148)。但是大部分内存并没有被应用程序所使用,而是被buff/cache用掉了。这在一个操作系统中还挺常见的,因为我们不想...
Page Fault Basics 今天的课程内容是page fault,以及通过page fault可以实现的一系列虚拟内存功能。这里相关的功能有: lazy allocation,这是下一个lab的内容 copy-on-write fork demand paging memory mapped files ...
Trap机制 程序运行是完成用户空间和内核空间的切换 程序执行系统调用 程序出现了类似page fault、运算时除0的错误 一个设备触发了中断使得当前程序运行需要响应内核设备驱动 都会发生这样的切换 这其间用户空间与内核空间的切换通常被称为trap,其中细节对安全隔离与性能来说非常重要。所以,trap机制要尽可能的简单 这里有很多寄存器都有特殊的作用,我们之后会看...
虚拟内存(page tables) 地址空间 支持虚拟内存的硬件 内核地址空间与用户地址空间的结构 地址空间 创造虚拟内存的一个出发点是你可以通过它实现隔离性。如果你正确的设置了page table,并且通过代码对它进行正确的管理,那么原则上你可以实现强隔离。 这里的基本概念也很简单直观,我们给包括内核在内的所有程序专属的地址空间。 所以,基本上来说,每个程序都运行...
Isolation 应用程序与操作系统之间具有强隔离性。简单来说,操作系统能够很好地管理多个应用程序的正常运行。 在内存层面来看,不同应用程序之间的内存是隔离的,这样应用程序就不会覆盖另一个的内存。 其实接口就被精心设计来实现资源的强隔离。 接下来是几个例子。 例如进程,进程抽象了CPU,这样多个应用程序才能复用一个或多个CPU。 我们也可以认为exec抽象了内存,应用程序并没有...
Prerequisite 首先来了解一下我们用到的模块都是干什么的。 scikit-learn Scikit-learn 是一个开源机器学习库,支持监督式学习和无监督式学习。它还提供了用于模型拟合、数据预处理、模型选择、模型评估和许多其他实用程序的各种工具。 hw1我们只会涉及SVM方面。下面会介绍。 datasets 有一系列的.npz文件,可以被load为Python的字典,...
第一节Lecture主要讲了如何选择好的Classifier,以及关于作业与训练的问题。 Classification nearest neighbor classifier:decision boundary is not computed,but it classifies all the training data correctly。It’s overfittin...
Introduction 系统调用跳到内核与函数调用跳到另一个函数的区别: Kernel的代码有特殊权限,能直接访问硬件 read, write, exit系统调用 XV6是基于Unix的操作系统,并运行在RISC-V微处理器上。 read: 接受三个参数 第一个为文件描述符,指向一个之前打开的文件。0连接到console的输入,1则连接到了console的输出。许多的Uni...
Reinforcement Learning In online planning, an agent must try exploration, during which it performs actions and receives feedback in the form of the successor states it arrives in and the correspon...