操作系统笔记-第一章

news2024/11/27 22:33:45

文章目录

  • 操作系统概述
  • 1. 操作系统的概念
    • 1.1 操作系统的地位
    • 1.2 操作系统的作用
    • 1.3 操作系统的定义
  • 2. 操作系统的历史
    • 2.1 操作系统的产生
      • 2.1.1 手动操作阶段(20世纪40年代)
      • 2.1.2 批处理阶段(20世纪50年代)
      • 2.1.3 执行系统阶段(20世纪60年代初期)
    • 2.2 操作系统的完善
      • 2.2.1 多道处理系统(20世纪60年代初期)
      • 2.2.2 分时系统(20世纪60年代初期和中期)
      • 2.2.3 实时处理系统(20世纪60年代中期)
      • 2.2.4 通用操作系统(20世纪60年代后期)
    • 2.3 操作系统的发展
  • 3 操作系统的特性
    • 3.1 程序并发性
      • 3.1.1 并发与并行的区别
    • 3.2 资源共享性
    • 3.3 异步性
    • 3.4 虚拟性
  • 4 操作系统的分类
    • 4.1 多道批处理操作系统(batch processing system)
    • 4.2 分时操作系统(time-sharing system)
    • 4.3 实时操作系统(real time system)
    • 4.4 通用操作系统(multi-purpose system)
    • 4.5 单用户操作系统(single user system)
    • 4.6 网络操作系统(network operating system)
    • 4.7 分布式操作系统(distributed operating system)
    • 4.8 多处理机操作系统(multi-processor system)
    • 4.9 集群操作系统(cluster operating system)
      • 4.9.1 集群操作系统与分布式操作系统的区别
    • 4.10 云计算操作系统( cloud computing operating system )
    • 4.11 嵌入式操作系统(embedded operating system)
    • 4.12 多媒体操作系统(MultiMedia operating system )
    • 4.13 智能卡操作系统(smart-card operating system)
  • 5 操作系统的硬件环境
    • 5.1 定时装置
    • 5.2 堆与栈
      • 5.2.1 一个堆
      • 5.2.2 两个栈
    • 5.3 寄存器
    • 5.4 特权指令与非特权指令
    • 5.5 处理机状态及状态转换
    • 5.6 地址映射机构
    • 5.7 存储保护设施
    • 5.8 中断装置
    • 5.9 通道与DMA控制器
  • 6 操作系统的界面形式
    • 6.1 交互终端命令
    • 6.2 图形界面(GUI)
    • 6.3 触屏用户界面
    • 6.4 作业控制语言(JCL Job Control Language)
    • 6.5 系统调用命令(API)
  • 7. 操作系统的运行机理
  • 8. 研究操作系统的几种观点

操作系统概述

  • 写在前面
    本笔记整理自《计算机操作系统教程》(第4版) 左万利 王英
    特别鸣谢:集美大学计算机工程学院罗冬梅老师

1. 操作系统的概念

1.1 操作系统的地位

  • 计算机系统是由硬件软件两部分构成的。软件又分为系统软件应用软件两类。
    在这里插入图片描述

  • 操作系统的地位:操作系统是一个最基本也是最重要系统软件
    在这里插入图片描述

  • 从虚拟机的层次来看,操作系统是与计算机硬件关系最为密切的一个系统软件,是对硬件系统的第一次扩充
    在这里插入图片描述

1.2 操作系统的作用

  1. 管理系统中的各种资源。操作系统需要管理包括进程(CPU),存储器文件设备在内的各种资源。操作系统作为一个资源仲裁者,由它负责资源在各个程序之间的调度,保证操作系统中的各种资源得以有效利用。
  2. 为用户提供友好的界面。随着计算机走入家庭和办公自动化领域,计算机的使用者大多不是计算机专业人员,界面的友好性比资源利用效率更具实际意义。操作系统提供APIGUI

1.3 操作系统的定义

