分布式系统概念和设计——Mach实例研究

这篇具有很好参考价值的文章主要介绍了分布式系统概念和设计——Mach实例研究。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

分布式系统概念和设计

Mach实例研究

Mach主要抽象概述
  • 任务
    • 一个Mach任务是一个执行环境
    • 主要包括一个被保护的地址空间和一个内存管理的权能集合
    • 这些权能主要用于访问端口
  • 线程
    • 任务可以包含多个线程
    • 在共享内存的多处理器中,属于同一个任务的线程可以在不同的处理器上并行执行
  • 端口
    • 在Mach中,一个端口是一个具有相关消息队列的单点单方向通道
    • Mach程序员不能直接访问这些端口,端口也不是任务的一部分
    • 程序员可以获得端口权限处理权柄,这里权能是读取和写入端口数据的能力
  • 端口集
    • 一个端口集是属于同一任务的接收权限的端口集,可以用于从端口集中任意端口接收消息。
    • 和端口组不同,端口组是广播消息的目的地集合
  • 消息
    • Mach中的消息除了包含数据外,还包含端口权限
    • 内核采用存储管理技术在任务间高效的传输消息数据
  • 设备
    • 向文件服务器这样运行在用户级的服务器一定要访问设备
    • 内核为底层设备提供了底层接口
  • 内存对象
    • 在一个Mach任务的虚拟地址空间中,没一个区域都对应一个内存对象
    • 这种内存对象通常是在内存外实现的
    • 当时当内核执行虚拟内存分页时,就会访问内存对象,内核外的内存对象
    • 一个内存对象是一个抽象数据类型的实例,这一抽象数据类型包含了获取和存储
    • 当线程试图引用相应区域的地址而引发内存页缺失时就需要访问数据的操作
  • 内存缓存对象
    • 对于每一个被映射的内存对象,系统中存在一个内核管理的对象
    • 这一对象包含对存在于主存中相应区域的存储页的缓存,称为内存缓存对象
    • 它支持实现内存对象的外部分页器所需要的操作
端口命名和保护
  • Mach用端口来区别每个资源
  • 访问资源的请求会通过消息传递到某个端口上
  • Mach会让服务器管理很多端口
  • 如何保护资源不被非法访问的问题等同于如何保护响应的端口不被非法的读写数据
  • 在Mach中通过内核控制对端口权能的获取来保护端口的同时也通过网络服务器控制从网络控制信息的到达保护
  • 端口权能:
    • 发送权能:发送端口数据权限
    • 发送一次权限:内核收到发送消息后回收该权限
    • 接收权限:允许进程从某端口接收数据的权限

分布式系统概念和设计——Mach实例研究

  • Mach的命名和保护方案使系统可以通过给定的用户级标识快速访问本地的消息队列
  • 缺点:
    • 当任务之间以消息的形式传递权能的时候,内核的开销会加大
    • 至少在接收方的任务命名空间及其核心表空间内,系统必须为发送权限分配一个本地的名字
    • 从安全角度考虑,网络服务器传输的端口权限信息必须经过加密。这样才能防止窃听方式的攻击
任务和线程
  • 一个任务是一个执行环境,任务自己不能自动执行任何动作。只有任务中的线程启动任务执行;
  • 当我们说任务执行某动作,我们说的是任务中的线程执行了某个动作;
  • 与任务直接相关的资源是任务的地址空间,线程,端口权限,端口集以及用于查找端口权限和端口集的本地名字即可
创建一个新任务

端口的自举

新任务的空间要么空

线程有子任务创建

调用内核操作

当任务被创建后,系统就赋予了一个内核端口

系统调用:

  • 直接内核陷入实现
  • 通过将消息传递到内核的端口上来实现
    • 优点,允许远程任务和线程像本地操作一样
    • 是网络透明的
异常处理

除了内核端口外,任务和线程还可以拥有一个异常端口

当异常发生时,内核向异常端口发送异常信息来报告该异常

