一、CPU

1、、CPU的介绍

CPU 是计算机的核心。它主要和内存进行交互,从内存中提取指令并执行它。一个 CPU 的执行周期是从内存中提取第一条指令、解码并决定它的类型和操作数,执行,然后再提取、解码执行后续的指令。重复该循环直到程序运行完毕。

2、每个 CPU 都有一组特定的指令集

每个 CPU 都有一组特定的指令集,特定的指令集只能自己执行。所以,x86 的 CPU 不能执行 ARM 的程序并且 ARM 的 CPU 也不能执行 x86 的程序。

3、寄存器

由于访问内存获取执行或数据要比执行指令花费的时间长,因此所有的 CPU 内部都会包含一些寄存器来保存关键变量和临时结果。

特殊的寄存器

除了用于保存变量和临时结果的通用寄存器外,大多数计算机还具有几个特殊的寄存器,这些寄存器对于程序员是可见的。

  • 程序计数器(program counter):程序计数器会指示下一条需要从内存提取指令的地址。提取指令后,程序计数器将更新为下一条需要提取的地址。
  • 堆栈指针(stack pointer):它指向内存中当前栈的顶端。堆栈指针会包含输入过程中的有关参数、局部变量以及没有保存在寄存器中的临时变量。
  • PSW程序状态字寄存器:用户程序通常可以读取整个PSW,但通常只能写入其某些字段。PSW 在系统调用和 I / O 中起着重要作用。

在时间多路复用(time multiplexing) 的 CPU 中,操作系统往往停止运行一个程序转而运行另外一个。每次当操作系统停止运行一个程序时,操作系统会保存所有寄存器的值,以便于后续重新运行该程序。

4、CPU提升性能的设计

为了提升性能, CPU 设计人员早就放弃了同时去读取、解码和执行一条简单的指令。许多现代的 CPU 都具有同时读取多条指令的机制。

流水线

例如,一个 CPU 可能会有单独访问、解码和执行单元,所以,当 CPU 执行第 N 条指令时,还可以对 N + 1 条指令解码,还可以读取 N + 2 条指令。像这样的组织形式被称为 流水线(pipeline)

超标量(superscalar) CPU

比流水线更先进的设计是 超标量CPU,其设计如下:

两个或者更多的指令被一次性取出、解码并放入缓冲区中,直至它们执行完毕。只要一个执行单元空闲,就会去检查缓冲区是否有可以执行的指令。如果有,就把指令从缓冲区中取出并执行。

多数 CPU 都有两种模式:内核态和用户态。通常情况下,PSW 寄存器中的一个二进制位会控制当前状态是内核态还是用户态。当运行在内核态时,CPU 能够执行任何指令集中的指令并且能够使用硬件的功能。

用户应用程序通常运行在用户态下,在用户态下,CPU 只能执行指令集中的一部分并且只能访问硬件的一部分功能。一般在用户态下,有关 I/O 和内存保护的所有指令是禁止执行的。设置 PSW 模式的二进制位为内核态也是禁止的。

为了获取操作系统的服务,用户程序必须使用系统调用(system call),系统调用会转换为内核态并且调用操作系统。TRAP 指令用于把用户态切换为内核态并启用操作系统。当有关工作完成之后,在系统调用后面的指令会把控制权交给用户程序。

二、多线程

线程是一种轻量级的进程。多线程允许 CPU 保持两个不同的线程状态并且在纳秒级的时间完成切换。

对于操作系统来讲,多线程是有意义的,因为每个线程对操作系统来说都像是一个单个的 CPU。比如一个有两个 CPU 的操作系统,并且每个 CPU 运行两个线程,那么这对于操作系统来说就可能是 4 个 CPU。

本文仅自己总结笔记,原文来源:硬核操作系统指南

