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

操作系统面试题

操作系统

  • 一、简介篇
    • 1.解释一下什么是操作系统
    • 2.操作系统的主要功能
    • 3.软件访问硬件的几种方式
    • 4.操作系统的主要目的是什么
    • 5.为什么Linux系统下的应用程序不能直接在Windows下运行
    • 6.什么是用户态和内核态
    • 7.用户态和内核态如何切换
    • 8.什么是内核
  • 二、进程和线程篇
    • 1.多处理系统的优势
    • 2.什么是进程表
    • 3.什么是进程、线程,已经它们之间的区别
    • 4.什么是上下文切换
    • 5.使用多线程的好处
    • 6.进程终止的方式
    • 7.进程间的通信方式
    • 8.进程状态模型
  • 三、内存管理篇
    • 1.什么是按需分页
    • 2.什么是虚拟内存
    • 3.虚拟内存的实现方式
    • 4.内存为什么分段
  • 四、文件系统篇
    • 1.提高文件系统性能的方式
      • (1)高速缓存
      • (2)块提前读
      • (3)减少磁臂运动
      • (4)磁盘碎片整理
    • 2.RAID的不同级别
  • 五、IO篇
    • 1.操作系统的时钟是什么
    • 2.中断处理的过程
    • 3.什么是DMA
    • 4.直接访问内存的特点
  • 六、死锁篇
    • 1.什么是僵尸进程
    • 2.死锁产生的原因
    • 3.死锁产生的必要条件
    • 4.死锁的恢复方式

一、简介篇

1.解释一下什么是操作系统

(1)操作系统是管理硬件和软件的一种应用程序(2)操作系统是运行在计算机上最重要的一种软件,它管理计算机的资源和进程以及所有的硬件和软件。(3)它为计算机硬件和软件提供了一种中间层,使应用软件和硬件进行分离,让我们无需关注硬件的实现,把关注点更多放在软件应用上(4)通常情况下,计算机上会运行着许多应用程序,它们都需要对内存和CPU进行交互,操作系统的目的就是为了保证这些访问和交互能够准确无误的进行

2.操作系统的主要功能

(1)进程管理:主要作用就是任务调度,在单核处理器下,操作系统会为每个进程分配一个任务,进程管理的工作十分简单;而在多核处理器下,操作系统除了要为进程分配任务外,还要解决处理器的调度、分配和回收等问题(2)内存管理:主要是操作系统管理内存的分配和回收,在进程需要时分配内存以及在进程完成时回收内存,协调内存资源,通过合理的页面置换算法进行页面的换入换出(3)文件管理:有效地管理文件的存储空间,合理地在组织和管理文件系统,为文件访问和文件保护提供更有效地方法及手段(4)设备管理:根据确定的设备分配原则对设备进行分配,使设备与主机能够并行工作,为用户提供良好的设备使用界面(5)提供用户接口:提供了访问应用程序和硬件的接口,使用户能够通过应用程序发起系统调用从而操纵硬件,实现想要的功能

3.软件访问硬件的几种方式

软件访问硬件其实就是一种I/O操作,软件访问硬件的方式也就是IO操作的方式有哪些选择和衡量I/O控制方式的原则:
数据传送速度足够快,能满足用户的需求但又不丢失数据
系统开销小,所需地处理控制程序少
能充分发挥硬件资源的能力,使I/O设备尽可能忙,而CPU等待时间尽可能少
以CPU为中心,数据传送通过一段程序来实现:
(1)直接访问:由用户进程直接控制主存或CPU和外围设备之间的信息传送,直接程序控制方式又称为忙/等待方式(2)中断驱动:为了减少程序直接控制方式下CPU的等待时间以及提高系统的并行程度,系统引入了中断机制。中断机制引入后,外围设备仅当操作正常结束或异常结束时才向CPU发出中断请求。在I/O设备输入每个数据的过程中,由于无需CPU的干预,一定程度上实现了CPU与I/O设备的并行工作采用硬件方法:
(3)DMA直接内存访问:为了进一步减少CPU对I/O操作的干预,防止因并行操作设备过多使CPU来不及处理或因速度不匹配而造成的数据丢失现象,引入了DMA控制方式(4)通道控制方式:通道是独立于CPU的专门负责输入输出控制的处理机,它控制设备与内存直接进行数据交换。有自己的通道指令,这些指令由CPU启动,并在操作结束时向CPU发出中断信号

4.操作系统的主要目的是什么

