【操作系统】一文快速入门,很适合JAVA后端看

作者简介:

目录

1.概述

2.CPU管理

3.内存管理

4.IO管理


1.概述

操作系统可以看作一个计算机的管理系统,对计算机的硬件资源提供了一套完整的管理解决方案。计算机的硬件组成有五大模块:运算器、控制器、存储器、输入设备、输出设备。操作系统实际上就是对这个五块资源各自提供了一套管理方案,然后合起来形成一个总的对计算机的管理策略。我们进行软件开发的时候都无法直接和五大模块的硬件进行交互,都需要通过调用操作系统这个中间层暴露出来的API来完成。诸如JAVA之类的高级编程语言,其底层很多东西其实就是基于操作系统暴露出来的API进行二次封装的。

JAVA体系中有哪些东西是对操作系统的二次封装喃?至少有两块儿:线程和IO。这两块儿已经是后端编程里的重点内容了。需要进行并发操作、异步任务、定时任务等需要用到多线程编程,多线程编程时需要熟悉线程模型,而线程模型本质上就是操作系统中CPU管理的一整块内容。需要进行网络通信时,需要用到网络编程,需要熟悉IO模型,而IO模型本质上就是操作系统中IO管理的一整块内容。多线程编程可能平时还会用到,可能很多同学会疑惑,网络编程一般会用在哪儿?在JAVA EE中诸如tomcat、netty之类的web server容器,在通信上都必须用到网络编程,dubbo、nacos之类的微服务注册中心在进行服务注册、调用时也会用到网络编程,这些内容目前开源方案已经封装好了,但是在某些时候需要自研框架时,IO作为一个实现系统高性能的关键点,一定是绕不开的一个点,需要自行进行IO的开发。

综上所述,对JAVA后端而言,操作系统中一些核心内容是很有必要掌握的,了解清楚这几块儿内容才能更好的完成相应方面的开发。

作者之前写过一个操作系统的系列博客,本文其实就是对这个系列的整合,以章节清单的方式,完整整合那些后端需要知道的操作系统的内容。

2.CPU管理

本块内容主要包含:

CPU的大致工作过程:取值执行。

为什么需要进程:为了更好的利用CPU资源,程序需要不断切换执行,因此需要对运行中的程序进行描述。

然后就是进程的状态切换:

最后就是为什么会有线程,线程和进程的关系,以及数据一致性、线程通信、死锁、调度等操作相关的内容。

文章链接:

【进程与线程】最好懂的讲解__BugMan的博客-CSDN博客

操作系统(2)进程管理(上)进程与线程__BugMan的博客-CSDN博客

操作系统(3)进程管理(中)数据一致性_操作系统中什么是数据一致性__BugMan的博客-CSDN博客

操作系统(4)进程管理(下)通信、死锁、调度__BugMan的博客-CSDN博客

3.内存管理

内存中到底存放的是什么东西?内存中存放的是进程,内存中各个进程圈地而治,所圈的地盘中存放各个进程自己的指令和数据,进程执行完毕后,退出内存,还出圈给它的地。如何给各个进程圈地,就是存储管理的核心

这一块儿内容里我们将明白CPU是如何进行地址映射,在内存中找到对应进程的内容的。

文章链接:

操作系统(5)内存管理_页表寄存器在内存中吗__BugMan的博客-CSDN博客简单讨论一下操作系统的内存管理_页表寄存器在内存中吗https://blog.csdn.net/Joker_ZJN/article/details/127768414

4.IO管理

IO管理,管理的主要是计算机的外设,即接入主机的设备(CPU、内存、总线之外的设备)。所管理的内容中最重要的就是如何让IO设备与主机之间高效的进行数据传输。

计算机的IO其实就是在内存中为各个IO设备分配了属于它的一块内存,向这块内存中进行读写即可完成IO。这块内存是位于计算机内存中的内核段中的。

