自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 LAB4 PartA 多处理器支持和协作多任务处理

在LAB4中,将在多个同时处于活动状态的用户模式环境中实施抢占式多任务处理。首先分析一下新文件。kern/cpu.h 多处理器支持的内核定义包括有处理器个数max,处理器状态;单个cpu信息定义:struct CpuInfo { uint8_t cpu_id; // Local APIC ID; index into cpus[] below volatile unsigned cpu_status;...

2021-10-03 20:10:33 306

原创 LAB4 PartB 写时复制fork( )

目录用户级别错误页面处理设置页面错误处理程序用户环境中的正常和异常堆栈调用用户页面错误处理程序 用户模式页面错误入口点实现写时复制fork( )Unix 提供fork()系统调用作为其主要的进程创建原语。该fork()系统调用将调用进程的地址空间(父)创建一个新的进程(孩子)。xv6 Unix通过将父页面中的所有数据复制到为子分配的新页面来实现fork()。这基本上与dumbfork()所采用的方法相同。将父级地址空间复制到子级是...

2021-10-03 20:09:01 165

原创 LAB4 PartC 进程间通信IPC

2021-10-03 20:02:45 172

原创 LAB2-1物理页面管理

目录 boot_alloc()page_init()page_alloc()page_free() boot_alloc()这个简单的物理内存分配器只在 JOS 启动它的虚拟内存系统时使用,page_alloc()才是真正的物理页面分配器。static void *boot_alloc(uint32_t n){ static char *nextfree; // ...

2021-09-21 14:46:00 142

原创 LAB3 PartA 用户环境与异常处理

在LAB3中,将实现运行受保护的用户模式环境(即“进程”)所需的基本内核工具。 您将增强 JOS 内核以设置数据结构以跟踪进程、创建单个进程、将程序映像加载到内核中并启动它运行。还将使 JOS 内核能够处理进程进行的任何系统调用并处理它引起的任何其他异常。 LAB3中新增了一些程序文件:用户环境定义:inc/env.hinc/env.h中包含了JOS对用户环境的基本定义,JOS内核使用Env来跟踪每个用户环境。struct ...

2021-09-17 23:28:10 400

原创 LAB3 PartB页面错误、断点异常和系统调用

分配环境数组envs 与LAB2中pages的分配一样。// Make 'envs' point to an array of size 'NENV' of 'struct Env'.envs=(struct Env*)boot_alloc(NENV*sizeof(struct Env));//1024个进程memset(envs,0,sizeof(envs));//映射到UENVS,用户只读。boot_map_region(kern_pgdir,UENVS,(size_t...

2021-09-17 23:24:21 211

原创 LAB2-2 虚拟内存

X86保护模式页面管理pgdir_walk()pgdir_walk()的功能:给定'pgdir',一个指向页目录的指针,返回 指向线性地址 'va' 的页表条目 (PTE) 的指针。这需要走两级页表结构。...

2021-09-10 22:29:54 324

原创 LAB2入门

LAB2入门前言 一、memlayout.h 二、使用步骤 1.引入库 2.读入数据 总结前言 LAB2主要实现的是JOS内存管理的功能,内存管理包括两个部分:(1)内核的物理内存分配器,以便内核可以分配物理内存以及释放,分配器的大小为1页,4K。主要功能:记录哪些页面空闲、哪些已经分配、多少个进程在共享分配的页面、以及分配与释放内存页。(2)虚拟内存:将内核与软件使用的虚拟地址映射到物理内存中的地址。X86的内存管理单元mmu在指令使用内存时执行映射。...

2021-09-10 22:28:20 935

原创 LAB2-3 内核地址空间

JOS 将处理器的 32 位线性地址空间(4G)分为两部分。我们将在实验 3 中开始加载和运行的用户环境(进程)将控制更低地址的布局和内容,而内核始终保持对上部的完全控制。分隔线由 inc/memlayout.h 中的符号 ULIM 随意定义,为内核保留了大约 256MB 的虚拟地址空间。 这就解释了为什么我们需要在实验室 1 中给内核一个如此高的链接地址:否则内核的虚拟地址空间将没有足够的空间同时映射到它下面的用户环境。权限和故障隔离由于...

2021-09-10 22:26:18 132

原创 LAB1-3 Kernel

LAB1-3--Kernel格式化打印控制台exercise1.81.8.0 八进制格式1.8.1 printf.c与console.c接口堆栈exercise1.91.9.0格式化打印控制台exercise1.81.8.0 八进制格式在操作系统内核中,我们需要实现自己的IO。系统IO主要包括3个文件实现,kern/printf.c, lib/printfmt.c, 以及 kern/console.c。这三个文件属于递进关系,依次对后面的函数进行封装。八进制格式代码: num = getu

2021-09-04 17:15:13 91

原创 LAB1-1&&1-2 PC启动

LAB1-1&&1-2--PC启动1.1 一些扩展文件中的知识1.2 PC物理地址空间1.3 引导加载程序1.4 加载内核1.1 一些扩展文件中的知识CPU取指执行:它查询称为程序计数器的寄存器中的地址,读取一个 该地址的 机器指令,将程序计数器推进到指令,并执行指令。最快的数据存储由cpu的寄存器提供,寄存器是cpu内部的存储单元,其读写速度为单个cpu周期。%eax, %ebx,%ecx, %edx, %edi, %esi, %ebp, %esp,%eip 表示32位扩展寄存

2021-09-04 16:14:30 103

原创 计网(三) 应用层

1. 网络应用的体系结构包括三种:客户机/服务器结构(CS)、点对点结构(P2P)、混合结构。CS结构:服务器:7*24小时服务、永久访问的地址/域名、大量服务器可扩展。客户机:与服务器进行通信、使用服务器提供的服务;间歇性接入网络;可以使用动态IP;不与其他客户机直接通信。P2P结构:任意节点之间可以直接通信、没有永远在线的服务器、节点间歇接入网络、节点IP可变。优点:高度可伸缩可扩展。缺点:难于管理。混合结构:传输文件使用p2p,文件搜索采用CS结构。2. 网络应用的进程通信

2021-07-16 15:42:47 172

原创 计网(四)传输层--TCP&&UDP

1. 传输层服务与协议网络层协议与传输层协议:网络层:HOST–>HOST传输层:进程与进程之间的逻辑通信机制多路复用与分用接收端多路分用:将传输层接收到的信息交给不同正确的进程。发送端多路复用:将应用层不同进程的数据封装好,交给网络层。TCP一对一:一个端口连接另一个端口。UDP一对多:一个端口可以连接多个端口。2. UDP协议UDP特点:基于IP协议+简单的错误校验;尽力而为,丢失,非按序到达;无连接(无握手,段处理独立)。UDP存在价值:无需建立连接(减少延迟)

2021-07-16 15:42:02 198

原创 数据库之模型与语言(一)

1. 数据库、数据库系统、数据库管理系统数据库:相互关系的数据的集合;对表的抽象:理解–区分–命名–表达。引入表的概念后,数据库可以表达为:相互关系的表的集合。数据库系统(工作环境):包括数据库DB、数据库管理系统DBMS、数据库应用DBAP、数据库管理员DBA四种。数据库管理系统:数据库语言+例行程序1.用户角度:数据库定义(DDL),数据库操纵(增删改查DML),数据库控制(DCL,访问权力),数据库维护(一般由DBA使用)数据库语言:使用者通过数据库语言利用DBMS操作数据库。DDL,

2021-06-25 20:04:53 351

原创 数据库之模型与语言(二)

1. 关系模型三要素:relation–Table,关系模型用于处理Table,三要素:Table描述,关系运算,完整性约束。Table:操作:并、差、乘积、选择、投影+交、连接、除。完整性约束:实体完整性、参照完整性、用户自定义完整性。Table定义/关系列的取值范围:域,相同数据类型的集合,集合中元素的个数称为基数。元组:所有可能合成的元组称为笛卡尔积。关系:一组域D1,D2……Dn的笛卡尔积的子集,有意义的元组为关系,关系的列为属性名。R(A1:D1,A2:D2…An:Dn)

2021-06-25 20:03:05 239

原创 计网(二)计网概述

1. 计算机网络性能描述(指标)速率/数据率/数据传输速率/比特率:每秒传输的信息量,单位b/s-kb/s-Mb/s-Gb/s带宽:数字信道传输的最高数据率,bps(b/s)时延:分组在路由器缓存中排队。节点处理延迟/排队延迟/传输延迟/传播延迟时延带宽积:传播时延*带宽丢包:路由器缓存有限,分组到达已满队列将被丢弃。吞吐率:发送端与接收端之间的传送数据率。2. 计算机网络体系结构2.1 分层结构介绍:分层结构:按照功能划分。为什么采用分层结构?------易于更新,维护,有利

2021-06-11 14:40:12 208

原创 计网(一)概念概述

1. 计网基本概念计算机网络:互连(互联互通)的、自治(无主从)的计算机集合。通过交换网络互连主机。Internet:通信的基础设施;应用编程接口;----数以百万计的计算设备集合,主机/端系统。0----通信链路----分组交换:路由器/交换机网络协议:为网络进行数据交换而建立的规则。规定了通信实体交换信息的格式,意义,顺序以及采取的动作。三要素语法:语法、语义、时序。Internet协议标准:RFC2. 计网结构:网络边缘、物理介质、网络核心网络边缘:主机(端系统

2021-06-04 20:49:36 2484

原创 数据结构之搜索树(二)

1. B树定义:动机:对于元素数目大的数据,通过建立索引或者多级索引便于查找—索引表。为什么大型数据库不使用二叉搜索树?内存与外存的访问速度相差了5-6个数量级,因此在访问时,应当减少对外存的访问,当内存不足以容纳数据时,二叉树的搜索效率大打折扣,查找过程中对外存的访问次数过多。而对于外部存储器而言,批量读取物理地址与单个字节没有区别,因此通过多次内存操作代替单次内存操作。也就是使用多路搜索树。M阶B-树:一棵m叉平衡搜索树。特征:(1)根节点至少有两个孩子。(2)除根节点外,内部节点

2021-05-28 14:24:57 174

原创 数据结构之搜索树(一)

1. 二叉搜索树(BST):特征:二叉树key值唯一;左子树key小于根节点的key;右子树的key大于根节点的key;左右子树也为BST。中序遍历的结果,是key值按照升序排列的列表,则该树为BST。

2021-05-27 15:55:36 110

原创 数据结构之优先队列

队列与优先队列队列:一维表结构,按照入队次序出队。优先队列:树形结构,按照优先级出队;每个元素都有一个优先级权值;元素可以拥有相同的权值;增删查操作;最大优先与最小优先。MaxpriorityQueue:Max()返回最大优先级的元素;insert(x);deleteMax(x)从队列中删除具有最大优先级的元素。从某种程度上来说,优先队列是一种排序列表,其排序反映了元素的优先级。堆排序最大堆:最大树+完全二叉树,满足完全二叉树的一系列性质。最大树:树中每一个节点的值都大于等于其子..

2021-05-20 17:33:41 91

原创 第一章:C++中最基本的概念

C++次语言C(区块,语句,预处理器,内置数据类型,数组,指针)、面向对象C++(类,封装,继承,多态virtual)、模板C++(泛型编程)、STL库。以编译器替换预处理器预处理器(.cpp):C++采用的是词法预处理器,主要进行文本替换,宏展开,删除注释这一类的简单工作。预处理器不进行语法检查,因为它不具备语法检查功能,并且预处理命令不属于C++语句。所谓预处理,是将程序中的宏展开,以及将头文件的内容包含进来,预处理不会生成文件,因此需要重新定向。经过预处理之后,才能得到真正的源代码。.

2021-05-14 15:11:19 79

原创 前言

前言主要包括C++中的常用术语。1.常用术语声明式:告诉编译器某个东西的名称以及类型。定义式:提供编译器声明式所遗漏的细节。初始化:给与对象初值的过程。用户自定义对象,其初始化由构造函数完成,default(默认构造函数)由编译器提供的不带任何实参的构造函数。explicit:用于修饰构造函数的关键字,表明构造函数只能执行显式的类型转换,禁止编译器执行非预期的类型转换。一般来说,最好将构造函数声明为显式。拷贝构造函数:使用同类型的对象来初始化自我对象,pass-by-value。

2021-05-13 12:10:58 64

原创 统计机器学习笔记(一):感知机

统计机器学习笔记(一):感知机

2021-03-06 16:41:06 342

空空如也

空空如也

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

TA关注的人

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