定义1-1

  • 操作系统是位于硬件层(HAL)之上,所有其它软件层之下的一个系统软件
  • 通过它管理系统中的各种软件和硬件资源
  • 使它们能被充分利用方便用户使用计算机系统。

2. 操作系统的历史

2.1 操作系统的产生

2.1.1 手动操作阶段(20世纪40年代)

手动操作

  1. 将程序和数据通过手动操作记录在穿孔纸带
  2. 将程序穿孔纸带放到光电输入机上,并通过控制台开关启动光电输入机,将程序输入内存
  3. 再通过控制台开关启动程序由第一条指令开始执行……
  4. 在电传打印机上输出运行结果

缺点:

  1. 用户在作业处理的整个过程中独享系统中的全部资源(系统的资源利用率极低
  2. 手工操作所需的时间很长

2.1.2 批处理阶段(20世纪50年代)

(1)联机批处理:若干个作业合成一批,并将其卡片依次放到读卡机上
监督程序

在这里插入图片描述

  • 在处理机上有一个专门用来管理输入输出的监督程序

缺点:
作业由读卡机到磁带机的传输需要由处理器完成。设备的传输速度远低于处理器的速度,在此传输的过程中处理器需要等待。

(2)脱机批处理:输入输出操作交给卫星机去做
卫星机
在这里插入图片描述
缺点:
需要一个专门的卫星机,并且磁带装卸需要人工完成

2.1.3 执行系统阶段(20世纪60年代初期)

1. 引入了通道
2. 出现通道中断主机功能

  • 通道又称I/O处理器,它具有自己的指令系统运算控制部件,与处理器共享内存资源

通道输入输出操作可以同处理器的计算工作完全并行执行,并在输入输出操作完成时向处理器发出中断请求
作业读卡机到磁带机的传输以及结果磁带机到打印机的传输均由通道完成。(假脱机)

2.2 操作系统的完善

2.2.1 多道处理系统(20世纪60年代初期)

适合大型计算任务

  • 引入了多道程序设计的概念。
  • 当一道作业因为等待I/O传输完成而暂时不能运行时,系统就可以将处理器资源分配给另一个可以运行的程序。

2.2.2 分时系统(20世纪60年代初期和中期)

适合交互式任务

  • 脱机方式不利于程序的动态调试,为了达到联机操作的目标,引入联机的分时系统
  • 分时系统也是以多道程序设计为基础的。

2.2.3 实时处理系统(20世纪60年代中期)

集成电路

  • 集成电路取代了分立元件,计算机性能大大提高。

2.2.4 通用操作系统(20世纪60年代后期)

  • 多通道操作系统、分时系统和实时处理系统是传统操作系统的三大类别,它们为通用操作系统的最终形成做好了必要的准备。
  • 通用操作系统可以运行成批作业接收终端请求同时处理实时任务

2.3 操作系统的发展

  • 硬件体系结构由集中向分散发展,出现了计算机网络
  • 随着微处理器技术的迅猛发展,家庭和商用微型计算机得到了普及
  • 在科学和军事领域,大型计算任务要求极强的计算和处理能力,多处理器并行成为必然选择
  • 嵌入式和智能卡操作系统出现
  • 多核技术应运而生

3 操作系统的特性

讨论的出发点是:多个程序

3.1 程序并发性

  • 所谓的程序并发,是指计算机系统中同时存在多个程序
  • 多个程序在宏观上同时向前推进
  • 并发(concurrent) vs. 并行 (parallel)

3.1.1 并发与并行的区别

  • 程序并行不仅要求在宏观上看多个程序都在向前推进,更要求微观上的同时,即要求在绝对的同一时刻有多个程序同时向前推进。(需要多个处理器 )
  • 程序并发并不要求微观上的同时,只需从宏观上看多个程序都在向前推进。(虚处理器)

3.2 资源共享性

  • 多个程序共用系统中的各种软硬件资源**
  • 在操作系统的协调和控制下

3.3 异步性

中断实现交替

  • 宏观上同时运行的程序是微观上是交替执行的,交替实现依靠中断中断使用户程序切换到OS,嵌套中断使一段OS切换到另一段OS,而中断的发生是不确定的,因而OS的运行轨迹是异步,不可预知的。

3.4 虚拟性

  • 利用某种技术把一个物理实体变为若干个逻辑实体。CPU,内存,外存。

4 操作系统的分类

4.1 多道批处理操作系统(batch processing system)

  • 脱机操作为标志的操作系统,适合处理运行时间比较长的程序
    在这里插入图片描述
    第一次出现作业的概念
  • 作业(Job):用户程序+数据+作业说明书(JCL Job Control Language编写)
  • 输入井作用
    • 缓冲(速度匹配作用,即处理数据到达与离开速度不一致)
    • 实现作业调度(job scheduling)
  • 输出井作用
    • 缓冲(速度匹配作用,即处理数据到达与离开速度不一致))
  • 特点:
    多道:系统中同时容纳多个作业
    成批:作业分批进入系统。作业之间的过渡由OS控制,无需用户干预。

