开学第一堂线下课——计算机系统结构

零碎的知识点

1.大规模集成电路和微处理机的出现提高了计算机性能
2.RISC(Reduced Instruction Set Computer) 精简指令集计算机 还有CISC 复杂指令集计算机

RISC与CISC的比较

  • RISC比CISC更能提高计算机运行速度,RISC寄存器多,可以减少访存次数,指令数和寻址方式少,所以指令译码较快
  • R有效支持高级语言程序
  • C的指令系统丰富,有专用指令来完成特定的功能,因此处理特殊任务效率高

如果想更多了解两者差别 链接: link

3.流水线(pipeline)技术是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术

在这里插入图片描述

4.并行和并发的概念

并发是指一个处理器同时处理多个任务。
并行是指多个处理器或者是多核的处理器同时处理多个不同的任务。
并发是逻辑上的同时发生(simultaneous),而并行是物理上的同时发生。

计算机操作系统中把并行性和并发性明显区分开,主要是从微观的角度来说的,具体是指进程的并行性(多处理机的情况下,多个进程同时运行)和并发性(单处理机的情况下,多个进程在同一时间间隔运行的)。
  • 并发和并行是即相似又有区别的两个概念,并行是指两个或者多个事件在同一时刻发生;而并发是指两个或多个事件在同一时间间隔内发生。
  • 在多道程序环境下,并发性是指在一段时间内宏观上有多个程序在同时运行,但在单处理机系统中,每一时刻却仅能有一道程序执行,故微观上这些程序只能是分时地交替执行。
  • 若在计算机系统中有多个处理机,则这些可以并发执行的程序便可被分配到多个处理机上,实现并行执行,即利用每个处理机来处理一个可并发执行的程序,这样,多个程序便可以同时执行。

简单来说,就是看是否同时
并发是轮流处理多个任务,并行是同时处理多个任务

在书上写到了指令级并行和开发线程级并行和数据级并行找了下相关的资料

又引入了线程和进程的概念

4.1线程和进程

进程是操作系统处理一个程序时的抽象,程序不像文件,只是一堆代码文件,是有生命的,它有诞生、执行和消亡的生命史,因此引入进程的概念来描述一个运行中的程序
线程(对进程而言)= 实实在在的小事

一个程序包含着若干个进程,
一个进程包含着若干个线程。

在这里插入图片描述

这张图得出的结论是:进程是线程在一定时间内的有续集合
并且#1还没有执行完就被#2给抢占了,#1只有等#2执行完才继续执行,这就是上下文切换,而空余的部分就是系统给这个进程分配的资源

总结[线程和进程]
每个线程对操作系统来说,是一个程序的细小部分,就是CPU当前要处理的一件事。线程是基于进程的抽象,一个进程在系统层面上分析,进程它是由大量的可执行的单元组成,叫做线程(Threads) 。程序>进程>线程,这样的包含关系。一个进程不仅仅可能包含这个多个线程,进程还包含着:被操作系统分配的资源空间,比如操作系统在内存中分配给它的栈,数据区域等。这些资源空间被多个线程所共享。比如你和朋友们一次聚餐,这就很像一个进程。桌子上那些饭菜就是资源,你们每个人都是一个线程,每个人每次伸手去夹菜就是在使用这个共享的资源

4.2线程级并发(Thread-Lever Concurrency)

在计算机发展的早期,是只能运行一个进程,在操作系统(OS)中能拥有资源和独立运行基本单位,所以想运行下一个线程就只能的等当前运行的线程运行完

对于进程级并发:它不需要CPU的硬件支持,只需要操作系统支持就可以了
操作系统的进程切换就是通过上下文切换(process context switch)实现的

对cpu而言,两个进程并不是同时运行的
但对于用户而言,两个进程切换的速度非常快,所以会觉得是同时在运行的

这就是并发的本质,而这样的操作系统成为单处理系统

4.3 线程级并行(Thread-Lever Parallelism)

虽然实现了并发,但对于并cpu不是真正意义上的同时进行,只是提高了工作效率,因此人们想要同时处理多个线程,实现线程的并行,自从1980s开始,系统开发人员也就已经发出了多处理系统(Multiprpcessor system),由单一的操作系统核心控制的多进程的系统

cpu也随摩尔定律得到了提升,但是还是不能同处理多个线程,仅仅只是提高单核的运行速度不会产生过多热量且无法带来相应的性能改善,永远也不能实现真正意义上的同时处理多线程

单靠主频提升,已经无法明显提升系统整体性能。因此迫切需要一个能支持同时处理2个线程以上的处理器,来提升CPU的瓶颈。需求推动了技术,线程级并行应运而生。主要由下面两种技术的支撑:
1. 超线程技术(Hyper-Threading,简称HT)

超线程技术实现了单个物理核心同时两个线程,也就是别人常说的虚拟内核数。比如单物理核心实现的双线程,它同时可以处理两个线程,它的物理核心数其实是是1个,通过Hyperthreading技术实现的线程级并行(Thread Lever Parallelism),至于技术细节的实现,这涉及到高速缓存

2.多核技术–物理核心

  1. 2005年,英特尔宣布他的第一个双核心 EM64T 处理器,和 Pentium D840(次年发布,双核心双线程,蹩脚双核)
  2. 2006年,Core 2(双核心双线程,但不支持HT技术)这大概才算真正意义上单芯片多核心处理器的诞生。(物理双核)
  3. 而2006后迎来了Multi-Core Processor多内核处理器时代,而且也伴随着多线程技术.
    也就常说的几核几线程。核一般指的是物理核心的数目,线程是计算机能同时进行的线程。

[总结]线程级并行的好处:

  • 当运行多任务时,它减少了之前的模拟出来的并发,那么用户进行多任务处理时可以运行更多的程序进行并发了。
  • 它可以使单个程序运行更快。(仅当该程序有大量线程可以并行处理时)
4.4 指令集并行 Instruction-Level Parallelism

指令是更低层次的概念,计算机处理问题是通过指令实现的,每个指令都是交给cpu去执行的
指令集并行是基于流水线技术来实现的:当指令之间不存在相关时,它们在流水线中是可以重叠起来并行执行

而数据级并行看不太懂,使用到SIMD(Single -Instruction ,Multple -Data)单指令多数据流技术,之后再去了解
关于这些线程级并行的概念大部分是通过链接: link

5.本来存在的事物或属性,但从某种角度看又好像不存在的概念成为透明性

例如传统机器级所存在的差别对于高级语言程序员来说是“看不见”的,在一个计算机系统中,低层机器的属性对于高层机器的程序员来说就是透明的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值