计算机系统-概述(代码片段)

jordan95225 jordan95225     2022-12-11     235

关键词:

1.信息

文本文件:只由ASCII字符构成的文件

二进制文件:所有其他文件

区分不同数据对象的唯一方法:根据字节序列的上下文

2.编译过程

从源文件到可执行目标文件,执行:

gcc -o hello hello.c

分为四个阶段:

  • 预处理阶段:预处理器(cpp)修改原来的C程序,得到hello.i文件
  • 编译阶段:编译器(ccl)将hello.i文件翻译成hello.s文件,包含汇编语言程序
  • 汇编阶段:汇编器(as)将hello.s文件翻译成机器语言指令,将指令打包并保存在hello.o文件中
  • 链接阶段:将其他预编译好的目标文件合并到hello.o文件中,得到hello可执行文件

3.处理器读取并解释指令

3.1 硬件组成

  1. 总线:携带信息字节并在各个部件之间传递
  2. I/O设备:键盘、鼠标、显示器、磁盘,通过控制器或适配器和I/O总线相连
    控制器:I/O设备本身或系统的主板
    适配器:插在主板插槽上的卡
  3. 主存:临时存储设备,物理上看,由一组动态随机存取存储器芯片组成,逻辑上看,是一个线性的字节数组
  4. 处理器:解释或执行存储在主存中指令的引擎,核心是程序计数器(PC)

CPU的一些操作如下:

  • 加载:主存 -> 寄存器
  • 存储:寄存器 -> 主存
  • 操作:复制两个ALU(算术逻辑单元)的内容到寄存器并做算术运算,将结果保存到一个寄存器中
  • 跳转:从指令中抽一个字,复制到PC中,覆盖原来的值

3.2 程序的运行

  1. shell程序等待我们输入指令,然后将我们输入的"./hello"字符逐一读入寄存器,再存放到内存
  2. 敲回车后,shell程序得知命令输入结束,执行一系列指令加载可执行文件,将hello目标文件中的代码和数据从磁盘复制到内存
  3. 处理器执行main程序中的机器语言指令,将要输出的字符串中的字节从主存复制到寄存器文件,再从寄存器文件复制到显示设备,最终显示在屏幕上

4.缓存

为什么需要缓存?

因为从磁盘上读取数据的时间要远远大于主存中的时间,寄存器的速度又比主存快100倍,而且随着半导体技术进步,差距还在增大,针对这种差异,将处理器近期可能会需要的信息存储在高速缓存,让大部分的内存操作在缓存中完成

5.存储设备层次结构

从上到下,访问速度越来越慢,容量越来越大:

  • L0:寄存器
  • L1高速缓存
  • L2高速缓存
  • L3高速缓存
  • 主存
  • 本地磁盘
  • 远程存储

上一层的存储器作为低一层的高速缓存

6.操作系统

应用程序和硬件之间的一层软件,有两个功能:

  1. 防止硬件被失控的软件滥用
  2. 向应用程序提供简单一致的机制控制硬件设备

6.1 进程

操作系统对一个正在运行的程序的抽象

上下文:操作系统保持跟踪进程运行所需的所有状态信息

上下文切换:保存当前进程的上下文,恢复新进程的上下文,将控制器交给新的进程

6.2 线程

一个进程由多个称为线程的执行单元组成,线程之间共享全局数据和代码

6.3 虚拟内存

抽象概念,提供了一个假象,每个进程都在独占使用内存,每个进程看到的内存都是一致的,称为虚拟地址空间。

Linux中地址空间最上面区域保留给操作系统中的代码和数据,底部区域存放用户进程定义的代码和数据。

6.4 文件

就是字节序列,每个I/O设备都可以堪称是文件



计算机系统-概述(代码片段)