4.2 分时操作系统(time-sharing system)

时间片

  • 联机操作为标志的OS,特别适合于程序的动态调试和修改
  • 时间片来实现分时。
    在这里插入图片描述
  • 特点:
    • 多路性一个主机多个终端相连;
    • 交互性:以对话的方式为用户服务;
    • 独占性每个终端用户仿佛拥有一台虚拟机

4.3 实时操作系统(real time system)

  • 按其应用范围可以分为实时控制实时信息处理两大类别。
  • 实时控制
    • 工业控制,军事控制,医疗控制,…….
      在这里插入图片描述
  • 实时信息处理
    • 航班定票,联机情报检索,…….
      在这里插入图片描述
  • 特点:
    • (1)响应及时(prompt response)
    • (2)可靠性高(high reliability)

4.4 通用操作系统(multi-purpose system)

  • 同时具有:分时、实时、批处理功能的OS。
  • 目标:
    • 进一步提高资源利用率,提高处理能力
    • 用户提供多模式的服务,扩展应用领域
  • 常见模式:
    • 分时(前台)+批处理(后台)
    • 实时(前台)+批处理(后台)
  • 前台任务优于后台任务。

4.5 单用户操作系统(single user system)

PC 个人计算机

  • 同一时刻仅有一个用户使用的OS
  • 更注重用户的友好性操作的方便性
  • 特点:
    • 单用户
    • 多进程
    • 多线程
    • 虚拟存储管理方式
    • 层次结构文件系统

4.6 网络操作系统(network operating system)

  • 用于实现网络通信网络资源管理的操作系统。
    在这里插入图片描述
  • 网络中主机以及相连的外围设备称为HOST,它们可以属于不同的类型。
  • 各个HOST上配置的网络操作系统也可能界面形式不同。
  • 各个结点具有自治性

4.7 分布式操作系统(distributed operating system)

  • 紧耦合型:建立在多机(多CPU)系统之上
    在这里插入图片描述
  • 松散耦合型:建立在计算机网络的基础之上
    在这里插入图片描述
  • 分布式操作系统特征:
    • 统一的操作系统
    • 资源的进一步共享作业可迁移,实现负载均衡
    • 可靠性 :不同Host处于等同的地位
    • 透明性 :OS掩盖了不同Host在地理位置上的差异

4.8 多处理机操作系统(multi-processor system)

  • 具有公共内存公共时钟多CPU系统,也成为**“紧耦合系统”。**
    在这里插入图片描述
  • 主要形式——对称多处理机系统SMP
  • 系统中的多个CPU型号和地位相同,没有主从关系

4.9 集群操作系统(cluster operating system)

  • 建立在局域网络基础上,是指一种由多台计算机通过软件互相连接组成的并行或分布式系统可以作为单独,统一的计算资源来使用。
  • 关键技术分为:网络层结点机及操作系统层集群系统管理层应用层