(1)管理计算机资源,这些资源包括CPU、内存、磁盘驱动器、打印机等(2)提供一种图形界面,提供了用户和计算机之间的桥梁(3)为其他软件提供服务,操作系统与软件进行交互,以便为其分配运行所需的任何必要资源

5.为什么Linux系统下的应用程序不能直接在Windows下运行

(1)Linux系统和Windows系统的格式不同,格式就是协议,就是在固定位置有意义的数据。Linux下的可执行程序文件格式是elf      而Windows下的可执行程序是PE格式,它是一种可移植的可执行文件(2)Linux系统和Windows系统的API不同,这个API指的就是操作系统的API,Linux中的API被称为系统调用,是通过 int 0x80 这个软中断实现的。而Windows中的API是放在动态链接库文件中的,也就是DDL(里面包含代码和数据)。Linux中的可执行程序获得系统资源的方法和Windows不一样,所以显然是不能在Windows中运行的

6.什么是用户态和内核态

用户态和内核态是操作系统的两种运行状态(1)内核态:处于内核态的CPU可以访问任意的数据,包括外围设备,比如网卡、硬盘等,处于内核态的CPU可以从一个程序切换到另外一个程序,并且占用CPU不会发生抢占情况,一般处于特权级0的状态我们称之为内核态(2)用户态:处于用户态的CPU只能受限的访问内存,并且不允许访问外围设备,用户态下的CPU不允许独占,也就是说CPU能够被其他程序获取

7.用户态和内核态如何切换

所有的用户进程都是运行在用户态的,用户程序的访问能力有限,一些比较重要的比如从硬盘读取数据,从
键盘获取数据的操作则是内核态才能做的事情,而这些数据却又对用户程序来说非常中要,所以就设计到两
种模式下的切换用户态发生系统调用/异常/外围设备的中断,就会切换到内核态去执行处理,处理结束后又切换到用户态

8.什么是内核

在计算机中,内核是一个计算机程序,它是操作系统的核心,可以控制操作系统中所有的内容

二、进程和线程篇

1.多处理系统的优势

(1)多处理器系统的吞吐量比较高,多处理器系统拥有多个并行的处理器(2)多处理器由于可以共享资源,因此可以开源节流,省钱,整个系统的可靠性也随之提高

2.什么是进程表

操作系统为了跟踪每个进程的活动状态,维护了一个进程表。
在进程表内部,列出了每个进程的状态以及每个进程使用的资源等

3.什么是进程、线程,已经它们之间的区别

(1)进程是一段正在执行的程序代码,是操作系统进行资源分配和调度的最小单位(2)线程是进程中的单条流向,每个进程可以分为多个线程,线程是操作系统执行的最小单位(3)线程不像进程那样具有很强的独立性,线程之间会共享数据(4)创建线程的开销要比进程小的多,因为创建线程仅仅需要堆栈指针和程序计数器就可以了,而创建进程需要操作系统分配新的地址空间、数据资源等,开销比较大

4.什么是上下文切换

(1)上下文切换是一种将CPU资源从一个进程分配给另一个进程的机制(2)从用户角度看,计算机能够并行运行多个进程,这恰恰是操作系统通过快速上下文切换造成的结果(3)在切换过程中,操作系统需要先存储当前进程的状态(包括内存空间的指针,当前执行完的指令等等),再读入下一个进程的状态,然后执行此进程

5.使用多线程的好处

(1)能够提高对用户的响应速度(2)可以实现线程间的资源共享

6.进程终止的方式

(1)正常退出:多数进程由于完成了工作而终止。当编译器完成了所给定程序的编译之后,会执行一个系统调用告诉操作系统它完成了工作。(2)错误退出:发现了严重错误而退出。(3)严重错误:由进程引起的错误,通常是程序中的错误所导致的。例如执行了一条非法执行,引入不存在的内存,或者除数是0等。(4)被其他进程杀死:某个进程执行系统调用告诉操作系统杀死某个进程

7.进程间的通信方式

(1)消息传递:是进程间实现通信和同步等待的机制,使用消息传递,进程间的交流不需要共享变量直接就可以进行通信;消息传递分为发送方和接收方(2)先进先出队列:指的是两个不相关联进程间的通信,两个进程之间可以彼此相互进程通信,这是一种全双工通信方式(3)管道:用于两个相关进程之间的通信,这是一种半双工的通信方式,如果需要全双工,需要另外一个管道(4)直接通信:在这种进程通信方式中,进程与进程之间只存在一条链接,进程间要明确通信双方的命名(5)间接通信:是通信双方不会建立直接连接,而是找到一个中介者,这个中介者可能是个对象等等,进程可以在其中放置消息,并且可以从中删除消息,以此达到进程间通信的目的(6)消息队列:是内核中存储消息的链表,它由消息队列标识符进行标识,这种方式能够在不同进程之间提供全双工通信连接(7)共享内存:是使用所有进程之间的内存来建立连接,这种类型需要同步进程访问来相互保护

