计算机组成原理-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


原文地址:https://www.cnblogs.com/cx2c/p/6873995.html