当前位置: 首页 > news >正文

操作系统笔记-第一章

文章目录

  • 操作系统概述
  • 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. 研究操作系统的几种观点

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

相关文章:

操作系统笔记-第一章

文章目录操作系统概述1. 操作系统的概念1.1 操作系统的地位1.2 操作系统的作用1.3 操作系统的定义2. 操作系统的历史2.1 操作系统的产生2.1.1 手动操作阶段(20世纪40年代)2.1.2 批处理阶段(20世纪50年代)2.1.3 执行系统阶段&#…...

daillist

daillist #重要说明: #[1]任意两个配置参数之间必须以空格隔开,否则,拨号脚本无法识别。 #[2]Info格式说明:厂商名简称_制式_频段 #VID #PID #PORT_M #PORT_A #PORT_G #script_*99# #script_#777 #Info 05c6 9025 /dev/ttyUSB1 /dev/ttyUSB2 …...

vue中render函数的作用和参数(vue2中render函数用法)

render 函数是 Vue2.x 新增的一个函数、主要用来提升节点的性能,它是基于 JavaScript 计算。使用 Render 函数将 Template 里面的节点解析成虚拟的 Dom 。Vue 推荐在绝大多数情况下使用模板来创建 HTML。然而在一些场景中,需要 JavaScript 的完全编程能力…...

基于Istio的高级流量管理二(Envoy流量劫持、Istio架构、高级流量管理)

文章目录一、Envoy流量劫持机制(Iptables规则流转)1、流量出向劫持流程(1)envoy怎样劫持入向流量?(2)Envoy劫持到流量之后,干什么?(查询目的地)&a…...

Sharding-Springboot-mybatis-plus整合(三)-inline策略

Sharding-Springboot-mybatis-plus整合(三) 1.简介 本节目标,使用SpringBoot整合Sharding和Mybatis-Plus验证上节分片策略 从配置文件上看策略包括( inline、standard、complex、hint) 环境搭建以inline策略演示 …...

编码的基本概念

本专栏包含信息论与编码的核心知识,按知识点组织,可作为教学或学习的参考。markdown版本已归档至【Github仓库:information-theory】,需要的朋友们自取。或者公众号【AIShareLab】回复 信息论 也可获取。 文章目录信源编码分类前缀…...

函数指针与指针函数的区别

目录:一、函数指针1 函数类型2 函数指针(指向函数的指针)3 函数指针数组二.函数指针和指针函数比较1 定义不同2 写法不同3.用法不同三.函数指针做函数参数(回调函数)1 利用回调函数实现打印任意类型数据2 提供能够打印任意类型数组函数3 利用回调函数 提供查找功能四…...

死锁的四个必要条件以及如何避免死锁

死锁的四个必要条件以及如何避免死锁 一.什么是死锁?二.死锁的四个必要条件 1.互斥条件:2.请求与保持条件:3.不剥夺条件:4.循环等待条件: 三.如何避免死锁 1.破坏请求保持条件2.破坏不剥夺条件3.破坏循环等待条件 死锁的四个必要条件以及如…...

浏览器多线程到事件循环机制

浏览器与js运行机制 进程与线程 进程 进程是CPU分配资源的最小单位,它是一个可以自己独立运行且拥有自己资源空间的任务程序;包括程序以及程序所使用的内存及系统资源 线程 线程是CPU调度的最小单位,它就是程序中的一个执行流&#xff1…...

Lambda表达式的本质

一直想写一篇文章,来总结lambda表达式,但是之前感觉总结的不是特别到位,现在看了几篇文章和视频后,感觉对lambda表达式有了比较深刻的认识,现在进行记录总结如下: lambda表达式又叫做匿名函数,…...

类的加载过程(生命周期)

类的加载过程(生命周期) 一、装载:通过一个类的全限定名获取定义此类的二进制字节流将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构在内存中生成一个代表这个类的java.lang.Class对象(将字节码加载到内存中),作为…...

2023最新谷粒商城笔记之MQ消息队列篇(全文总共13万字,超详细)

MQ消息队列 其实队列JDK中本身就有,不过这种队列也只能单体服务可能会使用,一旦项目使用的分布式架构,那么一定还是需要用到一个消息中间件的。我们引入消息队列的原因就是对我们的页面相应速度再优化,让用户的体验更好&#xff…...

多变量线性回归模型

多变量线性回归模型 模型参数为n1维向量,此时模型公式为 hθ(x)θ0x0θ1x1θ2x2...θnxnh_{\theta}(x)\theta_{0}x_{0}\theta_{1}x_{1}\theta_{2}x_{2}...\theta_{n}x_{n} hθ​(x)θ0​x0​θ1​x1​θ2​x2​...θn​xn​ 可以简化为 hθ(x)θTXh_{\theta}(x)\th…...

php 基于ICMP协议实现一个ping命令

php 基于ICMP协议实现一个ping命令 网络协议是什么ICMP 协议什么是ICMP?ICMP 的主要功能ICMP 在 IPv4 和 IPv6 的封装Wireshark抓包ICMP 请求包分析PHP构建 ICMP 数据包php中的 pack & unpack 函数字节和字符packunpackICMP计算校验和步骤总结网络协议是什么 网络协议&…...

