漫游计算机系统

news2024/11/25 16:36:33

1.信息就是位 + 上下文

        那么什么是信息呢?

        在计算机系统中,所有的信息——包括磁盘文件、内存中的程序、内存中存放的用户数据以及网络上传送的数据。本质上是一串比特位。

        那么又要了解什么是比特了,比特(bit)就是二进制,只表示0和1。

        源程序实际上就是由值0和1组成的位(比特),8个位组成一组,称作字节。每个字节表示程序中的某些文本字符。

        文本文件是指只由ASCII字符构成的文件,而其他所有文件都是二进制文件。

        区分不同数据对象的唯一方法:就是读到这些数据对象的上下文。

2.程序被其他程序翻译成不同的格式

        一个程序要被执行,一般要执行4步:预处理、编译、汇编、链接

        预处理:读取以字符#开头的命令,把其表示的内容插入到程序文本中.i。

        编译:把程序文本文件.i翻译成文本文件.s,它是一个汇编语言程序。

        汇编:把文本文件.s翻译成机器语言指令.o文件(二进制文件)。

        链接:处理合并.o文件生成可执行文件。

3.系统的硬件组成

        总线:贯穿整个系统的一组电子管道。携带信息字节并负责在各个部件间传递。

通常被设计成传送定长的字节快(字word)。字中的字节数表示字长。

        I/O设备:系统与外部世界的联系通道。

        一般输入设备有:鼠标和键盘

        输出设备:显示器

        存储设备:磁盘(长期存储数据和程序)

        每个I/O设备都通过一个控制器或适配器与I/O总线相连。

        控制器:I/O设备本身或系统的主印刷电路板(主板)上的芯片组。

        适配器:一块插在主板插槽上的卡。

        两者封装方式不同,但两者功能都是在I/O总线和I/O设备之间传递信息。

        主存:临时存储设备,在处理器执行程序时,用来存放程序和程序处理的数据。

        从物理上来说,由一组动态随机存取存储器(DRAM)芯片组成

        从逻辑上来说,存储器是一个线性的字节数组,每个字节都有其唯一的地址(数组索引),而数组索引都是从0开始的。

        处理器:中央处理单元(CPU),是解释或执行存储在主存中指令的引擎。核心是一个大小为一个字的存储设备(寄存器,程序计数器PC)。在任何时候,PC都指向主存中某条机器语言指令(即含有该条指令的地址)。

        CPU在指令的要求下可能会执行的操作:

4.运行hello程序

5.高速缓存至关重要

        机械原理,较大的存储设备要比较小的存储设备运行得慢,而快速设备的造价远高于同类的低速设备。

        寄存器文件只存储几百字节的信息,而主存里可以存放几十亿字节;但处理器从寄存器文件中读数据比从主存中读取几乎要快100倍。而随着半导体技术的发展,处理器与主存之间的差距还在持续增大,故加快处理器的运行速度比加快主存的运行速度要容易和便宜得多。

        针对这种差异,系统设计者采用了更小更快的存储设备,称为高速缓存存储器(cache memory,简称cache或高速缓存),作为暂时的存储区,存放处理器最近可能会需要的信息。

        L1级高速缓存:容量可以达到数万字节,访问速度几乎和访问寄存器文件一样快。

        L2级高速缓存:访问的时间要比L1的时间长5倍,但还是比访问主存快5~10倍。

        L3级高速缓存:

        高速缓存使用一种叫做静态访问存储器(SRAM)的硬件技术实现的。

        为什么系统的存储器很大,同时访问速度也能很快呢?

        原因是利用了高速缓存的局部性原理,即程序具有访问局部区域里的数据和代码的趋势。

6.存储设备形成层次结构

存储器层次结构,从上至下,设备的访问速度越来越慢、容量越来越大,并且每字节的造价也越来越便宜。

存储器层次结构的主要思想是上一层的存储器作为低一层存储器的高速缓存。

7.操作系统管理硬件

        操作系统有两个基本功能:

        (1)防止硬件被失控的应用程序滥用

        (2)向应用程序提供简单一致的机制来控制复杂而又通常大而不同的低级硬件设备

        通过抽象概念(进程、虚拟内存和文件)来实现这两个功能。

        文件是对I/O设备的抽象表示;虚拟内存是对主存和磁盘I/O设备的抽象表示;进程是对处理器、主存和I/O设备的抽象表示。

        进程是操作系统对一个正在运行的程序的一种抽象。一个系统中可以同时运行多个进程,而每个进程都好像在独占地使用硬件。

        并发运行是说一个进程的指令和另一个进程的指令是交错执行的。在大多数系统中,需要运行的进程数是多于可以运行它们的CPU个数的。

        操作系统通过处理器在进程间切换实现交错执行的机制称为上下文切换。

操作系统保持跟踪进程所需的所有状态信息,这种状态,就是上下文。

