04 2022 档案

摘要:第1章 概述 DBMS处理客户端sql请求的一般流程: 客户端调用API与DBMS的客户通信管理器建立网络连接。不管是"two-tier",还是"three-tier","four-tier",DBMS负责对多种协议的管理器基本运行机制是一致的:为DBMS的客户端建立连接地址,对于客户端的sql语句 阅读全文
posted @ 2022-04-20 08:10 抿了抿嘴丶 阅读(60) 评论(0) 推荐(0) 编辑
摘要:3.1 SQL查询语言概览 DDL,用来定义关系模式,删除关系以及修改关系模式的命令 DML,用来从数据库中查询信息,插入,删除,修改元组等 完整性,在DDL中定义了完整性越苏的命令。保持在数据库中的数据必须满足DDL中定义的完整性约束 视图定义,DDL包括定义视图的命令 事务控制,SQL包括定义事 阅读全文
posted @ 2022-04-20 08:10 抿了抿嘴丶 阅读(175) 评论(0) 推荐(0) 编辑
摘要:关系模型在逻辑层和视图层描述数据,使得用户不必关注存储的底层细节,关系模型非常简洁 2.1 关系模型的结构 由于一个表中的一行代表了一组值之间的一种联系,表就是这种联系的一个集合,表这个概念和数学上的关系这个概念联系密切。 n元组表示一个具有n个属性的tuple,关系用来指代表,元组用来指代行,属性 阅读全文
posted @ 2022-04-18 14:54 抿了抿嘴丶 阅读(79) 评论(0) 推荐(0) 编辑
摘要:1.1 数据库管理系统是由一个互相管理的数据集合和一组用以访问这些数据的程序组成,而这个数据集合就被就被叫做数据库。DBMS主要的目标是提供一种可以方便,高效的存取数据库信息的途径。 1.2 数据库系统的目标 对于传统的OS文件系统有如下问题: 数据的冗余与不一致 数据访问困难 数据孤立 完整性问题 阅读全文
posted @ 2022-04-17 20:11 抿了抿嘴丶 阅读(133) 评论(0) 推荐(0) 编辑
摘要:1 多线程/进程 多线程与多进程编程,都可以提高程序的并发性,多线程对于系统资源的消耗更加少一点,那么多线程与多进程的区别是什么?可以多个线程共享一个进程的虚拟地址空间 进程的虚拟地址空间,这里每一个线程都有自己的栈与寄存器,寄存器资源由内核管理 要启动多个应用程序的时候,才会去用多进程,不然一般并 阅读全文
posted @ 2022-04-17 15:01 抿了抿嘴丶 阅读(191) 评论(0) 推荐(0) 编辑
摘要:socket编程概述 windows和linux平台的套接字函数几乎一样,但是windows中使用socket通信之前需要先加载套接字库,最后在释放这些套接字资源,linux中就不需要夹在和释放了 基于客户端和服务器实现一个并发的通信模型,网络通信中客户端与服务器的比例是n比1,由于客户端过多,就需 阅读全文
posted @ 2022-04-16 14:43 抿了抿嘴丶 阅读(305) 评论(0) 推荐(0) 编辑
摘要:线程是进程中的执行体,协程只有用户态栈 协程实现了用户态多任务模型 由于现在高并发场景频繁出现,之前的多进程模型的内存资源捉襟见肘 多进程模型下,内核态与用户态多次转换,仍然疲于应对高并发场景 socket的所有操作都由os来完成,一个进程每创建一个socket,就会在打开文件描述符表中增加一个记录 阅读全文
posted @ 2022-04-15 21:29 抿了抿嘴丶 阅读(183) 评论(0) 推荐(0) 编辑
摘要:5.1进程的基本概念 进程实现了单任务到多任务的转变 进程是一个运行时的程序 单一线程的进程早期os都是单一线程 进程的状态 Unix v7的部分pcb 5.2进程的基本操作接口 fork的父子进程共享一个指向文件的结构体那么它们共享的文件体中的读写指针也是一样的,这个是posix标准,read系统 阅读全文
posted @ 2022-04-15 18:24 抿了抿嘴丶 阅读(39) 评论(0) 推荐(0) 编辑
摘要:5.1 C程序到汇编程序的转换 RICS-V处理器就是可以理解RISC-V指令集的处理器,任何一个处理器都有一个关联的ISA(Instruction Sets Architecture) 5.2 RISC-V vs x86 RISC-V是精简指令集,而x86是(Reduced Instruction 阅读全文
posted @ 2022-04-13 21:49 抿了抿嘴丶 阅读(98) 评论(0) 推荐(0) 编辑
摘要:4.1 课程内容简介 虚拟内存可以实现进程间的隔离 4.2 地址空间(Address Spaces) 4.3 页表(Page Table) 页表主要是在硬件中通过处理器与内存管理单元(Memory Management Unit)实现,所以,在你们的脑海中,应该有这么一张图:CPU正在执行指令,例如 阅读全文
posted @ 2022-04-13 20:10 抿了抿嘴丶 阅读(142) 评论(0) 推荐(0) 编辑
摘要:3.1 上一节课回顾 操作系统的基本架构是,os之上时shell,echo,find等用户态程序;中间是os,为用户程序提供服务与管理;os之下时硬件,os为上层应用提供unix风格的接口,使得硬件变成了简单的抽象 3.2 操作系统隔离性(isolation) 稻草人提案法(就是头脑风暴找出错误) 阅读全文
posted @ 2022-04-13 15:51 抿了抿嘴丶 阅读(49) 评论(0) 推荐(0) 编辑
摘要:1.1 课程内容简介 操作系统的共同目标有: 硬件抽象,把CPU,内存等抽象为进程,文件系统等 同时运行多个程序,multiplex也是操作系统的一个功能 因为需要运行多个程序,隔离性也是操作系统的一个重要特性 程序之间需要协作,所以os要实现共享 当然,当不想要共享的时候,os需要提供securi 阅读全文
posted @ 2022-04-12 21:11 抿了抿嘴丶 阅读(58) 评论(0) 推荐(0) 编辑
摘要:15.1 File system crash概述 15.2 File system crash示例 对于echo在根目录中创建一个新文件x的过程中读写block 15.3 File system logging logging可以确保: 文件系统的系统调用是原子性的 支持快速恢复(fast reco 阅读全文
posted @ 2022-04-12 16:20 抿了抿嘴丶 阅读(51) 评论(0) 推荐(0) 编辑
摘要:vnode和inode有啥联系鸭? 14.1 Why Interesting 在app视角,文件呈现为目录的形式,进程之间通过文件名或者说路径名来共享文件 在内核视角,文件是磁盘布局,索引节点,目录项,盘块,块缓存 在设备视角,就是扇区,IDE(Integrated Drive Electronic 阅读全文
posted @ 2022-04-11 20:01 抿了抿嘴丶 阅读(101) 评论(0) 推荐(0) 编辑
摘要:OS如何外设交互,键盘等外设具有控制器和缓冲区,将输入存入缓冲区,而OS去获取输入数据有两种方式,一种是轮询(OS会去读状态寄存器,如果标记位ready,OS等待1s或者10s,确保数据ready,那么OS就会去读数据寄存器,这样太慢了),一种是中断对于linux中处理万兆的网络,会聚集一些包,发一 阅读全文
posted @ 2022-04-11 16:05 抿了抿嘴丶 阅读(84) 评论(0) 推荐(0) 编辑
摘要:冯诺依曼架构的局限性 如果要写一个cpu的模拟器,也就是不断的读取指令(二进制输入),对其解码处理 CPU与内存交互引起的内存墙的问题?也就是CPU处理越来越快,那么内存的IO带宽会称为瓶颈,比如会导致编译器优化,memoery fence 数据与指令不区分,数据与指令放在相同的内存中,那么会导致指 阅读全文
posted @ 2022-04-10 19:48 抿了抿嘴丶 阅读(90) 评论(0) 推荐(0) 编辑
摘要:lec 0 操作系统并不是免费的午餐,而是构筑与控制生态的黑土地。 批处理,交互,分布式,云端结合以及现在的定制化os 以及现在os越来越复杂 lec 1 操作系统难定义,可以定义为硬件与软件之间的软件层:操作系统是管理硬件资源,控制程序运行,改善人机 界面和为应用软件提供支持的一种系统软件 应用不 阅读全文
posted @ 2022-04-10 16:36 抿了抿嘴丶 阅读(94) 评论(0) 推荐(0) 编辑
摘要:https://mit-public-courses-cn-translatio.gitbook.io/mit6-s081/lec13-sleep-and-wakeup-robert/13.1-lock-limitation-during-thread-switching 13.1 线程切换过程中锁 阅读全文
posted @ 2022-04-08 23:33 抿了抿嘴丶 阅读(259) 评论(0) 推荐(0) 编辑
摘要:TCP/IP协议族 数据链路层 **作用:**实现了网卡接口的网络驱动,以处理数据在物理媒介上的传输(一般有以太网,令牌环网等) **主要协议:**ARP协议(Address Resolve Protocol, 地址解析协议)和RARP(Reverse Address Resolve Protoco 阅读全文
posted @ 2022-04-08 13:36 抿了抿嘴丶 阅读(44) 评论(0) 推荐(0) 编辑
摘要:https://mit-public-courses-cn-translatio.gitbook.io/mit6-s081/lec11-thread-switching-robert/11.1-thread 11.1 线程(Thread)概述 为什么需要线程? 人们希望他们的计算机在同一时间不是只执 阅读全文
posted @ 2022-04-08 13:36 抿了抿嘴丶 阅读(92) 评论(0) 推荐(0) 编辑
摘要:https://mit-public-courses-cn-translatio.gitbook.io/mit6-s081/lec10-multiprocessors-and-locking 10.1 为什么要使用锁? 一个进程可以运行在多个CPU核上(虽然有CPU的亲和性),所以XV6存在很多共享 阅读全文
posted @ 2022-04-06 20:20 抿了抿嘴丶 阅读(33) 评论(0) 推荐(0) 编辑
摘要:记录问题 https://mit-public-courses-cn-translatio.gitbook.io/mit6-s081/lec09-interrupts/9.1-memory-in-real-os 9.1 真实操作系统内存使用情况 os(mit的Athena计算机)把大量内存都用在bu 阅读全文
posted @ 2022-04-06 15:42 抿了抿嘴丶 阅读(89) 评论(0) 推荐(0) 编辑
摘要:Page Fault 触发page fault之后,进程被kill,会触发panic,page fault会使用trap机制, 并将出错的地址虚拟地址放到STVAL寄存器中, 并将trap的原因放入SCAUSE寄存器中,那么usertrap函数就能够对page fault做出处理,一般就是kill进 阅读全文
posted @ 2022-04-03 10:43 抿了抿嘴丶 阅读(231) 评论(0) 推荐(0) 编辑
摘要:对于page fault,xv6采取保守的方式,也就是直接killed进程。但是在Linux存在着lazy allocation,copy-on-write fork,demand paging,memory mapped files这些功能 Eliminate allocation from sb 阅读全文
posted @ 2022-04-02 15:45 抿了抿嘴丶 阅读(125) 评论(0) 推荐(0) 编辑
摘要:https://pdos.csail.mit.edu/6.S081/2020/labs/pgtbl.html 简述 这个lab有三个task: 写一个打印页表内容的函数 给每个进程都创建一个内核页表,这个主要的优化点是具体点,就是将用户态页表的映射也放到每个进程的内核页表中,那么从用户态传入到内核态 阅读全文
posted @ 2022-04-01 21:22 抿了抿嘴丶 阅读(443) 评论(0) 推荐(0) 编辑
摘要:linux中的内核页表与进程用户态页表 阅读全文
posted @ 2022-04-01 15:47 抿了抿嘴丶 阅读(32) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示