4.9.1 集群操作系统与分布式操作系统的区别

  • 分布式指将不同的业务分布在不同的地方
  • 集群指将几台服务器集中在一起,实现同一业务
  • 分布式结构中的每一个结点都可以做集群,而集群不一定就是分布式的。

4.10 云计算操作系统( cloud computing operating system )

云意味着海量,极大的数量级
聚水(微小)成云(大量)

  • 云的思想是把互联网中计算能力比较弱的各个结点统一管理起来,构成一个功能强大的计算机系统。
  • 云计算操作系统又称云操作系统,云计算中心操作系统,是以云计算,云存储技术作为支撑的操作系统,是云计算后台数据中心的整体管理运营系统,它是指架构于服务器,存储,网络等基础硬件资源和单机操作系统,中间件,数据库等基础软件之上的,管理海量的基础硬件,软件资源的云平台综合管理系统。

4.11 嵌入式操作系统(embedded operating system)

提供轻量级的支持多道程序设计的环境

  • 嵌入式系统大多用于控制,因而具有实时特性
  • 特点
    • 可裁剪性:适应差别巨大的硬件配置和应用需求
    • 可移植性:不同硬件平台的移植
    • 可扩展性:易于在原有的OS的基础上不大改的情况下拓展新的功能。
  • 微内核一般性的基础功能:处理器调度,基本内存管理,通信机制,电源管理。

4.12 多媒体操作系统(MultiMedia operating system )

  • 除具有一般OS的功能外,还具有多媒体底层扩充模块,支持高层多媒体信息的采集,编辑,播放和传输等处理功能的系统。
  • 分类:
    • 具有编辑和播放双重功能的开发系统
    • 以具备交互播放功能为主的教育/培训系统
    • 用于娱乐和学习的家用多媒体系统

4.13 智能卡操作系统(smart-card operating system)

最小的操作系统

  • CPU的计算能力存储容量都有严格的限制

5 操作系统的硬件环境

5.1 定时装置

  • 绝对时钟:记载实际时间,不发中断。其值保存于硬件寄存器中,可由程序设定和修改。一般通过特权指令完成。
  • 间隔时钟:“闹钟”,定时发生中断,一般间隔单位为“毫秒”。
    • 间隔时钟是实现多道程序的基础——保证操作系统获得控制权。
    • 其它事件引起的中断也进入操作系统,但是否发生,何时发生没有保障,只有时钟中断最可靠

5.2 堆与栈

  • 每个运行程序都有一个堆两个栈(一个用户栈和一个系统栈)

5.2.1 一个堆

  • 堆属于用户空间,用于保存程序中的动态变量。由操作系统分给运行程序,操作系统为用户分配基本大小为8KB的堆。