8.进程状态模型

(1)新建态:进程刚创建出来的时候(2)就绪态:指的是可运行,但因为其他进程正在运行而处于就绪状态(3)运行态:指的是进程实际占用CPU时间片运行时(4)阻塞态:指的是不具备运行条件,正在等待被CPU调度(5)终止态:指的是进程执行完毕,到达结束点或者一位内错误而不得不终止进程

三、内存管理篇

1.什么是按需分页

(1)在操作系统中,进程是以页为单位加载到内存中的,按需分页是一种虚拟内存的管理方式(2)在使用请求分页的系统中,只有在尝试访问页面所在的磁盘并且该页面尚未在内存时,也就是发生了缺页异常,操作系统才会将磁盘页面复制到内存中

2.什么是虚拟内存

(1)虚拟内存是一种内存分配方案,是一项可以用来辅助内存分配的机制(2)使用虚拟内存就实现了可以同时加载多个应用程序,提高内存空间利用率(3)物理内存本身是不限制访问的,任何地址都可以读写,这样就存在安全问题(4)直接使用物理内存会存在进程间的安全问题,各个进程间没有独立的地址空间,一个进程由于执行错误指令或是恶意代码都可以直接修改其它进程的数据,甚至修改内核地址空间的数据

3.虚拟内存的实现方式

虚拟内存中,允许将一个作业分多次调入内存。采用连续分配方式时,会使相当一部分内存空间都处于暂时
或永久的空闲状态,造成内存资源的严重浪费,而且也无法从逻辑上扩大内存容量。因此,虚拟内存的实现
方式需要建立在离散分配的内存管理方式的基础上。有以下三种方式:(1)请求分页存储管理(2)请求分段存储管理(3)请求段页式存储管理

4.内存为什么分段

(1)使程序可以重定位,避免两个相同程序编译出来的地址相同而导致无法运行的情况(2)为了能够访问到所有的内存

四、文件系统篇

1.提高文件系统性能的方式

(1)高速缓存

(1)最常用的减少磁盘访问次数的技术是使用块高速缓存或者缓冲区高速缓存(2)高速缓存指的是一系列的块,它们逻辑上数于磁盘,但实际基于性能的考虑被保护在内存中(3)检查全部的读请求,查看在高速缓存中是否有所需要的块。如果存在,可执行读操作而无需访问磁盘。如果检查块不再高速缓存中,那么首先把它读入高速缓存,再复制到所需要的地方。之后对同一个块的请求都通过告诉缓存来完成。(4)由于在高速缓存中有许多块,所以需要某种方法快速确定所需的块是否存在。常用方法是将设备和磁盘地址进行散列操作。然后在散列表中查找结果。具有相同散列值的块在一个链表中连接在一起这样就可以沿着冲突链查找其他块。(5)如果告诉缓存已满,此时需要调入新的块,则要把原来的某一块调出高速缓存,如果要调出的块在上次调入后已经被修改过,则需要把它写回磁盘。

(2)块提前读

(1)在需要用到块之前试图提前将其写入高速缓存从而提高命中率。(2)许多文件都是顺序读取,如果请求文件系统在某个文件中生成块k,文件系统执行相关操作并且在完成之后,会检查高速缓存,以便确定块k+1是否已经在告诉缓存中。如果不在,文件系统会为k+1安排一个预读取。(3)只适用于实际顺序读取的文件,对随机访问的文件不适用

(3)减少磁臂运动

(1)把有可能顺序访问的块放在一起,从而减少磁盘臂的移动次数

(4)磁盘碎片整理

(1)移动文件使它们相互挨着,并把所有的至少是大部分的空闲空间放在一个或多个大的连续区域内

2.RAID的不同级别

RAID称为磁盘冗余阵列。简称磁盘阵列。利用虚拟化技术把多个硬盘结合在一起,成为一个或多个磁盘
阵列组,目的是提高性能或数据冗余。(1)RAID 0 - 无容错的条带化磁盘阵列
(2)RAID 1 - 镜像和双工
(3)RAID 2 - 内存式纠错码
(4)RAID 3 - 比特交错奇偶校验
(5)RAID 4 - 块交错奇偶校验
(6)RAID 5 - 块交错分布式奇偶校验
(7)RAID 6 - P + Q冗余

