zoukankan      html  css  js  c++  java
  • 系统架构设计师

    一、分值分布

    image

    计算机组成与体系结构

    image

    Flynn体系结构分类

    计算机系统结构的分类方法之一,1966年M.J.Flynn提出了如下定义:
    指令流(Instruction Stream):机器执行的指令序列。
    数据流(Data Stream):指令调用的数据序列,包括输入数据和中间结果。
    多倍性(Multiplicity):在系统最受限制的元件上同时处于同一执行阶段指令或数据执行的最大可能个数。

    image
    image
    SISD:早期的计算机都是SISD机器,如冯诺.依曼架构,如IBM PC机,早期的巨型机和许多8位的家用机等。
    SIMD:我们用的单核计算机基本上都属于SIMD机器。
    MISD:只是作为理论模型出现,没有投入到实际应用之中。
    MIMD:机器可以同时执行多个指令流,这些指令流分别对不同数据流进行操作。最新的多核计算平台就属于MIMD的范畴,例如Intel和AMD的双核处理器等都属于MIMD。

    image

    主要考点

    阵列处理器(array processor)又称为并行处理机、SIMD计算机。其核心是一个由多个处理单元构成的阵列,用单一的控制部件来控制多个处理单元对各自的数据进行相同的运算和操作。

    CISC与RISC

    image

    层次化存储结构

    image

    Cache命中率计算

    image

    局部性原理

    image
    时间局部性指的是,程序在运行时,最近刚刚被引用过的一个内存位置容易再次被引用,比如在调取一个函数的时候,前不久才调取过的本地参数容易再度被调取使用。
    空间局部性指的是,最近引用过的内存位置以及其周边的内存位置容易再次被使用。空间局部性比较常见于循环中,比如在一个数列中,如果第3个元素在上一个循环中使用,则本次循环中极有可能会使用第4个元素。

    主存分类

    image
    ROM,只读存储器,(顾名思义,只是读取调用,不能更改) 一旦储存资料就无法再将之改变或删除,也就是断电之后不会丢失。
    RAM,随机存储器,存储单元的内容可按需随意取出或存入, 断电后数据就丢失。

    主存的编址

    编址的意思是把内存内存分成一个个块,按字节编址的意思就是按每块1B=8bit去分块。
    image
    1.先计算有多少个内存地址,并转换成10进制
    (C7FFFH + 1) - AC000H = 1C000H = 12 * 16^3 + 1 * 16^4 = 28 * 16^3 = 7 * 2^2 * (24)3 = 7 * 2^14
    在计算多少K,用幂运算计算才可以,硬算算不出来。
    1K = 1024 = 2^10
    7 * 2^14 / 2^10 = 7 * 2^4 = 112个。

    2.内存地址编址(16bit) * 地址单元个数 = 内存容量总量 = 28 * 16K * 存储单元位数

    总结

    地址单元个数 = 内存容量 / 内存编址方式(字节或字)
    内存容量 = 内存编址(16bit) * 地址单元个数

    例: 设有一个1MB容量的存储器,字长32位,问:按字节编址,字编址的寻址范围以及各自的寻址范围大小?

    1.如果按字节编址,则
    1MB = 2^20B
    1字节=1B=8bit
    2^20B/1B = 2^20
    地址范围为0~(220)-1,也就是说需要二十根地址线才能完成对1MB空间的编码,所以地址寄存器为20位,寻址范围大小为220=1M

    2.如果按字编址,则
    1MB=2^20B
    1字=32bit=4B
    2^20B/4B = 2^18
    地址范围为0~218-1,也就是说我们至少要用18根地址线才能完成对1MB空间的编码。因此按字编址的寻址范围是218

    也可以统一换成bit做运算
    总容量1M = 2^20B = 2^20 * 8 bit
    按字节编址
    2^20 * 8 bit /8 bit
    按字编址
    2^20 * 8 bit /32 bit
    按双字编址
    2^20 * 8 bit /32*2 bit
    算出来是2^n次方,就需要n根地址线。

    磁盘结构与参数

    image

    image
    旋转周期为33ms -> 读取每个物理块的时间为3ms
    1.前十个为33+3,最后一个为3+3。
    (33+3)10 + (3+3) = 366
    2.(3+3)
    11 = 66

    系统配置与性能评价

    性能指标

    image

    时钟频率f : 又称主频f,它是指CPU内部晶振的频率,常用单位为MHz,它反映了CPU的基本工作节拍,例如3.0GHz主频意思就是每秒晶振310001000*1000次。

    时钟周期t : t=1/f; 主频的倒数,计算机中最小的时间单位,每次晶振所用的时间(3GHz主频的时钟周期就是1/3 000 000 000)。

    机器周期 : m * t ; 也称为CPU周期,一条指令的执行过程划分为若干个阶段(如取指、译码、执行等),每一阶段所需要的时间称为机器周期,一个机器周期包含若干个(m个)时钟周期,也是时间单位。

    指令周期 :m * t * n 执行一条指令所需要的时间(取指、译码、执行等所有机器周期的总和),一般包含若干个(n个)机器周期,也是时间单位。

    CPI :(clock per instruction)= m * n; 平均每条指令的平均时钟周期个数。
    指令周期 = CPI×时钟周期 = n×m×时钟周期 = n*m/主频f, 注意指令周期单位是s或者ns

    IPC:(instruction per clock) 表示每(时钟)周期运行多少个指令.

    MIPS = 每秒执行百万条指令数 = 1/(CPI×时钟周期×10的6次方)= 1/(指令周期×10的6次方) = 主频/(CPI×10的6次方) = 频率*IPC/10的6次方

    MFLOPS 每秒百万浮点运算次数。代表了CPU处理浮点运算的能力。与MIPS不能相互转换

    系统性能设计-阿姆达尔解决方案

    image
    image

    性能评价方法

    image
    前三种只考虑CPU的运算能力,其中第三中考虑指令比例不同的问题。
    PDR除了运算能力,还考虑数据存储交互的问题,考虑CPU+存储
    CTP首先算出处理部件每个计算单元的有效计算率,再按不同字长加以调整,得出该计算单元的理论性能,所有组成该处理部件的计算单元的理论性能之和即为CTP。
    基准程序法(即现在的跑分软件): 把应用程序中用得最多、最频繁的那部分核心程序作为评估计算机系统性能的标准程序,称为基准测试程序(benchmark)。基准程序法是目前一致承认的测试系统性能的较好方法。 考虑了诸如IVO结构、操作系统、编译程序的效率对系统性能的影响。
    image

    性能检测方法

    image

    操作系统基本原理

    进程管理

    进程的状态

    image
    五态模型新增了人为干预的挂起操作(例如听歌时突然有语音,在接听语音时人为挂起歌曲进程),运行、活跃就绪、活跃阻塞对应三态模型中的运行、就绪、等待。

    前趋图

    precedence graph
    image

    进程的同步与互斥

    进程同步是一个操作系统级别的概念,是在多道程序的环境下,存在着不同的制约关系,为了协调这种互相制约的关系,实现资源共享和进程协作,从而避免进程之间的冲突,引入了进程同步。同步的反义是异步。

    进程互斥是一个进程正在访问临界资源,另一个要访问该资源的进程必须等待。互斥的反义是共享。
    image
    消费者生产者问题
    image
    单缓冲区: 互斥:市场为互斥资源,只允许一个人去操作。同步:生产者放满了市场后需要等待消费者把市场里面的商品消费掉,生产者才能继续放入市场。

    PV操作

    image
    信号量的值表示相应资源的使用情况。信号量S>=0时,S表示可用资源的数量。执行一次P操作意味着请求分配一个资源,因此S的值减1;当S<0时,表示已经没有可用资源,S的绝对值表示当前等待该资源的进程数。
    S大于0的确表示有临界资源可供使用,也就是说这个时候没有进程被阻塞在这个资源上,所以不需要唤醒。
    image
    S1:可生产数量信号量
    S2:可消费数量信号量

    如果这篇文章对你有用,麻烦关注一下本人微信公众号,关注送福利哦~
    微信公众号二维码
    不定期安利各种插件,编程技巧,编程思想,欢迎交流~
  • 相关阅读:
    IOS Block-Block块的使用与理解
    IOS 多线程03-GCD
    IOS 多线程01-线程基础知识
    JavaScript高级-定义函数(类)方法
    互联网技术笔试总通不过?leetcode刷对了么
    Redis 内存满了怎么办? Redis的内存淘汰策略
    SpringBoot项目优化和Jvm调优
    中台的末路
    Java 应用中的日志
    Spring Boot 支持https
  • 原文地址:https://www.cnblogs.com/aeolian/p/15018711.html
Copyright © 2011-2022 走看看