进程-计算机是如何工作的

news2024/11/19 20:40:10

文章目录

  • 冯诺依曼计算机体系
    • 组成
    • 寄存器和内存
    • 编译型语言vs解释型语言
  • 进程
    • 进程管理
    • 进程的状态
    • 虚拟地址空间
    • 虚拟内存

冯诺依曼计算机体系

组成

(1) 输入设备:键盘,鼠标
(2) 输出设备:显示器,打印机 其中硬盘(可做输入、输出)
(3) 存储器:内存
(4) CPU

  • 运算器: 计算(+ - * /),逻辑运算
  • 控制器: if, while控制语句的执行方向
  • 寄存器: cpu执行进程时,保存进程需要的数据

进程:程序运行后,动态的
1.加载程序代码到内存,并分配进程内存2.cpu执行进程的代码(java:不是class字节码,而是机器码)

寄存器和内存

在这里插入图片描述

编译型语言vs解释型语言

Java进程从写代码到执行

在这里插入图片描述
| 编译型语言 |
在这里插入图片描述
| 解释型型语言 |
在这里插入图片描述

静态编译java文件为class文件;翻译class字节码为机器码 (java进程启动后,就会创建一个java虚拟机,边运行边翻译字节码为机器码

进程

进程是由操作系统创建及管理

进程管理

进程:是系统分配资源(内存、网络、硬盘)的最小单位。

系统管理进程,会先创建一个进程的pcb结构体(用于描述进程信息),包括
(1) pid:标识进程的身份(类似数据库主键)
(2) 状态:包括运行,阻塞等等状态
(3) 内存指针:进程内存地址
(4)资源清单: io设备,硬盘文件
在这里插入图片描述
(5)调度信息:进程执行了多少代码,等待了多久
(6)上下文

操作系统管理进程:
在这里插入图片描述
系统对进程的调度

时间片轮转调度算法: 一个cpu以时间片轮转调度的方式,依次执行多个进程,给人感觉还是同时执行。(一个进程一个时间片,执行一段时间,就切换到下一个进程执行

**上下文:**时间片切换出去,保留上下文(主存:没有处于时间片范围的进程信息),切换回来,要恢复下文(寄存器:处于时间片范围的进程)

进程的状态

在这里插入图片描述
并发:一个cpu以时间片轮转调度的方式,执行多个进程,给我们感觉像是同时执行(实际是一个肉眼无法感知的小范围时间)
并行:多个cpu在一个时间点,同时执行多个进程

真实的计算机中,既存在开友,也存在开行
一个进程,到底是就绪态,还是运行态,是由系统调度决定,进程是无法感知的

抢占式的调度: 有优先级比较高的任务,就需要以抢占式的方式,优先执行

虚拟地址空间

在这里插入图片描述
通过进程的虚拟地址空间,映射到物理内存
隔离多个进程的内存:更安全=>假设大家都允许操作同一块物理内存就可能发生交叉感染(你修改的,我删除了)

存储;使用分页式存储管理

虚拟内存

现代操作系统,都会使用一种虚拟内存的技术,用于在某些进程进入阻塞等不活跃的状态,把进程需要的数据,放在硬盘中。
系统中所有进程使用的内存,就可以超过物理内存的限制。扩展真实使用的内存

虚拟地址空间+(物理内存+硬盘)

进程要加载某些数据:
(1)通过虚拟地址空间查找对应的物理内存中的数据
找到,就直接用
(2)如果找不到,就会产生一个缺页式中断,就会再次虚拟内存保存在硬盘的部分去查找

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

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

相关文章

Composing Programs(SICP python版) chap1 笔记

《Composing Programs》(SICP python版) chap1 笔记 持续更新中 在学习 CS61A 2022fall的时候配着看的 文章目录《Composing Programs》(SICP python版) chap1 笔记Chapter 1: Building Abstractions with Functions1.1 Getting Started1.1.1 Programming in Python1.1.2 Insta…

python安装face_recognition

本人使用系统为windows10,python的版本是3.8,在安装face_recognition之前需要安装以下内容: 1.cmake 2.dlib,dlib的安装依赖于cmake 1 安装CMake 1.1 官网下载:CMake 1.2 开始安装CMake: 1.3 验证是否安装成功: 打开…

10 Mysql中各种锁

概述 MySQL中的也存在一些类型的锁,用来保证多个连接同时操作数据时的安全即数据的一致性问题;同时,虽然锁能够解决一些数据的一致性和有效性,但是我们还是要选择合适的锁来降低锁对于并发问题的影响 1. 全局锁 全局锁就是对整…

傻白探索Chiplet,互连技术研究现状(七)

目录 一、串行互连 二、并行互连 三、串行与并行互连的比较 四、互连标准接口 (1)背景 (2)UCIe Chiplet的可行性常常受到片间互连的性能、可用性以及功耗和成本问题的限制,各种异构芯片的互连接口和标准的设计在技…

Web3中文|恐惧vs伦理:AI艺术评论家错在哪里?

本周,人工智能引发众怒。随着“AI艺术”在网络的流行,一群艺术家正在知名艺术家平台Art Station上掀起一场反AI艺术的抗议活动,而人工智能技术的拥趸者也及时回击了这波反对热潮。 这种充斥着反对意见的热潮是迟早会出现的。现在这些人认为“…

简单说手什么是JWT?

JSON Web Token(缩写 JWT)是目前最流行的跨域认证解决方案。 传统的session认证 http协议本身是一种无状态的协议,而这就意味着如果用户向我们的应用提供了用户名和密码来进行用户认证,那么下一次请求时,用户还要再一…

【Lingo】【MATLAB】【求解运筹学问题模板题】

文章目录一、线性规划模型(Lingo)1.线性规划问题(模板)2.求解最优化问题3.包装箱平板车问题4.职员时序安排问题5.运输问题6.排菜单问题7.工地施工问题8.生产计划优化研究(柴油机生产)二、线性规划问题&…

机器学习算法基础——逻辑回归

01逻辑回归可以用来解决简单的二分类问题。 逻辑回归的预测函数为hθ(x)g(θTx)h_\theta (x)g(\theta^Tx)hθ​(x)g(θTx),其中g(x)g(x)g(x)为sigmoidsigmoidsigmoid函数,用于将数值映射到区间[0,1][0,1][0,1]中,然后再取对数值用于刻画损失函…

51单片机实训day3——点亮LED灯、闪烁LED灯(一)理论

内 容:编写代码实现LED灯的点亮功能 学 时:2学时 知识点:分析原理图、LED灯控制原理 重点:GPIO参数配置、LED原理图分析 难点:编写 GPIO参数配置函数、LED点亮函数 时间:2022年12月21日 9:00~…

实验1 数据库定义与操作语言实验

前言:实验本身并不是很难,照着实验指导书抄就行,不过注意有些sql语句和mysql语句是不相同的,需要进行一定的修改 数据集链接 实验1 数据库定义与操作语言实验 实验1.1 数据库定义实验 1.实验目的 理解和掌握数据库DDL语言&am…

指挥中心显示大屏类型简介

因工作需要,现在需要不断补充指挥中心建设过程中各种设备知识,怕被别人忽悠了也不知道,抓紧学习了解。今天学习大屏部分,目前来说,常见的显示大屏主要分为DLP拼接屏、LCD拼接屏和LED小间距大屏几种类型。 1、DLP大屏 …

【maven工程的pom.xml文件内部结构详解+maven工程的多层次依赖管理】

目录pom文件内部【结构详解】pom文件内部【依赖管理】1、依赖传递&#xff1a;2、依赖传递过程中&#xff0c;版本冲突&#xff1a;3、依赖传递过程中&#xff0c;对外隐藏主动断开&#xff1a;pom文件内部【依赖的作用范围】pom文件内部【结构详解】 <?xml version"…

【ARMv8 异常模型入门及渐进 11 - Linux 中断上下文 irq_enterirq_exit】

文章目录1.1 背景1.1.1 in_interrupt 定义1.1.2 irq_count 定义1.1.3 preempt_count 各域含义1.1.4 ARMv8 中断处理流程回顾1.1 背景 在 Linux 代码中经常会看到 WARN_ON(in_interrupt()); 或者 BUG_ON(in_interrupt()); 从名字可以看出这两句的含义是&#xff1a;如果当前处在…

运用手机多媒体之使用通知

文章目录使用通知将程序运行到手机上使用通知创建通知渠道通知的基本用法通知的进阶技巧setStyle()方法不同重要等级的通知渠道使用通知 将程序运行到手机上 在AS当中除了使用模拟器来运行我们的程序,还可以使用真机来运行我们写的程序想要将程序运行到手机上,首先需要将手机…

推荐系统学习笔记-推荐系统分布式离线训练

背景 在推荐、广告、搜索等互联网场景下&#xff0c;动则TB甚至PB级数据量。导致几乎不可能在传统单机环境下完成机器学习模型的训练。分布式机器学习训练成为称为唯一选择。 主要手段 • Spark MLlib • Parameter Server • Tensorflow Spark MLlib MLlib从功能上说与Sc…

如何利用地表温度遥感数据和气象资料计算农田地表水热通量

地表水热通量主要包括感热/显热通量和潜热通量&#xff0c;是陆-气交互以及水-热-碳循环研究的重要变量。其中&#xff0c;潜热通量是地表蒸散发的能量形式&#xff0c;对农业水资源管理、作物水分利用效率等非常关键。由于热红外遥感对地表干湿变化、以及农业干旱响应快速&…

WeakHashMap源码解析

WeakHashMap源码解析 简介 WeakHashMap 是一种 弱引用 map&#xff0c;内部的 key 会存储为弱引用&#xff0c;当 jvm gc 的时候&#xff0c;如果这些 key 没有强引用存在的话&#xff0c;会被 gc 回收掉&#xff0c;下一次当我们操作 map 的时候会把对应的 Entry 整个删除掉…

金融信息科技服务外包风险管理能力成熟度评估规范 学习笔记 附录下载地址

金融信息科技服务外包风险管理的范围 本标准规定了金融业信息科技服务外包风险管理能力成熟度评估体系以及对发包方和承包方的总体要求&#xff0c;分别对发包方、承包方的服务外包风险管理能力成熟度进行了分级定义&#xff0c;并规定了对发包方和承包方进行服务外包风险管理…

《OpenGL 模型》 渲染出帅气的暗影战士

模型Assimp流程网格模型效果Assimp 3D建模工具&#xff0c;可以让艺术家创建复杂的形状&#xff0c;Assimp库用于加载&#xff0c;如加载obj格式的文件到我们的程序之中&#xff0c;下载CMAKE用于构建该库&#xff08;会有很多问题&#xff09;&#xff0c;不过&#xff01;我…

【小程序】小程序代码的构成

目录 项目结构 1. 了解项目的基本组成结构 2. 小程序页面的组成部分 JSON配置文件 1. JSON 配置文件的作用 2. app.json 文件 3. project.config.json 文件 4. sitemap.json 文件 5. 页面的 .json 配置文件 6. 新建小程序页面 7. 修改项目首页 项目结构 1. 了解项…