五、IO篇

1.操作系统的时钟是什么

时钟也被称为计时器,负责维护时间、防止一个进程长期占用CPU时间等其他功能

2.中断处理的过程

3.什么是DMA

(1)DMA的中文是直接内存访问,它意味着CPU授予IO模式权限在不涉及CPU的情况下读取或写入内存(2)也就是DMA不需要CPU的参与(3)由于DMA设备可以直接在内存之间传输数据,而不是使用CPU作为中介,因此可以缓解总线上的拥塞(4)DMA通过允许CPU执行任务,同时DMA系统通过系统和内存总线传输数据来提高系统的并发性

4.直接访问内存的特点

(1)数据传送以数据块为基本单位(2)所传送的数据从设备直接送入主存,或者从主存直接输出到设备上(3)仅在传送数据块开始和结束时才需要CPU的干预,而整块数据的传送则是在控制器的控制下完成

六、死锁篇

1.什么是僵尸进程

(1)是指已完成且处于终止状态,但在进程表中却仍然存在的进程(2)僵尸进程通常发生在父子关系的进程中,由于父进程仍需要读取子进程的退出状态所导致的

2.死锁产生的原因

(1)资源竞争
(2)程序执行顺序不当

3.死锁产生的必要条件

(1)同一时刻只能有一个进程访问某个资源
(2)一个资源在等待某个资源时,不是放已经占有的资源
(3)分配给一个进程的资源除非他自己释放,不能被其他进程抢占
(4)形成首尾相连的循环等待

4.死锁的恢复方式

(1)通过抢占恢复:将某个进程的资源强制取走给其他进程使用,使用完又送回(2)通过回滚恢复:为了进行恢复,要回滚到上一个较早的检查点,此时可以对资源再次进行分配(3)杀死进程恢复:直接杀死一个进程

相关文章:

操作系统面试题

操作系统一、简介篇1.解释一下什么是操作系统2.操作系统的主要功能3.软件访问硬件的几种方式4.操作系统的主要目的是什么5.为什么Linux系统下的应用程序不能直接在Windows下运行6.什么是用户态和内核态7.用户态和内核态如何切换8.什么是内核二、进程和线程篇1.多处理系统的优势…...

Kafka入门(七)

下面聊聊Kafka的配置参数,包括生产者的配置参数、Broker的配置参数、消费者的配置参数。 1、生产者配置参数 acks 该参数控制了生产者的消息发送确认机制,用于指定分区中必须有多少个副本成功接收到消息后生产者才会认为这条消息写入是成功的&#xff0c…...

微服务介绍

微服务 微服务架构发展 微服务这个概念最早是在2011年5月威尼斯的一个软件架构会议上讨论提出的,用于描述一些作为通用架构风格的设计原则;2012年3月在波兰举行的Degree Conference大会,james lewis做演讲,讨论了微服务一些原则…...

搭建SpringBoot多模块微服务项目脚手架(三)

搭建SpringBoot多模块微服务项目脚手架(三) 文章目录搭建SpringBoot多模块微服务项目脚手架(三)1.概述项目结构2.接口返回统一信息模板2.1.封装返回统一信息思路介绍2.2.封装json数据格式1.导入依赖2.封装code码3.封装json格式模板4.使用统一返回信息3.接口统一请求信息模板3.1…...

对vue3中reactive、toref、torefs、ref的详细理解

reactive&#xff1a;将平常的一个对象转换成响应式对象。所谓的响应式对象就是当页面点击修改此对象时&#xff0c;页面无需刷新而在页面上的其他地方有用到这个对象的地方会自动同步修改过来例如&#xff1a; <template><div class"container"><di…...

C++ Primer Plus 第6版 读书笔记(6) 第 6 章 分支语句和逻辑运算符

第 6 章 分支语句和逻辑运算符 C是在 C 语言基础上开发的一种集面向对象编程、泛型编程和过程化编程于一体的编程语言&#xff0c;是C语言的超集。本书是根据2003年的ISO/ANSI C标准编写的&#xff0c;通过大量短小精悍的程序详细而全面地阐述了 C的基本概念和技术&#xff0c;…...

Java Class 加密工具 ClassFinal

