• 计算机组成原理-1


     

    编程语言的作用及与操作系统和硬件的关系

    完整计算机系统包括:计算机硬件,操作系统,软件 编程语言是程序员和计算机沟通的介质,操作系统运行于硬件之上,程序通过调用操作系统的接口来对硬件进行操作


    应用程序->操作系统->硬件


    CPU->内存->磁盘

    CPU负责运算,内存是临时存储,硬盘是永久存储
    CPU拥有自己的专门指令集,CPU从内存中读取指令->解码->执行 程序文件存储再磁盘上,运行程序需要CPU把程序从磁盘读取到内存上,然后CPU对内存进行操作


    CPU与寄存器,内核态与用户态如何切换

    受限于内存读写速度,CPU访问内存得到指令或者数据的时间远比CPU执行指令集花费的时间长,所以CPU内部有一些来保存变量和临时数据的寄存器

    1. 通用寄存器:保存变量和临时结果
    2. 程序计数器:保存要取出的下一条指令的内存地址
    3. 堆栈指针:指向内存中当前栈的顶端
    4. 程序状态字寄存器(PSW):调位码、cpu优先级、模式(用户态和内核态)
    • 内核态:cpu再内核运行的状态,cpu可以执行指令集中的所有指令,操作系统在内核态的状态下可以访问整个硬件
    • 用户态:cpu只能执行cpu指令集的一个子集
      切换:打开软件时,当有读取文件等对硬件操作时,需要从用户态切换到内核态,程序需要使用系统调用,进入内核态

    存储器系列,L1缓存,L2缓存呢,内存(RAM),EEPROM和闪存,COMS与BIOS电池

    • L1缓存-寄存器,L2缓存位于L1与内存之间
    • RAM:运行内存,掉电数据易丢失
    • EEPROM:电可擦写编程ROM
    • 闪存:flash momery
    • COMS:小块电池驱动,掉电数据丢失

    磁盘结构,平均寻道时间,平均延迟时间,虚拟内存与MMU

    • 磁道:磁头可读取的一段换新区域
    • 柱面:位于同一上下面的磁道做合起来成为一个柱面
    • 扇区:硬盘级别最小读写单位,一个扇区512Bytes(操作系统最小读写单位1block=8*512Byts)

    数据存放于一段一段的扇区,即磁道圆圈的一小段从磁盘读取数据需要经历寻道时间和延迟时间

    • 平均寻道时间:机械手臂从一个柱面移动到相邻的柱面的时间
    • 平均延迟时间:机械手臂到达磁道后还需要等待旋转到数据所在的扇区下的时间
    • 虚拟内存:正在使用的程序放入内存取执行,而暂时不需要执行的程序放到磁盘的某块地方,这块地方成为虚拟内存
    • MMU:存储器管理单元,快速地映射内存地址

    磁带

    比硬盘便宜,容量大,移动性强


    设备驱动与控制器

    • 控制器:主板上的一块芯片和一组芯片,控制器负责控制链接的设备(硬盘、网卡等)
    • 控制器作用:为操作系统屏蔽复杂的外接设备,为操作系统提供一个简单清晰的接口
    • 需要把设备驱动安装到操作系统中,以便操作系统通过控制器对设备进行操作

    总线与南桥和北桥

    CPU、内存及IO设备通过系统总线来你接起来,并通过总线与其他设备通信

    • 北桥:PCI桥,链接PCI接口的高速设备
    • 南桥:ISA桥,鼠标显示器等慢速外设

    操作系统的启动流程

    1. 计算机加电
    2. BIOS开始运行,检测硬件:cpu、内存、硬盘
    3. BIOS读取CMOS中的参数,选择启动设备
    4. 从启动设备商读取第一个扇区的内容(MBR引导,512字节,446引导信息+64分区信息+2标志位)
    5. 根据分区信息读入bootloader启动装载模块,启动操作系统
    6. 操作系统询问BIOS,检测设备的驱动是否存在并加载。

    应用程序的启动流程

    1. 用户双击快捷方式
    2. 系统通过快捷方式找到磁盘上的程序文件
    3. 系统从读取程序到内存
    4. CPU对内存进行操作
    5. 程序打开


    Python全栈-张伟
    2017-05-28


  • 相关阅读:
    基于mave的dubbo分别架构
    海西 · 云交付 DevOps实践落地方案
    LoadRunner接口测试标准模板
    SVN多分支开发模式V1.0.1
    API接口规范V1.0——制定好规范,才好合作开发
    Effective Java 第三版——12. 始终重写 toString 方法
    Effective Java 第三版——11. 重写equals方法时同时也要重写hashcode方法
    Effective Java 第三版——10. 重写equals方法时遵守通用约定
    Effective Java 第三版——9. 使用try-with-resources语句替代try-finally语句
    Effective Java 第三版——8. 避免使用Finalizer和Cleaner机制
  • 原文地址:https://www.cnblogs.com/cx2c/p/6873995.html
Copyright © 2020-2023  润新知