计算机理论与基础
文章平均质量分 94
phantom_111
这个作者很懒,什么都没留下…
展开
-
音视频基础知识
PPS(图像参数集):对应的是一个序列中的某一副图像或者是几幅图像,其参数标识符 pic_parameter_set_id、可选的 seq_parameter_set_id、熵编码模式选择标识、片组数组、初始量化参数和去方块滤波系数调用标识符等。即包含一个图像的所有分片的全部的相关信息,包括图像类型、序号等,解码时某些序列号是否丢失可用来校验信息包的丢失与否。感知冗余信息:人眼的一些特性比如亮度辨别阈值,视觉阈值,对亮度和色度的敏感度不同,使得在编码的时候引入适量的误差,也不会被察觉出来。原创 2023-03-14 18:42:12 · 520 阅读 · 0 评论 -
《计算机构造与解释》读书笔记(4)
在实际实现使用中,给定一个过程 P,串行化组将返回一个过程,该过程获取相应互斥元,之后运行 P,最后释放互斥元,此种操作即可保证串行化性质。例如,设想一个分布式的银行系统,其中的各个分支银行维护着银行余额的局部值,并且周期性地将这些值与其他分支所维护的值相互比较。这里的每个进程都反复将自己的值更新为自己的原值和相邻进程的值的平均值。下图的时序图勾画了一个事件顺序,其中的 balance 在开始时是 100,Peter 取走了 10,Paul 取走了 25,然后 balance 最后的值却是 75。原创 2023-01-18 18:14:16 · 1295 阅读 · 0 评论 -
Linux perf 事件调度算法
文章目录1. 背景2. Introduction3. Event Groups4. The NMI Watchdog5. The Scheduling Algorithm6. Event Constraints Calculation7. Examples8. 碎碎念9. 参考资料1. 背景任何人了解现代 Intel 处理器上的硬件性能监控的第一件事就是每个逻辑核心有三个固定功能计数器和四个通用计数器。只要有足够的计数器用于需要同时测量的所有事件,为每个事件分配一个计数器是可行的。但是,如果事件多于计.原创 2022-03-07 21:12:34 · 1325 阅读 · 0 评论 -
设计数据密集型应用——批处理(10)
文章目录1. 写在最前面2. 使用 Unix 工具的批处理2.1 简单的日志分析2.1.1 命令链与自定义程序2.1.2 排序 VS 内存中的聚合2.2 Unix 哲学2.2.1 统一的接口2.2.2 逻辑与布线相分离2.2.3 透明度和实验3. MapReduce 和分布式文件系统3.1 MapReduce 作业执行3.1.1 分布式执行 MapReduce3.1.2 MapReduce 工作流3.2 Reduce 侧连接与分组3.2.1 示例:用户活动事件分析3.2.2 排序合并连接3.2.3 把相关数原创 2021-10-14 19:32:17 · 361 阅读 · 0 评论 -
设计数据密集型应用—一致性与共识(9)
文章目录1. 分布式系统中的错误2. 一致性保证3. 线性一致性2.1 什么使得系统线性一致2.2 线性一致性与可串行化2.3 依赖线性一致性2.3.1 锁定和领导者选举2.3.2 约束和唯一性保证2.3.3 跨信道的时序依赖2.4 实现线性一致性的系统2.4.1 单主复制(可能线性一致)2.4.2 共识算法(线性一致)2.4.3 多主复制(非线性一致)2.4.4 无主复制(也许不是线性一致的)2.4.5 线性一致性和法定人数2.5 线性一致性的代价2.5.1 CAP 定理2.5.2 线性一致性和网络延迟3原创 2021-09-10 21:04:22 · 1207 阅读 · 0 评论 -
设计数据密集型应用—分区( 6)
文章目录1. 写在最前面2. 分区与复制3. 键值数据的分区3.1 根据键的范围分区3.1.1 根据键的散列分区3.1.2 负载倾斜和消除热点4. 分区与次级索引4.1 基于文档的二级索引进行分区4.2 基于关键词(Term)的二级索引进行分区5. 分区再平衡5.1 平衡策略5.2 运维:手动还是自动平衡6. 请求路由7.碎碎念1. 写在最前面之前读这一章节的时候没有认真思考过序言这句话,这次写章节笔记的时候,突然有被震惊到。是不是有写了很多年代码的人,都没人认真思考过最初学的的「面向对象」和「面向过原创 2021-07-01 10:11:50 · 520 阅读 · 0 评论 -
设计数据密集型应用—编码与演化(4)
文章目录1. 编码数据的格式1.1 语言特定的格式1.2 JSON、XML 和 二进制变体1.3 Thrift 与 Protocol Buffers1.4 Avro1.5 模式的优点2. 数据流的类型2.1 数据库中的数据流2.2服务中的数据流:REST 与 RPC2.3 消息传递中的数据流3. 碎碎念新产品的推出,对需求的深入理解,或者商业环境的变化,总会伴随着功能(feature)的增增改改。在大多数情况下,修改应用程序的功能也意味着需要更改其存储的数据:可能需要使用新的字段或记录类型,或者以新方式展原创 2021-05-21 19:02:16 · 182 阅读 · 1 评论 -
从《能量守恒》论《版本管理》
文章目录1. 写在最前面2. 关于版本管理的思考2.1 最原始的版本管理2.2 版本管理的发展历史3. Git 是如何做分布式版本控制的3.1 分布式版本控制需要做什么3.2 Git 基础功能实现3.3 Git 基础功能的延伸问题3.4 Git 高阶功能简介4. 碎碎念5. 参考资料1. 写在最前面认真思考过能量守恒定律以后,笔者突然觉得这个定理很值得深入思考。因为这个定理不应该仅仅局限于物理学中,在计算机系统设计、社会学中均可使用。什么?你不信,那阔以先看看我的解释,反正学到就是赚到,又不吃亏是吧原创 2021-03-11 19:05:36 · 369 阅读 · 0 评论 -
Docker 底层技术推导
文章目录1. 写在最前面2. 什么推动了docker 出现2.1 出现原因2.2 优势总结3. 大胆猜测一下实现3.1 对比 Virtual Machine3.2 实现 docker 需要什么?3.3 要隔离什么?4. 真实的实现4.1 隔离进程的工具4.1.1 例子4.2 隔离资源的工具4.2.1 子系统介绍4.2.2 使用介绍4.3 附加工具5. 碎碎念6. 参考资料1. 写在最前面在听《牵丝戏》的时候突然灵光乍现想到了「与其扬汤止沸,不如釜底抽薪」这个观点。怎么将这个观点应用到这篇文章中呢?答原创 2021-02-08 19:18:18 · 431 阅读 · 0 评论 -
你听过文件系统吗?
你听过文件系统吗?听过那让我们一起复习一下吧_1. 复习背景知识第一部分属于对文件系统的复习内容,了解的人可直接阅读第二部分。1.1 为什么需要文件系统文件存于磁盘中,磁盘可以理解为一种固定大小的线性序列,支持读块 k 和写块 k 的操作。假设没有文件系统,用户必须手动进行以下的管理:记录数据存储在磁盘的哪些块中。记录哪些块是空闲块。避免在存取数据的过程中误操作其他用户的数据块...原创 2019-01-27 19:31:18 · 368 阅读 · 0 评论 -
CAP理论学习
一个分布式系统最多只能同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance)这三项中的两项。注意: ACID和BASE代表两种截然相反的设计哲学。ACID是传统数据库常用的设计概念,追求强一致性模型。BASE支持的大型分布式系统,提出通过牺牲强一致性获取高可用性 。BASE是指基本可用、软状态、最终一致性。...原创 2018-04-09 20:36:00 · 327 阅读 · 0 评论 -
函数式编程
什么是函数式编程函数式编程是一种编程规范,常见的编程规范有命令式编程,函数式编程,逻辑式编程 ,常见的面向对象编程也是一种命令式编程。命令式编程 :命令式编程是面向计算机硬件的抽象,有变量 (对应存储单元),赋值语句 (获取,存储指令),表达式 (内存引用和算术运算)和控制语句(跳转指令),一句话总结,命令式程序就是一个冯诺依曼的指令序列。函数式编程 :函数式编程是面向数学的抽象,将计...原创 2018-03-01 19:31:47 · 197 阅读 · 0 评论