关系逻辑

2019-2020-1学期 20192413 《网络空间安全专业导论》第五周学习总结

南笙酒味 提交于 2019-12-03 15:26:41
第十章 操作系统 10.1操作系统的角色 操作系统负责管理硬件资源,允许应用软件直接的或通过其他系统软件访问系统资源。它提供了直接的人机交互界面。 一台计算机通常只有一个活动的操作系统,在系统运行中负责控制工作。 操作系统的各种角色通常都围绕着一个中心思想“良好的共享” 10.1.1内存、进程与CPU管理 多道程序设计(multiprogramming):同时在主存中驻留多个程序,由它们竞争CPU的技术 内存管理(memory management):了解主存中载有多少个程序以及它们的位置的动作 所有现代操作系统都采用多道程序设计技术,因此,操作系统必须执行内存管理,以明确内存中有哪些程序以及它们驻留在内存的什么位置。 进程(process):程序执行过程中的动态表示法 进程管理(process management):了解活动进程的信息的动作 CPU调度(CPU scheduling):确定主存中的哪个进程可以访问CPU以便执行的动作 10.1.2批处理 程序和系统指令集合在一起称为作业 现代操作系统中的批处理概念允许用户把一组OS命令定义为一个批文件以控制一个大型程序或一组交互程序的处理。 10.1.3分时 分时(timesharing):多个交互用户同时共享CPU时间的系统 虚拟机(virtual machine):分时系统创建的每个用户都有专属机器的假象 主机

Apache Calcite 学习 (一)

假装没事ソ 提交于 2019-12-03 12:16:39
关于 Apache Calcite 的简单介绍可以参考 Apache Calcite:Hadoop 中新型大数据查询引擎 这篇文章,Calcite 一开始设计的目标就是 one size fits all ,它希望能为不同计算存储引擎提供统一的 SQL 查询引擎,当然 Calcite 并不仅仅是一个简单的 SQL 查询引擎,在论文 Apache Calcite: A Foundational Framework for Optimized Query Processing Over Heterogeneous Data Sources 的摘要(摘要见下面)部分,关于 Calcite 的核心点有简单的介绍,Calcite 的架构有三个特点:flexible, embeddable, and extensible,就是灵活性、组件可插拔、可扩展,它的 SQL Parser 层、Optimizer 层等都可以单独使用,这也是 Calcite 受总多开源框架欢迎的原因之一。 Apache Calcite is a foundational software framework that provides query processing, optimization, and query language support to many popular open-source data

2019-2020-1学期 20192419 《网络空间安全专业导论》第五周学习总结 (读书笔记)

不打扰是莪最后的温柔 提交于 2019-12-03 11:50:53
第十章 操作系统 10.1 操作系统的角色 现代软件可以分为两类————应用软件和系统软件 应用软件: 帮助我们解决现实世界问题的程序。 系统软件:管理计算机系统并与硬件进行交互的程序。 操作系统:管理计算机资源并为系统交互提供界面的系统软件。 一台计算机通常只有一个活动的操作系统,在系统运行中负责控制工作。计算机硬件是靠电线连接的,初始时载入永久性存储器中存储的一小组系统指令。 计算机可以具备两个或者多个操作系统,这种配置称为双引导或多引导系统。 操作系统负责管理资源,而这些资源通常是由使用它们的程序共享的。多个并发执行的程序将共享主存,依次使用CPU,竞争使用输入/输出设备的机会。 10.1.1 内存、进程与CPU管理 正在执行的程序都驻留在主存中,其中的指令以读取-解码-执行这种周期性方式被一个接一个地处理。 多道程序设计:同时在主存中驻留多个程序,由它们竞争CPU的技术。 内存管理:了解主存中载有多少个程序以及它们的位置的动作。 进程:程序执行过程中的动态表示法。 进程管理:了解活动进程的信息的动作。 CPU调度:确定主存中的哪个进程可以访问CPU以便执行的动作。 10.1.2 批处理 在交付程序时,用户需要为执行程序所需的系统软件或其他资源提供一套单独的指令。程序和系统指令集合在一起,称为 作业 。 现在术语“批”表示的是一个系统,在这个系统中

Spring事务

