亚利桑那州立大学计算机科学专业分布式多处理器操作系统课程介绍

作者:

日期:2023-01-27

亚利桑那州立大学计算机科学专业分布式多处理器操作系统课程介绍

profile-avatar
万物云联网2023-01-27 10:45

亚利桑那州立大学计算机科学专业分布式和多处理器操作系统课程介绍

本课程将教授分布式系统的基本概念和原理以及开发分布式系统的实践技能。首先,本课程提供了对分布式系统及其设计目标和系统类型的初步探索。本课程讨论了分布式系统的架构,包括集中式和分散式架构,以及按照这些架构构建的分布式系统的重要实际示例。由于进程间通信是所有分布式系统的核心,因此将集中精力进行一系列强大的通信和协调。最后,本课程将详细讲解了解复制数据的一致性实际含义以及实现一致性的各种方法。

亚利桑那州立大学

本课程涵盖的具体主题包括:

  • 架构。
  • 协调。
  • 通信。
  • 一致性和重复性。

本课程涵盖的技术包括:

  • gRPC。

本课程所需的先验知识和技能:

本课程将非常具有挑战性,因此学习者应具备所需的先验知识和技能和/或在自己的时间学习它和必要的技术,它们包括:

熟练的数学技能和理论理解要求

  • 代数。
  • 线性代数。
  • 数据结构。
  • 计算机组织和体系结构。
  • 操作系统。
  • 计算机网络。

较强的应用能力要求

  • 熟练掌握以下编程语言中的至少一种:Python,Java,C#,C++。

熟练的经验要求

  • 具有阅读技术规范和文档的经验。
  • 虚拟机软件开发经验:创建、配置和运行虚拟机。

每周估计的工作量/时间承诺

您应该期望每周平均花费 18 到 20 小时在这门课程上。

技术要求

硬件

  • 麦克风。
  • 具有主要操作系统和以下系统的个人计算机:8 GB 内存或更高。x86-64 处理器。能够在此计算机上安装虚拟机。
  • 可靠、强大的互联网连接。
  • 网络摄像头。

软件/其他

  • 虚拟机软件,如VirtualBox。

亚利桑那州立大学计算机科学专业分布式多处理器操作系统课程的参考学习书籍介绍:

《了解分布式系统,第二版:每个开发人员都应该了解的大型分布式应用程序(Understanding Distributed Systems, Second Edition: What every developer should know about large distributed applications)》

《了解分布式系统,第二版:每个开发人员都应该了解的大型分布式应用程序》

学习构建分布式系统是很困难的,特别是如果它们是大规模的。这并不是说那里缺乏信息。您可以找到有关该主题的学术论文,工程博客,甚至书籍。问题在于,可用的信息分散在各个地方,如果你把它放在从理论到实践的范围内,你会发现两端有很多材料,但在中间却不多。


这就是为什么我决定写一本书,将分布式系统的核心理论和实践概念结合在一起,这样你就不必花费数小时来连接这些点。本书将引导您了解大规模分布式系统的基础知识,并提供足够的细节和外部参考来深入研究。这是我刚开始时希望存在的指南,基于我构建大型分布式系统的经验,这些系统可扩展到每秒数百万个请求和数十亿个设备。


如果你是一个在Web或移动应用程序后端工作的开发人员(或者想成为这样的开发者!),那么这本书就适合你阅读。 构建分布式应用程序时,您需要熟悉网络堆栈、数据一致性模型、可伸缩性和可靠性模式、可观测性最佳实践等。尽管您可以在不了解太多的情况下构建应用程序,但您最终将花费数小时来调试和重新构建它们,学习本可以更快、更少痛苦的方式获得的艰难教训。


但是,如果您有几年设计和构建可扩展到数百万用户的高可用性和容错应用程序的经验,那么本书可能不适合您。作为专家,你可能在寻找深度而不是广度,本书更多地关注后者,因为否则不可能涵盖该领域所有的知识点。
第二版是对上一版的完全重写。第二版的每一页都经过审查,并在适当的情况下进行了重新设计,同时首次涵盖了一些新课题。

《Python分布式机器学习:加速模型训练和分布式系统服务(Distributed Machine Learning with Python: Accelerating model training and serving with distributed systems)》