计算机硬件介绍之CPU与多线程相关推荐

  1. 20线程测试cpu性能软件,评测平台介绍、CPU多线程性能测试

    2.平台介绍及CPU性能测试 AMD AM3+平台 CPUAMD FX-8150(4模块/8核) AMD FX-8350(4模块/8核) 主板华硕 Crosshair V Formula(BIOS版本 ...

  2. 浅谈多核CPU、多线程与并行计算

    浅谈多核CPU.多线程与并行计算 xiaofei0859 2017-05-09 17:07:11  3646  收藏 展开 0.前言 笔者用过MPI和C#线程池,参加过比赛,有所感受,将近一年来,对多 ...

  3. 多CPU 多核CPU | 多进程 多线程 | 并行 并发

    文章目录 区分 多CPU && 多核CPU CPU缓存 并行 && 并发 多CPU && 多核CPU | 多进程 && 多线程 | 并行 ...

  4. 多核cpu与多线程理解

    计算机cpu与多线程 进程和线程: 进程包含线程,一个进程中包含多个线程. 线程是cpu调度和分配的基本单位,进程是操作系统进行资源分配(cpu,内存,硬盘io等)的最小单位. 单核cpu: 实现多进 ...

  5. KVM 介绍之CPU和内存虚拟化

    学习 KVM 的系列文章:  (1)介绍和安装 (2)CPU 和 内存虚拟化 (3)I/O QEMU 全虚拟化和准虚拟化(Para-virtulizaiton) (4)I/O PCI/PCIe设备直接 ...

  6. 计算机硬件功能作用,cpu的作用和主要功能是什么

    CPU是计算机的核心单位,也是最重要部件,学习计算机硬件的朋友们,一定会学到CPU,那么CPU的作用是什么呢?分别有哪些功能?和小编一起看看! [cpu的作用] cpucpu的内部结构可分为控制单元, ...

  7. 计算机硬件:关于CPU的12个硬核干货!

    作为一名程序员,与计算机打交道的日子不计其数,不管你玩硬件还是做软件,你的世界自然都少不了计算机最核心的 -- CPU. 01 CPU是什么? CPU与计算机的关系就相当于大脑和人的关系,它是一种小型 ...

  8. php100并发cpu告警,多线程并发导致CPU100%的一种原因和解决办法

    在用自定义线程池的时候,遇到cpu100%,经过验证后,发现问题来源于我定义的子线程. 子线程的主要功能是从任务队列(LinkedBlockingQueue)里面持续拿出任务,并且执行. 以下为令CP ...

  9. 单核CPU处理多线程

    1.(单核CPU)同一时间,cpu只能处理1个线程,只有1个线程在执行 2.多线程同时执行:是CPU快速的在多个线程之间的切换 3.cpu调度线程的时间足够快,就造成了多线程的"同时&quo ...

最新文章

  1. ajax提交无反应,IE中jquery.form中ajax提交没反应解决方法分享
  2. android Fragment 学习资料推荐
  3. 域名过期多长时间才能注册
  4. html css整理笔记,HTML CSS整理笔记 (八) 定位网页元素
  5. SCCM2012之客户端发现与安装
  6. Python 爬虫 大量数据清洗 ---- sql语句优化
  7. C#通过修改注册表改变IE默认选项
  8. JS中split对多个分隔符的处理
  9. 如何在 30 天内重新设计整个应用程序?
  10. Perceptual Losses for Real-Time Style Transfer and Super-Resolution
  11. CRMEB首届UI设计大赛报名啦!
  12. Linux系统安装Nvidia显卡驱动
  13. Excel中截取特殊字符之前、之间、之后的数据
  14. 会计的思考(37):“弱水三千,只取一瓢饮”--业务人员的财务意识
  15. Excel打开时自动开一个sheet1页面
  16. web页面-JS/DOM/BOM/窗口滚动/修改内容/上传文件
  17. linux发音,你发对了吗
  18. photoshop基本的操作
  19. 9 * 9 数独求解
  20. python将.mat文件转换为.txt

热门文章

  1. XTP控件ReportCtrl使用
  2. 认识越南语的发音体系
  3. Android黄油刀插件使用记录
  4. spyder pyecharts不显示_后期剪辑还在升级主机配置?换台京东方显示器才最重要...
  5. 三d眩晕可以学计算机,如何才能避免3D晕眩?3种方法教你解决!
  6. 【前端技术】一篇文章搞掂:HTML
  7. mysql中SQL语句查询表字段名、注释、字段类型
  8. RIoTBoard开发板系列笔记(四)—— 使用VPU硬件解码
  9. wallpaper动态壁纸软件
  10. VS编程,几个好用的Visual Studio