Jar包加密工具 ClassFinal介绍环境依赖使用说明下载加密命令行示例maven插件方式无密码模式机器绑定启动加密后的jar启动参数给密码不加密码参数直接启动1. 密码文件获取2. 交互输入参考资料介绍 ClassFinal 是一款 java class 文件安全加密工具&#xff0c;支持直接加密jar包…...

【蓝桥杯集训·每日一题】AcWing 3555. 二叉树

文章目录一、题目1、原题链接2、题目描述二、解题报告1、思路分析2、时间复杂度3、代码详解三、知识风暴最近公共祖先一、题目 1、原题链接 3555. 二叉树 2、题目描述 给定一个 n 个结点&#xff08;编号 1∼n&#xff09;构成的二叉树&#xff0c;其根结点为 1 号点。 进行 m…...

【JavaScript运行原理之V8引擎】V8引擎解析JavaScript代码原理

1. 编程语言的执行 高级语言最终都需要编译为低级语言才能被硬件执行&#xff0c;越高级的语言中间的转换时间越长&#xff0c;效率越低&#xff0c;越低级的语言执行素的越快&#xff0c;但是由于缺少高级语言便捷的语法特性所以很难编写代码。 2. 大杂烩JS 它是作者在1995…...

C++11:智能指针

文章目录1. 介绍1.1 动态内存与智能指针2. 使用2.1 创建2.2 使用3. 原理3.1 RAII3.2 像指针一样使用3.3 支持智能指针对象拷贝auto_ptrRAII4. 标准库中的智能指针4.1 unique_ptr模拟实现4.2 shared_ptr引用计数模拟实现定制删除器4.3 weak_ptrshared_ptr造成的循环引用问题与sh…...

ccc-pytorch-RNN(7)

文章目录一、RNN简介二、RNN关键结构三、RNN的训练方式四、时间序列预测五、梯度弥散和梯度爆炸问题一、RNN简介 RNN&#xff08;Recurrent Neural Network&#xff09;中文循环神经网络&#xff0c;用于处理序列数据。它与传统人工神经网络和卷积神经网络的输入和输出相互独立…...

docker安装(linux)

安装需要的软件包 yum install -y yum-utils 设置stable镜像仓库&#xff08;使用阿里云镜像&#xff09; yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 更新yum软件包索引 yum makecache fast 安装DOCKER 引擎 yum -y…...

【数据库概论】10.1 事务及其作用

事务是一系列的数据库操作&#xff0c;是数据库应用程序的基本逻辑单元 10.1 事务的基本概念 1.事务 事务是用户定义的一个数据库操作序列&#xff0c;是一个具有原子性的操作&#xff0c;不可再分&#xff0c;一个事务内的操作要么全做、要么都不做。一般来说&#xff0c;一…...

通讯录(C++实现)

系统需求通讯录是一个可以记录亲人、好友信息的工具。本章主要利用C来实现一个通讯录管理系统系统中需要实现的功能如下:添加联系人:向通讯录中添加新人&#xff0c;信息包括&#xff08;姓名、性别、年龄、联系电话、家庭住址&#xff09;最多记录1000人显示联系人:显示通讯录…...

轻松掌握C++的模板与类模板,将Tamplate广泛运用于我们的编程生活

C提高编程 本阶段主要针对C泛型编程和STL技术做详细讲解&#xff0c;探讨C更深层的使用 泛型编程:编写与类型无关的通用代码,是代码复用的一种手段。 模板 1.模板的概念 模板就是建立通用的模具&#xff0c;大大提高复用性 例如&#xff1a; 2.函数模板 C另一种编程思想称…...

pandas 数据预处理+数据概览 处理技巧整理(持续更新版)

这篇文章主要是整理下使用pandas的一些技巧&#xff0c;因为经常不用它&#xff0c;这些指令忘得真的很快。前段时间在数模美赛中已经栽过跟头了&#xff0c;不希望以后遇到相关问题的时候还去网上查&#xff08;主要是太杂了&#xff09;。可能读者跟我有一样的问题&#xff0…...

mmdetectionV2.x版本 训练自己的VOC数据集

mmdetection目录下创建data文件夹&#xff0c;路劲如图所示&#xff0c;不带yololabels 修改配置文件 mmdet/datasets/voc.py 配置图片格式 mmdet/datasets/xml_style.py 如果图片是jpg则改成jpg&#xff0c;是png格式就改成png&#xff0c;这里我不需要改&#xff0c;本…...

Shell - crontab 定时 git 拉取并执行 maven 打包

