深入理解计算机系统(1):系统组成

一、系统硬件组成

在这里插入图片描述

1、控制器(CPU):解释和执行内存中的指令
(1)、控制器
程序控制器:指令指针,指向主存中的机器语言指令,为一个字大小的存储设备或寄存器。
指令寄存器、指令译码器、时序产生器、操作控制器
(2)、运算器
(3)、寄存器
(4)、高速缓存
CPU从寄存器上读取一个字的时间开销比从主存中读取快100倍,从磁盘中读取数据比主存中读取大1000万倍。加快处理器的运行速度比加快主存的运行速度更容易和便宜。
在这里插入图片描述

2、主存(内存)
临时存储设备,在CPU执行程序时用来存放程序和程序处理的数据。从物理上来说,主存时由一组动态随机存储器芯片组成,从逻辑上来看,存储器是一个线性的字节数组,每个字节都有唯一的地址(数组索引)。

3、I/O设备
输入/输出设备是系统和外部世界的联系通道。如鼠标、键盘、显示器、磁盘等。每个I/O设备通过一个控制器或适配器与I/O总线相连。
控制器:I/O设备或主板上的芯片组,如USB、磁盘。
适配器:主板插槽上的卡,如网络适配器、图形适配器。

4、总线
贯穿整个系统的电子管道,携带信息字节并负责在各个部件间传递,通常被设计成传送定长的字节块,即字(32位机器上为4个字节,64位机器上为8个字节)。

二、操作系统管理硬件
操作系统有两个基本功能:防止硬件被失控的应用程序滥用;想应用程序提供简单一致的机制来控制复杂而又大不相同的低级硬件设备。操作系统通过基本的抽象概念(进程、虚拟内存和文件)来实现这两个功能。
1、进程
进程是操作系统对一个正在运行的程序的一种抽象。
并发运行:一个进程的指令和另一个进程的指令是交错执行的。
并行运行:多个处理器或者是多核的处理器同时处理多个不同的任务。

一个CPU看上去是在并发地执行多个进程,这是通过处理器在进程间切换来实现的,操作系统实现这种交错执行的机制称为上下文切换。

上下文切换:当前进程通过系统调用将控制权传递给操作系统,操作系统保存当前进程的上下文,恢复新进程的上下文(如果进程不存在,创建新的进程及其上下文),然后将控制权传递给新进程。

从一个进程到另一个进程的转换是由操作系统内核(kernel)管理的。内核是操作系统代码常驻主存的部分。当应用程序需要操作系统的某些操作时,比如读写文件,它就执行一条特殊的系统调用(system call)指令,将控制权传递给内核。然后内核执行被请求的操作并返回应用程序。注意,内核不是一个独立的进程。相反,它是系统管理全部进程所用代码和数据结构的集合。
在这里插入图片描述
线程
一个进程实际上可以由多个称为线程的执行单元组成,每个线程都运行在进程的上下文中,并共享同样的代码和全局数据。因为多线程之间比多进程之间更容易共享数据,也因为线程一般来说都比进程更高效。当有多处理器可用的时候,多线程也是一种使得程序可以运行得更快的方法。

2、虚拟内存
抽象概念,为每个进程提供一个假象,即每个进程都在独占地使用主存,每个进程看到的内存是一致的,称为虚拟地址空间。
在这里插入图片描述

内核虚拟内存:为内核保留。

栈:用户虚拟地址空间顶部,编译器用栈来实现函数调用。用户栈在程序执行期间可以动态地拓展和收缩,函数调用时增长,返回时收缩。

共享库:存放像C标准库和数学库这样的共享库的代码和数据的区域。

堆:调用malloc和free时,在运行时动态拓展和收缩。

读写数据:全局/静态变量存储区,数据段和bss段(未初始化和初始化为0)。

只读的代码和数据:代码段和字面常量区。

3、文件
文件就是字节序列。每个I/O设备都可以看作文件,系统中的所有输入输出都是通过使用一小组系统函数调用读写文件来实现的。

三、程序运行过程

指令(二进制):操作码+操作数地址
1、加载程序:将代码和数据从磁盘复制到主存。
2、取指令:从内存区指令复制到指令寄存器。
3、译码:指令译码器分析指令的操作码字段,生成完成操作的控制信号。
4、执行指令:从主存或缓存中取数据到寄存器中,进行运算,将结果保存到寄存器或者主存中。

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

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

相关文章

离线安装mysql客户端

下载路径 oracle网站总是在不断更新,所以下载位置随时可能变动但万变不离其宗,学习也要学会一通百通。 首先直接搜索,就能找找到mysql官网 打开网站,并点击 DOWNLOADS 往下滚动,找到社区版下载按钮。…

高效解决 TypeError : ‘ numpy._DTypeMeta‘ object is not subscriptable 问题

文章目录 问题描述解决问题 问题描述 解决问题 参考博文 打开报错位置 AppData\Roaming\Python\Python39\site-packages\cv2\typing\ 添加single-quotes,即单引号 博主说The trick is to use single-quotes to avoid the infamous TypeError: ‘numpy._DTypeMeta’…

微信小程序发布流程

前言 上周写了如何写一个小程序,然后经过查资料,改bug,找chatgpt美化页面,我写了一个计算代谢率的小工具,写完了之后该怎么办呢,当然是发布上架,然后我就开始了发布的折腾 提交代码 这一步很…

【uniapp】subnvue组件数据更新视图未更新问题

背景 : 页面中的弹窗使用了subnvue来写, 根据数据依次展示一个一个的弹窗, 点击"关闭"按钮关闭当前弹窗, 显示下一个弹窗 问题 : 当点击关闭时( 使用的splice() ), 数据更新了 , 而视图没有更新, 实际上splice() 是不仅更新数据, 也可以更新视图的 解决 : this.$fo…