《Python分布式机器学习:加速模型训练和分布式系统服务》

构建和部署高效的数据处理管道,以便在弹性、并行模型训练或多租户集群和云中进行机器学习模型训练

主要特点

  • 加速模型训练和干扰,时间缩短数量级
  • 学习用于模型训练和服务的最新并行方案
  • 分布式模型训练和服务阶段瓶颈的详细研究

书籍简介

减少机器学习的时间成本可以缩短模型训练的等待时间,并加快模型更新周期。分布式机器学习使机器学习从业者能够将模型训练和推理时间缩短几个数量级。借助本实用指南,您将能够立即将您的 Python 开发知识用于启动并运行分布式机器学习(包括多节点机器学习系统)的实施。首先,您将探索分布式系统在机器学习领域的工作方式,以及如何将分布式机器学习应用于最先进的深度学习模型。随着您的进步,你将了解如何使用分布式系统来增强机器学习模型训练和服务速度。您还将掌握在本地集群或云环境中优化并行模型训练和服务管道之前应用数据并行和模型并行方法。在本书结束时,你将获得构建和部署高效的数据处理管道所需的知识和技能,以分布式方式进行机器学习模型训练和推理。

你将学到什么

  • 部署分布式模型训练和服务管道
  • 掌握TensorFlow和PyTorch中的高级功能
  • 缓解并行模型训练和服务期间的系统瓶颈
  • 在经典并行范式之上发现最新技术
  • 探索威震天-LM和网格-张量流中的高级功能
  • 使用最先进的硬件,如 NVLink、NVSwitch 和 GPU

这本书是为谁写的:

本书面向学术界和工业界的数据科学家、机器学习工程师和机器学习从业者。假设对机器学习概念和Python编程的工作知识有基本的了解。以前使用TensorFlow或PyTorch实现ML / DL模型的经验将是有益的。如果你有兴趣使用分布式系统来提高机器学习模型训练和服务速度,你会发现这本书很有用。

《区块链可扩展性及其在分布式系统中的基础 (Blockchain Scalability and its Foundations in Distributed Systems)》

《区块链可扩展性及其在分布式系统中的基础 》

这本实用的新书为个人提供了分布式计算基础知识,以比传统区块链更安全、更有效的方式相互连接。这些新形式的安全、可扩展的区块链有望取代中心化机构,在没有用户操纵或数据勒索的风险的情况下连接个人。

这里教授的技术包括增强区块链的安全性,并通过依靠观察来使区块链可扩展,即如果不解决共识问题,就没有区块链可以存在。首先,本书分析了最先进的共识协议,从而激发了对提供强大(确定性)保证的新共识协议族的需求。其次,本书提出了一系列经典区块链漏洞的教学,以说明更适合开放网络对抗环境的新颖设计的重要性。

这些尖端的解决方案通过Redbelly区块链设计进行了说明,并在现代大规模区块链环境中提供高性能。

本书的主题和特色:

  • 涵盖安全与分布式计算的结合,设计新一代区块链
  • 展示区块链如何为数十年的分布式系统研究提供新的视角
  • 提供有关在生产中使用区块链所需的行业安全性的说明
  • 以教学方式解释使区块链大规模高效的必要要素
  • 帮助填补高需求区块链领域的知识空白

这个独特的书籍包含设计安全和可扩展的区块链的构建块。因此,它致力于开发人员、应用程序设计师和计算机科学家,并且只需要数学和计算机科学的最低本科水平就能学习和阅读本书。

《实时系统:分布式嵌入式应用的设计原则(Real-Time Systems: Design Principles for Distributed Embedded Applications)》

《实时系统:分布式嵌入式应用的设计原则.》

“本书是一本关于安全关键型硬实时嵌入式系统设计的综合教材。它为系统和软件工程的平衡、集成处理提供了一个出色的示例,帮助读者解决高级实时系统设计中最困难的问题,例如确定性、组合性、时序和故障管理。本书是受嵌入式计算和软件影响的广泛学科的高级本科生和研究生的必备读物。它的概念清晰,解释的风格和示例使抽象概念为广大受众所接受”。----Janos Sztipanovits,主任E. Bronson Ingram 软件集成系统工程研究所杰出教授 范德堡大学