一次完整的IO过程是:

  1. CPU执行IO指令
  2. 将内核段中数据读到用户段
  3. 用户段中数据交给CPU
  4. CPU的执行结果写回用户段
  5. 用户段中存的结果写回内核段

这一块儿里,我们将了解计算机的IO,数据是如何在内存中流转的,以及整个计算机的IO模型,会对我们认识理解BIO、NIO等JDK原生IO支持或者netty等IO框架有很大的帮助。

文章链接:

全网最清晰JAVA NIO,看一遍就会__BugMan的博客-CSDN博客

全网最清晰的零拷贝详解,看一遍就会__BugMan的博客-CSDN博客

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

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

相关文章

Kubernetes技术--k8s核心技术 Secret

1.概述 Secret 解决了密码、token、密钥等敏感数据的配置问题,而不需要把这些敏感数据暴露到镜像或者 Pod Spec中。Secret可以以 Volume 或者环境变量的方式使用。 作用 加密数据存储在/etc中,使得pod容器以挂载volume方式进行访问。在进行的数据存储中是以base64加密的方式…

SQL 语句学习总结:

1. 四范式&&范式好处: 数据库范式是数据表设计的规范,在范式规范下,数据库里每个表存储的重复数据降到最少(这有助于数据的一致性维护),同时在数据库范式下,表和表之间不再有很强的数据…

服务器数据恢复-vmware ESXI虚拟机数据恢复案例

服务器数据恢复环境: 从物理机迁移一台虚拟机到ESXI,迁移后做了一个快照。该虚拟机上部署了一个SQLServer数据库,存放了5年左右的数据。ESXI上有数十台虚拟机,EXSI连接了一台EVA存储,所有的虚拟机都在EVA存储上。 服务…

【综述】跨模态可信感知

文章目录 跨模态可信感知综述摘要引言跨协议通信模式PCP网络架构 跨模态可信感知跨模态可信感知的概念跨模态可信感知的热点研究场景目前存在的挑战可能改进的方案 参考文献 跨模态可信感知综述 摘要 随着人工智能相关理论和技术的崛起,通信和感知领域的研究引入了…

Linux系统下的zabbix监控平台(单机安装服务)