橙三吉。 提交于 2019-12-03 10:48:20
1.事务的隔离级别 ISOLATION_READ_UNCOMMITTED:读未提交 ISOLATION_READ_COMMITTED:读已提交 ISOLATION_REPEATABLE_READ:可重复读 ISOLATION_SERIALIZABLE:串行化 2.脏读、不可重复读、幻读 脏读:A事务读取B事务尚未提交的更改数据,并在这个数据的基础上进行操作,这时候如果事务B回滚,那么A事务读到的数据是不被承认的。例如常见的取款事务和转账事务 不可重复读 : 不可重复读是指 A事务读取了B事务已经提交的更改数据。假如A在取款事务的过程中,B往该账户转账100,A两次读取的余额发生不一致。 幻读 :A事务读取B事务提交的新增数据,会引发幻读问题。幻读一般发生在计算统计数据的事务中,例如银行系统在同一个事务中两次统计存款账户的总金额,在两次统计中,刚好新增了一个存款账户,存入了100,这时候两次统计的总金额不一致。 spring事务与数据库事务与锁之间的关系 spring事务: spring事务本质上使用数据库事务,而数据库事务本质上使用数据库锁,所以spring事务本质上使用数据库锁,开启spring事务意味着使用数据库锁; 那么事务的隔离级别与锁有什么关系呢?本人认为事务的隔离级别是通过锁的机制实现的,事务的隔离级别是数据库开发商根据业务逻辑的实际需要定义的一组锁的使用策略

从CentOS7默认安装的/home中转移空间到根目录/ - LVM操作简明教程

China☆狼群 提交于 2019-12-03 10:47:55
转自 http://blog.csdn.net/evandeng2009/article/details/49814097 一、基础概念 Cent0S 7默认启用LVM2(Logical Volume Manager),把机器的一块硬盘分为两个区sda1和sda2,其中分区sda1作为系统盘/boot挂载,少量空间;sda2作为一个物理卷并且完全作为逻辑卷组VG(Volume Group)centos,在这个逻辑卷组centos中建立三个逻辑卷LV(Logical Volume)root和home还有swap,分别挂载到根目录/和/home以及swap。而两个分区sda1和sda2上都建立了文件系统XFS,文件系统XFS作为RedHat的默认文件系统也有它的考虑,成为继ext3,ext4之后的主流文件系统。 几个概念的关系:M个物理硬盘HD或者物理硬盘中的分区一起组建为一个逻辑卷组VG及存储池,在卷组VG中创建N个逻辑卷LV,在一个逻辑卷LV中创建文件系统比如xfs。物理硬盘/分区、逻辑卷有最小基本寻址单元,CentOS7默认的大小为4MB,二者一一对应,类似于链接或者变量引用,但是一个二者关系并非一直不变,因为物理硬盘可能发生变化而逻辑卷自动调整。创建卷组和逻辑卷,会类似于创建分区一样在磁盘开始位置写入卷的信息VGDA(卷组描述符区域,Volume Group

Linux LVM硬盘管理及LVM扩容

