操作系统 --- 计算机系统引论

news2024/11/30 8:11:54

(一)操作系统的目的和作用

概念(定义)

        操作系统 Operating System OS )是指控制和 管理 整个计算机系统的 硬件和软件 资源,并合理地组织调度计算机的工作和资源的分配;以 提供给用户和其他软件方便的接口和环境 ;它是计算机系统中最基本的系统软件。              ———— 王道 
 
        操作系统(OperatingSxstem,0S),指 控制和管理计算机系统资源、 合理调度各类资源, 提高系统效率,方便用户使用的系统软件,其核心点如下。
(1)方便用户使用。
(2)硬件系统之上的第一层软件:虚拟机。
(3)控制和管理计算机系统的硬件、软件资源。
(4)合理调度各类资源,提高系统效率和吞吐量。
                                                                ———— 吾言
由定义可知操作系统的性质有: ① 操作系统是系统资源的管理者    ②向上层提供方便易用的服务
 ③是最接近硬件的一层软件

功能

处理机管理

   处理机管理,以进程为单位进行处理机的分配,将系统对处理机的管理转化为对进程的管理和调度。进程管理包含进程的控制、同步和通信。

①进程控制 

        为作业创建一个或多个进程,并为之分配必要的资源;撤销已结束进程,回收其占用的资源:控制进程运行过程的状态转换。

②进程同步

为多个进程的运动进行协调。
进程互斥方式:进程对临界资源的使用方式,常用的互斥方法为锁机制。
进程同步方式:进程之间通过相互合作完成共同任务,如信号量机制。

③进程通信

相互合作的各进程之间的信息互换,即为合作进程间的通信。
调度:即资源分配,主要包括作业调度和进程调度两级调度。其中,作业调度为资源得到满足的后备作业分配资源、将其调入内存、创建进程、插入就绪队列,等待进程调度;进程调度为就绪队列的某进程分配处理器,设置运行现场、使之运行。

存储器管理

        存储器管理:为多道程序的运行提供良好环境,提高内存利用率,逻辑扩充内存空间。

①内存分配

 内存分配:包含静态分配和动态分配。
静态分配:装入作业时分配其所需全部存储空间,运行期间不可再申请存储空间,且不能移动。
动态分配:装入作业时分配其所需的基本存储空间,运行期间可再申请存储空间,也可以移动。

②内存保护

内存保护,通过设置界限寄存器等方式实现,主要任务是保证处于运行状态的各程序之间互不干扰。

③地址映射

地址映射:将逻辑地址转换为实际内存的物理地址。


④内存扩充。

        内存扩充
请求调入:部分装入,运行期间由操作系统在需要时装入对应数据。
置换:内存空间不够时,可将部分不活跃程序或数据调出至外存,将需要调入的部分放入内存。

设备管理

         设备管理:为用户进程分配所需I/O设备,完成指定I/0操作,提高CPU和I/0设备利用率,方便用户使用1/0设备。设备管理主要包括缓冲管理、设备分配和设备处理3个部分。
①缓冲管理:用于缓解信息交互双方的速度矛盾,操作系统需对其提供有效管理。②设备分配:根据用户请求和系统状况,按照某种策略为用户分配所需I/O设备。③设备处理:通过设备驱动程序完成,实现CPU和设备控制器之间的通信。

文件管理 


         文件管理:对存放于外存的所有文件,包括系统文件和用户文件进行管理,保证文件安全性,并方便用户使用。
①文件存储空间管理为文件分配必要的外存空间;提高外存利用率,提高外存存取速度:记录文件存储空间的使用情况;对存储空间进行分配和回收。
②目录管理:一个文件对应一个目录项;按名存取;文件共享;快速查询。
③文件读/写管理:根据用户需求,从外存读取数据,或将数据写入外存。
④文件保护:提高有效存取控制,防止未授权用户存取文件,以及以不正确的方式使用文件等。

 

接口管理