目录 一、zabbix的基本概述 二、zabbix构成 1.server 2.web页面 3.数据库 4.proxy 5.Agent 三、监控对象 四、zabbix的日常术语 1.主机(host) 2.主机组(host group) 3.监控项(item) 4.触发器(trigger) 5.事件(event) 6.动作(a…

Aspose导出word使用记录

背景:Aspose系列的控件,功能实现都比较强大,可以实现多样化的报表设计及输出。 通过这次业务机会,锂宝碳审核中业务功需要实现Word文档表格的动态导出功能,因此学习了相关内容,在学习和参考了官方API文档的…

PSP - 蛋白质结构预测 OpenFold Multimer 训练模型的数据加载

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/132597659 OpenFold Multimer 是基于深度学习的方法,预测蛋白质的多聚体结构和相互作用。利用大规模的蛋白质序列和结构数据&#xff…

数据结构|栈和队列以及实现

栈和队列 一、栈1.1栈的概念及结构1.2栈的实现 二、队列2.1队列的概念及结构2.2队列的实现 一、栈 1.1栈的概念及结构 栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和数据删除的一端称为栈顶,另一端称为栈…

vue的第2篇 开发环境vscode的安装以及创建项目空间

一 环境的搭建 1.1常见前端开发ide 1.2 安装vs.code 1.下载地址:Visual Studio Code - Code Editing. Redefined 2.进行安装 1.2.1 vscode的中文插件安装 1.在搜索框输入“chinese” 2.安装完成重启,如下变成中文 1.2.2 修改工作区的颜色 选中[浅色]…

HBuilderX修改manifest.json设置,解决跨域问题(CORS、Cross-Origin)

搭建一个前台uniapp,后台springboot的开发环境时,遇到了跨域问题。 console提示错误信息: Access to XMLHttpRequest at http://10.0.180.203/api/cms/getAdList?apId1 from origin http://localhost:8080 has been blocked by CORS policy…

微服务--Gatway:网关

routes: - id:order_route(路由唯一 标识,路由到order) uri:http://localhost:8020 #需要转发的地址 #断言规则(用于路由规则的匹配) predicates: -path/order-serv/** -pathlb://order-service # lb: 使用nacos中的本地…

随机森林算法

介绍 随机森林是一种基于集成学习的有监督机器学习算法。随机森林是包含多个决策树的分类器,一般输出的类别是由决策树的众数决定。随机森林也可以用于常见的回归拟合。随机森林主要是运用了两种思想。具体如下所示。 Breimans的Bootstrap aggregatingHo的random …

操作系统清华同步笔记:定义概述+计算机内存和硬盘布局+启动流程顺序+中断、异常和系统调用

定义概述 从用户角度来看,操作系统是一个控制软件,用以管理应用程序,为应用程序提供服务,杀死应用程序等。从内部文件角度来看,操作系统是一个资源管理器,用以管理外设,分配资源。层次结构&…

MySQL内容及原理记录

原理篇 架构、索引、事务、锁、日志、性能调优 高可用 读写分离、分库分表、分布式ID、高可用、分布式数据库、分布式事务、分布式锁 架构 1 执行一条 SQL 查询语句,期间发生了什么? (1)连接器:客户端通过连接器…

uniapp 支持图片放大

<view class"list" v-for"(item, index) in urls" :key"index"><image :src"item" click"viewImg(item, index)" disabled></image></view> js // 预览大图 viewImg(data, index) {uni.previewImag…

【Three.js + Vue 构建三维地球-Part One】

Three.js Vue 构建三维地球-Part One Vue 初始化部分Vue-cli 安装初始化 Vue 项目调整目录结构 Three.js 简介Three.js 安装与开始使用 实习的第一个任务是完成一个三维地球的首屏搭建&#xff0c;看了很多的案例&#xff0c;也尝试了用 Echarts 3D地球的模型进行构建&#xf…

苍穹外卖01-项目概述、环境搭建

项目概述、环境搭建 课程内容 软件开发整体介绍苍穹外卖项目介绍开发环境搭建导入接口文档Swagger 项目整体效果展示&#xff1a; 管理端-外卖商家使用用户端-点餐用户使用当我们完成该项目的学习&#xff0c;可以培养以下能力&#xff1a; 1. 软件开发整体介绍 作为一名软…

【单片机】UART、I2C、SPI、TTL、RS232、RS422、RS485、CAN、USB、SD卡、1-WIRE、Ethernet等常见通信方式

在单片机开发中&#xff0c;UART、I2C、RS485等普遍在用&#xff0c;这里做一个简单的介绍 UART通用异步收发器 UART口指的是一种物理接口形式(硬件)。 UART是异步&#xff08;指不使用时钟同步&#xff0c;依靠帧长进行判断&#xff09;&#xff0c;全双工&#xff08;收发…

Linux:编译遇到 Please port gnulib freadahead.c to your platform ,怎么破

问题背景 编译m4时遇到以下错误&#xff0c;该怎么解决呢&#xff1f; 解决方法 进入m4的build目录&#xff1a;build/host-m4-1.4.17 输入命令&#xff1a; sed -i s/IO_ftrylockfile/IO_EOF_SEEN/ lib/*.c echo "#define _IO_IN_BACKUP 0x100" >> lib/std…

长城网络靶场,第一题笔记

黑客使用了哪款扫描工具对论坛进行了扫描&#xff1f;&#xff08;小写简称&#xff09; 第一关&#xff0c;第三小题的答案是awvs 思路是先统计查询 然后过滤ip检查流量 过滤语句&#xff1a;tcp and ip.addr ip 114.240179.133没有 第二个101.36.79.67 之后找到了一个…