接收这消息的线程可能试图解决这一问题(例如当地址空间越界,可以增大线程栈)

如果内核找到一个异常端口并且接收到已经成功处理应答,就会重新启动引发异常的线程,否则将终止。

任务和线程管理

在内核接口中有大量(过程,processes)的关于任务和线程的创建和管理

过程需要指导端口权限,并且消息传递系统能调度来请求目标内核的操作

系统可以分别这只调度优先级,线程和任务可以被挂起,解挂,终止

并且系统可以在外部设置,读出,或修改线程的执行状态

通信模型
消息

消息包含一个固定大小的头部,后面是一个变长的数据项列表

分布式系统概念和设计——Mach实例研究

端口

一个Mach端口包含一个消息队列,具有接收权限的任务可以动态的设置消息队列的长度。

这个功能能使接受者实现某种形式的流控制。

当一个线程使用正常的发送权限向一个端口发送消息,而这个端口的消息满了,这个线程只能阻塞,直到有空为止。

发送端口权限

当消息中包含端口发送权限时,消息接受者就获得这一端口的发送权限

当接收权限被传输时,发送消息的任务自动放弃了这一端口的接收权限

因为同一端口接收权限在同一时刻的拥有者不能大于1个

监控链接

当发送消息和接收消息无效时,内核需要通知发送者和接受者。

内核记录了给定端口的发送权限数据和接受权限数目。

如果没有任务拥有特定端口的接收权限,那么本地任务端口命名中的所有发送权限将成为死名

当一个发送者试图指向一个不存在的端口名字,内核返回错误

通信实现
透明消息传递

端口只局限于内核上,从外部增加一层抽象——网络端口

网络端口的存在,消息可以在网络上传播——每个网络端口都有一个全局的唯一标识,只有网络服务器管理

分布式系统概念和设计——Mach实例研究

开发性和协议驱动程序
传输协议
TCP/IP

TCP/IP通信模型是一种基于互联网的通信模型,由两个协议组成。TCP(Transmission Control Protocol,传输控制协议)是面向连接和可靠的传输协议,负责将数据在网络中进行分段、传输、重组、校验等操作。而IP(Internet Protocol,互联网协议)则是网络层协议,负责将数据在网络中进行路由选择、分组传输和转发等操作。

TCP/IP模型由四个层次组成,自下而上分别为:

  1. 网络接口层:负责将数据帧(Frame)转换为比特流(Bit stream)进行传输,同网卡进行交互。
  2. 网络层:负责将数据报(Packet)在网络中进行路由,将数据从源地址发送到目标地址。
  3. 传输层:TCP 和 UDP 使用这一层进行数据传输。TCP 为可靠传输,保证数据不会丢失或损坏,使用连接的方式进行通信;UDP 为不可靠传输,速度快,但无法保证数据传输的可靠性,采用无连接的通信方式。
  4. 应用层:该层为用户提供各种丰富的网络应用服务,如HTTP、FTP、SMTP和TELNET等协议。

TCP/IP模型通常被称为互联网模型,并且它是将TCP/IP协议族分割成了多个抽象层次的模型,每个层次能够提供自己的一系列功能

LAN

在局域网(Local Area Network,简称 LAN)中,有多种请求应答的交互模型,其中常见的有以下几种:

  1. CSMA/CD(Carrier Sense Multiple Access with Collision Detection)模型:是局域网中最为常见的交互模型,应用于以太网(Ethernet)等技术。它利用信道监听(Carrier Sense)机制,即网络设备在发送数据前需先监听网络信道,如果信道上没有数据传输,则发送数据;否则等待一定时间后再次监听信道,如果仍然有数据传输,则判断为冲突(Collision),发送设备需要停止发送并随机等待后再次发送。
  2. Token Ring 模型:是在 Token Ring 网络中应用的交互模型。在这种模型中,所有设备通过一种名为 Token 的信息标记轮廓式地传递数据。每个设备只有在收到 Token 后才可以发送数据,一个设备发送完数据后将 Token 发送给下一个设备。
  3. Polling 模型:是一种点对点的交互模型,在这种模型中,主机(Server)或中央控制器向目标设备发出查询命令,目标设备接收到查询命令后进行相应操作并返回查询结果。这种模型的效率较低,且必须有一个专门的控制器来调度多个设备的查询请求,因此在现代局域网中很少使用。
  4. Multicast 模型:是一种点对多点的交互模型,在这种模型中,源设备只需要发送一次数据,就可以将数据同时发送给多个目标设备,提高了通信效率。这种模型通常应用于视频、音频等多媒体数据传输场景中。