目录 一.引言 二.踩坑与实践 1.原始代码 2.mvn package 未执行与解决 [导入环境变量] 3.git pull 未执行与解决 [添加绝对路径] 三.总结 一.引言 git 任务部署在通道机&#xff0c;每天6点需要定时更新 jar 包并打包上线&#xff0c;所以需要在 linux 服务器上&#xff…...

408考研计算机之计算机组成与设计——知识点及其做题经验篇目3:指令的寻址方式

上篇文章我们讲到&#xff0c;指令的基本格式&#xff0c;一条指令通常包括操作码字段和地址码字段两部分&#xff1a; 操作码字段地址码字段并且我们还讲到根据操作数地址码的数目不同&#xff0c;可将指令分为零一二三四地址指令。感兴趣的小伙伴们可以看看小编的上一篇文章…...

前端包管理工具:npm,yarn、cnpm、npx、pnpm

包管理工具npm Node Package Manager&#xff0c;也就是Node包管理器&#xff1b; 但是目前已经不仅仅是Node包管理器了&#xff0c;在前端项目中我们也在使用它来管理依赖的包&#xff1b; 比如vue、vue-router、vuex、express、koa、react、react-dom、axios、babel、webpack…...

推荐系统 FM因式分解

reference&#xff1a;知乎 FM算法解析 LR算法没有二阶交叉 如果是id类特征&#xff0c;这里的x是0/1&#xff0c;raw的特征输入就是float&#xff0c;当然&#xff0c;在我的理解里&#xff0c;一般会把raw的特征进行分桶&#xff0c;还是映射到0/1特征&#xff0c;不然这个w…...

Maven基础入门

文章目录Maven简介Maven 工作模式1.仓库2.坐标Maven的基本使用1.常用命令2.生命周期依赖管理1.依赖配置2.依赖传递3.可选依赖4.排除依赖5.依赖范围IDEA配置MavenMaven简介 Apache Maven 是一个项目管理和构建工具&#xff0c;它基于项目对象模型(POM)的概念&#xff0c;通过一…...

传输层协议 TCP UDP

目录 协议前菜 端口号 ​编辑端口号范围划分 认识知名端口号(Well-Know Port Number) netstat pidof 传输层协议 UDP协议 UDP协议端格式 UDP的特点 面向数据报 UDP的缓冲区 UDP使用注意事项 基于UDP的应用层协议 TCP协议 TCP协议概念 TCP协议段格式 标志…...

一点就分享系列(实践篇6——上篇)【迟到补发】Yolo-High_level系列算法开源项目融入V8 旨在研究和兼容使用【持续更新】

一点就分享系列&#xff08;实践篇5-补更篇&#xff09;[迟到补发]—Yolo系列算法开源项目融入V8旨在研究和兼容使用[持续更新] 题外话 去年我一直复读机式强调High-level在工业界已经饱和的情况&#xff0c;目的是呼吁更多人看准自己&#xff0c;不管是数字孪生交叉领域&#…...

buu RSA 1 (Crypto 第一页)

题目描述&#xff1a; 两个文件&#xff0c;都用记事本打开&#xff0c;记住用记事本打开 pub.key: -----BEGIN PUBLIC KEY----- MDwwDQYJKoZIhvcNAQEBBQADKwAwKAIhAMAzLFxkrkcYL2wch21CM2kQVFpY97 /AvKr1rzQczdAgMBAAE -----END PUBLIC KEY-----flag.enc: A柪YJ^ 柛x秥?y…...

Python 二分查找:bisect库的使用

✅作者简介&#xff1a;人工智能专业本科在读&#xff0c;喜欢计算机与编程&#xff0c;写博客记录自己的学习历程。 &#x1f34e;个人主页&#xff1a;小嗷犬的个人主页 &#x1f34a;个人网站&#xff1a;小嗷犬的技术小站 &#x1f96d;个人信条&#xff1a;为天地立心&…...

性能优化之HBase性能调优

HBase是Hadoop生态系统中的一个组件&#xff0c;是一个分布式、面向列存储的内存型开源数据库&#xff0c;可以支持数百万列&#xff08;MySQL4张表在HBase中对应1个表&#xff0c;4个列&#xff09;、超过10亿行的数据存储。可用作&#xff1a;冷热数据分离HBase适合作为冷数据…...

图像金字塔,原理、实现及应用

什么是图像金字塔 图像金字塔是对图像的一种多尺度表达&#xff0c;将各个尺度的图像按照分辨率从小到大&#xff0c;依次从上到下排列&#xff0c;就会形成类似金字塔的结构&#xff0c;因此称为图像金字塔。 常见的图像金字塔有两类&#xff0c;一种是高斯金字塔&#xff0…...

