OS-lab3】的更多相关文章

OS Lab3 踩坑记 Lab3在之前Lab2的基础上,增加了进程建立.调度和中断异常处理.其中测试包括进程建立以及进程调度部分. 由于是第一次做bug记录,而且是调试完bug后再做的记录,所以导致记录不完全.但是为之后bug记录的习惯打下基础. 进程建立测试(env_check) 注意 env_setup_vm() 中的pgdir地址赋值. 在 envid2env() 中当有 checkperm 时,检查失败也要给 *penv 赋值 0 (容易忘记). 这里最好检查一下 curenv 是否存在…
摘要: 源代码参见我的github:https://github.com/YaoZengzeng/MIT-6.824 Lab3: Paxos-based Key/Value Service Introduction 在Lab2中我们依靠单个的master view server来获取primary.如果view server不可用(崩溃了或者有网络问题),那么key/value service就不工作了,即使primary和backup都是可用的.而且它在处理server(primary或者ba…
OS Lab4 踩坑记 Lab4在之前Lab3的基础上,增加了系统调用,难度增加了很多.而且加上注释不详细,开玩笑的指导书,自己做起来困难较大.也遇到了大大小小的bug,调试了一整天. 本文记录笔者在实现Lab4中遇到了一些bug,出现的问题可能不具有普遍性,但是可能有参考价值. 1. 在调用syscall_*函数的时候,可能会出现缺页的情况.…
1. ucore lab3介绍 虚拟内存介绍 在目前的硬件体系结构中,程序要想在计算机中运行,必须先加载至物理主存中.在支持多道程序运行的系统上,我们想要让包括操作系统内核在内的各种程序能并发的执行,而物理主存的总量通常是极为有限的,这限制了并发程序的发展.受制于成本问题,拥有足够大容量主存的个人计算机是普通人承受不起的.因此计算机科学家们另辟蹊径,想到了利用局部性原理来解决既要能并发运行大量程序又要使计算机足够低成本这一矛盾问题. 局部性原理告诉我们,大多数程序通常都在执行循环逻辑,访问数据时…
工具 源码阅读:understand 源码文档自动生成工具:Doxygen 编译环境:gcc 运行环境:x86机器或QEMU 调试工具:QEMU+(GDB or IDE) IDE:Eclipse-CDT 设计思路 外设:IO管理/中断管理 内存:虚存管理/页表/缺页处理/页替换算法 CPU:进程管理/调度器算法 并发:信号量实现同步互斥应用 存储:基于链表/FAT的文件系统 实验内容(对应源码行数) 1 OS启动.中断与设备管理:0200~1800 2 物理内存管理:1800~2500 3 虚拟…
OS Node.js提供了一些基本的底层操作系统的模块OS. API var os = require('os'); console.log('[arch] 操作系统CPU架构'+os.arch()); console.log('[cpus] 每个CPU/内核的信息:'+JSON.stringify(os.cpus())); console.log('[endianness] CPU 的字节序:'+os.endianness()); console.log('[freemem] 操作系统空闲内存…
os模块,可以用来获取操作系统相关的信息和机器物理信息,例如操作系统平台,内核,cpu架构,内存,cpu,网卡等信息. 使用如下所示: const os = require('os'); var dealTime = (seconds)=>{ var seconds = seconds|0; var day = (seconds/(3600*24))|0; var hours = ((seconds-day*3600)/3600)|0; var minutes = ((seconds-day*3…
Mac OS 虚拟机安装方法 最近把自己的电脑升级了一下SSD固态硬盘,总算是有容量安装Mac 虚拟机了!经过心碎的安装探索,尝试了国内外的各种安装方法,最后在youtube上找到了一个好方法. 简单总结一下成功安装方法: 1,Vmware Player 12.1.1-3770994(Virtual Box 老版本Win10上启动不了,新版本5.1不再支持Mac OS) 2,执行命令关闭Hyper-v服务重启:bcdedit /set hypervisorlaunchtype off (不然无法…
Vagrant(官网.github)是一款构建虚拟开发环境的工具,支持 Window,Linux,Mac OS,Vagrant 中的 Boxes 概念类似于 Docker(实质是不同的),你可以把它看作是一个箱子,里面装了一些东西,Vagrant 创建虚拟机的时候,需要用到 Box ,它里面包含了虚拟机配置.虚拟机硬盘镜像和 Vagrant 配置的压缩包,有了 Box,你不需要再重新下载 ISO 镜像文件.新建虚拟机.修改虚拟机等配置,而是直接运行你所需要的操作系统. 更多 Vagrant 概念…
Consul 概念(摘录): Consul 是 HashiCorp 公司推出的开源工具,用于实现分布式系统的服务发现与配置.与其他分布式服务注册与发现的方案,比如 Airbnb 的 SmartStack 等相比,Consul 的方案更"一站式",内置了服务注册与发现框 架.分布一致性协议实现.健康检查.Key/Value 存储.多数据中心方案,不再需要依赖其他工具(比如 ZooKeeper 等).使用起来也较 为简单.Consul 用 Golang 实现,因此具有天然可移植性(支持 L…