当前位置: 首页 > 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作为前端开发的主要语言之一&#…...

Markdown基础(1.2w字)

1. Markdown基础 这次就没目录了&#xff0c;因为md格式太乱了写示例&#xff0c;展示那些都太乱了&#xff0c;导致目录很乱。 &#xff08;我是XX&#xff0c;出现了很多错误&#xff0c;有错误和我说&#xff09; 1.1 Markdown简介 Markdown是一种轻量级的标记语言&#…...

​React Hooks 的闭包陷阱问题

这是主包在面试中遇到的一道题目&#xff0c;面试官的问题是&#xff1a;"这个页面初次展示出来时Count和step的值是什么&#xff0c;我点击按钮count和step的值有什么变化&#xff1f;“ 这个题目主包回答的不好&#xff0c;所以想做一个总结。 题目 import React, { …...

算法(蓝桥杯学习C/C++版)

up: 溶金落梧桐 溶金落梧桐的个人空间-溶金落梧桐个人主页-哔哩哔哩视频 蓝桥杯三十天冲刺系列 BV18eQkY3EtP 网站&#xff1a; OI Wiki OI Wiki - OI Wiki 注意 比赛时&#xff0c;devc勾选c11&#xff08;必看&#xff09; 必须勾选c11一共有两个方法&#xff0c;任用…...

sendDefaultImpl call timeout(rocketmq)

rocketmq 连接异常 senddefaultimpl call timeout-腾讯云开发者社区-腾讯云 第一种情况&#xff1a; 修改broker 的配置如下&#xff0c;注意brokerIP1 这个配置必须有&#xff0c;不然 rocketmq-console 显示依然是内网地址 caused by: org.apache.rocketmq.remoting.excep…...

全流程开源!高德3D贴图生成系统,白模一键生成真实感纹理贴图

导读 MVPainter 随着3D生成从几何建模迈向真实感还原&#xff0c;贴图质量正逐渐成为决定3D资产视觉表现的核心因素。我们团队自研的MVPainter系统&#xff0c;作为业内首个全流程开源的3D贴图生成方案&#xff0c;仅需一张参考图与任意白模&#xff0c;即可自动生成对齐精确…...

【软件工具】批量OCR指定区域图片自动识别内容重命名软件使用教程及注意事项

批量OCR指定区域图片自动识别内容重命名软件使用教程及注意事项 1、操作步骤1-5&#xff1a; 安装与启动&#xff1a;安装成功后&#xff0c;在桌面或开始菜单找到软件图标&#xff0c;双击启动。 导入图片&#xff1a;进入软件主界面&#xff0c;点击 “导入图片” 按钮&a…...

C++ const 修饰符深入浅出详解

C const 修饰符深入浅出详解 &#x1f4c5; 更新时间&#xff1a;2025年6月6日 &#x1f3f7;️ 标签&#xff1a;C | const关键字 | 常量 | 多文件编程 | 现代C 文章目录 前言&#x1f31f; 一、const 是什么&#xff1f;为什么要用&#xff1f;示例✅ const 的四大好处 &…...

青少年编程与数学 01-011 系统软件简介 06 Android操作系统

青少年编程与数学 01-011 系统软件简介 06 Android操作系统 一、历史发展二、核心架构1. Linux 内核层 (Linux Kernel)2. 硬件抽象层 (Hardware Abstraction Layer - HAL)3. Native 层 (Native Libraries & Android Runtime)4. Java API 框架层 (Java Framework Layer)5. 应…...

分布式微服务系统架构第144集:FastAPI全栈开发教育系统

加群联系作者vx&#xff1a;xiaoda0423 仓库地址&#xff1a;https://webvueblog.github.io/JavaPlusDoc/ https://1024bat.cn/ https://github.com/webVueBlog/fastapi_plus https://webvueblog.github.io/JavaPlusDoc/ 使用docker搭建常用开发环境 docker安装mysql docker ru…...

[Spring]-AOP

AOP场景 AOP: Aspect Oriented Programming (面向切面编程) OOP: Object Oriented Programming (面向对象编程) 场景设计 设计: 编写一个计算器接口和实现类&#xff0c;提供加减乘除四则运算 需求: 在加减乘除运算的时候需要记录操作日志(运算前参数、运算后结果)实现方案:…...