总之,不同的局域网交互模型有各自的优缺点和适用场景,需要根据具体的网络环境和应用需求选择合适的交互模型。

用户级网络驱动程序

内核为每一个设备提供一个抽象,包含一个将设备控制器的寄存器映射到用户空间的操作

以太网的情况:

  • 控制器使用的寄存器和包缓冲区可以被映射到网络服务器的地址空间内
  • 当中断发生时,在内核中运行的特殊代码会唤醒用户线程,这一线程可以处理中断
内存管理
地址空间结构

每个区域是一段具有公共属性集的连续的逻辑地址空间

这些属性包含访问许可(读写执行),还包含可伸缩

系统允许栈空间向低地址扩展,堆可以向高空间地址扩展

内存共享:继承和消息传递

Mach通过内存继承机制,来允许UNIX fork机制的一般化

一个新的任务是从一个另一个任务创建的,这个任务是一个蓝图

从蓝图继承过来的区域包含同样的地址范围

写时复制

写时复制(Copy-On-Write,COW)机制是一种能够优化复制操作的技术。其基本思想是在内存中复制数据之前不会真正进行复制,而是等到对数据进行修改操作时以“复制一份副本”的方式,使修改后的数据可供使用,而原有数据仍保持不变。写时复制机制可以避免不必要的数据复制,节省内存空间,同时还可以提高系统的性能和并发性能,降低锁冲突的影响,提高系统的可扩展性。

写时复制机制通常应用于以下场景:

  1. 文件系统中,常用于快照(Snapshot)技术。快照是文件系统的一项重要功能,它能够记录文件系统的状态并保存在特定时间点上的数据版本。写时复制技术可以在实现快照功能时避免整个文件系统的拷贝操作。
  2. 操作系统中,常用于进程(Process)复制。当需要创建一个新的进程时,写时复制机制会创建一个共享地址空间,以避免对进程空间的一次完全的复制。只有当进程对某个地址进行修改时,才会复制原有地址中的内容并创建一个新的共享地址空间。
  3. 数据库系统中,常用于高可用性的实现。在数据库服务器的主从备份(Master-Slave Replication)机制中,主服务器会将新写入的数据同步至备份服务器。在使用写时复制机制时,从服务器只有在收到主服务器发来的新数据后,才会进行一份完整的数据复制操作。

总之,写时复制机制是一个技术成熟、广泛应用的技术,它可以在处理大量数据和需要进行复制的场景中发挥作用,提高系统的性能、可扩展性和可靠性。文章来源地址https://www.toymoban.com/news/detail-491468.html

