当前位置: 首页 > news >正文

2.20计算机如何工作

一.计算机组成

1.冯诺依曼体系

  • CPU 中央处理器: 进行算术运算和逻辑判断.

  • 存储器: 分为外存和内存, 用于存储数据(使用二进制方式存储)

  • 输入设备: 用户给计算机发号施令的设备.

  • 输出设备: 计算机个用户汇报结果的设备

内存和外存的区别(面试)

访问速度:内存快,外存慢

存储空间:内存小,外存大

成本:内存高,外存低

持久化存储:内存掉电后数据丢失,外存掉电后数据仍然在'

2.cpu

CPU芯片上集成了非常多的运算单元

2.1逻辑门

1)电子开关-机械继电器(Mechanical relay)

2)门电路

最基本的门电路有三种

3)算数逻辑单元 ALU

ALU 是计算机中进行算数、逻辑运算的核心部件,是计算机的数学大脑。

1.半加器.针对两个比特位,进行加法运算

2.全加器:针对三个比特位,进行加法运算

4)逻辑单元

逻辑单元主要用来进行逻辑操作,最基本的操作就是 与、或、非操作,但不只是一位(bit)数的比较。

5)总结

逻辑链条

2.2计算

有了加法器,可以进行加减乘除

原码,反码,补码

计算机中

如果是一个正数,直接使用正数,直接用原码

如果表示一个负数,就使用补码

原码,符号位不变,再按位取反,再加1

使用补码为了统一加减法

2.3门电路

一个cpu上有很多电子开关,电子开关越多,计算能力就越强

CPU中除了运算器以外,还有控制单元和寄存器

2.4寄存器

寄存器是CPU内部用来存储数据的组件

2.5 控制单元(CU)

控制单元( CU)协调CPU进行工作

最主要的工作是能够执行指令

指令

1.机器语言

2.汇编语言

2.6指令的执行

举例:计算两个数相加

CPU的工作流程

1.从内存中读取指令

2.解析指令.

3.执行指令

这些都是通过CU控制单元来实现

二.操作系统

一个软件.计算机上最重要也最复杂的软件之一

操作系统是一个搞"管理的软件"

1.对下,要管理好各种硬件设备

2.对上,要给各种软件提供稳定的运行环境

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

1) 防止硬件被时空的应用程序滥用;

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

三.进程

1.概述

进程:跑起来的程序

一旦开始运行这些.exe文件

操作系统就会把这个exe给加载到内存中,并且让CPU开始执行exe内部的一些指令(exe内部存放了这个程序对应的

二进制指令).

这些运行起来的可执行文件 便被称为"进程"

什么是线程

是进程内部的一个部分,进程包含线程

如果把进程想象成一个工厂,那么线程就是工厂内部的一个生产线

操作系统如何管理一个进程?

1.先描述一个进程(明确一个进程上的相关属性)

2.再组织若干个进程(使用一些数据结构,把很多描述进程的信息给放到一起,方便进行增删改查)

2.PCB(process control block)

2.1PCB基础属性

1)进程ID

进程的身份标识 ---进程的身份证号

2)内存指针

指明了这个进程要执行的代码/指令再内存的哪里,以及这个进程执行中依赖的数据都在哪里

当运行exe,操作系统就会把这个exe(进程要执行的二进制指令和一些重要的数据)加载到内存中,变成进程

3)文件描述符表

程序运行过程中,经常要和文件打交道(文件是在硬盘上的)

进程每次打开一个文件,就会在文件描述符表上多增加一项

这个文件描述符表就可以视为一个数组,里面的每个元素又是一个结构体,对应着一个文件的相关信息

2.2PCB调度属性

为了实现进程的调度

这里涉及的问题就是所谓的进程调度

并行和并发(面试问题)

并行:微观上,两个CPU核心,同时执行两个任务的代码

并发:微观上一个CPU核心,先执行一会任务1 ,再执行一会任务2 ,...再执行一会任务1 .只要切换的够快,宏观上看

就好像这么多任务上同时执行

举例

1)状态

描述了当前这个进程接下来该怎么进行调度

就绪状态:随时可以去CPU上执行

阻塞状态/睡眠状态:暂时不可以去CPU上执行

2)优先级

先给谁分配时间,后给谁分配时间

以及给谁分的多,给谁分的少

3)记账信息

统计了每个进程,分别执行了多久,分别都执行了哪些指令

分别排队多久

为进程调度提供指导依据

4)上下文