接口管理:提供用户和操作系统之间的接口,方便用户直接或间接访问系统资源。
①用户接口:键盘命令、图形化界面/图形接口等。

联机用户接口:又称命令接口,由键盘命令和命令解释程序组成,是操作系统为联机用户提供的接口。
脱机用户接口:批处理作业用户使用的、由作业控制语言书写的作业说明书。
图形用户接口:图形化操作界面。
②程序接口:系统调用,为用户程序执行过程中访问系统资源而设置,是用户程序获取操作系统服务的途径。系统调用流程为传递参数;执行陷入(trap)指令,进入核心态;执行相应服务程序;返回用户态。

系统安全

 系统安全:现代操作系统新增功能。
①认证技术:确认对象的真实性,防止入侵者的假冒和篡改行为。
②密码技术:对系统中传输和存储的数据进行加密。
③访问控制技术:设置用户对系统资源的存取权限,限制其访问范围;设置文件属性,保障文件的安全。
④反病毒技术:预防病毒入侵比较困难,通过反病毒技术可清除已入侵的已知病毒。

网络功能和服务

 网络功能和服务:实现网络通信和资源管理,提供用户取得网络服务的手段。

 目标

(二)操作系统的发展过程

  无操作系统     
       

 (1)人工操作方式:用户独占全部系统资源;CPU等待人工操作;资源利用率极低,人机
矛盾突出;CPU和I/0设备之间的速度矛盾突出。
(2)脱机输入/输出方式:事先将纸带上的用户程序和数据通过纸带机,在外围机控制下输入磁带;CPU需要程序和数据时,由磁带高速调入内存。输出过程类似。
①借助磁带或磁盘实现。
②比人工操作方式减少了CPU的空闲时间,提高了I/0速度。


 单道批处理操作系统


        始于20世纪50年代中期,其中的单道指内存中最多存在一道用户程序,批处理指在系统监督程序(Monitor)控制下,依次连续处理存储于磁带的一批作业。
优点:解决了人机矛盾和CPU与I/0设备之间的速度不匹配问题;一定程度上提高了系统资源的使用率。
缺点:无交互能力;内存最多一道用户作业,系统资源利用率不高。
特点:事先脱机将一批作业输入磁带;自动性;顺序性;单道性。


 多道批处理操作系统


        20世纪60年代中期,IBM生产了第一台小规模集成电路计算机IBM360,配备的OS/360操作系统将作业在外存组成“后备队列”,由调度程序从中挑选若干资源并将满足条件者调入内存,是第一个能够运行多道程序的批处理系统。该机在体积、功耗、速度等方面均具有显著提高,因此获得巨大成功。


优点:提高了CPU、内存,以及I/0设备的利用率;多道作业同时处于运行状态,能够利用更多的系统资源;提高了系统的吞吐量。
缺点:无交互能力;平均周转时间长。


特点如下:
①多道性:内存可同时存在多个用户作业。
②无序性:多个作业的运行进度和时间受进程调度策略等影响。
③调度性:经进程调度后,处理器才能运行。
特别提示:推动批处理操作系统形成和发展的主要动力是提高资源利用率和系统吞吐量。


 分时系统


允许一台主机为多个用户服务,并及时响应用户请求,提高人机交互性。
(1)关键问题:
①及时接收:用户的命令和数据需要及时接收。
②及时处理:通过时间片分时使用处理器。
(2)特点:
①多路性:一台主机,多套终端,分时共享。
②独立性:各用户在自己的终端操作,互不干扰。
③及时性:用户请求能在较短时间内得到响应。
④交互性:用户可通过终端向系统请求更多服务。