5.2.2 两个栈

  • 用户栈属于用户空间
    • 保存用户函数调用时的返回点,参数,局部变量,返回值
    • 传送用户程序调用操作系统时传给操作系统的参数(较长的参数,如文件名)。比较小的数据用寄存器传递

  • 系统栈内存中OS空间的一个固定区域
    • 保存中断现场(包括PC(指令计数器)PSW(程序状态字)
    • 保存OS子程序间相互调用的返回点、参数、局部变量、返回值

5.3 寄存器

  • 程序状态字
    在这里插入图片描述

  • 指令计数器(PC)运行程序下一条指令的地址

  • 栈指针SP管态和目态各一个,分别保存系统栈和用户栈的栈顶位置

  • 通用寄存器(regs):存数和计算

  • 浮点寄存器(fregs):存数和计算

  • 地址映射寄存器:基址和限长寄存器

5.4 特权指令与非特权指令

  • 特权指令(privileged instruction)
    只有在管态才能执行的指令 (不仅影响运行程序本身,也影响其他程序,甚至整个系统)
    关中断,置程序状态字,停机, IO,…….
    一般只有OS才能执行,一般用户程序不可执行
  • 非特权指令(non-privileged instruction)所有程序可用(不影响其它程序和OS)
    取数,四则运算,……

5.5 处理机状态及状态转换

处理机状态描述
系统态(管态,核态)OS运行时所处的状态,可执行硬件提供的全部指令,包括特权指令和非特权指令
用户态(目态,常态)一般用户程序运行时所处的状态,只能执行非特权指令非要执行特权指令,硬件将产生中断,进入OS,特权指令的执行将被制止
  • 状态转换
    • 管态 —(置程序状态字)—> 目态
    • 目态 —(中断)—> 管态

5.6 地址映射机构

  • 程序在内存的存放位置是随机确定的,而且可以改变。因此程序不能采用物理地址,而只能采用逻辑地址
  • 逻辑地址(虚地址):程序中产生的地址
  • 物理地址(实地址):存储器地址
  • 为了使每个程序的基本单位都能从0开始编址,硬件需要提供地址映射机构,负责将运行程序所产生的逻辑地址转换为内存物理地址。

5.7 存储保护设施

  • 程序可能会产生错误地址使得:
  • 侵犯操作系统空间
  • 侵犯其它用戶空间

  • 当发生存储越界错误或者非法存取错误时,硬件的存储保护设施能够立即发现,并触发中断进入管态加以制止

5.8 中断装置

  • 发现响应中断的硬件机构。

功能如下:

  1. 发现中断:中断发生时能够识别。有多个中断同时发生时,按优先级别响应最高者。
  2. 响应中断
    • 将当前的中断向量(PSW,PC)压入系统栈
    • 然后根据中断原因将新的中断向量(PSW,PC)取出并送到寄存器中

5.9 通道与DMA控制器

  • 通道负责I/O操作的处理器,具有自己的指令系统
  • DMA(direct memory access)直接存储器存取。类似于通道,但是没有专门的指令系统。受CPU委托完成数据在内存和块型设备之间的传输,一般一次只传输一个数据块。

6 操作系统的界面形式

6.1 交互终端命令

* 交互终端命令是**分时操作系统**所具有的界面形式。
  • UNIX系统交互式命令解释程序shell(外壳)提供,而shell并不属于系统核心,而是运行于核心之外的目态程序,它通过系统调用核心打交道,完成命令所要求的动作。
    在这里插入图片描述
  • 优点:
    • 缩小核心 (shell运行在核心之外)
    • 不同用户可以选择不同界面 (核心之外可以有多个shell,每个不同的shell连接一个不同的终端界面)

6.2 图形界面(GUI)

  • 本质上也属于交互式界面形式,只不过界面由命令行转变为图形提示和鼠标操作

6.3 触屏用户界面

  • 常见于手机平板电脑上,用户通过触摸手的姿势产生中断,与操作系统进行交互

6.4 作业控制语言(JCL Job Control Language)

  • 这是批处理系统所具有的界面形式。
  • 系统为用户提供一种作业控制语言。当用户欲提交批作业时,他使用这种语言书写作业说明书,该说明书以操作系统所能识别的形式描述一个用户作业的处理步骤,然后将此说明书与程序、数据一道提交给操作系统。

6.5 系统调用命令(API)

  • 系统调用命令也称为应用程序接口(API),这是在用户程序级别上与操作系统打交道的方式。
  • OS为用户提供一组系统调用命令,用户可以将这些系统调用命令写在程序中。
  • 当用户程序运行过程中执行到这些系统调用命令时,将发生自愿性中断,进入操作系统。

7. 操作系统的运行机理

在这里插入图片描述

  • 中断是程序切换的必要条件,即若发生了程序切换则必定发生了中断。CPU的使用权限无法由一个程序直接交付给另一个程序,中间必须由操作系统来介入,而使得操作系统介入的操作就是中断。
  • 但是发生中断则不一定是因为发生了程序切换,还存在有其它可能引起中断的事件
  • 在中断例程完成后,既可能继续执行程序1,也可能决定执行程序2,这与操作系统的调度原则有关。

8. 研究操作系统的几种观点

观点类型观点内容
进程观点进程观点将操作系统看成若干个可以独立运行的程序一个对这些程序进行协调管理的核心组成,这些运行的程序称为进程,每个进程完成某一特定任务。
资源管理观点资源管理观点认为操作系统是一个资源管理程序,所管理的资源包括硬件资源(处理器、内存设备)和软件资源 (文件、数据等),用户在使用这些资源前需要向操作系统提出申请,用完后将资源归还给操作系统。
虚拟机观点虚拟机的观点认为操作系统是一个虚拟机,它是硬件上运行的第一层系统软件,它对硬件功能进行第一次扩充

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

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

相关文章

aws console 使用fargate部署aws服务快速跳转前端搜索栏

测试过程中需要在大量资源之间跳转,频繁的点击不如直接搜索来的快,于是写了一个搜索框方便跳转。 前端的静态页面可以通过s3静态网站托管实现,但是由于中国区需要备案的原因,可以使用ecs fargate部署 步骤如下: 编写…

Springboot打包成jar发布

打包的方式 打包成jar包打包成war包 区别:jar包内置了tomcat、netty等服务器,更改只需要修改pom.xml的坐标即可,war不内置服务器,需要上传到服务器tomcat解压后运行 如何打包? 打包成jar,pom.xml中设置打…

Linux基础命令-df显示磁盘的使用情况

文章目录 文章目录 df 命令介绍 语法格式 基本参数 参考实例 1)以人类可读形式显示磁盘空间的使用情况 2)显示磁盘的inode信息 3)显示磁盘和文件系统类型 4)指定显示文件系统 5)显示所有磁盘空间中的内容 …

