
计算机科学与技术专业知识笔记
文章平均质量分 76
本专栏为一系列计算机科学与技术相关专业知识的学习笔记
SuPhoebe
不是我针对谁,我是说在座的诸位都比我强
展开
-
第八章:分布式系统的麻烦
设想一个具有不对称故障的网络:一个节点能够接收发送给它的所有消息,但是来自该节点的任何传出消息被丢弃或延迟【19】。即使该节点运行良好,并且正在接收来自其他节点的请求,其他节点也无法听到其响应。经过一段时间后,其他节点宣布它已经死亡,因为他们没有听到节点的消息。半断开(semi-disconnected)的节点被拖向墓地,敲打尖叫道 “我没死!” —— 但是由于没有人能听到它的尖叫,葬礼队伍继续以坚忍的决心继续行进。翻译 2023-10-13 12:56:20 · 11694 阅读 · 0 评论 -
设计数据密集型应用 第五章:复制
设计数据密集型应用 第五章:复制与可能出错的东西比,'不可能’出错的东西最显著的特点就是:一旦真的出错,通常就彻底玩完了。——道格拉斯·亚当斯(1992)文章目录设计数据密集型应用 第五章:复制领导者与追随者同步复制与异步复制关于复制的研究设置新从库处理节点宕机从库失效:追赶恢复主库失效:故障切换复制日志的实现基于语句的复制传输预写式日志(WAL)逻辑日志复制(基于行)基于触发器的复制复制延迟问题读己之写单调读一致前缀读复制延迟的解决方案多主复制多主复制的应用场景运维多个数据中心需要离线操作的翻译 2021-07-19 12:57:05 · 1172 阅读 · 0 评论 -
设计数据密集型应用 第四章:编码与演化
设计数据密集型应用 第四章:编码与演化唯变所适——以弗所的赫拉克利特,为柏拉图所引(公元前360年)文章目录设计数据密集型应用 第四章:编码与演化编码数据的格式术语冲突语言特定的格式JSON,XML和二进制变体二进制编码Thrift与Protocol Buffers字段标签和模式演变数据类型和模式演变Avro作者模式与读者模式模式演变规则但作者模式到底是什么?动态生成的模式代码生成和动态类型的语言模式的优点数据流的类型数据库中的数据流在不同的时间写入不同的值归档存储服务中的数据流:REST与R翻译 2021-07-11 12:54:01 · 922 阅读 · 0 评论 -
设计数据密集型应用 第三章:存储与检索
3. 第三章:存储与检索建立秩序,省却搜索——德国谚语文章目录3. 第三章:存储与检索驱动数据库的数据结构哈希索引SSTables和LSM树构建和维护SSTables用SSTables制作LSM树性能优化B树让B树更可靠B树优化比较B树和LSM树LSM树的优点LSM树的缺点其他索引结构将值存储在索引中多列索引全文搜索和模糊索引在内存中存储一切事务处理还是分析?数据仓库OLTP数据库和数据仓库之间的分歧星型和雪花型:分析的模式列存储列压缩面向列的存储和列族内存带宽和向量处理列存储中的排序顺序几个翻译 2021-06-27 14:46:06 · 1061 阅读 · 0 评论 -
设计数据密集型应用 第二章:数据模型与查询语言
2. 数据模型与查询语言语言的边界就是思想的边界。—— 路德维奇·维特根斯坦,《逻辑哲学》(1922)文章目录2. 数据模型与查询语言关系模型与文档模型NoSQL的诞生对象关系不匹配多对一和多对多的关系文档数据库是否在重蹈覆辙?网络模型关系模型与文档数据库相比关系型数据库与文档数据库在今日的对比哪种数据模型更有助于简化应用代码?文档模型中的架构灵活性查询的数据局部性文档和关系数据库的融合数据查询语言Web上的声明式查询MapReduce查询图数据模型属性图Cypher查询语言SQL中的图查询三翻译 2021-06-27 06:05:35 · 881 阅读 · 0 评论 -
设计数据密集型应用 第一章:可靠性,可伸缩性,可维护性
第一章:可靠性,可伸缩性,可维护性原文地址互联网做得太棒了,以至于大多数人将它看作像太平洋这样的自然资源,而不是什么人工产物。上一次出现这种大规模且无差错的技术, 你还记得是什么时候吗?——阿兰·凯在接受Dobb博士杂志采访时说(2012年)文章目录第一章:可靠性,可伸缩性,可维护性关于数据系统的思考可靠性硬件故障软件错误人为错误可靠性有多重要?可伸缩性描述负载描述性能延迟和响应时间实践中的百分位点应对负载的方法可维护性可操作性:人生苦短,关爱运维简单性:管理复杂度可演化性:拥抱变化本章小结翻译 2021-06-27 01:24:31 · 920 阅读 · 0 评论 -
初识Restful架构
初识Restful架构起源REST这个词,是Roy Thomas Fielding在他2000年的博士论文《Architectural Styles and the Design of Network-based Software Architectures》中提出的。《CHAPTER 5 Representational State Transfer (REST)》是REST的...原创 2018-04-09 10:42:08 · 463 阅读 · 0 评论 -
HTTP协议与其请求方法
HTTP协议与其请求方法HTTP协议简介HTTP(超文本传输协议,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议,最初的目的是为了提供一种发布和接受HTML页面的方法,即用于从WWW服务器传输超文本到本地浏览器的传输协议。所有的WWW文件都必须遵守这个标准。HTTP连接使用的是“请求—响应”的方式,不仅在请求时需要先建立连接,而且需要客...原创 2018-04-08 09:44:26 · 2203 阅读 · 0 评论 -
线程的3种实现方式
线程的3种实现方式在引入线程的操作系统中,进程是资源分配的基本单位,线程是独立调度的基本单位。在同一进程中,线程的切换不会引起进程切换。在不同进程中进行线程切换,如从一个进程内的线程切换到另一个进程中的线程时,会引起进程切换。线程分为两种: 名称 描述 用户级线程(User-Level Thread, ULT) 由应用程序所支持的线程实现, 对内核不可见...原创 2018-03-20 04:55:48 · 13002 阅读 · 0 评论 -
浅谈Django中的mptt
层级结构层级结构,也叫树形结构。在实际应用中,你经常需要保存层级结构到数据库中。比如说:你的网站上的目录。不过,除非使用类XML的数据库,通用的关系数据库很难做到这点。对于树形数据的存储有很多种方案。主要的方法有两种:邻接表模型,以及修改过的前序遍历算法。因为mptt使用的是修改过的前序遍历算法,而此算法又是从邻接表改进得来的,所以本文先要说这两块。本文以食品商店为例,通过类别、颜色以及种类来对其食原创 2017-09-26 11:37:28 · 7104 阅读 · 4 评论 -
docker核心功能介绍与使用
docker核心功能介绍与使用Docker 是什么Docker 这个单词英文原意是码头工人,搬运工的意思,这个搬运工搬运的是各种应用的容器。官方的说法是,Docker 是提供给开发者和系统管理员一个分布式应用的开放平台。在更多人的理解中,Docker 是一种把你的应用或者服务打包后放在容器中运行的技术。Docker 可以说有三个关键点:构建,运输,运行。这三个词可以对应我上述提到的那句话,构建即为打原创 2017-03-15 12:17:49 · 5148 阅读 · 0 评论 -
Github计算contributions
尝试地用了几次Github之后,发现只有在页面上修改才会增长contribution。于是好奇地查了一下原因。哪些 contributions 贡献值会被统计Issues and pull requests 问题和请求问题和请求将出现在您的贡献图上需满足下面这两个条件:他们开启的时间是在过去的一年。他们开启的时候是一个独立的存储库,不是 fork 来的库Commits 提交提交将出现在您的贡献翻译 2016-07-25 10:08:38 · 6022 阅读 · 3 评论 -
数据库系统概念第十二章 事务
事务(Transaction)事务是作为单个逻辑工作单元执行的一系列数据库操作,这些操作可能会修改多个表中的多个元组事务正常执行的结构是:begin;SQL execution 1SQL execution 2...SQL execution Ncommit;begin标志开始一个事务,多个SQL语句就是事务逻辑工作单元,commit(提交)是结束当前事务并提交事务内数据变更,让其生效数据原创 2016-06-10 16:14:31 · 10942 阅读 · 0 评论 -
VS用C语言连接SQL Server解决办法
我在优快云论坛上问了这个问题,但是没有人理我,折腾了半天终于搞定了。原帖链接,没有解决办法,下面提供解决办法。确认打开了SQL Server服务首先,从我的电脑->右键->管理进入 确认SQL Server服务打开。也可以使用cmd(命令行窗口),用管理员身份打开cmd,输入net start [服务名]效果如下图所示: 如果服务名中间有空格,请务必加上双引号。配置ODBC具体方法见链接。请一原创 2016-04-17 17:16:36 · 14690 阅读 · 2 评论 -
WIN7下创建ODBC数据源到SQL Server的新数据源
北邮计算机数据库实验四需求 此方法是用JDBC-ODBC访问数据库(1)单击【开始】——》【控制面板】——》【ODBC】然后打开【ODBC数据源管理器】对话框(2)在【ODBC数据源管理器】对话框中,单击【用户DNS】标签,单击【添加】按钮,弹出【创建新数据源】对话框。 如下图所示(3)在【创建新数据源】对话框中,在驱动程序序列表中选择【SQL Server】,单击【完成】按钮,弹出【创建到SQ原创 2016-04-16 17:25:56 · 16311 阅读 · 1 评论 -
SQL SERVER的字段类型说明
以下为SQL SERVER7.0以上版本的字段类型说明。SQL SERVER6.5的字段类型说明请参考SQL SERVER提供的说明。字段类型 描述 bit 0或1的整型数字 int 从-2^31(-2,147,483,648)到2^31(2,147,483,647)的整型数字 smallint 从-2^15(-32,768)到2^15(32,767)的整型原创 2016-04-13 20:39:07 · 972 阅读 · 0 评论 -
创建数据库以及其属性的sql语句
创建数据库的SQL语句:create database stuDB on primary -- 默认就属于primary文件组,可省略(/*--数据文件的具体描述--*/ name='stuDB_data', -- 主数据文件的逻辑名称 filename='D:\stuDB_data.mdf', -- 主数据文件的物理名称 size=5mb, --主数据文件的初始原创 2016-04-13 20:12:29 · 5847 阅读 · 1 评论 -
Linux下用C语言实现ls -l的功能
为了实现ls的全部功能 现在在逐步完成各项功能#include <stdio.h>#include <sys/types.h>#include <dirent.h>#include <sys/stat.h>#include <pwd.h>#include <grp.h>#include <unistd.h>void show_file_info(char* filename, stru原创 2016-03-30 21:18:03 · 11301 阅读 · 0 评论 -
Linux下用C语言显示文件夹下所有文件的名称、大小、最后修改时间
为了实现Linux下ls的功能 逐步完成各项功能 递归显示文件夹与子文件下文件名称#include <stdio.h>#include <stdlib.h>#include <string.h>#include <dirent.h>#include <unistd.h>int readFileList(char *basePath){ DIR *dir; struct原创 2016-03-30 11:00:00 · 8484 阅读 · 0 评论 -
美国大学计算机专业
博主打算留学,偶尔有一些收集的计算机类的资料会放到这里。一. 专业介绍计算机科学研究计算机系统以及软件的设计,以及相关理论和应用领域。在该专业,你将学习很多抽象化的概念。因为计算机沟通要求精确性,因此你必须学会使用精确的程序语言。在学习的过程中,你会被要求思考很多的问题,例如,为什么编程语言被设计成现在这样?现实问题如何转化并编译成一个程序,并成功解决该现实问题?当一个程序被执行时,计算机内部是如原创 2016-03-29 15:14:26 · 7132 阅读 · 2 评论 -
数据库系统概念中table/view/schema/index的关系
操作对象 创建 删除 修改 模式 CREATE SCHEMA DROP SCHEMA 表 CREATE TABLE DROP TABLE ALTER TABLE 视 图 CREATE VIEW DROP VIEW 索 引 CREATE INDEX DROP INDEX 表大家不一定要了解这个东西的准确定义是什么,原创 2016-03-23 17:30:23 · 11566 阅读 · 0 评论 -
操作系统中长期调度、中期调度和短期调度之间的区别
在许多进程或线程都准备使用CPU进行任务处理时,就会存在资源竞争和分配的问题。一般都会将进程或线程先放在一个缓冲池中,等待合适的时机调度程序从中选择一个进程或线程进行交给CPU进行处理。如上图所示,在调度中,分为长期、中期和短期三种。长期调度,又称为作业调度或高级调度,这种调度将已进入系统并处于后备状态的作业按某种算法选择一个或一批,为其建立进程,并进入主机,当该作业执行完毕时,还负责回收系统资源,原创 2016-01-20 19:06:13 · 19123 阅读 · 0 评论 -
可编程定时/计数器 8253/8254
在微机应用系统中,定时控制具有重要的作用。经常会有这样的应用要求:一种是要求有一些外部实时时钟,以实现延时控制或定时;另一种是要求能对外部事件计数的计数器。在微机系统中,常采用以下三种方法实现:软件定时,不可编程硬件定时和可编程硬件定时。可编程定时/计数器的工作原理定时和计数的本质是相同的,它们都是对一个输入脉冲进行计数,如果输入脉冲的频率一定,则记录一定个数的脉冲,其所需的时间是一定的,例如,输入原创 2015-12-26 16:02:18 · 34035 阅读 · 3 评论 -
操作系统概念(第十一章) 文件系统实现
文件系统结构(File System Structure)磁盘提供大量的外存空间来维持文件系统。磁盘的下述两个特点使得其成为存储多个文件的方便介质。①可以原地重写;②可以直接访问磁盘上的任意一块信息。为了提供对磁盘的高效且便捷的访问,操作系统通过文件系统来轻松地存储、定位、提取数据。文件系统有两个设计问题。①定义文件系统对用户的接口②创建数据结构和算法来将逻辑文件系统映射到物理外存设备上。原创 2015-12-24 20:39:53 · 7325 阅读 · 0 评论 -
操作系统概念(第十章) 文件系统接口
文件概念文件是记录在外存上得相关信息的具有名称的集合。其具有连续的逻辑地址空间通常,文件表示数据和程序。数据文件可以包括,数字、字符、字符串或二进制。文件可以是自由形式,如文本文件,也可以具有严格的格式。文件必须具有可以长期信息存储的性质、必须能够保存大容量数据、在进程终止后信息能够保留下来、能够多进程并发访问文件中的信息。其中a是执行文件,b是文档文件。文件属性(File Attributes)原创 2015-12-23 20:20:17 · 4382 阅读 · 0 评论 -
可编程串行通信接口芯片8251A
8251A的基本功能 8251A是一种可编程的通用同步/异步接收发送器,通常作为串行通信接口使用,被广泛应用Intel80X86为CPU的 微型计算机中。其基本功能为:(1) 它是全双工、双缓冲器的接收/发送器。(2) 有两种工作方式,可工作在同步或异步工作方式。同步方式工作时,波特率在0~64K范围内;异步方式时,波特率在0~ 9.2K范围内。(3) 同步方式时,字符可选择为5~8bit,可原创 2015-12-13 21:24:51 · 30790 阅读 · 3 评论 -
汇编 DOS的中断调用 INT 21H
DOS系统功能调用这个汇编指令是用于提供DOS系统功能调用。它是由DOS提供的一组实现特殊功能的子程序供程序员在编写自己的程序时调用,以减轻编程的工作量。 分两种,DOS系统功能调用和BIOS中断调用。 链接里都是一些常用的内容,大家可以自己去百度,一定比我这里给出的全面很多,有那种DOS系统功能调用表。调用步骤大致(1)系统功能号送到寄存器AH中;(2)入口参数送到指定的寄存器中;(3)原创 2015-12-11 20:44:02 · 16584 阅读 · 0 评论 -
操作系统概念(第九章) 虚拟内存
背景第八章所介绍的内存管理算法都是基于一个基本要求:执行指令必须在物理内存中,满足这一要求的第一种方法是整个进程放在内存中。动态载入能帮助减轻这一限制,但是它需要程序员特别小心地做一些额外的工作。指令必须都在物理内存内的这一限制,似乎是必须和合理的,但也是不幸的,因为这使得程序的大小被限制在物理内存的大小内。事实上,研究实际程序会发现,许多情况下并不需要将整个程序放到内存中。即使在需要完整程序的时候原创 2015-12-09 09:30:54 · 13881 阅读 · 1 评论 -
可编程中断控制器8259A
可编程中断控制器8259A是Intel公司专为80x86 CPU控制外部中断而设计开发的芯片。 它将中断源优先级判优、中断源识别和中断屏蔽电路集于一体,不需要附加任何电路就可以对外部中断进行管理,单片可以管理8级外部中断,在多片级联方式下,可以管理多达64级的外部中断。8259A内部结构及其引脚功能可编程中断控制器8259A是28引脚双列直插式芯片,单一+5V电源供电. 其内部结构及引脚信号如图6原创 2015-12-06 13:11:38 · 14818 阅读 · 2 评论 -
操作系统概念(第八章) 内存管理(二)
分页(paging)分页(paging)内存管理方案允许进程的物理地址空间可以使非连续的。分页避免了将不同大小的内存块匹配到交换空间上,前面叙述的内存管理方案都有这个问题,当位于内存中的代码和数据需要换出时,必须现在备份存储上找到空间,这是问题就产生了。备份存储也有前面所述的与内存相关的碎片问题,只不过访问更慢。传统上,分页支持一直是由硬件来处理的。最近的设计是通过将硬件和操作系统相配合来实现分页。原创 2015-12-05 22:19:55 · 7423 阅读 · 0 评论 -
操作系统概念(第八章) 内存管理(一)
背景内存是现代计算机运行的中心。内存有很大一组字或字节组成,每个字或字节都有它们自己的地址。CPU根据程序计数器(PC)的值从内存中提取指令,这些指令可能会引起进一步对特定内存地址的读取和写入。一个典型指令执行周期,首先从内存中读取指令。接着该指令被解码,且可能需要从内存中读取操作数。在指令对操作数执行后,其结果可能被存回到内存。内存单元只看到地址流,而并不直到这些地址是如何产生的(由指令计数器、索原创 2015-12-04 22:15:28 · 4885 阅读 · 0 评论 -
操作系统概念 管程Java代码实现
java中利用管程实现同步互斥量其实我关于代码中信号量和管程的具体差别不是特别的清楚。 但是因为用到了Semaphore类(信号量),就是用信号量实现的。程序员们需要自己对信号量的初始化、更新(wait/signal)以及信号量更新逻辑负责。 而管程应该是用到了synchronized的定义方法,如public synchronized void insert(int val),这个时候并不需要原创 2015-11-29 20:43:08 · 3782 阅读 · 0 评论 -
编译原理与技术(第四章)语法分析
FIRST集合构造算法:对于G中的每一个文法符号X∈VN∪VTX∈V^N∪V^T,反复应用下列规则求FIRST(X),到所求的FIRST集不再增大为止。 (1)若X∈VTX∈V^T,则FIRST(X)={X}。 (2)若X∈VNX∈V^N,且有X→aα∈P(a∈VT)X\rightarrow aα∈P(a∈V^T),则令a∈FIRST(X);若有X→ε∈PX\rightarrow ε∈P,则令ε原创 2015-11-27 21:11:05 · 5348 阅读 · 0 评论 -
基带传输的常用编码
Miller码Miller码又称延迟调制码,它可看成是双相码的一种变形。 一、编码规则: 消息代码中的1 用10或01表示; 消息代码中的0分两种情况: 单个”0”在码元持续时间内不出现电平跳变,且与相邻码元的边界处也不跳变; 连”0”串在两个”0”码的边界处出现电平跳变,即”00”与”11”交替。 例如: 二、Miller码的特点: 1 由Miller码确定的原创 2015-11-26 10:35:00 · 17640 阅读 · 0 评论 -
稀疏矩阵乘法与加法
// whn6325689#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include原创 2014-11-25 16:45:17 · 3464 阅读 · 0 评论 -
操作系统概念(第七章) 死锁
死锁所有申请的资源都被其他等待进程占有,那么该等待进程有可能在无法改变其状态,这种情况称为死锁(deadlock)。系统模型进程在使用资源之前必须先申请资源,在使用资源之后要释放资源。进程所申请的资源数量不能超过系统所有资源的总量。在正常操作模式下,进程只能按如下顺序使用资源:①申请:如果申请不能立即被允许,那么申请进程必须等待,直到它获得该资源为止。②使用:进程对资源进行操作。③释放:进程释原创 2015-11-22 12:05:04 · 5289 阅读 · 1 评论 -
操作系统概念(第六章) 进程同步(二)
进程同步虽然信号量提供了一种方便且有效的机制以处理进程同步,但是使用不正确仍然会导致一些时序错误,且难以检测,因为这些错误只有在特殊的执行顺序的情况下才会出现,而这些顺序不会总出现。管程(monitor)管程是一种高级语言结构,它是编程语言的组成部分,编译器知道它们的特殊性,因此可以采用与其他过程调用不同的方法来处理对管程的调用。 进入管程时的互斥由编译器负责,但通常的做法是用一个互斥量或二元信号原创 2015-11-22 11:08:40 · 2001 阅读 · 0 评论 -
操作系统概念(第六章) 进程同步(一)
进程同步背景互相协作的进程之间有共享的数据,于是这里就有一个并发情况下,如何确保有序操作这些数据、维护一致性的问题,即进程同步。从底层到高级应用,同步机制依次有临界区、信号量、管程、原子事务。多个进程并发访问和操作同一数据且执行结果与访问发生的特定顺序有关,称之为竞争条件(race condition)。临界区(critical section)每个进程有一个代码段(code segment)称为临原创 2015-11-21 17:06:33 · 4283 阅读 · 0 评论 -
操作系统概念(第五章) CPU调度
CPU调度基本概念多道程序操作系统的基础。通过在进程之间切换CPU,操作系统可以提高计算机的吞吐率。 对于单处理器系统,每次只允许一个进程运行:任何其他进程必须等待,直到CPU空闲能被调度为止。CPU-I/O 区间周期CPU的成功调度依赖于进程的如下属性:进程执行由CPU执行周期和I/O等待周期组成。进程在这两个状态之间切换(CPU burst—I/O bust)。进程执行从CPU区间(CPU b原创 2015-11-21 16:10:02 · 13927 阅读 · 2 评论 -
操作系统概念(第三章) 进程
进程进程概念进程进程是执行中的程序,这只是非正式的说法。进程不只是程序代码,程序代码称为文本段(代码段),还包括当前活动,通过程序计数器(PC)的值和处理器寄存器的内容来表示。此外,进程还包括进程堆栈段(临时数据、函数参数、局部变量、地址)和数据段(包括全全局变量。还可能包括堆(leap),是在进程运行期间动态分配内存。 程序是被动实体,如存储在磁盘上包含一系列指令的文件内容(可执行文件),而原创 2015-11-21 14:36:18 · 3482 阅读 · 0 评论