Java基本数据类型

1.概述 佛说,大千世界,无奇不有。在这个世界里,物种的多样性,遍地开花,同样,在Java的世界里,也有着异曲同工之妙,Java秉承面向对象的特性,必然少不了区分对象的类型&…...

English Learning - L2 语音作业打卡 Day2 2023.2.22 周三

English Learning - L2 语音作业打卡 Day2 2023.2.22 周三💌 发音小贴士:💌 当日目标音发音规则/技巧:🍭 Part 1【热身练习】🍭 Part2【练习内容】🍭【练习感受】🍓元音[ ɑː ]&…...

45. 跳跃游戏 II

题目: 45. 跳跃游戏 II难度中等1974收藏分享切换为英文接收动态反馈给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说,如果你在 nums[i] 处,你可以跳转到任意 num…...

应届生Java面试50题线程篇(含解析)

什么是线程? 答:线程是操作系统能够进行运算调度的最小单位,是程序执行流的最小单元。在Java中,可以通过实现Runnable接口或继承Thread类来创建线程。 创建线程的方式有哪些?各自的优缺点是什么? 继承 Thread 类&…...

【数据库】第七章 数据库设计

第七章数据库设计 数据库设计概述 数据库设计的基本步骤 需求分析概念结构设计逻辑结构设计物理结构设计数据库实施数据库运行和维护 需求分析 收集需求,理解需求 收集各个角色的需求 概念数据库设计 建立概念模型 ,E-R图/IDEF1x图 消除冲突&…...

Burp Suite 常用模块简介

Burp Suite 常用模块分为 目标站点(target)模块 代理(proxy)模块 攻击(Intruder)模块 重放(Repeater) 模块 Target模块是对站点资源的收集,与站点各资源包发出和相应包的记录 Proxy模块是核心模块,可以拦截数据包发送往浏览器,进行修改后再…...

web vue 项目 Docker化部署

Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段: 构建阶段(Build Stage)&#xff1a…...

CentOS下的分布式内存计算Spark环境部署

一、Spark 核心架构与应用场景 1.1 分布式计算引擎的核心优势 Spark 是基于内存的分布式计算框架,相比 MapReduce 具有以下核心优势: 内存计算:数据可常驻内存,迭代计算性能提升 10-100 倍(文档段落:3-79…...

【Java_EE】Spring MVC

目录 Spring Web MVC ​编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 ​编辑参数重命名 RequestParam ​编辑​编辑传递集合 RequestParam 传递JSON数据 ​编辑RequestBody ​…...

深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南

🚀 C extern 关键字深度解析:跨文件编程的终极指南 📅 更新时间:2025年6月5日 🏷️ 标签:C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言🔥一、extern 是什么?&…...

有限自动机到正规文法转换器v1.0

1 项目简介 这是一个功能强大的有限自动机(Finite Automaton, FA)到正规文法(Regular Grammar)转换器,它配备了一个直观且完整的图形用户界面,使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...

Java + Spring Boot + Mybatis 实现批量插入

在 Java 中使用 Spring Boot 和 MyBatis 实现批量插入可以通过以下步骤完成。这里提供两种常用方法&#xff1a;使用 MyBatis 的 <foreach> 标签和批处理模式&#xff08;ExecutorType.BATCH&#xff09;。 方法一&#xff1a;使用 XML 的 <foreach> 标签&#xff…...

群晖NAS如何在虚拟机创建飞牛NAS

套件中心下载安装Virtual Machine Manager 创建虚拟机 配置虚拟机 飞牛官网下载 https://iso.liveupdate.fnnas.com/x86_64/trim/fnos-0.9.2-863.iso 群晖NAS如何在虚拟机创建飞牛NAS - 个人信息分享...

windows系统MySQL安装文档

概览&#xff1a;本文讨论了MySQL的安装、使用过程中涉及的解压、配置、初始化、注册服务、启动、修改密码、登录、退出以及卸载等相关内容&#xff0c;为学习者提供全面的操作指导。关键要点包括&#xff1a; 解压 &#xff1a;下载完成后解压压缩包&#xff0c;得到MySQL 8.…...

C++实现分布式网络通信框架RPC(2)——rpc发布端

有了上篇文章的项目的基本知识的了解&#xff0c;现在我们就开始构建项目。 目录 一、构建工程目录 二、本地服务发布成RPC服务 2.1理解RPC发布 2.2实现 三、Mprpc框架的基础类设计 3.1框架的初始化类 MprpcApplication 代码实现 3.2读取配置文件类 MprpcConfig 代码实现…...

Java并发编程实战 Day 11:并发设计模式

【Java并发编程实战 Day 11】并发设计模式 开篇 这是"Java并发编程实战"系列的第11天&#xff0c;今天我们聚焦于并发设计模式。并发设计模式是解决多线程环境下常见问题的经典解决方案&#xff0c;它们不仅提供了优雅的设计思路&#xff0c;还能显著提升系统的性能…...