C++11多线程编程 三:锁资源管理和条件变量

C11多线程编程 一:多线程概述 C11多线程编程 二:多线程通信,同步,锁 C11多线程编程 三:锁资源管理和条件变量 3.1 手动实现RAii管理mutex资源锁自动释放 自己写的代码一般都是自己上锁,自己进行释放&…

【fly-iot飞翔物联】(2):如何从0打造自己的物联网平台,使用开源的技术栈搭建一个高性能的物联网平台,目前在设计阶段。

目录前言1,fly-iot飞翔物联2,mqtt-broker 服务3, 管理后台产品/设备设计4,数据存储目前使用mysql,消息存储到influxdb中5,规则引擎使用 ekuiper6, 总结和其他的想法前言 本文的原文连接是: https://blog.csdn.net/freewebsys/article/details…

3-2 创建一个至少有两个PV组成的大小为20G的名为testvg的VG

文章目录1. 在vmware添加多块20G的硬盘,并创建分区2. 创建一个至少有两个PV组成的大小为20G的名为testvg的VG,要求PE大小为16M,而后在卷组中创建大小为5G的逻辑卷testlv;挂载至/users目录3. 新建用户archlinux,要求其家目录为/users/archlinu…

华为OD机试题,用 Java 解【字符串变换最小字符串】问题

最近更新的博客 华为OD机试 - 猴子爬山 | 机试题算法思路 【2023】华为OD机试 - 分糖果(Java) | 机试题算法思路 【2023】华为OD机试 - 非严格递增连续数字序列 | 机试题算法思路 【2023】华为OD机试 - 消消乐游戏(Java) | 机试题算法思路 【2023】华为OD机试 - 组成最大数…

合规要点解析:如何正确的使用隐私增强技术

开放隐私计算开放隐私计算开放隐私计算OpenMPC是国内第一个且影响力最大的隐私计算开放社区。社区秉承开放共享的精神,专注于隐私计算行业的研究与布道。社区致力于隐私计算技术的传播,愿成为中国 “隐私计算最后一公里的服务区”。183篇原创内容公众号G…

