首页 > 其他分享 >状态机——看待计算机系统的眼光

状态机——看待计算机系统的眼光

时间:2023-03-18 19:33:57浏览次数:32  
标签:计算机系统 存储 看待 状态 系统 通信 状态机 计算 CPU

一句话:系统本身就是一个计算+存储系统,该系统为其他软件系统提供共同的抽象概念和运行环境,不同系统之间存在通信关系。

基本组成与三大任务

计算机要完成的三大任务就是存储,计算和通信。基于此目的,我们有磁盘,内存,CPU,网卡等各种各样的底层设备,操作系统将设备抽象为概念之后,三大目的显得更加的“纯粹”:我们所面对的是抽象后的概念。

存储:系统状态本身

状态机的本质就是状态和状态的迁移。谈迁移就必须要有状态本身。有这么一个陷阱问题:计算机的计算和存储两大功能哪个更重要一些?其实答案应该是同样重要,或者存储稍微重要一点,只因为“先有状态,才有迁移”。

持久化的存储都可以看作是状态,比如各种磁盘,还有最近比较火的持久化内存PMem(在数据库领域大放异彩)等。这些掉电不丢失的“存储器”,都是计算的前提和基础。

如果要贯穿整个计算机系统看存储的话,自下而上应该是如此的关系:基于磁盘抽象出本机文件系统,基于本机文件系统可以抽象出分布式文件系统 or 数据库。越往上技术迭代越灵活,但是从本质上看,单机文件系统提供的功能和一个非常强大的分布式数据库没有丝毫不同(当然,可用性差很多,这里仅仅指逻辑上的功能一样)。

计算:系统状态的改变

如果不关注CPU cache和寄存器的存在,CPU就单纯是一个无状态的计算设备,是系统状态的改变者(CPU每时每刻就是取指令、分析指令、执行指令的循环,不断改变着系统的状态),而cache 和 非持久化内存可以看作是计算所产生的中间状态的临时存储空间(因为其是掉电丢失的,和计算的无状态特性更加契合)。

程序本身就是一种重计算过程。你所写的任何函数都是为状态迁移做准备。诚然,一个程序在执行过程中,操作系统要为它维护相当多的内核信息(task_struct ...),但是程序主要还是为了“干一件事情”,这件事情就是纯计算,或者改变存储的状态(程序中涉及到IO操作的话)。

通信:一种特殊的计算

通信本身是一种信息的交流,也可以看作是一种特殊的状态变化关系,也即为特殊的计算。但通信在计算机系统中太常见了,因此单独罗列出来。

通信是计算系统的交互。你可以想象在一个合理的分工之下,一个计算系统应该只完成一个主要任务,那么现实中必然有许多事情是要“多任务”协作完成的。那么这些事情如何用计算机编程来映射?答案就是通信。

硬件级别的通信是通过电信号,操作系统级别的通信是各种IPC机制,应用层要么裸用socket对接系统级,要么封装成各种网络库/框架,更加上层的则是同步的RPC和异步的MQ了。

标签:计算机系统,存储,看待,状态,系统,通信,状态机,计算,CPU
From: https://www.cnblogs.com/kylenhu/p/17231513.html

相关文章

  • 如何看待谷歌 Jeff Dean 用 AI 6 小时就能设计一款芯片,强力碾压集成电路设计专家?
    知乎 《如何看待谷歌JeffDean用AI6小时就能设计一款芯片,强力碾压集成电路设计专家?》    https://www.zhihu.com/question/390314423/answer/2650752673  ......
  • 计算机系统要素- HLD
                           ......
  • 计算机系统方法:9.1传统应用
    我们开始讨论应用程序,重点是两个最流行的应用程序--万维网和电子邮件。广义上讲,这两种应用都使用了请求/回复范式--用户向服务器发送请求,然后服务器做出相应的回应。我们把......
  • 什么叫有限状态机?Python中如何实现?
    Automat是一个Python类库,用于创建有限状态机(FSM)。有限状态机是一种计算模型,它在任何时刻只处于有限数量的状态之一。有限状态机由一个状态集合、一个初始状态、一组可能的输......
  • 计算机系统要素--逻辑门
                   ......
  • 状态机的Verilog写法
    状态机的Verilog写法 “硬件设计很讲究并行设计思想,虽然用Verilog描述的电路大都是并行实现的,但是对于实际的工程应用,往往需要让硬件来实现一些具有一定顺序的工......
  • 计算机组成原理(1)--计算机系统概论
    一、计算机系统简介1.计算机系统软硬件概念计算机系统由“硬件”和“软件”两大部分组成。所谓“硬件”,是指计算机的实体部分,它由看得见摸得着的各种电子元器件,各类光、电、......
  • 第一章 计算机系统概述
    第一章计算机系统概述一、操作系统的概念(定义)、功能和目标概念(定义)什么是操作系统功能和目标操作系统要做些什么?(一)操作系统的概念(定义)一台电脑的诞生St......
  • 研究c#异步操作async await状态机的总结
    研究c#异步操作asyncawait状态机的总结 前言#    前一段时间得闲的时候优化了一下我之前的轮子[DotNetCoreRpc]小框架,其中主要的优化点主要是关于RPC异步契约调......
  • ABC 291 D - Flip Cards(状态机)
    https://atcoder.jp/contests/abc291/tasks/abc291_d题目大意:n张卡片排成一行。每张卡片正面是数字ai,背面是数字bi。最初,所有的牌都处于正面状态。随机翻转>=0张卡片......