实时系统

        系统需要具有及时响应外部事件请求的能力,并能控制所有实时任务协调统一地运行,实时任务可分为周期性实时任务和非周期性任务,其中的周期性实时任务是指外部设备周期性地给计算机发送激励信号,要求其按照指定周期循环运行,以周期性地控制某外部设备;非周期性实时任务是指实时任务没有明显的周期性,但必须具有截止时间,或最后期限(开始截止时间是指任务在某时刻前必须开始执行,完成截止时间是指任务在某时刻前必须完成
 
        硬实时任务必须在截止时间内完成:软实时任务要求不太严格,在截止时间前执行完即可,延迟也不会产生太大影响。
        常见的实时系统有工业控制系统、武器控制系统、信息查询系统、多媒体系统、嵌入式系统等。


实时系统的特点如下。
①独立性:各用户互不干扰。
②多路性:周期性采集、控制和处理。
③及时性:受制于控制对象所要求的截止时间。
④交互性:仅限于系统中某些特定的专用服务。
⑤可靠性:采用多级容错机制保证系统和数据的安全。


 微机操作系统


(1)单用户操作系统仅允许一个用户存在。其中的单用户单任务操作系统仅允许用户程序作为一个任务运行,如CP/M(8位操作系统)、PC-DOS(16位操作系统)等;单用户多任务操作系统允许用户程序划分为多个任务运行,如Windows系列(16位、32位操作系统)。


(2)多用户多任务操作系统允许多个用户通过终端使用同一台主机,共享系统所有资源,用户程序可划分为多个任务运行,如UNIX、Linux、VMS、MVS、A0S/vs等。

(三)操作系统的特性

并发,共享,虚拟,异步( 兵工一部)

(1)并发:两个或两个以上的程序在同一时间段内同时处于执行状态,通过资源复用实现并发是操作系统最重要的特性,可极大提高计算机系统资源的利用率和吞吐量。


(2)共享:资源复用,根据资源属性的不同,常见的共享方式有以下两种。
①互斥共享:不同进程顺序访问,如打印机、磁带机,称为临界资源。
②同时访问:不同进程交替访问,如磁盘。

注意:并发和共享是多用户操作系统最基本的两个特征。


(3)虚拟:通过某种技术将一个物理实体演变为若干逻辑物体,主要包含以下两种方式。

①时分复用:用户占用设备后未必一直使用,可利用设备为某用户服务的空闲时间为他用户服务,例如,多道程序设计中的虚拟处理器、虚拟设备中的共享打印机等。
特点:若1个物理设备供n个用户时分复用,则每个用户使用的虚拟设备的平均速度高于物理设备速度的1/n。
②空分复用:用户占用设备后未必全部使用,可利用某用户不使用的部分设备资源为他用户服务,如磁盘存储器。
特点:若1个物理设备供n个用户空分复用,则每个用户占用的虚拟设备空间不大于物理设备总空间的1/n。
(4)异步性(不确定性):多道程序环境下,受限于资源数量的不足,各进程以不可预务
的速度执行,运行结果可能存在差异。

(四)操作系统的运行环境

 

 中断和异常处理


        在计算机运行程序过程中,难免出现意外事件,如系统掉电、打印机缺纸、内存缺页等,操作系统需要妥善处理这类随机发生的事件,确保系统的正常运行。
        中断是计算机在执行程序过程中,当出现异常情况或特殊请求等意外时,暂停现行程序的执行,转而执行意外处理程序,结束后返回现行程序继续执行的过程。中断通常源于处理器外部的事件,如I/0中断、定时器中断、硬件故障等。
        中断系统是指计算机系统中处理中断的软硬件总称。其中的硬件包括中断控制器、中断优先级排队电路、中断向量生成电路等,软件包括处理中断事件的中断服务程序等。中断处理中CPU为被动工作方式,按照中断处理是否允许被屏蔽,中断可分为可屏蔽中断和不可屏蔽中断两类,其中前者的响应受屏蔽字的影响,若被屏蔽则不予响应,后者不受屏蔽字的影响。

        中断向量是中断服务程序的入口地址;中断向量表是所有中断向量构成的表格,可由用户通过特殊方式修改其内容,每个中断源对应一个称为中断类型号的8位编号,用于识别中断向量中断是识别中断源,即获取中断源对应中断服务程序入口地址的方法之一。每个中断向量占4个字节,中断类型号占1个字节,中断向量表存放于内存最底层1KB空间,如图1.1所示。


中断处理过程主要包含执行中断隐指令和执行中断服务程序两个阶段。
中断隐指令是CPU响应中断后执行的某些固定操作,由于这些操作由硬件直接实现,故称为隐指令,其操作流程如下。
(1)保存断点:中被中断程序的下一条将要执行的指令地址,即断点自动保存到堆栈中。
(2)关中断:确保后续操作的执行不被打断。
(3)转中断服务程序:由中断源获取其入口地址。

 中断服务程序是处理中断的程序,其操作流程如下。
(1)保护现场:发生中断时CPU的主要状态,如通用寄存器的值入栈保存。
(2)开中断:为响应更高级别的中断请求,应在保护完中断现场之后开中断。
(3)中断处理:执行本次中断对应的中断服务程序。
(4)关中断:防止在后续恢复现场过程中被新的中断打断。
(5)恢复现场:将执行中断隐指令过程中保存在堆栈中的断点出栈,并存储于CPU的指令地址寄存器。                                                                                                                                                (6) 开放中断:中断服务程序执行完毕、返回被中断的程序之前,为能再次响应中断请求而需要执行的操作。
(7)中断返回:继续执行被中断的程序。


  异常又称内中断,指主机内部产生的程序中止,通常由CPU正在执行的指令引发,如系统功能调用、缺页异常、存储器越界访问、运算引发的错误(溢出、除数为零)等。
(1)陷阱(Trap):通常由CPU正在执行的指令引起,属于主动型,主要用于在用户程序和操作系统内核之间提供系统调用接口。
(2)故障(Fault):通常由错误引起,可能被故障处理程序修正,如缺页异常。
(3)终止(Abort):通常由不可恢复的错误引起,终止应用程序并转内核Abort 例程。


 系统调用


用户程序发送给操作系统、请求其提供服务的方法或函数。
(1)背景:一般情况下用户进程不能访问内核,包括内核所占内存空间和内核函数。例如,硬件操作等无论从系统安全角度还是从用户易用角度,都不允许用户直接使用,而应该由操作系统管理。为保证计算机系统的正常安全运行,操作系统为用户程序提供接口,即系统调用,使得用户程序可以方便地使用硬件等操作系统所管理的资源。
(2)作用:操作系统提供给用户程序调用其提供的底层服务的方式,是用户程序访问内核的途径。
(3)使用途径:高级语言通过库函数提供,汇编语言通过中断调用提供。
(4)编写语言:部分系统调用由高级编程语言编写,某些底层任务,如需直接访问硬件,
通常用汇编语言指令编写。


 程序运行时内存映像与地址空间


程序运行时内存映像与地址空间如图1.2所示。

(1)符号名空间:用户源程序所存放的空间,变量、函数、过程等以符号名的形式表示。

(2)目标地址空间:源程序编译后的二进制形式的目标代码模块和库函数所存放的空间。

(3)物理地址空间:内存空间。


 程序的编辑、编译和链接


(1)编辑:通过无格式编辑软件创建用户源程序。
(2)编译:将用户源程序代码翻译为目标代码的过程。
(3)链接:编译形成的一组目标代码及所需库函数链接在一起,形成完整的装入模块。
        ①静态链接:程序运行之前,将若干均从零地址开始的目标模块及所需库函数,链接为完整的、从唯一零地址开始的装配模块。需解决相对地址的修改、外部调用符号的变换等问题。
        ②装入时动态链接:边装入边链接,便于修改和更新、便于实现对目标模块的共享等。
        ③运行时动态链接:程序执行过程中需要目标模块时,才对其进行链接,可根据程序运行的中间结果动态链接所需要目标模块,不需要的模块无须链接。
(4)装入:将装入模块存放于内存某空间,构造进程控制块PCB,形成可执行的进程。
        ①绝对装入方式:编译程序由指令和数据在内存的物理地址形成目标代码,执行时无须修改。程序中所使用的绝对地址,既可在编译或汇编时给出,也可由程序员直接赋予。
适用:单道程序环境。
优点:目标代码的执行速度快。
 缺点:受内存空间大小限制,能装入内存并发执行的进程数较少;编译程序必须了解内存的当前空闲地址部分及其物理地址,并将进程的不同程序段连续存放其中,编译比较复杂。
        ②重定位方式:每个目标代码均位于自己的零地址空间,装入内存时进行重新定位。多道程序环境下,编译程序无法预知所编译的目标模块在内存中的具体存储位置。因此,通常将所有目标模块均从0开始编址,即多道程序对应多个目标模块,具有多个零地址空间,而内存是一个零地址的物理空间,故多个目标模块装入内存时需要重新定位。转换地址可由硬件实现,也可由软件实现(无须设置辅助寄存器)。
重定位的类型如下。
a.静态重定位:装入时,根据内存使用情况进行所有地址变换,即一次性完成目标地址向物理地址的转换,运行过程中物理地址不再改变,故指令和数据在内存的位置无法移动。
b.动态重定位:装入时不转换地址,所有指令和数据仍保持目标地址空间的相对地址。程序执行期间,随着对每条指令的访问在重定位寄存器的辅助下自动进行地址变换。

CPU运行模式


        操作系统是重要的系统软件,运行时需占据内存空间(内核空间),并被所有程序共享;同时,应用软件运行时也占据内存空间(用户空间),属于私有空间。为避免较大的时间开销,两者共存于同一地址空间,使得用户程序需要访问内核空间时仅进行模式切换,无须切换进程。为确保数据安全,CPU具有不同的运行模式,常见的有内核模式和用户模式两种。


        (1)内核模式又称为核心态或管态,是核心操作系统组件和大部分驱动程序运行时所处于的模式。特点为所有内核代码共享内核模式的虚拟地址空间;存在不安全因素,需要提供保护措施,禁止随意访问;可使用所有系统资源,如全部内存地址空间、外部设备、寄存器等;可执行所有机器指令,包括通用指令和特权指令。
        通用指令又称为非特权指令,指用户程序可使用的机器指令。通用指令有访管指令、读取时钟指令、控制转移指令、数据传送指令、算术逻辑运算指令,以及存数、取数指令。
        特权指令是只能由操作系统使用的指令。特权指令有启动I/0指令、内存清除、设置时钟、启动设备、停机指令、允许/禁止中断、控制中断屏蔽位、修改程序状态字PSW、改变存储映像图指令。
        (2)用户模式又称为用户态或目态,是用户程序(应用程序)和某些驱动程序运行时所处于的模式。

         用户模式的特点:为各应用程序执行时具有私有虚拟地址空间,互不干扰;只能访问私有虚拟地址空间,即有限的存储空间、指定的寄存器;只能执行通用指令,不能执行特权指令。
根据运行的程序类型,CPU可在两个模式之间自动切换。
①用户模式切换至内核模式:运行在用户模式的应用程序需要输入/输出、申请内存等底层操作时,必须调用操作系统提供的接口函数,切换至内核模式。
a.访管指令。
b.系统调用:申请使用操作系统提供给用户程序使用的底层功能服务程序。
c.I/O控制命令:用户使用外设的命令,如磁盘I/O。
d.异常:用户程序执行过程中发生了不可预知的意外事件而切换到相应内核程序。
②内核模式切换至用户模式:操作系统执行中断返回指令。

(五)操作系统的主要功能

处理机管理

   处理机管理,以进程为单位进行处理机的分配,将系统对处理机的管理转化为对进程的管理和调度。进程管理包含进程的控制、同步和通信。

①进程控制 

        为作业创建一个或多个进程,并为之分配必要的资源;撤销已结束进程,回收其占用的资源:控制进程运行过程的状态转换。

②进程同步

为多个进程的运动进行协调。
进程互斥方式:进程对临界资源的使用方式,常用的互斥方法为锁机制。
进程同步方式:进程之间通过相互合作完成共同任务,如信号量机制。

③进程通信

相互合作的各进程之间的信息互换,即为合作进程间的通信。
调度:即资源分配,主要包括作业调度和进程调度两级调度。其中,作业调度为资源得到满足的后备作业分配资源、将其调入内存、创建进程、插入就绪队列,等待进程调度;进程调度为就绪队列的某进程分配处理器,设置运行现场、使之运行。

存储器管理

        存储器管理:为多道程序的运行提供良好环境,提高内存利用率,逻辑扩充内存空间。

①内存分配

 内存分配:包含静态分配和动态分配。
静态分配:装入作业时分配其所需全部存储空间,运行期间不可再申请存储空间,且不能移动。
动态分配:装入作业时分配其所需的基本存储空间,运行期间可再申请存储空间,也可以移动。

②内存保护

内存保护,通过设置界限寄存器等方式实现,主要任务是保证处于运行状态的各程序之间互不干扰。

③地址映射

地址映射:将逻辑地址转换为实际内存的物理地址。


④内存扩充。

        内存扩充
请求调入:部分装入,运行期间由操作系统在需要时装入对应数据。
置换:内存空间不够时,可将部分不活跃程序或数据调出至外存,将需要调入的部分放入内存。

设备管理

         设备管理:为用户进程分配所需I/O设备,完成指定I/0操作,提高CPU和I/0设备利用率,方便用户使用1/0设备。设备管理主要包括缓冲管理、设备分配和设备处理3个部分。
①缓冲管理:用于缓解信息交互双方的速度矛盾,操作系统需对其提供有效管理。②设备分配:根据用户请求和系统状况,按照某种策略为用户分配所需I/O设备。③设备处理:通过设备驱动程序完成,实现CPU和设备控制器之间的通信。

文件管理 


         文件管理:对存放于外存的所有文件,包括系统文件和用户文件进行管理,保证文件安全性,并方便用户使用。
①文件存储空间管理为文件分配必要的外存空间;提高外存利用率,提高外存存取速度:记录文件存储空间的使用情况;对存储空间进行分配和回收。
②目录管理:一个文件对应一个目录项;按名存取;文件共享;快速查询。
③文件读/写管理:根据用户需求,从外存读取数据,或将数据写入外存。
④文件保护:提高有效存取控制,防止未授权用户存取文件,以及以不正确的方式使用文件等。

 

接口管理

接口管理:提供用户和操作系统之间的接口,方便用户直接或间接访问系统资源。
①用户接口:键盘命令、图形化界面/图形接口等。

联机用户接口:又称命令接口,由键盘命令和命令解释程序组成,是操作系统为联机用户提供的接口。
脱机用户接口:批处理作业用户使用的、由作业控制语言书写的作业说明书。
图形用户接口:图形化操作界面。
②程序接口:系统调用,为用户程序执行过程中访问系统资源而设置,是用户程序获取操作系统服务的途径。系统调用流程为传递参数;执行陷入(trap)指令,进入核心态;执行相应服务程序;返回用户态。

系统安全

 系统安全:现代操作系统新增功能。
①认证技术:确认对象的真实性,防止入侵者的假冒和篡改行为。
②密码技术:对系统中传输和存储的数据进行加密。
③访问控制技术:设置用户对系统资源的存取权限,限制其访问范围;设置文件属性,保障文件的安全。
④反病毒技术:预防病毒入侵比较困难,通过反病毒技术可清除已入侵的已知病毒。

网络功能和服务

 网络功能和服务:实现网络通信和资源管理,提供用户取得网络服务的手段。

(六)操作系统的结构

操作系统安装于硬盘,开机后自动加载至内存运行,为用户提供服务。其启动流程如下。
        (1)引导:CPU 加电后会首先执行基本输入/输出系统程序(BIOS,存储于ROM,也可
存储于闪存),完成操作系统引导工作,将启动盘的引导程序读入内存。


①初始化寄存器:(CS)=OxFFFF,其他寄存器的值均为0。
说明:CS:IP的值是将要执行的指令JMP的逻辑地址OxFFFF:0x0000(物理地址OxFFFFO),无条件转移指令跳转至BIOS的启动代码所在位置.
②自检:检测系统关键设备是否存在、是否正常,出现异常则中止启动。
③将 BIOS复制至内存,并执行。
④拽寻可引导的存储设备:根据CMOS 中用户设置的引导顺序搜索启动设备(软盘、硬盘、可移动设备等),找到则根据该设备的引导扇区内容(主引导记录)将磁盘引导程序Boot读入内存,控制权转给操作系统。


        (2)执行磁盘引导程序:启动盘主扇区转活动分区引导扇区。将活动分区引导扇区的内
容读入内存并执行;将加载程序 loader.bin读入内存。
        (3)执行磁盘分区加载程序:操作系统内核kerne1.d11加载至内存。主要完成检测内
存大小、为内核准备保护模式执行环境、加载内核等工作。
        (4)操作系统初始化:初始化处理器、中断、各管理模块等;创建主进程;启动控制台。

(七)系统调用

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

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

相关文章

基于SSM的网络游戏公司官方平台

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用JSP技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…

Swift学习笔记一(数组篇)

目录 0 绪论 1 数组的创建和初始化 2.数组遍历 2.1通过键值对遍历 2.2 通过forEach遍历 2.3 通过for in遍历 2.3.1 for in 搭配 enumerated 2.3.2 for in的另一种形式 2.3.2 for in 搭配 indices 2.4 通过Iterator遍历器遍历 3 数组的操作 3.1 contains 判断数组包含…

Redis之布隆过滤器(Bloom Filter)解读

目录 引进前言 隆过滤器定义 隆过滤器原理 布隆过滤器优缺点 布隆过滤器的使用场景 布谷鸟过滤器(了解) 引进前言 在实际开发中,会遇到很多要判断一个元素是否在某个集合中的业务场景,类似于垃圾邮件的识别,恶意ip地址的访问&#x…

NebulaGrap入门介绍和集群安装部署

长风破浪八千里,落日晚霞不回头。 ——大宁。 NebulaGrap——分布式图数据库 官方文档: ​ NebulaGraph Database手册 ​ 官方文档 介绍 简介: ​ NebulaGraph 一款开源、分布式图数据库,擅长处理超大规模数据集。 Nebula …

JS之闭包

一:什么是闭包 闭包是一个函数和其词法环境的组合 换个意思来说,闭包可以让开发者可以从函数内部访问到外部函数的作用域 在JS中,闭包会随着函数的创建而被同时创建 词法环境: 主要分两个对象 用于管理变量函数和作用域的关系 环…

《深入理解Java虚拟机》——Java内存区域与内存溢出异常

Java内存区域与内存溢出异常 运行时数据区域程序计数器Java虚拟机栈本地方法栈Java堆方法区运行时常量池直接内存 实例堆溢出栈溢出 运行时数据区域 根据《Java虚拟机规范的规定》,Java虚拟机所管理的内存将会包含已下架几个运行时数据区域。 程序计数器 在Java虚…

【漏洞复现】EnjoySCM存在文件上传漏洞

漏洞描述 EnjoySCM是一款适应于零售企业的供应链管理软件,主要为零售企业的供应商提供服务。EnjoySCM的目的是通过信息技术,实现供应商和零售企业的快速、高效、准确的信息沟通、管理信息交流。。 该系统存在任意文件上传漏洞,攻击者通过漏洞可以获取服务器的敏感信息。 …

k8s入门到实战--跨服务调用

service.png 背景 在做传统业务开发的时候,当我们的服务提供方有多个实例时,往往我们需要将对方的服务列表保存在本地,然后采用一定的算法进行调用;当服务提供方的列表变化时还得及时通知调用方。 student: url: - 192.168.1…

【STM32】STM32F4调用DSP库实现FFT运算

写在前面 最近在整理之前的stm32笔记,打算把一些有价值的笔记发到CSDN分享一下。 奎斯特定理 在进行模拟/数字信号的转换过程中,当采样频率F大于信号中最高频率 fmax 的 2 倍时(F>2*fmax),采样之后的数字信号完整地保留了原始信号中的信…

高效采集模拟量模块数据方案

在现代工业自动化领域,模拟量采集是关键的环节之一。本文将详细介绍如何通过模拟量采集电压、电流和温度等数据,并利用上位机实现数据的获取和转化。同时,我们还将详细介绍模拟量采集上位机框架及其强大的功能,为企业实现高效的数…

华为认证系统学习大纲及课程

前言 任何学习过程都需要一个科学合理的学习路线,才能够有条不紊的完成我们的学习目标。华为认证网络工程师所需学习的内容纷繁复杂,难度较大,所以今天特别为大家整理了一个全面的华为认证网络工程师学习大纲及课程,帮大家理清思…

【DataV/echarts】vue中使用,修改地图和鼠标点击部分的背景色

引入:使用 DataV 引入地图的教程是参考别人的,主要介绍修改地图相关的样式; 引入地图 是参考别人的,这里自己再整理一遍,注意需要安装 5 版本以上的 echarts; DataV 网址:https://datav.aliyun.…

Unity Animation、Animator 的使用(超详细)

文章目录 1. 添加动画2. Animation2.1 制作界面2.2 制作好的 Animation 动画2.3 添加和使用事件 3. Animator3.1 制作界面3.2 一些参数解释3.3 动画参数 4. Animator中相关类、属性、API4.1 类4.2 属性4.3 API4.4 几个关键方法 5. 动画播放和暂停控制 1. 添加动画 选中待提添加…

Win10如何清理无效注册表

电脑中部分注册表文件其实是没有什么用的,如果用户不主动清理的话就会占用大量的内存空间,从而导致系统变得卡顿,那么Win10怎么清理无效注册表呢,下面小编就给大家详细介绍一下Win10清理无效注册表的方法,大家感兴趣的…

无涯教程-JavaScript - IMCOS函数

描述 IMCOS函数以x yi或x yj文本格式返回复数的余弦。 语法 IMCOS (inumber)争论 Argument描述Required/OptionalInumberA Complex Number for which you want the cosine.Required Notes Excel中的复数仅存储为文本。 当将格式为" a bi"或" a bj&quo…

门口通畅家运顺

每一次遇见,都是一个心愿,也许,前有未了的情缘,所以,此生才能得以见面,所有的遇见,一切都是最好的安排。前段时间,峰民再次故地重游,去到了呼伦比尔海拉尔区为预约客户来…

《protobuf》基础语法

文章目录 消息体定义字段规则编译选项实战:编写一个通讯录文件 消息体定义 文件内定义 message Phone {string number 1; }message PeopleInfo {string name 1;int32 age 2;Phone phone 3; }内嵌定义 message PeopleInfo {string name 1;int32 age 2;messa…

如何自启动MySQL服务与解决MySQL字符集问题

1、自启动mysql服务 (1)查看mysql是否自启动(默认自启动) systemctl list-unit-files|grep mysqld.service (2)如不是enabled可以运行如下命令设置自启动 systemctl enable mysqld.sercice2、字符集…

[DM8] DM-DM DBLINK DPI方式

前言 对于DM与DM之间的DBLINK,三种方式中,使用DPI方式配置上最为方便,ODBC方式需要安装ODBC包并配置ODBC数据源,dmmal方式需要设置MAL_INI数据库参数、配置dmmal.ini文件并需要重启数据库服务。 dpi类型的dblink,达梦…

eNSP与CRT配置

1、启动所有设备 2、右键设备,进入“设置” 3、在设置界面中,进入“配置选项卡”,记住串口号 4、打开CRT,进行快速连接 5、协议选择Telnet、Hostname输入“127.0.0.1”、端口输入设备的串口号 6、最终连接效果 eNSP连接CRT配置t…