易管家 提交于 2019-12-03 10:18:04
一、LVM简介 LVM是 Logical Volume Manager(逻辑卷管理)的简写,它由Heinz Mauelshagen在Linux 2.4内核上实现。LVM将一个或多个硬盘的分区在逻辑上集合,相当于一个大硬盘来使用,当硬盘的空间不够使用的时候,可以继续将其它的硬盘的分区加入其中,这样可以实现磁盘空间的动态管理,相对于普通的磁盘分区有很大的灵活性。 与传统的磁盘与分区相比,LVM为计算机提供了更高层次的磁盘存储。它使系统管理员可以更方便的为应用与用户分配存储空间。在LVM管理下的存储卷可以按需要随时改变大小与移除(可能需对文件系统工具进行升级)。LVM也允许按用户组对存储卷进行管理,允许管理员用更直观的名称(如"sales‘、 ‘development‘)代替物理磁盘名(如‘sda‘、‘sdb‘)来标识存储卷。 如图所示LVM模型: [7] 由四个磁盘分区可以组成一个很大的空间,然后在这些空间上划分一些逻辑分区,当一个逻辑分区的空间不够用的时候,可以从剩余空间上划分一些空间给空间不够用的分区使用。 二、 LVM基本术语 前面谈到,LVM是在磁盘分区和文件系统之间添加的一个逻辑层,来为文件系统屏蔽下层磁盘分区布局,提供一个抽象的盘卷,在盘卷上建立文件系统。首先我们讨论以下几个LVM术语: 物理存储介质(The physical media):这里指系统的存储设备:硬盘,如:

写了10年JAVA代码,为何还是给人一种乱糟糟的感觉?

落花浮王杯 提交于 2019-12-03 08:58:31
接触过不少号称写了10多年代码的程序员,可经常还是会发现他们的代码给人一种乱糟糟的感觉,那么如何才能写出让同事感觉不那么乱的代码呢? 一、为什么要写这篇文章 在开篇之前先说明下为什么要写这篇文章?在Java的世界里MVC软件架构模式绝对是经典的存在(PS:MVC是一种软件架构方式并不只有Java有),如果你是在最近十年前后进入Java的编程世界,那么你会发现自己这些年似乎从来没有逃离MVC架构模式的牢笼,只不过换着使用了不同的MVC框架,如早期的Struts1、Struts2以及现在几乎一统江湖的Spring MVC(少数自行封装MVC框架的公司除外)。 而随着互联网技术的发展,特别是Ajax等富客户端技术的发展,前端技术逐步形成了一套体系,并且逐步从后端代码(如JSP)中剥离出来,从而形成了现在普遍流行的前后端分离模式(这也是一段时间内为什么前端工程师会出现大量需求的原因),而这也对传统的MVC模式产生了一点小的改变,因为现在基于Java的后端服务中很少会有大量处理复杂界面逻辑的代码出现,因此MVC中的V(View)这一层就逐步被各类前端技术所替代,如AngularJS、React等。 所以现在的Java服务端绝大部分情况下只是在处理M(Model)+C(Controller)的逻辑,而从概念上来看,好像Model代表的就是数据模型、而C则是一种控制层逻辑,所以很多人

Comparable与Comparator源码分析

末鹿安然 提交于 2019-12-03 08:13:20
一、前言   在Java集合框架里面,各种集合的操作很大程度上都离不开Comparable和Comparator,虽然它们与集合没有显示的关系,但是它们只有在集合里面的时候才能发挥最大的威力。下面是开始我们的分析。 二、示例   在正式讲解Comparable与Comparator之前,我们通过一个例子来直观的感受一下它们的使用。   首先,定义好我们的Person类   class Person { String name; int age; public Person(String name, int age) { this.name = name; this.age = age; } public String toString() { return "[name = " + name + ", age = " + age + "]"; } }   其次编写测试代码,代码如下  public class Test { public static void main(String[] args) { List<String> nameLists = new ArrayList<String>(); nameLists.addAll(Arrays.asList("aa", "ab", "bc", "ba")); Collections.sort(nameLists);

Spring Security Web 和 OAuth2

六眼飞鱼酱① 提交于 2019-12-03 08:05:58
前言 Spring Security Core Spring Security Web 过滤器链的构建 过滤器链的调用 过滤器链的使用 Spring Security OAuth2 授权服务器 授权码模式 密码模式 客户端认证 TokenGranter 资源服务器 Spring Security JWT 结语 参考链接 前言 Spring Security 是一个多模块的项目,之前梳理了一下 Spring Security 认证流程 ,现在才发现,梳理的那部分内容更多的只是 Spring Security Core 这个核心模块中的内容。 日常使用时,还会更多的涉及 Spring Security Web 和 Spring Security OAuth2 中的东西,这篇博客的主要内容便是梳理一下这三者之间的关系,了解一下各自发挥的作用。 Spring Security Core Spring Security Core 在整个 Spring Security 框架中扮演着重要的角色,提供了有关于认证和权限控制相关的抽象。 然而,在使用的过程中,我们接触的更多的可能是和认证相关的抽象,比如: 通过 AuthenticationManager 提供了进行用户认证方法的抽象,允许通过 ProviderManager 和 AuthenticationProvider

MySQL 查询优化器(四)

别等时光非礼了梦想. 提交于 2019-12-03 04:02:08
2.5 LEFT JOIN查询 该测试主要用于测试LEFT JOIN与JOIN的处理逻辑上的差异,具体查询处理逻辑如下所示: JOIN:prepare阶段 setup_tables():同2.1测试。 setup_fields():同2.1测试。 setup_conds():同2.4测试。 JOIN:optimize阶段 simplify_joins():类似2.4测试。不同之处在于由于LEFT JOIN 使用的数据表不能为 NULL表,这是由是否有where条件过滤决定的。所以该过程会将LEFT JOIN外链接查询转化为多表联合查询操作,从而忽略LEFT JOIN的链接操作。 optimize_cond():同2.1测试。 make_join_statistics():同2.4测试。 choose_plan():同2.1测试。 greedy_search():同2.1测试。 best_extension_by_limited_search():同2.4测试。 get_best_combination():同2.4测试。 JOIN:exec阶段 以下同2.4测试。 Left join 嵌套( join )查询 , 执行SQL: SELECT student.std_id, std_name, std_spec, std_***, std_age, cur_name, cur