精华内容
下载资源
问答
  • 1 详细描述 oracle报告了oracle 9i release 2中的xml数据库功能存在远程缓冲区溢出。 这些漏洞可以通过http或者ftp服务触发,这些服务默认开启,如果攻击者拥有数据库合法的帐户信息,即使这些服务关闭也能利用这些...

    严重程度:高 威胁程度:远程管理员权限 错误类型:边界检查错误 利用方式:服务器模式 bugtraq id:8447 受影响系统 oracle oracle9i client edition 9。2 。0。2 oracle oracle9i client edition 9。

    2 。0。1 oracle oracle9i enterprise edition 9。0。1 oracle oracle9i enterprise edition 9。2 。0。2 oracle oracle9i enterprise edition 9。

    2 。0。1 oracle oracle9i personal edition 9。0。1 oracle oracle9i personal edition 9。2 。0。2 oracle oracle9i personal edition 9。

    2 。0。1 oracle oracle9i standard edition 9。0 oracle oracle9i standard edition 9。0。1 。4 oracle oracle9i standard edition 9。

    0。1 。3 oracle oracle9i standard edition 9。0。1 。2 oracle oracle9i standard edition 9。0。1 oracle oracle9i standard edition 9。

    0。2 oracle oracle9i standard edition 9。2 。0。2 oracle oracle9i standard edition 9。2 。0。1 详细描述 oracle报告了oracle 9i release 2中的xml数据库功能存在远程缓冲区溢出。

    这些漏洞可以通过http或者ftp服务触发,这些服务默认开启,如果攻击者拥有数据库合法的帐户信息,即使这些服务关闭也能利用这些漏洞。 漏洞主要是xdb http对用户提交的超长用户名或密码缺少正确检查。还有是xdb ftp服务对用户提交的用户名、test、unlocak等命令缺少充分长度检查。

    解决方案 oracle建议管理员关闭服务: 1。 打开oracle 9i数据库服务配置文件'init。ora' 2。 在'dispatchers'参数行,删除如下字符串: ?(service=xdb)' 是数据库sid。 3。 再重新启动数据库。

    全部

    展开全文
  • 计算机里的缓冲

    2021-07-28 07:01:35
    简介这篇文章主要介绍了计算机里的缓冲区以及相关的经验技巧,文章约916字,浏览量249,点赞数9,值得推荐!下面介绍缓冲区的知识。一、什么是缓冲缓冲区又称为缓存,它是内存空间的一部分。也就是说,在内存空间...

    简介这篇文章主要介绍了计算机里的缓冲区以及相关的经验技巧,文章约916字,浏览量249,点赞数9,值得推荐!

    下面介绍缓冲区的知识。

    一、什么是缓冲区

    缓冲区又称为缓存,它是内存空间的一部分。也就是说,在内存空间中预留了一定的存储空间,这些存储空间用来缓冲输入或输出的数据,这部分预留的空间就叫做缓冲区。

    缓冲区根据其对应的是输入设备还是输出设备,分为输入缓冲区和输出缓冲区。

    二、为什么要引入缓冲区

    我们为什么要引入缓冲区呢?

    比如我们从磁盘里取信息,我们先把读出的数据放在缓冲区,计算机再直接从缓冲区中取数据,等缓冲区的数据取完后再去磁盘中读取,这样就可以减少磁盘的读写次数,再加上计算机对缓冲区的操作大大快于对磁盘的操作,故应用缓冲区可大大提高计算机的运行速度。

    又比如,我们使用打印机打印文档,由于打印机的打印速度相对较慢,我们先把文档输出到打印机相应的缓冲区,打印机再自行逐步打印,这时我们的CPU可以处理别的事情。

    现在您基本明白了吧,缓冲区就是一块内存区,它用在输入输出设备和CPU之间,用来缓存数据。它使得低速的输入输出设备和高速的CPU能够协调工作,避免低速的输入输出设备占用CPU,解放出CPU,使其能够高效率工作。

    三、缓冲区的类型

    缓冲区 分为三种类型:全缓冲、行缓冲和不带缓冲。

    1、全缓冲

    在这种情况下,当填满标准I/O缓存后才进行实际I/O操作。全缓冲的典型代表是对磁盘文件的读写。

    2、行缓冲

    在这种情况下,当在输入和输出中遇到换行符时,执行真正的I/O操作。这时,我们输入的字符先存放在缓冲区,等按下回车键换行时才进行实际的I/O操作。典型代表是键盘输入数据。

    3、不带缓冲

    也就是不进行缓冲,标准出错情况stderr是典型代表,这使得出错信息可以直接尽快地显示出来。

    四、缓冲区的刷新

    大家要好好理解刷新的意思,缓冲区的刷新是指将将缓冲区已有的数据输出到指定地点,这个时候缓冲区就空了,然后缓冲区再接收新来的数据

    下列情况会引发缓冲区的刷新:

    缓冲区满时;

    关闭文件。

    可见,缓冲区满或关闭文件时都会刷新缓冲区,进行真正的I/O操作。

    比如在Linux下,操作命令行就属于常见的行缓冲模式

    输入一行命令例如ls,命令ls就会进入到缓冲区内,不输入回车的话,什么也不会发生,当输入回车就会执行真正的IO操作

    展开全文
  • 缓冲区及缓冲区首部 缓冲区池由若干个缓冲区组成,每一个缓冲区又由两部分 组成:一个实际存放数据的存储区和一个标识该缓冲区的 缓冲区首部。 因为缓冲区首部与数据 存储区之间有一一对应的 关系,所以通常把两者统...

    硬件缓存和数据缓冲区的区别

    硬件缓存

    由一种高速寄存器(register)组成,主要解决CPU与RAM之间的速度差问题。

    数据缓冲区高速缓冲(buffer):

    由软件实现的解决文件系统和物理硬盘之间的数据同步的一种方法。
    具体思想如下:
    1、建立一个被称为数据缓冲区高速缓冲(简称高速缓冲)的内部数据缓冲区池(buffer pool)来存放要用的数据;
    2、写数据时把数据尽量多地尽量长时间地保存在缓冲池中延迟写出到磁盘上以备后续进程使用
    3、读数据时先在缓冲池中查找已有的数据如没有,再从磁盘读取,并保存在缓冲池中事先预读数据到缓冲池中数据缓冲区高速缓冲是UNIX特有的对数据并发访问的一种控制机制。

    缓冲区及缓冲区首部

    缓冲池由若干个缓冲区组成,每一个缓冲区又由两部分组成:一个实际存放数据的存储区和一个标识该缓冲区的缓冲区首部。
    在这里插入图片描述
    因为缓冲区首部与数据存储区之间有一一对应的关系,所以通常把两者统称为缓冲区。
    缓冲区是缓冲池中数据存储的基本单位。

    缓冲池的结构

    1、最近最少使用(LRU)算法:
    ① 程序设计采用模块化和层次化结构,尽量避免使用goto语句,程序跳转少,适应“流水线(pipeline)”体系结构的系统;
    ② 特定时间段内,程序在一个相对集中空间(代码段)内运行,涉及的数据(广义的:文件名、变量、指针和数组等)的个数相对较少;
    ③ 当前使用过的数据,马上还要使用的可能性最大,较长时间未用过的数据,即将使用的可能性最小。
    2、缓冲池设计基本原则:
    ① 存放有刚使用过的数据尽量长时间地保留在内存中,以便马上还要使用时能在内存中找到;
    ② 需要腾出内存空间时,把很久都未使用过(即最近最少使用)的数据交换到磁盘上去。这些数据马上还要使用的可能性最小。
    3、空闲缓冲区链表
    核心维护了一个空闲缓冲区链表,它按照最近被使用的先后次序排列。空闲链表是一个以空闲缓冲区链表头开始的“双向循环链表”。链表的开始和结束都以链表头为标志。
    在这里插入图片描述
    4、空闲缓冲区链表操作
    ① 取用任意空闲缓冲区
    从空闲缓冲区链表的表头位置取下一个空闲缓冲区,后面的空闲缓冲区依次向前移动。
    ② 释放一个空闲缓冲区
    把这个装有数据的空闲缓冲区附加到空闲链表的链尾。只有当该空闲缓冲区所装数据出错时才挂到链头。
    ③ 取用装有指定内容的空闲缓冲区
    从链表头开始查找,找到后取下使用,用完后放到链尾。当系统不断从链头取用空闲缓冲区,又把使用过的(装有数据的)缓冲区挂到链尾,一个装有有效数据的缓冲区就会逐渐向链表头移动。在链表头位置的就是“最近最少使用”的空闲缓冲区。
    5、空闲缓冲区分类
    系统中共设置了四个空闲缓冲区链表,根据缓冲区的不同用途而把它的放入不同的空闲缓冲区链表中。避免在取用空闲缓冲区时,逐个判断缓冲区中的内容。这四个空闲链表是:
    0#空闲缓冲区链表——存放文件系统超级块
    1#空闲缓冲区链表——存放通常使用的数据块
    2#空闲缓冲区链表——存放延迟写、无效数据或错误内容
    3#空闲缓冲区链表——存放没有对应存储空间的缓冲区首部
    如果某种类型的空闲缓冲区不够用时,核心也从其它空闲缓冲区链表中取用空闲缓冲区。
    6、缓冲区设置
    当核心需有一个空闲缓冲区时,它根据要装入的数据类型,从相应的空闲缓冲区链表的表头位置取下一个空闲缓冲区,装入一个磁盘数据块;根据该数据块所对应的设备号和块号数据对计算其 hashno(散列、杂凑)值,根据其 hashno 的值放入到相应 hash 链表的链头。
    7、缓冲池的结构
    具有相同 hashno 的缓冲区链接在同一个hash链表中,因此系统中共有 63 个hash 链表,分别链接 hashno 为 0 ~ 62 的缓冲区。每一个 hash 链表都是一个由链表头指向的双向循环链表,查找某一个指定 hashno 值的缓冲区时,也是从相应的hash链表的表头位置开始向表尾方向进行查找。这 63 个 hash 链表就构成了数据缓冲区高速缓冲的缓冲池,所有的缓冲区都存放在缓冲池中的某一个链表中。
    8、缓冲区的使用
    如果要找特定缓冲区,根据hashno从相应的hash链表的表头处开始逐个向后查找;如果找到,则直接取用,并将其移动到hash链的链头;
    如果未找到,则从相应的空闲缓冲区链表的表头处取下一个空闲缓冲区,填入相应数据,重新计算其hashno,并放到新的hash链表的表头;释放缓冲区时,将该缓冲区仍保留在原hash队列中,同时挂接到空闲缓冲区链表的表尾。(同时在两个队列中)申请缓冲区的两个途径:
    要指定缓冲区 —— 在hash链表中查找
    要空闲缓冲区 —— 在空闲链表中查找
    9、进一步说明
    一个缓冲区只有当它是空闲状态时,它才同时处在hash链表和空闲链表中。如果不空闲,则它只能处在某一个hash链表中。
    在空闲缓冲区链表中的缓冲区一定在某个hash链表中;在hash链表中的缓冲区不一定在空闲链中。不存在脱离hash链表
    的另一个空闲的缓冲区链表。缓冲池中的缓冲区个数是固定不变的,每个缓冲区在不同时刻存放着不同的磁盘数据块,具有不同的hash值,因此处在不同的hash链表中。
    缓冲区中的数据与某个磁盘数据块一一对应,这种对应有两个特点:
    ① 一个磁盘数据块在缓冲池中最多只能有一个副本;
    ② 缓冲区与数据块的对应是动态的,LRU数据块将被释放。

    缓冲区的检索算法

    1、申请一个缓冲区算法 getblk
    根据缓冲池的结构,核心申请一个缓冲区分配个磁盘块时,可能出现的五种典型状况:
    ① 该块已在hash队列中,并且缓冲区是空闲的;
    ② hash队列中找不到该块,需从空闲链表中分配一个缓冲区;
    ③ hash队列中找不到该块,在从空闲链表中分配一个缓冲区时,发现该空闲缓冲区标记有“延迟写”,核心必须写出缓冲区内容到磁盘上,再重新分配一个空闲缓冲区;
    ④ hash队列中找不到该块,并且空闲链表已空;
    ⑤ 该块已在hash队列中,但该缓冲区目前状态为“忙”。
    2、 释放一个缓冲区算法 brelse
    唤醒等待缓冲区的所有进程
    提高处理机的执行级别以封锁同级或低级的中断
    将该缓冲区放到空闲队列的尾部(缓冲区有效)或头部(缓冲区无效)
    降低处理机的执行级别以开放中断
    3、读一个磁盘块 bread
    由 getblk 算法申请一个可用的缓冲区
    如果缓冲区中的内容有效,则直接返回该缓冲区
    如果缓冲区中的内容无效,则启动磁盘去读所需的数据块
    等待磁盘操作完成后返回
    4、 读一个磁盘块并预读另一个磁盘块 breada
    预读的前提:
    程序是在一个有限的空间内运行,程序对数据的访问是可预见的。
    预读的命中率:
    不一定达到100%,但良好的系统结构和算法可使命中率达到较高的水平。
    预读的结果:
    放在缓冲池内,以免需要的时候再去启动磁盘读数据块。
    5、写磁盘块 bwrite
    启动磁盘驱动程序的写操作
    如果是“同步写”,则本进程睡眠等待磁盘写操作的完成,磁盘写操作完成后,中断唤醒本进程,本进程释放该缓冲区并返回;
    如果是“异步写”,则无需等待磁盘写操作的完成,将缓冲区放到空闲链表的表头,以便随后某个进程申请空闲缓冲区时,将其写到磁盘上去。本进程不再关心该缓冲区实际被写出的时间和结果,而直接返回去作其它事情。
    事实上无论是同步写还是异步写,其根本区别在于本进程是否等待磁盘驱动程序完成操作后所发出的中断信号。

    数据缓冲区高速缓冲的优缺点

    优点:
    提供了对磁盘块的统一的存取方法
    消除了用户对用户缓冲区中数据的特殊对齐需要
    减少了磁盘访问的次数,提高了系统的整体I/O效率
    有助于保持文件系统的完整性
    缺点:
    数据未及时写盘而带来的风险
    额外的数据拷贝过程,大量数据传输时影响性能

    展开全文
  • java缓冲

    2021-04-17 03:38:16
    BufferedOutputStream:字节缓冲输出流缓冲输出流的特点是:在流里维护了一个缓冲区,写字节时,先将字节写入缓冲区,当缓冲区满时,再一次性的将数据写到文件里。这样就降低了写的次数,因此提高了效率。因为缓冲...

    BufferedOutputStream:字节缓冲输出流

    缓冲输出流的特点是:在流里维护了一个缓冲区,写字节时,先将字节写入缓冲区,当缓冲区满时,再一次性的将数据写到文件里。这样就降低了写的次数,因此提高了效率。

    因为缓冲输出流缺失即时性,可以使用flush方法进行冲刷

    PS:当一次写的字节超出缓冲区大小,会直接写入到文件中

    常用构造器:

    BufferedOutputStream(OutputStream out)

    创建一个指定字节输出流的缓冲流对象

    BufferedOutputStream(OutputStream out,int size)

    创建一个指定字节输出流的缓冲流对象,并设置缓冲区的大小

    常用方法:

    void write(int b):

    写int数据的低八位,写入缓冲区内

    void write(byte[] b,int off,int len)

    写指定长度len的字节数组,写入缓冲区

    BufferedInputStream:字节缓冲输入流

    在读取字节时,也是一个字节一个字节的读,次数多,效率低。 使用缓冲输入流,内部维护了一个缓冲区,默认8192个字节,也就是8KB,先一次性将缓冲区装满等待读取, 当将缓冲区的数据读完,缓冲区再次存储后续数据。读取的次数明显降低,反之效率高。

    构造器:

    BufferedInputStream(InputStream is);

    创建一个指定字节输入流的缓冲流对象

    BufferedInputStream(InputStream is,int size);

    创建一个指定字节输入流的缓冲流对象,并设置缓冲区的大小

    常用方法:

    int read(byte[] bs)

    读取缓冲区里的字节存储bs中,

    当一次性得去的字节小于缓冲区,我们是从缓冲区里读数据。

    此时,效率高

    当一次性读取的字节超出缓冲区大小。

    不使用缓冲区,直接从文件里读。

    int read(byte[] bs,int off,int len)

    读指定长度len的字节数组,写入缓冲区

    展开全文
  • Java NIO之缓冲

    2021-02-26 09:41:46
    这种单个字节的读取或写入模型的效率比较低,而且不符合操作系统的I/O特点。操作系统的IO是面向字节块的,通常是直接从磁盘中读取一块数据到内存或写入一块数据到磁盘。Java NIO提供了缓冲区来实现字节块的读写。...
  • 缓冲区溢出漏洞

    2021-01-19 09:37:23
    缓冲区溢出就是在大缓冲区数据向小缓冲区复制的过程中,由于没有注意到小缓冲区的边界,“撑爆”了较小的缓冲区,从而冲掉了和小缓冲区相邻内存区域的其他数据而引起的内存问题。缓冲区溢出是常见的内存错误之一,...
  • 缓冲(buffer)是为了协调吞吐速度相差很大的设备之间数据传送而采用的技术,用来存放缓冲数据的区域叫缓冲区,在计算机科学领域,当数据从一个地方传送到另一个地方时,缓冲区被用来临时存储数据。与缓冲相似的一个...
  • 缓冲液(Buffer solution)通常是由「弱酸及其共轭碱」或「弱碱及其共轭酸」缓冲对所组成的溶液,能够在加入一定量其他物质时减缓pH的改变。以生物实验中最常用的一种缓冲液PBS为例,是由Na2HPO4、KH2PO4组成的缓冲...
  • 在这里一次排序,将无序的数据变为有序,写磁盘的时候顺序写,读数据的时候顺序读,效率高非常! 在这里设置索引区也是为了能够持续的处理任务。每读取一段数据,就往索引文件里也写一段,这样在排序的时候能加快...
  • 缓冲区溢出攻击

    2021-02-06 20:32:00
    缓冲区溢出(buffer-overflow)是一种非常普遍、同时非常危险的漏洞,在各种操作系统、应用软件中广泛存在。缓冲区溢出攻击是利用缓冲区溢出漏洞所进行的攻击,轻则可以导致程序失败、系统关机等,重则可以利用它执行...
  • 缓冲区:输入缓冲区键盘—》键盘缓冲区—》输入缓冲区—》程序(scanf函数)我们在键盘上输入的任何东西,会先进入输入缓冲区区域,然后程序从输入缓冲区里把数据一个一个读出来。输入缓冲区的管理方式:先进入的数字...
  • 文章目录前言 前言 缓冲区是内存中存放数据的地方。在程序试图将数据放到及其内存中的某...缓冲区溢出漏洞是指在程序试图将数据放到及其内存中的某一个位置的时候,因为没有足够的空间就会发生缓冲区溢出的现象。 ...
  • 所以,完全相同的数据库,使用 Innodb 存储引擎可以使用更的内存来缓存数据库相关的信 息,当然前提是要有足够的… 基于块的视频编码的一个典型特点就是在图像中会出现偶发的可察觉的块结构,这是由于重构块的边缘像素...
  • 的所以基友可能会产生粘包的情况 粘包是因为接受速度没有传输速度快 导致缓存区的数据拥堵 下次取出数据时从而产生非独立数据的链接 这种情况 叫做粘包 粘包只有传输个数据时才会出现 tcp的编程需要监听套接字 和...
  • 一、缓冲定义 1.缓冲定义 缓冲是在两种不同速度设备之间传输信息时平滑传输过程的常用手段。 2.为什么引入缓冲区 操作系统这门课有明确的说明缓冲的作用,是为了解决高速设备和低速设备之间速度不匹配的问题,直接举...
  • (1)缓冲文件系统的特点对程序中的每一个文件都在内存中开辟一个“缓冲区”。从磁盘文件输入的数据先送到“输入缓冲区”,然后再从缓冲区依次将数据送给接收变量。在向磁盘文件输出数据时,先将程序数据区中变量或...
  • 《C语言从键盘输入数据》一节讲到了三个函数的对比getchar()函数getchar() 函数的特点是:如果缓冲区中没有内容,那么等待用户输入;如果有内容,哪怕一个字符,也会直接从缓冲区中读取数据,不会等待用户输入。第一...
  • 一、字符串字符串用于描述字符串常用事物,是一个特殊的对象,它的最大的特点是一旦初始化就不可以被改变,存在于常量池中。二、字符串的方法1、获取:(1)length():字符串包含的字符数,既字符串长度,返回值类型为...
  • 网桥的特点

    2020-12-21 08:12:40
    网桥的特点1、地址过滤利用网桥互连的网络应当可以容纳不同数据链路层的编址格式(如各种MAC地址),因此,网桥应能够识别各种地址,并根据数据帧的宿地址,有选择地让数据帧穿越网桥。实际上,目前很网桥产品都添加...
  • CPU的Cache,它中文名称是'高速缓冲存储器','读写速度'很快,几乎与CPU一样。 cache由来: 由于'CPU的运算速度'太快,内存的数据'存取速度''无法跟上'CPU的速度,所以在'cpu与内存间'设置了'cache'为cpu的'数据快取区' ...
  • 缓冲区溢出通常指的是向缓冲区写入了超过缓冲区所能保存的最大数据量的数据。如果说之前所提到的一些问题可能只是影响部分功能的实现,那么缓冲区溢出将可能会造成程序运行终止,被不安全代码攻击等严重问题,因此...
  • 【单选题】( )是 CPU 与 IO 设备之间的接口,它接受从 CPU 发来的命令,并去控制 IO ...描述正确的是 (5.0分)【单选题】引入高速缓冲的主要目的是 (5.0分)【单选题】SPOOLing 系统有称为 (5.0分)【单选题】一次分配所...
  • (五)基于Multisim的电台发射系统:缓冲器的设计

    千次阅读 热门讨论 2020-12-21 23:01:09
    (五)基于Multisim的电台发射系统写在前面系统要求基本原理振荡器的设计振幅调制器的设计高频功率放大器的设计低频功率放大器的设计缓冲器的设计目的Multisim电路图及分析仿真结果 写在前面 1.本系列分为五篇,包括...
  • 在通信程序中,经常使用环形缓冲区作为数据结构来存放通信中发送和接收的数据。环形缓冲区是一个先进先出的循环缓冲区,可以向通信程序提供对缓冲区的互斥访问。1、环形缓冲区的实现原理环形缓冲区通常有一个读指针...
  • sssa从 InnoDB 1.0.x 版本开始,允许有缓冲池实例。每个页根据哈希值平均分配到不同缓冲池实例中。这样做的好处是减少数据库内部的资源竞争,增加数据库的并发处理能力。可以通过参数 innodb_ buffer _pool_...
  • Why is printk() so complicated? ... 特点 它将允许在没有死锁风险的任何情况下... 它是一个生产者,单个或个消费者组成的循环缓冲区。 structkfifo{ unsignedchar*buffer; unsignedintsize; unsigned...
  • NIO流和IO流的主要区别就在于IO流是直接面向文档的,读一个输出一个,NIO是面向的缓冲区 直接开始代码,NIO流的某些讲解都会在注释上 先来了解以下几个比较重要的参数 capacity: 缓冲区的容量,不可以为负数,一旦...
  • InnoDB引擎有几个重点特性,为其带来了更好的性能和可靠性:插入缓冲(Insert Buffer)两次写(Double Write)自适应哈希索引(Adaptive Hash Index)异步IO(Async IO)刷新邻接页(Flush Neighbor Page)今天我们的主题就是 ...
  • 前言IO流是Java中的一个重要构成部分,也是我们经常打交道的。这篇关于Java IO的博文干货满满,...1. Java IO流有什么特点?2. Java IO流分为几种类型?3. 字节流和字符流的关系与区别?4. 字符流是否使用了缓冲?5....
  • 拼炉生产的工序转移比较复杂,因为一个工单可能分炉次,或几个工单合并一炉,出炉后需要冷却时间,在工序缓冲定义的时候要特别注意。 产品工序需要使用的设备和生产节拍: 产品经过个生产工序,在每个工序上都...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 160,143
精华内容 64,057
关键字:

多缓冲的特点