08-Oracle游标管理(定义,打开、获取数据及关闭游标)

目标 1.确定何时需要显示游标2.声明、打开和关闭显示游标3.从显示游标中提取数据4.了解与游标有关的属性5.使用游标FOR循环检索游标中的数据6.在游标FOR循环的子查询中声明游标7.评估使用逻辑运算符结合在一起的布尔条件游标 1、在使用一个PL/SQL块来执行DML语句或只返回一行结…...

Python判断字符串是否包含特定子串的7种方法

目录1、使用 in 和 not in2、使用 find 方法3、使用 index 方法4、使用 count 方法5、通过魔法方法6、借助 operator7、使用正则匹配转自&#xff1a;https://cloud.tencent.com/developer/article/1699719我们经常会遇这样一个需求&#xff1a;判断字符串中是否包含某个关键词…...

aop实现接口访问频率限制

引言 项目开发中我们有时会用到一些第三方付费的接口&#xff0c;这些接口的每次调用都会产生一些费用&#xff0c;有时会有别有用心之人恶意调用我们的接口&#xff0c;造成经济损失&#xff1b;或者有时需要对一些执行时间比较长的的接口进行频率限制&#xff0c;这里我就简…...

Hive---窗口函数

Hive窗口函数 其他函数: Hive—Hive函数 文章目录Hive窗口函数开窗数据准备建表导入数据聚合函数window子句LAG(col,n,default_val) 往前第 n 行数据LEAD(col,n, default_val) 往后第 n 行数据ROW_NUMBER() 会根据顺序计算RANK() 排序相同时会重复&#xff0c;总数不会变DENSE…...

JavaSe第7次笔记

1. C语言里面&#xff0c;NULL是0地址。Java中null和0地址没关系。 2.数组可以做方法的返回值。 3.可以使用变量作为数组的个数开辟空间。 4.断言assert&#xff0c;需要设置。 5.排序&#xff1a;Arrays. sort(array); 6.查找&#xff1a; int index Arrays. binarySea…...

什么是 Service 以及描述下它的生命周期。Service 有哪些启动方法,有 什么区别,怎样停用 Service?

在 Service 的生命周期中,被回调的方法比 Activity 少一些,只有 onCreate, onStart, onDestroy, onBind 和 onUnbind。 通常有两种方式启动一个 Service,他们对 Service 生命周期的影响是不一样的。 1. 通过 startService Service 会经历 onCreate 到 onStart,然后处于运行…...

Redis部署

JAVA安装 mkdir /usr/local/javacd /usr/local/java/wget --no-check-certificate --no-cookies --header "Cookie: oraclelicenseaccept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u13…...

AT32F437制作Bootloader然后实现Http OTA升级

首先创建一个AT32F437的工程&#xff0c;然后发现调试工程配置这里的型号和创建工程选的型号不一致&#xff0c;手动更改一下&#xff0c;使用PW Link下载程序的话还要配置一下pyocd.exe的路径。 打开drv_clk.c文件的调试功能看下系统时钟频率。 项目使用的是AT32F437VMT7芯片&…...

Springboot项目启动初始化数据缓存

1.从Java EE5规范开始&#xff0c;Servlet中增加了两个影响Servlet生命周期的注解&#xff0c; PostConstruct和PreDestroy&#xff0c;这两个注解被用来修饰一个非静态的void&#xff08;&#xff09;方法&#xff0c;被PostConstruct修饰的方法会在服务器加载Servlet的时候运…...

深度学习必备知识——模型数据集Yolo与Voc格式文件相互转化

在深度学习中&#xff0c;第一步要做的往往就是处理数据集,尤其是学习百度飞桨PaddlePaddle的小伙伴&#xff0c;数据集经常要用Voc格式的&#xff0c;比如性能突出的ppyolo等模型。所以学会数据集转化的本领是十分必要的。这篇博客就带你一起进行Yolo与Voc格式的相互转化&…...

数据、数据资源及数据资产管理的区别

整理不易&#xff0c;转发请注明出处&#xff0c;请勿直接剽窃&#xff01; 点赞、关注、不迷路&#xff01; 摘要&#xff1a;数据、数据资源、数据资产 数据、数据资源及数据资产的区别 举例 CRM系统建设完成后会有很多数据&#xff0c;这些数据就是原始数据&#xff0c;业务…...