表示了上次进程被调度处CPU的时候,当时程序执行状态

下次进程上CPU的时候,就可以恢复之前的状态,然后继续执行

进程被调度出CPU之前,要先把CPU中的所有的寄存器的数据都给保存到内存中(pcb的上下文字段)

相当于存档

下次进程再次被调度上CPU的时候,就可以从刚才的内存恢复这些数据到寄存器中,

相当于读档

存档+读档的过程,存档的存储的信息,就称为上下文/

3.进程的调度

就是操作系统在考虑CPU资源如何给各个进程进行分配

内存资源是依靠虚拟地址空间分配的

3.1.隔离

3,2 通信

进程之间现在通过虚拟地址空间,已经各自隔离开

但是在实际工作中,进程之间有的时候需要相互交互

4.总结

四.线程

系统支持多任务,程序员需要并发编程

为什么低效,因为找合适的资源需要时间精力

如何解决问题

思路1:进程池(数据库连接池,字符串常量池)

思路2 :通过线程来实现并发编程

为什么线程比进程更轻量?

因为进程重量重在资源申请释放(在仓库找东西)

线程是包含在进程中,一个进程中多个线程,共用同一份资源(同一份内存+文件)

五,进程和线程的区别和联系(面试)

  1. 进程包含线程,一个进程里可以有一个线程或者多个线程

  1. .进程和线程都是为了处理并发编程这样的场景

但是进程有问题,频繁创建和释放资源的时候效率低,相比之下,线程因为少了申请释放资源的过程更轻量,所以效率高

  1. 操作系统创建进程,要给进程分配资源,进程是操作系统分配资源的基本单位

操作系统创建线程,要在CPU上调度执行,线程是操作系统调度执行的基本单位

  1. 进程具有独立性,每个进程有各自的虚拟地址空间,一个进程挂了,不会影响到其他进程.

同一个进程中多个线程,共有同一个内存空间,一个线程挂了,可能会影响到其他线程,甚至导致整个进程崩溃.

相关文章:

2.20计算机如何工作

一.计算机组成1.冯诺依曼体系CPU 中央处理器: 进行算术运算和逻辑判断.存储器: 分为外存和内存, 用于存储数据(使用二进制方式存储)输入设备: 用户给计算机发号施令的设备.输出设备: 计算机个用户汇报结果的设备内存和外存的区别(面试)访问速度:内存快,外存慢存储空间:内存小,外…...

[golang gin框架] 5.Cookie以及Session

1.Cookie(1).介绍HTTP 是无状态协议,简单地说,当浏览了一个页面,然后转到同一个网站的另一个页面,服务器无法认识到这是同一个浏览器在访问同一个网站,每一次的访问,都是没有任何关系的,如果要实现多个页面之间共享数据的话就可以…...

【牛客刷题专栏】0x0B:JZ3 数组中重复的数字(C语言编程题)

前言 个人推荐在牛客网刷题(点击可以跳转),它登陆后会保存刷题记录进度,重新登录时写过的题目代码不会丢失。个人刷题练习系列专栏:个人CSDN牛客刷题专栏。 题目来自:牛客/题库 / 在线编程 / 剑指offer: 目录前言问题…...

js中的隐式类型转换有哪些

目录一、隐式类型转换条件二、 的隐式类型转换三、 的隐式类型转换四、object 的隐式类型转换探讨 object 的隐式转换执行顺序探讨 Symbol.toPrimitive 属性如何将对象转换为原始值在前端js这门动态弱类型语言中,不仅存在着显示类型转换,还存在许多隐式类…...

WuThreat身份安全云-TVD每日漏洞情报-2023-02-17

漏洞名称:IBM Aspera Faspex 预身份验证 RCE 漏洞 漏洞级别:高危 漏洞编号:CVE-2022-47986 相关涉及:IBM Aspera Faspex 漏洞状态:POC 参考链接:https://tvd.wuthreat.com/#/listDetail?TVD_IDTVD-2023-02805 漏洞名称:Kardex Mlog MCC PATH 遍历 漏洞级别:严重 漏洞编号:CVE…...

掌握MySQL分库分表(三)水平分库分表常见策略range、hash

文章目录range策略Range策略延伸基于Range范围分库分表业务场景hash取模案例规则水平分库分表,根据什么规则进行划分? range策略 自增id,根据ID范围进行分表(左闭右开) 规则案例: 1~1,000,000 是 table…...

CTFer成长之路之CTF中的SQL注入