WPF中DataContext的绑定技巧

先看效果: 上面的绑定值都是我们自定义的属性,有了以上的提示,那么我们可以轻松绑定字段,再也不用担心错误了。附带源码。 目录 1.建立mvvm项目 2.cs后台使用DataContext绑定 3.xaml前台使用DataContext绑定

selenium查找网页如何处理网站资源一直加载非常卡或者失败的情况

selenium查找网页如何处理网站资源一直加载失败的情况 selenium获取一个网页,某个网页的资源卡了很久还没有加载成功,如何放弃这个卡的数据,继续往下走 有2钟方式。通常可以采用下面的方式一来处理这种情况 方式一、WebDriverWait 这种方式…

差分构造法推广:arc166_d

https://atcoder.jp/contests/arc166/tasks/arc166_d 首先肯定是这样子放: 考虑相邻之间的差,本质就是橙色区间减蓝色区间数量 区间数量越少显然越优,所以我们要么保留橙区间,要么保留紫区间,然后两两匹配 #include…

如何做好sop流程图?sop流程图用什么软件做?

5.如何做好sop流程图?sop流程图用什么软件做? 建立标准作业程序sop已经成为企业进步和发展的必经之路,不过,很多刚刚开始着手搭建sop的企业并不知道要如何操作,对于如何做sop流程图、用什么软件做sop流程图等问题充满…

数据安全防护:云访问安全代理(CASB)

云访问安全代理(Cloud Access Security Broker,CASB),是一款面向应用的数据防护服务,基于免应用开发改造的配置方式,提供数据加密、数据脱敏功能。数据加密支持国密算法,提供面向服务侧的字段级…

记录一次springboot使用定时任务中@Async没有生效的场景

环境说明 jdk21springboot 3.0.11 springcloud 2022.0.0 spring-cloud-alibaba 2022.0.0.0 在开发一个定时触发的任务的时候,由于开发执行任务的函数比较耗费时间,所以采用异步解决问题。 发现并没有按照预期的触发 经询问后,发现当前类的…

phpstudy本地域名伪静态

环境:WNMP(Windows10 Nginx1.15.11 MySQL5.7.26 【PHP 7.4.3 (cli) (built: Feb 18 2020 17:29:57) ( NTS Visual C 2017 x64 ) 】) 使用PhpStudy配置本地域名后,设置伪静态,这样在Web端打开网站就不需要输入index.php了,很简单…

竞赛选题 深度学习 python opencv 火焰检测识别 火灾检测

文章目录 0 前言1 基于YOLO的火焰检测与识别2 课题背景3 卷积神经网络3.1 卷积层3.2 池化层3.3 激活函数:3.4 全连接层3.5 使用tensorflow中keras模块实现卷积神经网络 4 YOLOV54.1 网络架构图4.2 输入端4.3 基准网络4.4 Neck网络4.5 Head输出层 5 数据集准备5.1 数…

学习记忆——数学篇——案例——代数——均值不等式

文章目录 理解记忆法定义定义推导 重点记忆法用途记忆法使用前提做题应用及易错点两种用法 出题模式法模型识别 谐音记忆法一正二定三相等 秒杀方法 理解记忆法 定义 1.算术平均值:设有n个数 x 1 , x 2 , . . . , x n x_1,x_2,...,x_n x1​,x2​,...,xn​&#xf…

【LeetCode: 901. 股票价格跨度 | 单调栈】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

如何在VS2022中进行调试bug,调试的快捷键,debug与release之间有什么区别

什么是bug 在学习编程的过程中,应该都听说过bug吧,那么bug这个词究竟是怎么来的呢? 其实Bug的本意是“虫子”或者“昆虫”,在1947年9月9日,格蕾丝赫柏,一位为美国海军工作的电脑专家,也是最早…

【linux进程(三)】进程有哪些状态?--Linux下常见的三种进程状态

💓博主CSDN主页:杭电码农-NEO💓   ⏩专栏分类:Linux从入门到精通⏪   🚚代码仓库:NEO的学习日记🚚   🌹关注我🫵带你学更多操作系统知识   🔝🔝 Linux进程 1. 前言2. 操作系统…

十五、异常(5)

本章概要 异常限制构造器 异常限制 当覆盖方法的时候,只能抛出在基类方法的异常说明里列出的那些异常。这个限制很有用,因为这意味着与基类一起工作的代码,也能和导出类一起正常工作(这是面向对象的基本概念)&#…

大话机器学习准确率(Accuracy)、精确率(Pecision)、召回率(Recall)以及TP、FP、TN、FN

话说三国时期,乱世出人才,当时刘备让张飞帮忙招兵买马,寻找人才。张飞发公告以后,有10人来面试,这10人分为两类,人才和庸才,各占百分之五十,张飞的主要作用就是从这10人中识别出人才…

UWB PDOA定位原理

以下是笔记总结,内容不完全正确 1,什么是PDOA PDOA &#xff0c;英文全称是Phase-Difference-of-Arrival&#xff0c;信号到达相位差 PDOA定位算法的原理如下&#xff1a; UWB基站上放置两个相同且间隔d<λ/2的天线&#xff0c;UWB标签上的信号到达两个天线的相位差就在-180…

Docker Cgroups资源控制

Cgroup资源控制 Docker 通过 Cgroup 来控制容器使用的资源配额&#xff0c;包括 CPU、内存、磁盘三大方面&#xff0c; 基本覆盖了常见的资源配额和使用量控制。 Cgroup 是 ControlGroups 的缩写&#xff0c;是 Linux 内核提供的一种可以限制、记录、隔离进程组所使用的物理资源…