机器学习
机器学习 监督学习(Supervised...
基于云原生技术的软件开发
云原生简介及Linux入门 参考 《操作系统:设计与实现》 《鸟哥的Linux私房菜》 《计算机网络》 《Kubernetes in Action》 Kubernete源码 云计算与云原生 Docker Docker简介 Docker概念与用途 Docker 可以将应用、配置和环境打包,形成一个独立的类似于 iOS APP 形式的**「应用」**。 此「应用」可以直接分发到任意一个支持Docker 的环境中,通过简单的命令即可运行。 提供一次性的环境 比如,本地测试他人的软件、持续集成的时候提供单元测试和构建的环境。 提供弹性的云服务 因为 Docker 容器可以随开随关,很适合动态扩容和缩容。 组建微服务架构 因为 Docker 容器非常地轻量,在一台机器通过运行多个容器就可以跑多个服务。 用户计算机的环境都不相同,你怎么知道自家的软件,能在哪些机器跑起来? 用户必须保证两件事:操作系统的设置,各种库和组件的安装。只有它们都正确,软件才能运行 举例来说,安装一个 Python 应用,计算机必须有 Python...
编译原理2025
The Compilers’ Front End Regex -> NFA -> (Min) DFA Regex describes a language Example: $ (𝑎|𝑏)^∗c$ Given two regex: $r_1,r_2$, the following are regex: $𝐿(𝑟_1 | 𝑟_2) =𝐿(𝑟_1)∪𝐿(𝑟_2)$ $𝐿(r_1r_2) =𝐿(𝑟_1)𝐿(𝑟_2)$ $𝐿(𝑟_1^∗) = (𝐿(𝑟_1))^∗$ $𝐿((𝑟_1)) = 𝐿(𝑟_1)$ Primitive regex ⭐Build the NFA for the regex Rules $L_1 ∪ L_2$ $L_1L_2$ $L_1^R$ $L_1^*$ $\overline{L_1}$ $L_1 \cap L_2 = \overline{\overline{L_1} \cup...
软件工程与计算Ⅱ复习提要
本文参考自eaglebear2002的博客软件工程与计算II-24-复习提纲 | EagleBear2002 的博客 第一、二章 软件工程概论 软件工程(名词解释) 应用系统的、规范的、可量化的方法,来开发、运行和维护软件,即将工程应用到软件。 对(1)中各种方法的研究。 从1950s—2000s之间的特点(简答) 1950s:科学计算;以机器为中心进行编程;像生产硬件一样生产软件。 1960s:业务应用(批量数据处理和事物计算);软件不同于硬件;用软件工艺的方式生产软件。 1970s:结构化方法;瀑布模型;强调规则和纪律。它们奠定了软件工程的基础,是后续年代软件工程发展的支撑。 1980s:追求生产力最大化;现代结构化方法/面向对象编程广泛应用;重视过程的作用。 1990s:企业为中心的大规模软件系统开发;追求快速开发、可变更性和用户价值;web应用出现 2000s:大规模web应用;大量面向大众的web产品;追求快速开发、可变更性、用户价值和创新。 第三、四章...
中国近现代史纲要
鸦片战争 鸦片战争爆发的原因 中国长期处于高度中央集权的封建君主制度中,到了清代康乾盛世之后,封建社会就走向了末路。经济上生产凋敝、土地高度集中。 英法美等国家早早通过资产阶级革命建立了资产阶级政权,随后又爆发了工业革命,经济迅速发展,促进了其对外扩张。 为适应西方资本主义的发展要求,殖民主义诞生。在进入帝国主义阶段后,资本输出又成了殖民剥削的重要形式。 英国对华贸易长期处于入超状态,英国工业品收到了中国自然经济和闭关政策的抵抗。为了改变贸易逆差,英国殖民者开始走私鸦片。随后清政府实施了禁鸦政策,使英国更加吃紧。英国及其一众资本企业开始蓄谋武装侵略中国。 英国刚刚经历两次经济危机,迫切的需要一场战争来转移国内视线和摆脱危机。 鸦片战争的过程 1840.6 封锁广东海域 1840.8 一路北上至天津,与清政府谈判后同意回广东交涉 1840.11 强占香港 1841.1 道光对英宣战 1841.2 虎门沦陷 1841.4 炮轰广州城,8月攻破厦门 1841.10 浙江作战 1842.8 ...
神经网络测试与修复策略综述
深度神经网络测试 王赞,闫明,刘爽,陈俊洁,张栋迪,吴卓,陈翔.深度神经网络测试研究综述.软件学报,2020,31(5):1255−1275. 关键词: 深度神经网络;测试覆盖;测试用例生成 问题 开发人员仅编写代码来规定深度学习系统的网络结构,其内部逻辑则由训练过程获得的神经元连接权值所决定.因此,针对传统软件的测试方法及度量指标无法直接被移植到深度神经网络系统上. 随着其广泛应用,深度神经网络系统的质量问题也被重点关注.由于深度神经网络的结构复杂,数据中微小的扰动,即便无法被人类发现,却可能造成深度神经网络做出错误的判断,进而输出错误的结果.更进一步,由于深度神经网络越来越多地被部署在自动驾驶汽车系统、恶意软件检测系统以及飞机碰撞避免系统等安全攸关领域,对这类 DNN 系统进行充分的测试并保证其质量至关重要. DNN测试度量指标 测试覆盖指标 传统软件测试的覆盖准则(如代码覆盖)无法直接应用于DNN,因其内部逻辑由数据驱动而非手工编码。研究者提出以下覆盖标准: 覆盖测试:Testing...
数据管理基础
一、计算、数据与数据管理 基本概念 计算 = 算法 + 数据 数据结构 ( 数组,链表,堆,栈,树,图…… ) ⭐数据管理: 类型 管理者 对象 共享程度 独立性 结构化 控制能力 人工管理 用户(程序员),数据不保存 某一应用程序 无共享、冗余度极大 不独立,完全依赖程序 无结构 应用程序自己控制 文件系统 文件系统,数据可长期保存 某一应用程序 共享性差、冗余度大 独立性差 记录内有结构,整体无结构 应用程序自己控制 数据库系统 数据库管理系统 现实世界,整体 共享性高、冗余度小 物理独立性和逻辑独立性 整体结构化 数据库管理系统控制 共享数据: 基于二进制在多个应用之间共享数据; 基于文本在多个应用之间共享数据(K/V, JSON,...
操作系统-并发程序设计
六、并发程序设计 了解程序的并发性与并发程序设计 掌握临界区互斥及其解决方案 熟练使用PV进行程序设计 掌握Hoare管程 掌握消息传递 并发进程 概念 程序设计的一般习惯是顺序程序设计,顺序程序设计具有顺序性、封闭性、确定性、可再现性。 多道程序设计允许多个进程并发执行。OS 保证按照“顺序程序设计”方法编制的程序在并发执行时不受影响,如同独占计算机。这些按照顺序程序设计思想编制的进程在中并发执行属于无关的并发进程。 使一个程序分成若干个可同时执行的程序模块的方法称 并发程序设计(concurrent programming) 并发性、共享性、交往性 制约关系 无关的并发进程:一组并发进程分别在不同的变量集合上运行 并发进程的无关性是进程的执行与时间无关的一个充 分条件,又称为 Bernstein 条件 Pi:进程,R:读,W:写 $$ ((R(p1)∩W(p2))∪(R(p2)∩W(p1))∪(W(p1)∩W(p2))= \emptyset $$ 则并发进程的执行与时间无关 交往的并发进程:一组并发进程共享某些变量,...
操作系统-设备管理、文件管理
四、设备管理 复习、了解I/O设备、I/O控制方式 掌握I/O缓冲区的设计 掌握磁盘调度 掌握I/O软件系统的设计与实现 掌握虚拟设备 基础 设备管理概述 I/O设备 信息传输视角 输入设备 输出设备 输入输出设备 交互功能视角 人机交互设备 存储设备 机机通信设备 设备管理视角 字符设备 块设备 网络设备 I/O操作:内存和外设间的信息传送操作 设备管理的目标:解决设备和CPU速度的不匹配,使主机和设备充分并行工作,提高设备使用效率 实现层次:I/O硬件、I/O软件 I/O控制方式 为达到模块化和通用性的设计目标,通常分开设置设备的机械部件和电子部件,电子部件称为设备控制器 设备控制器:CPU与设备之间的接口 I/O控制的方式: 轮询:重复查询直至设备就绪 中断:处理器向控制器发出具体I/O...
操作系统-概览、处理器管理、进程管理
一、计算机系统概览 了解计算机硬件与操作技术的发展 概念: 分时操作系统、实时操作系统 掌握多道程序设计的概念 掌握计算机系统的组成 了解计算机体系结构与计算机总线、处理器、存储器、I/O设备以及I/O控制方式 掌握计算机系统的层次结构 计算机系统的组成 分为硬件子系统和软件子系统 计算机硬件系统 中央处理器 运算单元 控制单元 主存储器 外围设备 输入设备 输出设备 存储设备 网络通信设备 总线 存储程序计算机(冯诺依曼):以运算单元为中心,控制流由指令流产生;采用存储程序原理,面向主存组织数据流;主存是按地址访问、线性编址的空间;指令由操作码和地址码组成;数据以二进制编码。 总线:各功能部件的公共通信干线,包括一组控制线、一组数据线、一组地址线。分为内部(CPU)总线、系统总线、通信总线。(南北桥) 中央处理器(CPU):运算核心(Core) 和控制单元( Control...