《实时系统》侧重于硬实时系统的设计,这些计算系统必须在所有预期的负载和故障场景中满足其时间规范。本书强调了分布式实时应用的系统方面,从整体的角度处理了实时、分布和容错等问题。学术界和工业界之间独特的思想和概念交叉融合导致包括许多来自工业界的有见地的例子,以解释现实世界中的基本科学概念。与第二版相比,本书还讨论了时间敏感网络通信标准的新发展,例如TSN和时间触发以太网。此外,本版书籍还包括关于云和雾计算实时方面的新章节。

本书是实时嵌入式系统或网络物理系统高级本科或研究生课程的标准教科书。它解决实时问题的实用方法,以及大量的总结练习,使其成为研究人员和从业者的绝佳选择。

《可靠且节能的流多处理器系统(Reliable and Energy Efficient Streaming Multiprocessor Systems)》

《可靠且节能的流多处理器系统》

本书讨论了流多处理器系统的分析、设计和优化技术,同时满足给定的面积、性能和能耗预算。作者描述了特定于应用程序和通用流系统的设计流程。覆盖范围还包括在运行时(当应用程序正在执行时)使用机器学习进行热优化。本书中描述的设计流程扩展到热和能源优化,多个应用程序按顺序并发运行。

《用C/C++设计和实施虚拟机(Virtual Machine Design and Implementation C/C++)》

《用C/C++设计和实施虚拟机》

随着多平台生产系统和以网络为中心的计算的出现,软件行业见证了虚拟机的复兴。软件工程师没有致力于任何单一的操作系统,而是接受了与平台无关的开发工具和运行时环境。《C/C++ 中的虚拟机设计和实现》深入探讨了功能齐全的虚拟机的构造和基础理论以及一整套相关开发工具。
本书首先讨论了作者的HEC虚拟机的理论基础及其基本设计目标,然后是关于虚拟机及其调试器的实现的部分。最后一部分重点介绍HEC汇编程序,包括其与本机操作系统的接口、中断、汇编语言以及如何实现面向对象的构造。此外,还讨论了将 HEC 虚拟机移植到其他平台。为了帮助实现这一目标,作者提供了开发过程的关键路径分析,以便读者可以构建自己的虚拟机和整个操作系统。

《现代计算机体系结构和组织:学习 x86、ARM 和 RISC-V 体系结构以及智能手机、PC 和云服务器的设计,第 2 版(Modern Computer Architecture and Organization: Learn x86, ARM, and RISC-V architectures and the design of smartphones, PCs, and cloud servers, 2nd Edition)》

《现代计算机体系结构和组织:学习 x86、ARM 和 RISC-V 体系结构以及智能手机、PC 和云服务器的设计,第 2 版》

当前和未来处理器和计算机体系结构的严肃实用指南,使您能够设计计算机系统并在各个领域开发更好的软件应用程序;

本书的主要特点:

  • 通过研究晶体管、逻辑门和时序逻辑来了解数字电路
  • 了解 x86、x64、ARM 和 RISC-V 处理器、iPhone 和高性能游戏电脑的架构
  • 研究网络安全、比特币和自动驾驶汽车领域的设计原则

本书的内容简介:

您是软件开发人员、系统设计师或计算机架构专业的学生,正在寻找对数字设备架构的系统介绍,但被现代系统的复杂性所淹没吗?本分步指南将教您现代计算机系统如何在实际示例和练习的帮助下工作。您将深入了解处理器的内部行为,直至电路级别,并了解硬件如何执行以高级语言开发的代码。

本书将教你计算机系统的基础知识,包括晶体管、逻辑门、时序逻辑和指令流水线。您将了解现代处理器架构和指令集的详细信息,包括 x86、x64、ARM 和 RISC-V。您 将 了解 如何 在 低成本 FPGA 板 中 实现 RISC-V 处理 器, 并 编写 量子 计算 程序 并 在 实际 的 量子 机 上 运行 它。

本版本已更新,涵盖了网络安全、区块链和比特币挖矿以及自动驾驶汽车等重要领域背后的架构和设计原则。

