828

MIT6.828 Lab1-1(分析boot.S文件)

layout: ../../layouts/MarkdownPostLayout.astro title: 'MIT6.828 Lab1-1(分析boot.S文件)' pubDate: 2024-01-10 description: 'something about 6.828' author: ' ......
文件 MIT6 Lab1 boot MIT

mit6.828 - lab5笔记(上)

文件系统结构 unix的文件系统相关知识 unix将可用的磁盘空间划分为两种主要类型的区域:inode区域和数据区域。 unix为每个文件分配一个inode,其中保存文件的关键元数据,如文件的stat属性和指向文件数据块的指针。 数据区域中的空间会被分成大小相同的数据块(就像内存管理中的分页)。数据 ......
笔记 mit6 lab5 mit 828

MIT6.828官方配置单

/*在网络安全技术领域中各种加密算法的软件实现始终有一个共同话题是如何在普通的PC机上实现大数运算。普通的PC机内部字长最多时32位或64位,但各种加密算法中为了达到一定安全强度,都要求在128位、512位或1024位字长下进行加减乘除等数学运算,这叫做“大数运算”。在此前提下,如何在普通的PC机上 ......
配置单 官方 MIT6 MIT 828

MIT6.828 Lab1环境搭建

layout: ../../layouts/MarkdownPostLayout.astro title: 'MIT6.828 Lab1环境搭建' pubDate: 2024-01-01 description: 'something about 6.828' author: 'liyishui' ......
环境 MIT6 Lab1 MIT 828

AcWing 828. 模拟栈

题面:实现一个栈,栈初始为空,支持四种操作: push x – 向栈顶插入一个数 \(x\); pop – 从栈顶弹出一个数; empty – 判断栈是否为空; query – 查询栈顶元素。 现在要对栈进行 \(M\) 个操作,其中的每个操作 \(3\) 和操作 \(4\) 都要输出相应的结果。 ......
AcWing 828

Mit6.828 Lab2

lab2 ​ 提交lab1代码的时候,出现了合并冲突的问题,使用git status,发现问题出现在init.c文件与lab分支的文件产生冲突,修改后成功提交。 ​ lab2中多出来了以下几个文件 inc/memlayout.h kern/pmap.c kern/pmap.h kern/kclock ......
Mit6 Lab2 Mit 828 Lab

mit6.828 - lab3笔记

lab3主要内容是 完成进程管理的初始化 完成中断管理的初始化 完成pagefault的中断处理 PartA 初始化envs,内存映射数组,类似内存管理的pages 在 mem_init中预留 envs 的位置,并映射 初始化 envs 数组的内容 完成 env创建功能,涉及 加载用户代码 load ......
笔记 mit6 lab3 mit 828

mit6.828 - lab3练习笔记

Part A Exercise 1 练习 1. 修改 `kern/pmap.c` 中的 `mem_init()` ,分配并映射 `envs` 数组。该数组由 `Env` 结构的 `NENV` 实例组成,分配方式与分配页面数组类似。与页面数组一样,支持 `envs` 的内存也应在 `UENVS`(定义 ......
笔记 mit6 lab3 mit 828

Mit 6.828 lab1 第三部分

Part3 The Kernel 利用虚拟内存解决位置依赖问题 ​ 当您检查上述引导加载器的链接地址和加载地址时,它们完全匹配,但内核的链接地址(由 objdump 打印)和加载地址之间存在(相当大的)差异。回去检查一下这两个地址,确保你能看到我们在说什么。(链接内核比引导加载器更复杂,所以链接地址 ......
部分 6.828 lab1 Mit 828

Mit 6.828 Lab1 第二部分

Part2 The Boot Loader ​ 个人电脑的软盘和硬盘被划分为 512 字节的区域,称为扇区。扇区是磁盘的最小传输粒度:每次读取或写入操作必须有一个或多个扇区大小,并在扇区边界对齐。如果磁盘是可启动的,第一个扇区称为启动扇区,因为这是启动加载程序代码所在的位置。当 BIOS 发现可引导 ......
6.828 Lab1 Mit 828 Lab

MIT 6.828 Lab1 Part1

Part 1:PC Bootstrap ​ 第一个练习的目的是向你介绍 x86 汇编语言和 PC 启动过程,并让你开始使用 QEMU 和 QEMU/GDB 调试。在这部分实验中,你不必编写任何代码,但为了加深理解,你还是应该做一遍,并准备好回答下面的问题。 x86汇编入门 ​ 如果您还不熟悉 x86 ......
6.828 Part1 Lab1 Part MIT

828. 模拟栈

828. 模拟栈 1、STL法 #include<iostream> #include <vector> using namespace std; int main() { string op; int m, x; vector<int> stack; cin >> m; while(m--) { ......
828

xv6 进程切换中的锁:MIT6.s081/6.828 lectrue12:Coordination 以及 Lab6 Thread 心得

引言 这节课和上一节xv6进程切换是一个完整的的进程切换专题,上一节主要讨论进程切换过程中的细节,而这一节主要讨论进程切换过程中锁的使用,所以本节的两大关键词就是"Coordination"(协调)和 "lost wakeup" Coordination 就是有关出让CPU,直到等待的事件发生再恢复 ......
Coordination 进程 心得 lectrue Thread

xv6 中的进程切换:MIT6.s081/6.828 lectrue11:Scheduling 以及 Lab6 Thread 心得

# 絮絮叨 这两节主要介绍 xv6 中的**线程切换**,首先预警说明,这节课程的容量和第 5/6 节:[进程的用户态到内核态的切换](https://www.cnblogs.com/looking-for-zihuatanejo/p/17644000.html)一样,**细节多到爆炸**,连我自己 ......
Scheduling 进程 心得 lectrue Thread

XV6中的锁:MIT6.s081/6.828 lectrue10:Locking 以及 Lab8 locks Part1 心得

这节课程的内容是锁(本节只讨论最基础的锁)。其实**锁本身就是一个很简单的概念**,这里的简单包括 3 点: 1. **概念简单**,和实际生活中的锁可以类比,不像学习虚拟内存时,现实世界中几乎没有可以类比的对象,所以即使这节课偏向于理论介绍,也一点不会感觉晦涩。 2. **使用简单**,几乎所有的 ......
心得 Locking lectrue 6.828 Part1

MIT6.s081/6.828 lectrue07:Page faults 以及 Lab5 心得

本篇博客主要是复习 MIT6.s081/6.828 lectrue07:Page faults 以及记录 Lab5 :COW fork 的心得 值得一提的是,2020 年之前的版本第 5 个 lab 是 lazy alloction,但是到了 2020 年之后就换成了难度稍高一点的 COW fork ......
心得 lectrue faults 6.828 MIT6

MIT6.s081/6.828 lectrue5/6:System call entry/exit 以及 Lab4 心得

这篇博客主要复习 lecture05:GDB calling conentions 和 lecture06:System call entry/exit 的内容,外加 Lab4:traps 的心得 # 前置知识 这里的前置知识是指 lecture05:GDB calling conentions 的 ......
lectrue5 心得 lectrue System 6.828

MIT6.s081/6.828 lectrue4:page tables 以及 Lab3 心得

不管是计算机组成还是操作系统,**虚拟内存**都是其中的重要内容,所以这一节我会结合 **CSAPP 第九章:虚拟内存** 来一起复习(顺便一说,CSAPP 这一节的 lab 是要求设计一个**内存分配器**,也是很有意思的,有时间一定要把 CSAPP 的 lab 博客也补上!) 这一节主要讨论** ......
lectrue4 心得 lectrue tables 6.828

MIT6.s081/6.828 lectrue2:OS design 以及 Lab2 心得

这节课主要介绍 OS 的顶层设计以及 OS 启动流程和系统调用流程 前置知识:要求阅读 xv6 book chapter2 和 xv6 源码: [kernel/proc.h](https://github.com/mit-pdos/xv6-riscv/blob/riscv/kernel/proc.h ......
lectrue2 心得 lectrue design 6.828

[828. 统计子串中的唯一字符] (Hard)

问题描述 828. 统计子串中的唯一字符 (Hard) 我们定义了一个函数 countUniqueChars(s) 来统计字符串 s 中的唯一字符,并返回唯一字符的个数。 例如: s = "LEETCODE" ,则其中 "L", "T", "C", "O", "D" 都是唯一字符,因为它们只出现一次 ......
字符 Hard 828

828. Count Unique Characters of All Substrings of a Given String (Hard)

Description 828. Count Unique Characters of All Substrings of a Given String (Hard) Let's define a function countUniqueChars(s) that returns the numbe ......
Characters Substrings Unique String Count

MIT6.s081/6.828 lectrue1:Introduction and examples

目前课程官网能够查到 2020,2021.2022 秋季的课程表,但是视频都是 2020 年录制的那一版 简单复习+回顾下自己的 OS 学习之旅 ## 参考资料: 官网:https://pdos.csail.mit.edu/6.828/2022/schedule.html 视频翻译:https:// ......
Introduction lectrue1 examples lectrue 6.828

西门子免授权CNC数控系统数据采集c#、C、python都支持,可支持再各种操作系统上运行,无须西门子OPC,支持828D 840dsl 808 802dsl 840d 810d 西门子数控DNC程序网络配置

西门子数控系统数据采集方案(无需OPC授权方案) 西门子数控系统4.5版本及以上集成了工业协议OPCUA,用户可通过OPCUA协议进行设备的数据采集,但是需要西门子授权,而且仅支持828d,828dsl,840dsl 本协议可通过原生TCP数据包和数控系统进行通讯,支持各种类型开发语言和操作平台。 ......
数控 数控系统 系统 数据采集 840

西门子828D 840Dsl数控程序PLC西门子数控程序中文注释,详细解释介绍。

西门子828D 840Dsl数控程序PLC西门子数控程序中文注释,详细解释介绍。对于维修人员,或者想学习PLC编程的工程师,初学者。西门子828D和840Dsl是西门子公司生产的数控系统,用于控制机床的运动和加工过程。这些系统具有强大的功能和灵活性,适用于各种工业领域。PLC(可编程逻辑控制器)是一 ......
数控 程序 注释 828D 828

【828】latex表格行距、表格多行

参考:latex 表格如何精细控制行高,行距,行与行之间的距离 % 使用表格线安装包,插入一个透明的表格线,通过控制表格线的上下距离来控制行高。 \usepackage{array} \usepackage{booktabs} 使用表格时的命令: \begin{tabular} \specialru ......
表格 行距 latex 828

MIT6.828学习笔记3(Lab3)

在这个lab中我们需要创建一个用户环境(UNIX中的进程,它们的接口和实现不同),加载一个程序并运行,并使内核能够处理一些常用的中断请求。 ......
笔记 MIT6 Lab3 MIT 828

MIT6.828 Lab 1: C, Assembly, Tools, and Bootstrapping

环境 实现机器为VMWare的虚拟机,操作系统为 Debian-11(无桌面版本),内核版本为 5.10.0,指令集为 AMD64(i7 9700K),编译器为 GCC-10. 代码 Lab 的代码克隆自 https://pdos.csail.mit.edu/6.828/2018/jos.git Q ......
Bootstrapping Assembly Tools MIT6 MIT
共27篇  :1/1页 首页上一页1下一页尾页