1.信息文本文件:只由ASCII字符构成的文件二进制文件:所有其他文件区分不同数据对象的唯一方法:根据字节序列的上下文2.编译过程从源文件到可执行目标文件,执行:gcc-ohellohello.c分为四个阶段:预处理阶段:预处理器(cpp... 查看详情

linux操作系统——linux概述(代码片段)

...S  定义:操作系统(OperatingSystem,简称OS)是管理计算机硬件与软件资源的计算机程序。  作用:是把计算机系统中对硬件设备的操作封装起来,供应用软件调用,也是提供一个让用户与系统交互的操作界面... 查看详情

(考研计算机组成原理)第一章计算机系统概述-第二节:计算机系统层次结构(代码片段)

...章目录一:冯诺依曼体系结构(1)存储程序计算机(2)层次结构二:计算机硬件概述(1)存储器A:存储元、存储单元、存储体、存储字和存储字长B:存储器的基本结构(2)运算器... 查看详情

(王道408考研操作系统)第一章计算机系统概述-第一节5:系统调用(代码片段)

文章目录一:什么是系统调用二:系统调用分类三:系统调用和核心态用户态的关系四:系统调用与库函数的关系五:操作系统的运行环境前面说过,操作系统接口分为命令接口和程序接口,其中命令... 查看详情

计算机网络概述(代码片段)

文章目录1.计算机网络基础知识1.1定义1.2功能1.3组成1.4分类2.标准化工作3.计算机网络性能指标3.1关于速度3.2关于时间1.计算机网络基础知识1.1定义定义:计算机网络是一个将分散的、具有独立功能的计算机系统,通过通信... 查看详情

linux系统内核概述(代码片段)

...内核。Linux 内核是 Linux 操作系统的主要组件,也是计算机硬件与其进程之间的核心接口。它负责两者之间的通信,还要尽可能高效地管理资源。之所以称为内核,是因为它在操作系统中就像果实硬壳中的种子一样&#... 查看详情

(王道408考研操作系统)第一章计算机系统概述-第一节4:中断和异常(代码片段)

注意!!!本节内容和《计算机组成原理》中的中断有重合,如果需要详细了解的话可以点击链接跳转:(计算机组成原理)第七章输入和输出系统-第四节2:I/O方式之程序中断方式为了内容完整,部分内... 查看详情

(王道408考研操作系统)第一章计算机系统概述-第一节1:操作系统基本概念以及目标和功能(代码片段)

...的概念二:操作系统的目标和功能(1)作为计算机系统资源的管理者(2)作为用户和计算机硬件系统的接口A:命令接口B:程序接口(3)需要实现对硬件机器的扩展三:操作系统的四个特... 查看详情

1-计算机系统概述(co)(代码片段)

计算机组成原理:实现计算机体系结构所体现的属性,具体指令的实现对程序员透明,即研究如何用硬件实现所定义的接口计算机系统=硬件(计算机的实体,如主机、外设)+软件(由具有各类特... 查看详情

[kvm]云计算概述-虚拟化(代码片段)

...化技术什么是虚拟化虚拟化,是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机。在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,并且应用程序都可以在相互独立的空间内运行而互不影... 查看详情

软件工程学概述(代码片段)

1.1软件危机介绍软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题典型表现–开发+维护1.对软件开发成本和进度的估计常常很不准确2.用户对“已完成的”软件不满意的现象时常发生3.软件产品的质量往... 查看详情

软件工程学概述(代码片段)

1.1软件危机介绍软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题典型表现–开发+维护1.对软件开发成本和进度的估计常常很不准确2.用户对“已完成的”软件不满意的现象时常发生3.软件产品的质量往... 查看详情

1.大数据概述(代码片段)

...网之间的区别与联系。1.物联网是互联网大脑的感觉神经系统2.云计算是互联网大脑的中枢神经系统3.大数据是互联网智慧和意识产生的基础4.工业4.0或工业互联网本质上是互联网运动神经系统的萌芽5.互联网+的核心是互联网进化... 查看详情

jvm系列-jvm总体概述(代码片段)

...的缩写,JVM是一种用于计算设备的规范,它是一个虚构的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。JVM屏蔽了与具体操作系统平台相关的信息,使Java程序只需生成在Java虚拟机上一次编译,多次运行,... 查看详情

spark教程-spark概述及相关组件(代码片段)

...基本功能,包含任务调度、内存管理、错误恢复、与存储系统交互等模块。SparkCore中还包含了对弹 查看详情

数据库三级(13)(代码片段)

...13.大规模数据库架构13.1.分布式数据库13.1.1.分布式数据库系统概述13.1.2.分布式数据库目标与数据分布策略13.1.3.分布式数据库系统的体系结构13.1.4.分布式数据库的相关技术13.2.并行数据库13.2.1.并行数据概述13.2.2.并行数据库系统... 查看详情

mysql——数据库概述(代码片段)

...组织、存储和管理数据的仓库”,是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量 查看详情

ftp协议概述和工作原理(代码片段)

...访问文件的用户必须输入相应的password)。FTP屏蔽了计算机系统的细节 查看详情