在本书结束时,您将对现代处理器和计算机体系结构以及这些技术可能采取的未来方向有透彻的了解。

通过本书您将能学到什么:

  • 了解晶体管技术和数字电路的基础知识
  • 探索流水线和超标量处理背后的概念
  • 在低成本 FPGA 中实现完整的 RISC-V 处理器
  • 了解用于实现虚拟机的技术
  • 了解金融交易处理等安全关键型计算应用程序
  • 快速了解区块链和比特币挖矿中使用的硬件架构
  • 探索自导航车辆计算架构的功能
  • 编写量子计算程序并在真正的量子计算机上运行它

这本书是为谁写的:

本书适用于软件开发人员、计算机工程专业学生、系统设计师、逆向工程师以及任何希望了解现代计算机系统背后的架构和设计原则的人:从小型嵌入式设备到仓库大小的云服务器场。对计算机处理器的一般了解是有帮助的,但不是必需的。

《操作系统调查(Survey of Operating Systems)》

《操作系统调查》

McGraw-Hill Education很自豪地推出第七版Jane and Charles Holcombe的经典书籍《操作系统调查》。本版书籍介绍了使用最广泛的桌面操作系统(包括Windows,Apple OS X和Linux),使用大量插图和实践活动为IT领域的成功奠定基础,使学生能够适应不同的工作情况并解决问题。新版本包含有关移动操作系统的更新信息,以及有关操作系统外围主题的章节,例如云中的文件管理 - 以前仅作为在线内容提供。

《超级计算机和高性能计算的操作系统(Operating Systems for Supercomputers and High Performance Computing)》

《超级计算机和高性能计算的操作系统》

很少有著作比这本关于操作系统前沿方向的最新论文更及时和关键地推动高性能计算的发展。它是这个快速发展的领域中许多领导者的第一手产品,可能是最全面的产品。

这本重要的新书巧妙地介绍了推动高性能计算操作系统设计未来的主要替代概念。特别是,它描述了主导TOP500榜单的Linux和Unix等单片操作系统的主要进步。它还展示了轻量级内核的最新技术,这些内核在失去通用性的情况下表现出高效率和可扩展性。最后,这项工作展望了将全服务功能与轻量级内核操作相结合的混合结构的最有前途的策略。有了这个,这项新工作很可能会在几乎所有以任何方式从事高性能计算多学科的人的书架上找到自己的方式。

《计算机网络:自上而下的方法(Computer Networking: A Top-Down Approach)》

《计算机网络:自上而下的方法》

一种自上而下的分层计算机网络方法。
在计算机网络文本中,流行的第8版《计算机网络:自上而下的方法》建立在作者通过“自上而下的方式”分层方法教授这一复杂主题的悠久传统之上。本书从应用层向下延伸到物理层,通过在学习网络早期接触重要概念来激励学生。本书侧重于互联网和网络的基本重要问题,为计算机科学和电气工程专业的学生提供了良好的基础,而无需广泛的编程或数学知识。第 8 版已更新,以反映网络领域最重要和令人兴奋的最新进展,包括软件定义网络 (SDN) 的重要性以及 4G/5G 网络及其支持的移动应用的快速采用。

《使用 gRPC 的 .NET 中的微服务通信:.NET 开发人员为分布式应用构建高效通信机制的实用指南(Microservices Communication in .NET Using gRPC: A practical guide for .NET developers to build efficient communication mechanism for distributed apps )》

《使用 gRPC 的 .NET 中的微服务通信:.NET 开发人员为分布式应用构建高效通信机制的实用指南》

了解如何逐步在 .NET 平台上实现 gRPC,并介绍如何在 .NET 上使用 gRPC,包括基础知识、用例和最佳做法

本书的主要特点:

  • 探索 .NET 上 gRPC 实现的所有方面,从最基本的功能到高级功能
  • 了解使用 gRPC 的最佳做法,以确保应用程序尽可能高效且可缩放
  • 确定 gRPC 何时是最适合作业的工具,何时不是

本书的内容简介

在此实用指南中探索 gRPC 的功能,以便使用 HTTP/2 协议在微服务之间更快地进行通信,该指南演示如何在 .NET 平台上实现 gRPC。