在任何一个时刻,单处理器系统都只能执行一个进程的代码。

        从一个进程到另一个进程的转换是由操作系统内核(kernel)管理的,内核是操作系统代码常驻主存的部分。

        内核不是一个独立的进程,它是系统管理全部进程所用代码和数据结构的集合。

        线程:一个进程实际上可以由多个称为线程的执行单元组成,每个线程都运行在进程的上下文中,并共享同样的代码和全局数据。

        多线程之间比多进程之间更容易共享数据,常用于网络服务器对并行处理的需求。

        虚拟内存:抽象概念,为每个进程提供了一个假象,即每个进程都在独占地使用主存。

        基本思想是把一个进程虚拟内存的内容存储在磁盘上,然后用主存作为磁盘的高速缓存。

        文件:字节序列。每个I/O设备,包括磁盘,键盘,显示器,甚至网络,都可以看成是文件,即一切皆可文件。

8.系统之间利用网络通信

Amdahl定律:

        当我们对系统的某个部分加速时,其对系统整体性能的影响取决于该部分的重要性和加速程度。

        若系统执行某应用程序需要时间为T(old),假设系统某部分所需执行时间与改时间的比例为a,而该部分性能提升比例为k。即该部分初始所需时间为aT(old),现在所需时间为(aT(old))/k。

        总执行时间为:

        主要观点:要想显著加速整个系统,必须提升全系统中相当大的部分的速度。

并发和并行

        并发指一个同时具有多个活动的系统;并行指的是用并发来使一个系统运行得更快。

        1.线程级并发

        多核处理器是将多个CPU集成到一个集成电路芯片上。

        L1高速缓存分为两个部分——一个保存最近取到的指令,另一个存放数据。

        超线程,也被称为同时多线程,是一项允许一个CPU执行多个控制流的技术。

        2.指令级并行

        现代处理器可以同时执行多条指令的属性称为指令级并行

        如果处理器可以达到比一个周期一条指令更快的执行速率,就称之为超标量处理器。

        3.单指令、多数据并行

        许多现代处理器拥有特殊的硬件,允许一条指令产生多个可以并行执行的操作,这种方式称为单指令、多数据,即SIMD并行。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/578763.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于标准库函数的STM32的freertos的移植(一)——github源码压缩包下载

由于freertos官网将freertos内核与freertos工程分别进行版本管理,因此下载freertos需要将参考工程和内核分别下载。由于采用ST公司提供的标准库函数进行因此还需要下载标准库函数,然后进行移植配置。具体流程如下详细描述: 1.首先在github的…

git Husky

虽然我们已经要求项目使用eslint了,但是不能保证组员提交代码之前都将eslint中的问题解决掉了: 也就是我们希望保证代码仓库中的代码都是符合eslint规范的; 那么我们需要在组员执行 git commit 命令的时候对其进行校验,如果不符合…

centos7安装docker 并创建mysql

Docker 分为 CE 和 EE 两大版本。CE 即社区版(免费,支持周期 7 个月),EE 即企业版,强调安全,付费使用,支持周期 24 个月。 Docker CE 分为 stable test 和 nightly 三个更新频道。 官方网站上有…

关于强电与弱的的介绍

强电?弱电?傻傻分不清楚,今天海翎光电的小编为大家系统的介绍一下强电与弱电。 什么是强电? (1)供配电系统:供配电系统包括负荷分级、供电措施、负荷力矩、电网谐波限值、用电指标、负荷所需要…

MySQL数据库修改root账户密码

