计算机基础

  • CPU
  • 内存
  • 操作系统OS
  • 命令行
  • git版本控制器


CPU

运算器+控制器+寄存器,用于控制时间、处理指令、执行操作及处理数据。

目前大多数的CPU实际上集成了多个中央处理单元(CPU的核心),即所谓的多核心处理器,这些核心可以分别同时执行程序指令。

  • 很多CPU核心都支持单指令多数据流(SIMD),提供指令级的并行功能,单个指令可以同时操作多组数据。
  • 单个多核CPU提供线程级的并行,多个核同时执行多个指令流,同时处理多个数据流。
  • 多个多核CPU可以提供进程级的并行功能,多个CPU同时运行多个进程,每个进程又可以有多个线程,同时处理多个数据流。
  • CPU主频:CPU在每秒内发出的时钟脉冲信号的个数。常用的单位是GHz,如主频为4.0GHz的CPU,每秒可产生40亿个时钟脉冲信号。通常主频越高的CPU,单位时间内执行程序指令的速度越快。

内存

是很多微型开关组成的存储数据的硬件,其中每个开关的开合状态分别代表0和1

  • 每个开关的状态称为一个位(bit),是计算机中内存的最基本单位。
  • 8个为组成一个字节(Byte)
  • 需要对内存中的每个字节进行编号,即物理内存地址
    cpu使用多核心 深度学习_命令行
  • 计算机的内存结构是线性的,可以看成由很多可以存储0或1小格子组成的长条形结构
  • 32位计算机,用32位的二进制表示内存物理地址,最大可支持 cpu使用多核心 深度学习_命令行_02
  • 64位计算机,用64位的二进制表示内存物理地址,最大可支持 cpu使用多核心 深度学习_cpu使用多核心 深度学习_03

操作系统OS

简介 : OS是我们操作计算机硬件的帮手,而且很多时候我们还需要计算及同时处理多个任务,每个任务又可能有多个执行流程,但问题是计算机可利用的计算和存储资源都是有限的。所以OS的功能:在硬件资源有限的条件下,实现多任务的并发运行,尽量提高硬件资源的利用效率,提供资源访问的冲突协调机制。
进程

  • 是OS进行计算机资源分配的最小单元。
  • 是OS对正在运行的程序的一种抽象。
  • 是应用程序的执行实例,每个进程是由私有的虚拟地址空间、代码、数据和其他各种系统资源组成。
    线程
  • 是CPU核心调度和分配的基本单位。
  • 每个进程至少有一个主执行线程,主执行线程终止了,进程也就随之终止。
  • 除了进行主线程之外,一个进程还可以创建更多的线程。
  • 一个进程的所有的线程共享访问进程拥有的资源,但不能直接访问其他进程拥有的资源。
  • 线程是用逻辑内存地址来访问进程的虚拟地址空间。
  • 操作系统为每个进程内的线程提供资源的协调访问机制,如互斥锁(Mutex)和信号量(Semaphore)

总结

  • 计算机的计算和存储资源是有限的。
  • 计算机能表示的信息也是有限的。
  • 程序设计者的任务是尽可能高效利用有限的计算和存储资源,完成更多的任务的处理。

命令行

操作系统中的各种“器”(应用程序)

  • 操作系统命令行解释器:解释执行操作系统及启动应用程序,e.g.,terminal,bash,cmd shell,prompt等。
  • 编辑器:编辑文本文件的应用程序,如vim,emacs,word,wps等。
  • 编译器:把代码转化为二进制程序和库的应用程序,用于编译型语言,如C/C++,Fortran等。
  • 调试器:用读入二进制程序、交互执行及查看程序运行状态的应用程序,如gdb等。
  • Python解释器:用来解释python命令的命令行。(进入方式:在终端输入python3 进入原始python解释器,输入ipython3进入提高版本的交互式python。
  • 集成开发环境:集各种“器”于一身的应用程序,给用户提供一个友好便捷的程序开发环境,如VS Code, pycharm, spyder。