到了这里,关于分布式系统概念和设计——Mach实例研究的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 读发布!设计与部署稳定的分布式系统(第2版)笔记21_实例层之配置

    4.2.1.1. 提供环境变量或文本blob来注入配置信息 4.2.1.2. 对大多数小团队来说,注入配置信息更为适用 4.2.2.1. 将配置信息注入镜像的方法通过配置服务完成 4.2.2.2. 实例会对配置服务产生严重的依赖 4.2.2.2.1. 配置服务只要一中断,就立即会引发严重级别高达1级的事故 4.2.2.2

    2024年02月12日
    浏览(44)
  • 基于区块链的分布式存储系统开发论文研究

    论文引用:[1]蔡维德,郁莲,王荣,刘娜,邓恩艳.基于区块链的应用系统开发方法研究[J].软件学报,2017,28(06):1474-1487. 1. 区块链介绍   区块链是由多独立节点参与的分布式数据系统,也可以理解为分布式账簿(distributed ledger technologt,简称DLT),由这些节点共同维护,它的特点是

    2024年02月12日
    浏览(60)
  • 分布式系统架构中的相关概念

    1.1、衡量网站的性能指标 响应时间:指执行一个请求从开始到最后收到响应数据所花费的总体时间。 并发数:指系统同时能处理的请求数量。 并发连接数:指的是客户端向服务器发起请求,并建立了TCP连接。每秒钟服务器连接的总TCP数量 请求数:也称为QPS(Query Per Second) 指

    2024年04月26日
    浏览(45)
  • 微服务分布式springcloud研究生志愿填报辅助系统

    本文讲述了研究生志愿填报辅助系统。结合电子管理系统的特点,分析了研究生志愿填报辅助系统的背景,给出了研究生志愿填报辅助系统实现的设计方案。 本论文主要完成不同用户的权限划分,不同用户具有不同权限的操作功能,在用户模块,主要有用户进行注册和登录,

    2024年03月18日
    浏览(43)
  • Git 分布式版本控制系统基本概念和操作命令

    目录 Git 基本概念 功能特点 工作流程 操作命令 新建代码库 配置 增删文件 代码提交 分支 标签 查看信息 远程同步 撤销 其他 小结 Git 是一个开源的分布式版本控制系统,用于跟踪文件的变更历史。它最初由 Linux Torvalds 设计,用于 Linux 内核的开发,但由于其强大的功能和灵

    2024年03月27日
    浏览(65)
  • 分布式系统架构设计之分布式缓存技术选型

    随着互联网业务的快速发展,分布式系统已经成为了解决大规模并发请求、高可用性、可扩展性等问题的重要手段。在分布式系统中,缓存作为提高系统性能的关键技术,能够显著降低数据库负载、减少网络延迟、提高数据访问速度。当面对大量并发请求时,如果每次都直接

    2024年02月03日
    浏览(118)
  • 博弈论在电动车和电网系统中分布式模型预测控制研究(Matlab代码实现)

    💥💥💞💞 欢迎来到本博客 ❤️❤️💥💥 🏆博主优势: 🌞🌞🌞 博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️ 座右铭: 行百里者,半于九十。 📋📋📋 本文目录如下: 🎁🎁🎁 目录 💥1 概述 📚2 运行结果 🎉3 文献来源 🌈4 Matlab代码、数据、文章

    2024年02月05日
    浏览(49)
  • 【系统架构】分布式系统架构设计

    分布式系统是指由多个计算机节点组成的一个系统,这些节点通过网络互相连接,并协同工作完成某个任务。 与单个计算机相比,分布式系统具有更高的可扩展性、可靠性和性能等优势,因此广泛应用于大规模数据处理、高并发访问、分布式存储等领域。 分布式系统的设计

    2024年02月15日
    浏览(56)
  • 分布式系统架构设计之分布式数据存储的扩展方式、主从复制以及分布式一致性

    在分布式系统中,数据存储的扩展是为了适应业务的增长和提高系统的性能。分为水平扩展和垂直扩展两种方式,这两种方式在架构设计和应用场景上有着不同的优势和局限性。 水平扩展是通过增加节点或服务器的数量来扩大整个系统的容量和性能。在数据存储领域,水平扩

    2024年02月03日
    浏览(76)
  • 分布式系统架构设计之分布式数据存储的安全隐私和性能优化

    在前面分布式系统部分,有对安全性做过介绍,如前面所述,在分布式系统中,确保系统的安全性和隐私是至关重要的。安全性关注系统的防护措施,而隐私是关注用户的个人信息保护。 身份认证:确保用户和系统组件的身份是合法的,通过通过密码、令牌或证书实现 授权

    2024年02月02日
    浏览(61)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包