标度不变性(scale invariance)与无标度(scale-free)概念辨析

文章目录标度标度种类名义标度序级标度等距标度比率标度常用标度方法不足标度不变性标度不变&#xff08;Scale-invariant&#xff09;曲线和自相似性&#xff08;self-similarity&#xff09;射影几何分形随机过程中的标度不变性标度不变的 Tweedie distribution普适性&#x…...

WMS仓库管理系统解决方案,实现仓库管理一体化

仓库是企业的核心环节&#xff0c;若没有对库存的合理控制和送货&#xff0c;将会造成成本的上升&#xff0c;服务品质的难以得到保证&#xff0c;进而降低企业的竞争能力。WMS仓库管理系统包括基本信息&#xff0c;标签&#xff0c;入库&#xff0c;上架&#xff0c;领料&…...

css常见定位、居中方案_css定位居中

一、 定位分类 1、静态定位 position:static;&#xff08;默认&#xff0c;具备标准流条件&#xff09; 2、相对定位 position:relative; 通过 top 或者 bottom 来设置 Y 轴位置 通过 left 或者 right 来设置 X 轴位置 特点&#xff1a; 相对定位不会脱离文档流相对于自…...

【微信小程序】-- 自定义组件 -- 创建与引用 样式(三十二)

&#x1f48c; 所属专栏&#xff1a;【微信小程序开发教程】 &#x1f600; 作  者&#xff1a;我是夜阑的狗&#x1f436; &#x1f680; 个人简介&#xff1a;一个正在努力学技术的CV工程师&#xff0c;专注基础和实战分享 &#xff0c;欢迎咨询&#xff01; &…...

ArangoDB——AQL编辑器

AQL 编辑器 ArangoDB 的查询语言称为 AQL。AQL与关系数据库管理系统 (RDBMS)区别在于其更像一种编程语言&#xff0c;更自然地适合无模式模型&#xff0c;并使查询语言非常强大&#xff0c;同时保持易于读写。数据建模概念 数据库是集合的集合。集合存储记录&#xff0c;称为文…...

Lesson 9.1 集成学习的三大关键领域、Bagging 方法的基本思想和 RandomForestRegressor 的实现

文章目录一、 集成学习的三大关键领域二、Bagging 方法的基本思想三、RandomForestRegressor 的实现在开始学习之前&#xff0c;先导入我们需要的库&#xff0c;并查看库的版本。 import numpy as np import pandas as pd import sklearn import matplotlib as mlp import sea…...

basic1.0链码部署(基于test-network 环境ubuntu20.04腾讯云)

解决了官方示例指令需要科学上网才能运行的问题&#xff08;通过手动下载二进制文件和拉取官方fabric-samples&#xff09;。具体的将bootstrap.sh脚本解读了一遍 具体可以参照我的博客 fabric中bootstrap.sh到底帮助我们干了什么&#xff1f;&#xff08;curl -sSL https://bi…...

Android---系统启动流程

目录 Android 系统启动流程 init 进程分析 init.rc 解析 Zygote 概叙 Zygote 触发过程 Zygote 启动过程 什么时Runtime&#xff1f; System Server 启动流程 Fork 函数 总结 面试题 Android 是 google 公司开发的一款基于 Linux 的开源操作系统。 Android 系统启动…...

【网络】http协议

&#x1f941;作者&#xff1a; 华丞臧. &#x1f4d5;​​​​专栏&#xff1a;【网络】 各位读者老爷如果觉得博主写的不错&#xff0c;请诸位多多支持(点赞收藏关注)。如果有错误的地方&#xff0c;欢迎在评论区指出。 推荐一款刷题网站 &#x1f449; LeetCode刷题网站 文章…...

Thread::interrupted() 什么意思? 如何中断线程?

1、答&#xff1a; Thread::interrupted() 是一个静态方法&#xff0c;用于判断当前线程是否被中断&#xff0c;并清除中断标志位。 具体来说&#xff0c;当一个线程被中断后&#xff0c;它的中断状态将被设置为 true。如果在接下来的某个时间点内调用了该线程的 interrupted…...

Oracle OCP 19c 考试(1Z0-083)中关于Oracle不完全恢复的考点(文末附录像)

欢迎试看博主的专著《MySQL 8.0运维与优化》 下面是Oracle 19c OCP考试&#xff08;1Z0-083&#xff09;中关于Oracle不完全恢复的题目: A database is configured in ARCHIVELOG mode A full RMAN backup exists but no control file backup to trace has been taken A media…...