CTF中的SQL注入CTF SQL注入 SQL注入-1 题目描述: 暂无 docker-compose.yml version: 3.2services:web:image: registry.cn-hangzhou.aliyuncs.com/n1book/web-sql-1:latestports:- 80:80启动方式 docker-compose up -d 题目Flag n1book{union_select_is_so_cool} Wri…...

python snap7读写PLC

主要在DB块里操作 读DB块 import snap7 import structdef plc_connection():PLC_IP 192.168.10.10PLC snap7.client.Client()PLC.connect(PLC_IP, rack0, slot1)return PLCPLC plc_connection()PLC.read_area()方法从PLC中读取指定区域的数据。 1200表示DB块的编号&#x…...

使用物联网进行智能能源管理的10大优势

如今,物联网推动了许多行业的自动化流程和运营效率,而物联网在能源领域的应用尤其受到消费者、企业甚至政府的关注。除了对电力供应链的诸多好处之外,物联网能源管理系统还让位于新的智能电网,并有望实现更高的安全性和效率。基于…...

工业4.0和工业物联网如何协同工作

虽然许多公司已经接受了工业物联网,但他们现在必须接受工业4.0对数据驱动的数字化转型的承诺。随着制造业、能源、公用事业和供应链应用迅速采用工业物联网(IIoT),这些行业的新现实正在形成。工业物联网提供了企业管理数千个活动部件所需的数据类型&…...

Python机器学习入门笔记(3)—— 线性回归

目录 线性回归 算法简述 LinearRegression() API SGDRegressor API LinearRegression() 和 SGDRegressor对比 过拟合与欠拟合 岭回归 应用场景 线性回归 算法简述 线性回归是一种基本的机器学习算法,它用于建立自变量和因变量之间的线性关系模型。它假设…...

Java:顶级Java应用程序服务器 — Tomcat、Jetty、GlassFish、WildFly

如果你想编写Java web应用程序,首先需要做出一个艰难的决定:选择运行应用程序的Java应用程序服务器。什么是应用服务器?一般来说,应用程序服务器执行Java应用程序。在操作系统中启动它们,然后将应用程序部署到其中。将应用程序服…...

如何在SpringBoot项目上让接口返回数据脱敏,一个注解即可

1 背景需求是某些接口返回的信息,涉及到敏感数据的必须进行脱敏操作2 思路①要做成可配置多策略的脱敏操作,要不然一个个接口进行脱敏操作,重复的工作量太多,很显然违背了“多写一行算我输”的程序员规范。思来想去,定…...

python 之 海龟绘图(turtle)

注:从个人博客园移植而来 使用简介 python 2.6引入的一个简单的绘图工具,俗称为海龟绘图。3.x以上使用的话,可通过pip进行安装,命令为: pip/pip3 install turtle如果出现如下错误: 解决方式: …...

RT-Thread SPI使用教程

RT-Thread SPI 使用教程 实验环境使用的是正点原子的潘多拉开发板。 SPI从机设备使用的是BMP280温湿度大气压传感器。 使用RT-Thread Studio搭建基础功能。 1. 创建工程 使用RT-Thread Studio IDE创建芯片级的工程。创建完成后,可以直接编译下载进行测试。 2.…...

shiro使用——整合spring

shiro使用——整合spring 1. 引入相关配置 <dependency><groupId>org.apache.shiro</groupId><artifactId>shiro-spring</artifactId><version>1.9.1</version></dependency>2. 自定义Realm类 继承AuthorizingRealm 并重写相…...

2023-02-20 leetcode-AccountsMerge

摘要: 记录对leetcode-AccountsMerge的反思 要求: Given a list accounts, each element accounts[i] is a list of strings, where the first element accounts[i][0] is a name, and the rest of the elements are emails representing emails of the account. * Now, w…...

中国高速公路行业市场规模及未来发展趋势

中国高速公路行业市场规模及未来发展趋势编辑中国高速公路行业市场规模正在迅速增长。随着中国经济的快速发展和城市化的加速&#xff0c;对交通基础设施的需求也在不断增加。高速公路是最有效的交通工具&#xff0c;可以大大缩短交通时间&#xff0c;提高出行效率。因此&#…...

佳能iC MF645CX彩色激光多功能打印机报E302-0001故障码检修

故障现象: 一台佳能iC MF645CX彩色激光多功能一体机开机报E302-0001故障代码,如果设备未恢复,请联系经销商或客户支持中心。 维修分析: 佳能iC MF645CX彩色激光多功能一体机开机报E302-0001故障代码的...

