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

Cadence Virtuoso保姆级教程:从零完成反相器版图绘制、DRC到后仿真的完整流程

Cadence Virtuoso保姆级教程&#xff1a;从零完成反相器版图绘制、DRC到后仿真的完整流程 在集成电路设计领域&#xff0c;Cadence Virtuoso是业界公认的标准工具之一。对于初学者而言&#xff0c;掌握从原理图到版图再到后仿真的完整流程至关重要。本文将带领你一步步完成反相…...

苹果内购Java后端避坑指南:收据验证、状态码处理和防重复消费实战

苹果内购Java后端深度防御指南&#xff1a;从收据验收到分布式幂等设计 当你的应用内购收入突然出现异常波动&#xff0c;或是用户投诉被重复扣款时&#xff0c;背后往往隐藏着苹果内购接口的"暗礁"。作为经历过百万级内购交易的老兵&#xff0c;我想分享几个真实生产…...

多元化团队从多元化投资机构开始

初创企业往往口头上重视多元化&#xff0c;但在实际招聘实践中却行动缓慢。对于成长阶段的公司来说&#xff0c;从熟悉的硅谷人才渠道招聘是阻力最小的路径&#xff0c;但如果创始人想要一个多元化的团队&#xff0c;就必须从第一个员工开始将这一价值观付诸实践。Taskrabbit创…...

DeepSeek R1 本地部署企业级实战(附Ollama及CherryStudio客户端安装包)

1、DeepSeek 双系列定位 DeepSeek 作为国内对标 GPT-4 的顶尖大模型,核心分为两大技术系列,精准覆盖不同业务场景: 系列 定位 核心能力 典型模型 小模型覆盖 R1(推理增强) 深度思考、复杂逻辑 数学、代码、长链推理 R1-671B、R1-32B、R1-7B 1.5B/7B/8B/14B/32B(Ollama 主…...

Driver Store Explorer终极指南:三步清理Windows冗余驱动,快速释放数十GB空间

Driver Store Explorer终极指南&#xff1a;三步清理Windows冗余驱动&#xff0c;快速释放数十GB空间 【免费下载链接】DriverStoreExplorer Driver Store Explorer 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer 你是否发现Windows系统盘空间越来越…...

如何一步一步地获取和风天气的天气数据(2026版)

如何一步一步地获取和风天气的天气数据&#xff08;2026版&#xff09;一、和风天气核心优势二、前期准备2.1 注册和风天气开发者账号2.2 创建项目并获取认证密钥&#xff08;API 项目ID/JWT Token&#xff09;2.2.1 登录控制台 → 进入项目管理 → 点击创建项目。2.2.2 填写项…...

Python-for-Android终极指南:用Python代码打造原生Android应用

Python-for-Android终极指南&#xff1a;用Python代码打造原生Android应用 【免费下载链接】python-for-android Turn your Python application into an Android APK 项目地址: https://gitcode.com/gh_mirrors/py/python-for-android 想要用你最熟悉的Python语言开发An…...

终极指南:Spinnaker资源生命周期管理的完整流程与最佳实践

终极指南&#xff1a;Spinnaker资源生命周期管理的完整流程与最佳实践 【免费下载链接】spinnaker Spinnaker is an open source, multi-cloud continuous delivery platform for releasing software changes with high velocity and confidence. 项目地址: https://gitcode.…...

Docker 快速通关

一、Docker 大致介绍 Docker 可以帮助我们完成应用的 运行&#xff08;run&#xff09;、构建&#xff08;build&#xff09; 和 分享&#xff08;share&#xff09;。 它的核心目标很简单&#xff1a; 把应用和环境打包起来让应用在不同机器上尽量保持一致方便部署、迁移和…...

Phantom Camera最佳实践:避免常见陷阱的20个专业建议

Phantom Camera最佳实践&#xff1a;避免常见陷阱的20个专业建议 【免费下载链接】phantom-camera A Camera addon for Godot 4. Inspired by Cinemachine. 项目地址: https://gitcode.com/gh_mirrors/ph/phantom-camera Phantom Camera是Godot 4引擎中一款强大的相机插…...