博主今天登录数据库遇到了一个问题,通过这篇文章(http://t.csdn.cn/58ECT)解决了。文中关于修改root账户密码的部分,博主觉得有必要写一篇文章总结下。 第一步:用管理员账户打开CMD 第二步:开启mysql服务 …

dubbo源码阅读: dubbo的xml文件如何解析的?

dubbo源码阅读&#xff1a; dubbo的xml文件如何解析的&#xff1f; DubboNamespaceHandlerspring 的接口 NamespaceHandlerspring 的抽象类 NamespaceHandlerSupport学以致用 <?xml version"1.0" encoding"UTF-8"?> <beans xmlns:xsi"http…

征文 | 吸引铁粉?成为CSDN明星!

&#x1f497;wei_shuo的个人主页 &#x1f4ab;wei_shuo的学习社区 &#x1f310;Hello World &#xff01; 征文 | 吸引铁粉&#xff1f;成为CSDN明星&#xff01; 导读 当今数字时代&#xff0c;社交媒体和在线社区成为了人们交流和分享的主要平台之一&#xff0c;CSDN就是其…

前沿重器[34] | Prompt设计——LLMs落地的版本答案

前沿重器 栏目主要给大家分享各种大厂、顶会的论文和分享&#xff0c;从中抽取关键精华的部分和大家分享&#xff0c;和大家一起把握前沿技术。具体介绍&#xff1a;仓颉专项&#xff1a;飞机大炮我都会&#xff0c;利器心法我还有。&#xff08;算起来&#xff0c;专项启动已经…

31 Vue 表单输入绑定的实现

前言 这是最近的碰到的那个 和响应式相关的问题 特定的操作之后响应式对象不“响应“了 引起的一系列的文章 主要记录的是 vue 的相关实现机制 呵呵 理解本文需要 vue 的使用基础, js 的使用基础 测试用例 测试用例如下, 一个简单的 v-model 的使用 问题的调试 这里 …

尝试在UNet的不同位置添加SE模块

目录 &#xff08;1&#xff09;se-unet01&#xff08;在卷积后&#xff0c;下采样前&#xff0c;添加SE模块&#xff09; &#xff08;2&#xff09;se-unet02&#xff08;在卷积后&#xff0c;上采样前&#xff0c;添加SE模块&#xff09; &#xff08;3&#xff09;se-un…

Qt基础之三十六:异常处理

本文将介绍如何在Qt中使用try...catch和调试dump文件来处理异常。 Qt版本5.12.6 一.使用try...catch 一段简单的捕获异常的代码,新建一个控制台工程,pro文件不用修改 #include <QCoreApplication> #include <QDebug>int main(int argc, char *argv[]) {QCoreA…

历届蓝桥杯青少年编程比赛 计算思维题真题解析【已更新5套 持续更新中】

一、计算思维组考试范围 计算思维组面向小学生&#xff08;7-12 岁&#xff0c;约 1-6 年级&#xff09;&#xff0c;通过设计多个角度的考核题目、层次科学的试卷组合、线上限时的考试形式&#xff0c;更加精确地考查学生的计算能力、反应能力、思维与分析能力&#xff0c;使…

注解实现自动装配

要使用注解须知&#xff1a; 1.导入约束 context约束 2.配置注解的支持 官方配置文件 <?xml version"1.0" encoding"UTF-8"?> <beans xmlns"http://www.springframework.org/schema/beans"xmlns:xsi"http://www.w3.org/2001/…

Flume实践

1 NetCat方式 ]# ./bin/flume-ng agent --conf conf--conf-file ./conf/flume_netcat.conf --name a1 -Dflume.root.loggerINFO,console [rootmaster ~]# yum -y intalll telnet 发数据&#xff1a; ]# telnet master 44444 数据接收&#xff0c;是在终端上接收的&#xff0…

[创业之路-70] :聊天的最高境界因场景不同而不同

一、聊天的最高境界因场景不同而不同。 销售式聊天&#xff1a; 聊天的最高境界不是真相&#xff0c;而是拨动对方的心弦&#xff0c;让对方心理爽&#xff0c;让对方舒心。聊天的结果是你买单。 消费式聊天&#xff1a; 聊天的最高境界不是真相&#xff0c;而是让自己心理爽…

Java面试集锦

1. html与jsp区别&#xff1f; 答&#xff1a;HTML是文本标记语言&#xff0c;它是静态页面&#xff1b;JSP页面是有JSP容器执行该页面的Java代码部分然后实时生成动态页面&#xff0c;可动态更新页面上的内容。 在jsp中用<%%>就可以写Java代码了&#xff0c;而html没有…

数组的存储和压缩

数组 定义 一维数组是有限个相同类型的数据元素构成的序列&#xff0c;逻辑关系是相邻关系 推广&#xff1a;一个二维数组可以看作相同类型的一维数组的一维数组&#xff1b;n维数组可以看作以n-1维数组作为元素的线性表 性质 数组中的数据元素数目…

提前布局

深圳最近的天气是美&#xff0c;有风&#xff0c;天空可以看得见飘来飘去的透明的云&#xff0c;傍晚时候也可以看见城市被霞光笼罩下那种很安静要睡去的样子&#xff0c;随处可以见到的青草绿叶和大树&#xff0c;从公司楼下穿过的一个小桥洞前看得见的红绿路牌也安静和谐。 今…

将 Nacos 转变为 Windows 系统服务,实现开机自启

文章目录 前言下载 WinSW配置 WinSW安装和启动 Nacos 服务联系我 前言 本文将为您介绍如何使用 WinSW 工具将 Nacos 打包成 Windows 系统服务&#xff0c;并实现开机自启动的便利功能。通过将 Nacos 安装为系统服务&#xff0c;您将摆脱每次手动启动的麻烦&#xff0c;从而提高…

论文阅读_增强语言模型综述

论文信息 name_en: Augmented Language Models: a Survey name_ch: 增强语言模型综述 paper_addr: http://arxiv.org/abs/2302.07842 date_read: 2023-05-20 date_publish: 2023-02-15 tags: [‘深度学习’,‘自然语言处理’,‘大模型’] author: Grgoire Mialon&#xff0c;M…