名创优品第二季度财报预测:收入和利润都将大幅下降

来源:猛兽财经 作者:猛兽财经 名创优品2023财年第二季度财务业绩预测 名创优品(MNSO) 将于2月28日公布2023会计年度第二季度(2022年9月30日至12月31日)财务业绩。 卖方分析师认为,名创优品2023财年第二季度的财务业绩将不如2023财年第一季度。…

前端常考react面试题(持续更新中)

react diff 算法 我们知道React会维护两个虚拟DOM,那么是如何来比较,如何来判断,做出最优的解呢?这就用到了diff算法 diff算法的作用 计算出Virtual DOM中真正变化的部分,并只针对该部分进行原生DOM操作,而…

Axure8设计—动态仪表盘

本次分享的的案例是Axure8制作的动态仪表盘,根据设置的数值,仪表盘指针旋转到相应的值位置 预览地址:https://2qiuwg.axshare.com 下载地址:https://download.csdn.net/download/weixin_43516258/87502161 一、制作原型 1、首先创建空白页…

JavaWeb中异步交互的关键——Ajax

文章目录1,Ajax 概述1.1 作用1.2 同步和异步1.3 案例1.3.1 分析1.3.2 后端实现1.3.3 前端实现2,axios2.1 基本使用2.2 快速入门2.2.1 后端实现2.2.2 前端实现2.3 请求方法别名3,JSON3.1 概述3.2 JSON 基础语法3.2.1 定义格式3.2.2 代码演示3.2.3 发送异步…

【蓝桥杯每日一题】双指针算法

🍎 博客主页:🌙披星戴月的贾维斯 🍎 欢迎关注:👍点赞🍃收藏🔥留言 🍇系列专栏:🌙 蓝桥杯 🌙我与杀戮之中绽放,亦如黎明的花…

电子科技大学数据库与软件工程实验报告一

适用于网络工程和物联网专业(信通学院) 实验报告格式和内容如下(仅供参考,具体还需要自己理解) 本实验有一个陷阱****:安装Centos系统的时候,分配区的大小的时候一定要默认,不能自己…

Maven的下载和安装【详细】

文章目录一、什么是Maven?二、Maven的安装与配置2.1下载Maven安装包2.2配置Maven环境变量2.3验证三、Idea配置Maven3.1配置 setting.xml文件3.2Idea配置Maven一、什么是Maven? Apache Maven是个项目管理和自动构建工具,基于项目对象模型&…

【力扣周赛#334】6369. 左右元素和的差值 + 6368. 找出字符串的可整除数组 + 6367. 求出最多标记下标

目录 6369. 左右元素和的差值 - 前缀后缀和 ac 6368. 找出字符串的可整除数组 - 操作余数ac 6367. 求出最多标记下标 - 二分答案 贪心 6369. 左右元素和的差值 - 前缀后缀和 ac class Solution {public int[] leftRigthDifference(int[] nums) {int nnums.length;int[] re…

开发同事辞职,接手到垃圾代码怎么办?

小王新加入了一家公司,这家公司有点年头,所以连屎山都是发酵过的,味道很冲。和大多数时运不济的程序员一样,到了这种公司,做的大多数工作,就是修补这些祖传代码,为其添砖加瓦。每当被折腾的筋疲…

ChatGPT的互补工具Perplexity的详细使用方法(持续更新)

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,科大讯飞比赛第三名,CCF比赛第四名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…

Leetcode.1372 二叉树中的最长交错路径

题目链接 Leetcode.1372 二叉树中的最长交错路径 Rating : 1713 题目描述 给你一棵以 root为根的二叉树,二叉树中的交错路径定义如下: 选择二叉树中 任意 节点和一个方向(左或者右)。如果前进方向为右,那…

idea中maven只有Lifecycle,没有Dependencies

原因是idea和maven版本不兼容问题 我用的是idea2021,maven3.8.6 改成低版本maven就行了