加密越来越简单——用JavaScript实现数据加密和解密

加密越来越简单——用JavaScript实现数据加密和解密概念常用算法1. MD5加密算法2. SHA-1加密算法3. AES加密算法代码示例结论总结在当今互联网的世界中&#xff0c;安全性越来越受到关注&#xff0c;数据加密成为了必不可少的一环。Javascript作为前端开发的主要语言之一&#…...

多模态2025:技术路线“神仙打架”,视频生成冲上云霄

文&#xff5c;魏琳华 编&#xff5c;王一粟 一场大会&#xff0c;聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中&#xff0c;汇集了学界、创业公司和大厂等三方的热门选手&#xff0c;关于多模态的集中讨论达到了前所未有的热度。其中&#xff0c;…...

Flask RESTful 示例

目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题&#xff1a; 下面创建一个简单的Flask RESTful API示例。首先&#xff0c;我们需要创建环境&#xff0c;安装必要的依赖&#xff0c;然后…...

《C++ 模板》

目录 函数模板 类模板 非类型模板参数 模板特化 函数模板特化 类模板的特化 模板&#xff0c;就像一个模具&#xff0c;里面可以将不同类型的材料做成一个形状&#xff0c;其分为函数模板和类模板。 函数模板 函数模板可以简化函数重载的代码。格式&#xff1a;templa…...

6个月Python学习计划 Day 16 - 面向对象编程(OOP)基础

第三周 Day 3 &#x1f3af; 今日目标 理解类&#xff08;class&#xff09;和对象&#xff08;object&#xff09;的关系学会定义类的属性、方法和构造函数&#xff08;init&#xff09;掌握对象的创建与使用初识封装、继承和多态的基本概念&#xff08;预告&#xff09; &a…...

【Post-process】【VBA】ETABS VBA FrameObj.GetNameList and write to EXCEL

ETABS API实战:导出框架元素数据到Excel 在结构工程师的日常工作中,经常需要从ETABS模型中提取框架元素信息进行后续分析。手动复制粘贴不仅耗时,还容易出错。今天我们来用简单的VBA代码实现自动化导出。 🎯 我们要实现什么? 一键点击,就能将ETABS中所有框架元素的基…...

恶补电源:1.电桥

一、元器件的选择 搜索并选择电桥&#xff0c;再multisim中选择FWB&#xff0c;就有各种型号的电桥: 电桥是用来干嘛的呢&#xff1f; 它是一个由四个二极管搭成的“桥梁”形状的电路&#xff0c;用来把交流电&#xff08;AC&#xff09;变成直流电&#xff08;DC&#xff09;。…...

Linux 下 DMA 内存映射浅析

序 系统 I/O 设备驱动程序通常调用其特定子系统的接口为 DMA 分配内存&#xff0c;但最终会调到 DMA 子系统的dma_alloc_coherent()/dma_alloc_attrs() 等接口。 关于 dma_alloc_coherent 接口详细的代码讲解、调用流程&#xff0c;可以参考这篇文章&#xff0c;我觉得写的非常…...

智能职业发展系统:AI驱动的职业规划平台技术解析

智能职业发展系统&#xff1a;AI驱动的职业规划平台技术解析 引言&#xff1a;数字时代的职业革命 在当今瞬息万变的就业市场中&#xff0c;传统的职业规划方法已无法满足个人和企业的需求。据统计&#xff0c;全球每年有超过2亿人面临职业转型困境&#xff0c;而企业也因此遭…...

AxureRP-Pro-Beta-Setup_114413.exe (6.0.0.2887)

Name&#xff1a;3ddown Serial&#xff1a;FiCGEezgdGoYILo8U/2MFyCWj0jZoJc/sziRRj2/ENvtEq7w1RH97k5MWctqVHA 注册用户名&#xff1a;Axure 序列号&#xff1a;8t3Yk/zu4cX601/seX6wBZgYRVj/lkC2PICCdO4sFKCCLx8mcCnccoylVb40lP...

2025-05-08-deepseek本地化部署

title: 2025-05-08-deepseek 本地化部署 tags: 深度学习 程序开发 2025-05-08-deepseek 本地化部署 参考博客 本地部署 DeepSeek&#xff1a;小白也能轻松搞定&#xff01; 如何给本地部署的 DeepSeek 投喂数据&#xff0c;让他更懂你 [实验目的]&#xff1a;理解系统架构与原…...