首页 > 其他 > 详细

cpu的基础知识

时间:2021-04-11 21:08:20      阅读:22      评论:0      收藏:0      [点我收藏+]

CPU架构和工作原理

“ 一核有难多核围观。”

技术分享图片

CPU的运行原理

  • 控制单元在时序脉冲的作用下,将指令计数器里所指向的指令地址(这个地址是在内存里的)送到地址总线上去,然后CPU将这个地址里的指令读到指令寄存器进行译码。对于执行指令过程中所需要用到的数据,会将数据地址也送到地址总线,然后CPU把数据读到CPU的内部存储单元(就是内部寄存器)暂存起来,最后命令运算单元对数据进行处理加工。周而复始,一直这样执行下去。

cpu、进程、线程

  • 操作系统会拆分CPU为一段段时间的运行片,轮流分配给不同的程序。对于多cpu,多个进程可以并行在多个cpu中计算,当然也会存在进程切换;对于单cpu,多个进程在这个单cpu中是并发运行,根据时间片读取上下文+执行程序+保存上下文。同一个进程同一时间段只能在一个cpu中运行,如果进程数小于cpu数,那么未使用的cpu将会空闲。

  • 多线程的概念主要有两种:一种是用户态多线程;一种是内核态多线程,对于内核态多线程(java1.2之后用内核级线程),在操作系统内核的支持下可以在多核下并行运行;
    对于多核cpu,进程中的多线程并行执行。对于单核cpu,多线程在单cpu中并发执行(微观上的串行,宏观上的并行),根据时间片切换线程。同一个线程同一时间段只能在一个cpu内核中运行,如果线程数小于cpu内核数,那么将有多余的内核空闲。
    总结:
    1、单CPU中进程只能是并发,多CPU计算机中进程可以并行。
    2、单CPU单核中线程只能并发,单CPU多核中线程可以并行。
    3、无论是并发还是并行,使用者来看,看到的是多进程,多线程。

    • 单进程多线程处理:线程可以跨核处理,进程之间则不能(安全性)。

    • 多进程多线程处理:不同的程序,不可能一个进程融合多个应用程序
      技术分享图片
      对于多核心的架构,由于共用一套MMU和cache,所以地址空间是一个,同一时刻只能运行一个进程,此时进程不能并行只能并发。同一个进程下的多线程可以并行执行,因为多线程共享同一套进程空间资源。(** 针对于不同的cpu,据说Intel Core系列可以并行执行进程,因为Core系列CPU的不同的核心都有不同的MMU **。)

cpu的基础知识

原文:https://www.cnblogs.com/benbi/p/14644645.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!