自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

原创 6.830 Lab 总览

项目结构相关类和方法TupleDesc.java:class TDItem :用于组织每一列的辅助类,包含fieldType和fieldName两个属性。 ​​​​​​TupleDesc构造函数:创建一个TDItem数组,描述一个tuple包括哪些field。 numFields():返回TDItem数组的大小。 getFieldName(int i):返回TDItem...

2020-01-03 18:17:18 3624

原创 6.830 Lab 4: SimpleDB Transactions

在这个lab中,需要在SimpleDB实现简单的locking-basedtransaction system,需要在代码的合适位置添加锁和解锁,也要给每个transaction授予锁,并且跟进每个拥有锁的transaction。 该文档剩下的部分会描述如何对transaction提供支持,并提供一个基础框架代码。1. Getting started$ cd simp...

2019-12-25 09:30:45 3492 1

原创 CSE444: Database Systems Internals notes5

整理自CSE 444 Database Internals, Spring 2019 的课程Lectures,课程地址:https://courses.cs.washington.edu/courses/cse444/19sp/Lectures 13 Transaction SchedulesTransactionDefinition: a transaction is a seque...

2019-12-24 12:02:51 400

原创 6.830 Lab 3: Query Optimization

这个lab中,要实现SimpleDB的query优化。文档的剩下部分描述了添加优化的细节,并提供了一个大致的框架。1. Getting started 需要添加了一些新的文件。$ cd simple-db-hw$ git pull upstream master1.1. Implementation hints 这有一份大致推进实验的规划,更多的细节在文档的第二...

2019-12-20 23:57:13 2398 3

原创 CSE444: Database Systems Internals notes4

整理自CSE 444 Database Internals, Spring 2019 的课程Lectures,课程地址:https://courses.cs.washington.edu/courses/cse444/19sp/Lecture 7Query Execution and Operator Algorithms(part 1)Next LecturesHow to ...

2019-12-20 15:13:58 411

原创 CSE444: Database Systems Internals notes3

整理自CSE 444 Database Internals, Spring 2019 的课程Lectures,课程地址:https://courses.cs.washington.edu/courses/cse444/19sp/Lecture5-6IndexingSearching in a Heap FileHeap File Search Example10,000...

2019-12-20 14:20:58 273

原创 CSE444: Database Systems Internals notes2

整理自CSE 444 Database Internals, Spring 2019 的课程Lectures,课程地址:https://courses.cs.washington.edu/courses/cse444/19sp/Lecture3DBMS ArchitectureWhat we already know…Database = collection of relat...

2019-12-20 10:57:37 434

原创 CSE444: Database Systems Internals notes1

整理自CSE 444 Database Internals, Spring 2019 的课程Lectures,课程地址:https://courses.cs.washington.edu/courses/cse444/19sp/Lecture1 IntroductionSix LabsLab1:Build a DBMS that can scan a relation on disk....

2019-12-20 10:40:24 401

原创 6.830 Lab 2: SimpleDB Operators

在这个lab中,需要为SimpleDB编写一组operators实现表数据的modifications(e.g., insert and delete records)、selections、joins和aggregates。 另外,我们在Lab1中忽视了一点:BufferPool里的numPages参数确定了读取的固定页数,lab中如果页的数量超过numPages,先不实现evicti...

2019-12-18 08:21:28 5433 4

原创 6.830 Lab 1: SimpleDB

Intro 在6.830中,实现一个基础的数据管理系统SimpleDB。Lab1主要是实现对硬盘上存储数据的访问,之后的Lab会实现其他query processing operators,包括transactions,locking,concurrent queries。1. Getting started SimpleDB使用Ant build tool来编译代码和运行测试...

2019-12-12 15:24:00 11023 5

原创 (五)6.828 Operating System lab4: Preemptive Multitasking

IntroductionIn this lab you will implement preemptive multitasking among multiple simultaneously active user-mode environments.In part A you will add multiprocessor support to JOS, implement roun...

2019-11-29 21:48:19 1619

原创 (四)6.828 Operating System lab3: User Environments

IntroductionIn this lab you will implement the basic kernel facilities required to get a protected user-mode environment (i.e., "process") running. You will enhance the JOS kernel to set up the dat...

2019-11-23 21:20:33 743

原创 (三)6.828 Operating System lab2: Memory Management

IntroductionIn this lab, you will write the memory management code for your operating system. Memory management has two components.The first component is a physical memory allocator for the kerne...

2019-11-18 15:20:02 763 1

原创 (二)6.828 Operating System lab1: Assembly, Tools, and Bootstrapping

part 1:PC BootstrapExercise 1Exercise 1.Familiarize yourself with the assembly language materials available onthe 6.828 reference page. You don't have to read them now, but you'll almost certai...

2019-11-07 16:48:57 1932

原创 (一)6.828 Operating System HW1: shell

1.GCC编译 gcc 最初是“GUN C Compiler”的简称,可以被当作一个C语言的编译器,发展到今天也可以编译其他语言。 编译分为四个阶段: 预处理 编译 汇编 链接 在使用GCC编译的时候,可以使用 gcc test.c -o test命令一次完成编译,也可以分四步完成编译:gcc -E test.c -o test.i   //需要使用 ...

2019-11-04 15:34:24 567

原创 清华大学操作系统公开课(十一)文件系统

1.总体介绍 文件系统是操作系统一个重要的子系统,方便读写磁盘上的数据。主要讲述三方面内容,第一方面是从用户角度介绍如何进行文件读写操作,第二方面是介绍文件读写操作系统如何实现,最后一部分是介绍多磁盘管理。2.文件系统和文件 文件系统是一种用于持久性存储的系统抽象,也就是断电后数据不会丢失,比如说磁盘。 要让用户组织、控制、导航、访问和检索数据 大多数的计算机系统包含文...