gRPC 是微服务之间通信的最有效协议之一,也相对容易实现。但是,其官方文档通常是零散的 and.NET 开发人员可能会发现很难识别在 gRPC 消息中的 C# 数据类型和字段之间进行映射的最佳方式。本书将解决这些问题以及更多内容。从 gRPC 的基础知识开始,你将了解如何在 .NET 应用中使用它。你将探索性能的最佳做法,并重点介绍如何缩放 gRPC 应用。熟悉 gRPC 支持的不同调用类型的内部工作原理后,你将逐步了解如何通过应用身份验证和授权来保护 gRPC 终结点。

通过详细的解释,这本 gRPC .NET 书籍将向您展示 Protobuf 协议如何通过仅包含必要的数据来有效地发送消息。在转换 C# 数据类型和 Protobuf 中可用的数据类型时,您再也不会感到困惑。

在本书结束时,你将获得实用的 gRPC 知识,并能够在 .NET 应用中使用它来实现微服务之间的直接通信。

通过本书你将学到什么:

  • 掌握 gRPC 和 Protobuf 的基础知识
  • 调试 .NET 应用程序内的 gRPC 组件以查找和修复错误
  • 了解 gRPC 最佳做法,例如性能增强
  • 通过应用已知类型在 gRPC 和本机 C# 代码之间进行有效转换
  • .NET 应用程序内的安全 gRPC 通信
  • 了解如何通过应用日志记录和指标来监视 .NET 上的 gRPC

这本书是为谁写的

本书面向使用微服务并正在寻找高效解决方案来促进使用 gRPC 的服务之间通信的 NET 开发人员。任何熟悉微服务体系结构并了解 .NET Core 基础知识(但不一定了解 gRPC)的人也会发现本书很有用。

《Oracle VM VirtualBox 入门(Getting Started with Oracle VM VirtualBox)》

《Oracle VM VirtualBox 入门》

使用VirtualBox从头开始构建自己的虚拟环境

本书的内容概述

  • 了解如何安装,配置和管理VirtualBox。
  • 分步指南,将教您如何从头开始构建自己的虚拟环境
  • 发现虚拟盒子的高级功能

本书的详细介绍

Oracle VM VirtualBox是一个开源的跨平台虚拟化软件包。桌面虚拟化软件使您能够在虚拟环境中在计算机上安装和运行多个操作系统,而不会干扰主机操作系统。 VirtualBox 可帮助您创建一个完全隔离的虚拟环境,从而防止病毒、恶意软件或任何其他类型的威胁从来宾到主机的传播。

Oracle VM VirtualBox入门是一个分步指南,旨在帮助您了解虚拟化的概念并开始在您的系统上运行VirtualBox。本书将向您展示如何安装,配置和管理VirtualBox。它还将向您展示如何将Oracle Enterprise Linux安装为来宾VM,并利用VirtualBox的基本功能。

本书将向您展示如何在桌面上安装和配置VirtualBox。然后,您将学习如何创建来宾计算机以及启动、停止、删除和克隆来宾计算机等功能。本书还将向您介绍一些高级功能,如快照、克隆和虚拟机组。

然后,您将了解如何将Oracle Enterprise Linux 6.0安装为来宾操作系统,以及如何在Windows和Linux操作系统中共享文件夹。然后,您将了解VirtualBox上可用的不同网络选项,并发现它们的工作原理。最后,本书将向您介绍VirtualBox中可用的不同虚拟存储选项,并向您展示它们的工作原理。

你将从这本书中学到什么

  • 在您的桌面上安装 VirtualBox 并创建一个来宾虚拟机
  • 发现快照、克隆和虚拟机组等高级功能
  • 将 Oracle Enterprise Linux 6.0 安装为来宾操作系统
  • 探索VirtualBox中可用的不同网络和存储选项
  • 了解 VirtualBox 中可用的内存管理技术

本书的写作方法

分步指南,将向您展示如何安装,配置和管理VirtualBox。

这本书是为谁写的

本书面向想要学习如何设置虚拟机的系统管理员、技术架构师和虚拟化爱好者。需要了解 Linux 环境。不需要VirtualBox的先前经验或虚拟化知识。