2019-11-04 00:09:42 658

原创 清华大学操作系统公开课(十)死锁和进程通信

1.死锁问题 先讲一个生活中的例子,比如说单向通行桥梁。 死锁在操作系统中会频繁出现,一组阻塞的线程持有一种资源,却等待获取另一个线程占有的一个资源。比如,系统有两个磁盘驱动器,P1和P2各有一个,都需要另外一个。 可以看出死锁问题是,由于竞争资源或者通信关系,两个或更多线程在执行中出现,永远相互等待只能由其他进程引发的事件。 出现死锁的原因:进程的并发执行...

2019-11-02 15:58:53 386

原创 清华大学操作系统公开课(九)信号量和管程

1.背景 先回顾一下上一章的内容,上一章讲了并发会带来竞态条件的问题,我们用互斥可以保证一定的确定性。但是光有互斥是不够的的,我们有时希望多线程能够同时访问某些共享资源,这时候只有互斥是不够的,我们还需要实现同步,同样我们需要更高层的编程抽象(如:锁),需要从底层硬件支持编译来实现。同步:我们把异步环境下的一组并发进程因直接制约而互相发送消息、进行互相合作、互相等待,使得各进程按...

2019-11-02 00:08:16 542

原创 清华大学操作系统公开课(八)互斥

1.背景 在我们的计算机系统里有多个进程存在,进程之间会进行各种各样的交互,交互会涉及到对共享资源的访问,如果对这些交互处理不当,会产生各种各样的问题,比如饥饿、死锁等。 发生这些问题其实还是跟调度相关。独立的线程不会出现这些问题,合作线程会。独立线程 独立的线程有以下特征: 不和其他线程共享资源或状态 确定性:输入状态决定结果 可重现性:能够重现起始条件、...

2019-11-01 15:21:31 585

原创 清华大学操作系统公开课(七)处理机调度

1.背景 上一章介绍了进程都希望获得CPU继续执行,这就涉及到上下文切换: 切换CPU的当前任务,从一个进程/线程到另一个 保存当前进程/线程在PCB/TCB中的执行上下文(CPU状态) 读取下一个进程/线程的上下文 操作系统要在某个时刻选择哪个进程占用CPU资源,使得计算机效率最高或者满足某些进程的特殊需求,这样的选择就取决与不同的CPU调度策略。 CPU调度是...

2019-10-30 00:16:20 568

原创 清华大学操作系统公开课(六)进程管理

1.进程定义 进程和程序的区别在哪?一般我们把一个程序的一次运行叫做一个进程,粗略的说没什么太大区别,只是后来计算机内能跑很多个程序,有可能同时运行多次一个程序,这样用进程的概念可以区分不同的运行状态。 进程定义:一个具有一定独立功能的程序在一个数据集合上的一次动态执行过程。 可以看到,刚开始通过将源代码文件进行编译链接,变成了静态的可执行文件,只有当我们的系统将这段程序...

2019-10-28 12:47:48 820

原创 清华大学操作系统公开课(五)页面置换算法

下面介绍在虚拟存储管理中有哪些页面置换算法。1.总览局部页面置换算法 最优页面置换算法(OPT,optimal) 先进先出算法(FIFO) 最近最久未使用算法(LRU,Least Recently Used) 时钟页面置换算法(Clock) 最不常用算法(LFU,Least Frequently Used) Belady现象 LRU、FIFO和...

2019-10-25 16:50:29 807

原创 清华大学操作系统公开课(四)虚拟内存概念

1.虚拟内存起因 虚拟内存的起因说白了就是内存不够用,程序规模的增长速度远远大于存储容量的增长速度,我们要尽可能想办法扩大内存。 我们理想中想要的存储器,是容量更大、速度更快、价格更便宜的非易失性存储器,但这样的存储器是不存在的,所以有了现在这种层次结构的存储器。 这种“金字塔”型存储器把速度快、造价昂贵的存储单元放在CPU附近,加快访问速度。现在存储器是越来越快,但是每次存...

2019-10-22 23:37:49 295

原创 清华大学操作系统公开课(三)非连续内存分配

为什么要采用非连续内存分配的方式?因为上一章讨论的连续内存分配算法(最先适配、最佳适配、最差适配)都有各种各样的问题。 连续内存分配的缺点:分配给一个程序的物理内存是连续的 内存利用率低 有外碎片、内碎片的问题 想要解决这些问题,可以考虑非连续内存分配。 非连续内存分配的优点:一个程序的物理地址空间是非连续的 更好的内存利用和管理 允许共享代码和数据(共享库等)...

2019-10-21 16:46:12 411 1

原创 清华大学操作系统公开课(二)连续内存分配

本章了解操作系统是如何管理内存的。首先要知道计算机的体系结构和内存分层体系,才能了解计算机是怎么有效管理内存的。1.计算机体系结构/内存分层体系计算机体系结构计算机体系结构主要包括三大部分 CPU:主要完成对程序执行的一个控制。 内存:主要放置了代码以及相关的数据。 I/O设备:比如硬盘、键盘、鼠标等都属于I/O设备,它们各自有不同的功能,来配合程序发挥更大的...

2019-10-20 17:18:51 349

原创 清华大学操作系统公开课(一)系统启动、中断、异常及系统调用

1.操作系统的启动计算机操作系统最基本的三部分:启动大致顺序:DISK:存放OS ===> POST(加电自检):寻找显卡和执行BIOS ===> BIOS:基本I/O处理系统 ===> BootLoader:加载OS程序2.操作系统与设备和程序的交互操作系统存在的意义是向外部提供interface。主要包括三种:面向外设提供 中断...

2019-10-20 12:50:40 531

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除