操作系统—输入输出系统
输入输出系统1I/O系统的功能、模型和接口I/O系统管理对象主要是I/O设备和相应的设备控制器,主要任务是完成用户提出的I/O请求,提高I/O速率,提高设备利用率
1.1I/O系统的基本功能第一第二功能为了方便用户使用I/O设备
第三第四功能是用于提高CPU和I/O设备的利用率
第五第六功能是为用户在共享设备时提供方便,保证系统有条不紊进行,系统发生错误时候,能及时发现错误,甚至能自动修复错误。
①隐藏物理设备的细节
对于不同的设备,需要有不同的命令和参数。如果要求程序员或用户编写直接面向这些设备编程是极端困难的,因此I/O系统必须对设备加以适当的抽象,以隐藏掉物理设备的实现细节。
②与设备的无关性
在隐藏物理设备细节的基础上实现的。当用户输出打印时,TA只需要提供读or写的命令,和提供抽象的逻辑设备名。
③提高处理机和I/O利用率
I/O设别间是相互独立的,能够并行操作,在处理机与设备之间也能并行操作。因此需要提高处理机和I/O利用率。
④对I/O设备进行控制
目前有四种控制方式:
采用轮询的可编程I/O方式采用中断的可编程I/O方式直接存储器访问方式I/O通道方式对磁盘、光盘等高速设备,由于传输数据的基本单位是数据块,故采用直接存储器的访问方式
⑤确保对设备的正确共享
根据共享属性分为两类
独占设备:打印机、磁带机等。共享设备:磁盘⑥错误处理
大多数的设备都包括了较多的机械和电气部分,运行时容易出现错误和故障。(临时性错误和持久性错误)
临时性错误可以通过重新操作来纠正,发生持久性错误时,才需要向上层报告
1.2I/O系统的层次结构和模型(1)I/O软件的层次结构
①用户层I/O软件:实现与用户交互的接口,用户可直接调用该层所提供的、与I/O操作有关的库函数对设备进行操作
②设备独立性软件:用于实现用户程序与设备驱动器的统一接口、设备命名、设备的保护以及设备的分配与释放等,同时为设备管理和数据传送提供必要的存储空间
③设备驱动程序:与硬件直接相关,用于具体实现系统对设备发出的操作指令,驱动I/O设备工作的驱动程序
④中断处理程序:CPU先保护被中断进程的CPU环境,再转入相应的的中断处理程序进行处理,处理完毕后CPU再恢复被中断进程的现场,返回到被中断的进程
(2)I/O系统中各种模块之间的层次视图
为了能更清晰地描述I/O系统中主要模块之间的关系,我们进一步介绍I/O系统中各种I/O模块之间的层次视图
①I/O系统的上、下接口
I/O系统接口软件/硬件(RW/HW)接口②I/O系统的分层
与前面所述的I/O软件组织的层次结构相对应,I/O系统本身也可分为如下三个层次:
中断处理程序设备驱动程序设备独立性软件1.3I/O系统接口在I/O系统与高层之间的接口中,根据设备类型的不同,又进一步分为若干个接口
(1)块设备接口
①块设备:是指数据的存取和传输都是以数据块位单位的设备,典型的比如磁盘,特征一是传输效率较高,通常是MB/S二是可寻址,即能指定数据的输入源地址和输出的目标地址,可随机地读/写磁盘中任一块。磁盘设备的I/O常采用DMA方式。
②隐藏了磁盘的二维结构:块设备接口将磁盘上的所有扇区从0-n-1依次编号,二维结构改变为一种线性序列。在二维结构中,每个扇区地址需要用磁道号和扇区号来表示。
③将抽象命令映射为低层操作:块设备接口支持上层发来的对文件or设备的打开、读、写和关闭等抽象命令。该接口将上述命令映射为设备能识别的较低层次的具体操作。如上层发来的读磁盘命令时,它先将抽象命令中的逻辑块号转换为磁盘的盘面、磁道和扇区。
(2)流设备接口
流设备接口是流设备管理程序与高层之间的接口。该接口又称为字符设备接口,它反映了大部分字符设备的本质特征,用于控制字符设备的输入或输出。
①字符设备:是指数据的存取和传输都是以字符为单位的设备。如键盘、打印机
②get和put操作:字符设备是不可寻址的,对它只能采用顺序存取方式。通常为字符设备建立一个字符缓冲区(队列),设备的I/O字符流顺序地进入字符缓冲区(读入),或从字符缓冲区顺序地送出到设备(输出)。获取get,put把字符输出到缓冲区中。
③in-control指令:包含很多参数,每个参数表示一个与具体设备相关的特定功能。
(3)网络通信接口
在现代OS中,都提供了面向网络的功能。但首先还需要通过某种方式把计算机连接到网络上。同时操作系统也必须提供相应的网络软件和网络通信接口,使计算机能通过网络与网络上的其它计算机进行通信或上网浏览。
2I/O设备和设备控制器I/O设备一般是由执行I/O操作的机械部分和执行控制I/O的电子部件组成。通常将这两部分分开,执行I/O操作的机械部分就是一般的I/O设备,而执行控制I/O的电子部件则称为设备控制器或适配器(adapter)。在微型机和小型机中的控制器常做成印刷电路卡形式,因而也常称为控制卡、接口卡或网卡,可将它插入计算机的扩展槽中。在有的大、中型计算机系统中,还配置了I/O通道或I/O处理机.
2.1I/O设备(1)I/O设备的类型
块设备、字符设备、独占设备、共享设备。还可以从设备使用特性上分为存储设备、I/O设备
按使用特性分类①存储设备(外存、辅存):存储信息,存取速度较内存慢,但容量大。
②I/O设备(输入输出设备)
按传输速率分类①低俗设备②中速设备③高速设备
(2)设备与控制器之间的接口
通常,设备并不是直接与CPU进行通信,而是与设备控制器通信,因此,在I/O设备中应含有与设备控制器间的接口,在该接口中有三种类型的信号,各对应一条信号线(计算机组成原理)
①数据信号线②控制信号线③状态信号线
2.2设备控制器(1)设备控制器的基本功能
①接收和识别命令
②数据交换
③标识和报告设备的状态
④地址识别
⑤数据缓冲区
⑥差错控制
(2)设备控制器的组成
由于设备控制器位于CPU与设备之间,它既要与CPU通信,又要与设备通信,还应具有按照CPU所发来的命令去控制设备工作的功能,因此,现有的大多数控制器都是由以下三部分组成:
①设备控制器与处理机的接口
该接口有三类信号线:数据线、地址线、控制线
数据线与两类寄存器相连:
数据寄存器控制/状态寄存器②设备控制器与设备的接口
③ I/O逻辑
2.3内存映像I/O(1)利用特定的I/O指令
在早期的计算机中,包括大型计算机,为实现CPU和设备控制器之间的通信,为每个控制寄存器分配一个I/O端口,这是一个8位或16位的整数,另外还设置了一些特定的I/O指令。
缺点:访问内存和访问设备需要两种不同的指令
(2)内存映像I/O
在这种方式中,在编址上不再区分内存单元地址和设备控制器中的寄存器地址,都采用k。当k值处于0~n-1范围时,被认为是内存地址,若k大于等于n时,被认为是某个控制器的寄存器地址
优点:统一对内存和控制器的访问方法,简化I/O编程
2.4I/O通道(1)I/O通道设备的引入
虽然在CPU与I/O设备之间增加了设备控制器后,已能大大减少CPU对I/O的干预,但当主机所配置的外设很多时,CPU的负担仍然很重。为此,在CPU和设备控制器之间又增设了I/O通道(I/OChannel)。实际上是一种特殊的处理机。
目的:建立独立的I/O操作与处理机的区别:①指令类型单一,因为通道硬件比较简单,具有局限性②通道没有自己的内存,与CPU共享内存。(2)通道类型
①字节多路通道(ByteMultiplexorChannel)—不适于连接高速设备
这是一种按字节交叉方式工作的通道。它通常都含有许多非分配型子通道,其数量可从几十到数百个,每一个子通道连接一台I/O设备,并控制该设备的I/O操作。这些子通道按时间片轮转方式共享主通道。
②数组选择通道(BlockSelectorChannel)
字节多路通道不适于连接高速设备,这推动了按数组方式进行数据传送的数组选择通道的形成。可以连接多台高速设备,但由于它只有一个分配型子通道,在一段时间内只能执行一道通道程序,所以通道利用率低。
③数组多路通道(BlockMultiplexorChannel)
数组选择通道虽有很高的传输速率,但它却每次只允许一个设备传输数据。数组多路通道是将数组选择通道传输速率高和字节多路通道能使各子通道(设备)分时并行操作的优点相结合而形成的一种新通道。
(3)“瓶颈”问题
由于通道价格昂贵,致使机器中所设置的通道数量势必较少,这往往又使它成了I/O的瓶颈,进而造成整个系统吞吐量的下降
单通路I/O系统
多通路I/O系统
3中断机构和中断处理程序—计算机组成原理中断在操作系统中有着特殊重要的地位,它是多道程序得以实现的基础,没有中断,就不可能实现多道程序,因为进程之间的切换是通过中断来完成的。另一方面,中断也是设备管理的基础,为了提高处理机的利用率和实现CPU与I/O设备并行执行,也必需有中断的支持。中断处理程序是I/O系统中最低的一层,它是整个I/O系统的基础。
3.1中断简介(1)中断
是指CPU对I/O设备发来的中断信号的一种响应。CPU暂停正在执行的程序,保留CPU环境,自动地转去执行该I/O设备的中断处理程序。执行完后再回到断点,继续执行原来的程序。中断是由外部设备引起的,又称外部中断
(2)陷入
CPU内部事件所引起的中断,例如进程在运算过程中发生了上溢或下溢,或者程序出错,如非法指令、地址越界以及电源故障。称为内中断or陷入。
3.2中断向量表和中断优先级(1)中断向量表
中断向量(Interruptvector)是中断服务程序的入口地址,或中断向量表(它是一个中断处理程序地址的数组)的表项
系统程序必须维护一份中断向量表,每一个表项纪录一个中断处理程序(ISR,InterruptServiceRoutine)的地址当外部事件或异常产生时,由硬件负责产生一个中断标记,CPU根据中断标记获得相应中断的中断向量号,然后由CPU根据中断向量表的地址和中断向量号去查找中断向量表获得相应中断号的中断程序地址,进一步执行对应的中断处理程序。
(2)中断优先级
经常会有多个中断信号源,每个中断对服务要求的紧急程度并不相同。为使系统能及时响应并处理发生的所有中断,系统根据引起中断事件的重要性和紧迫程度,硬件将中断源分为若干个级别,称作中断优先级。
(3)对多中断源的处理方式
①屏蔽中断(禁止)
当处理机正在处理一个中断时,将屏蔽所有的中断,即处理机对任何新到的中断请求,都暂时不与理睬,而让它们等待。
②嵌套中断
规则:
当同时有多个不同优先级的中断请求时,CPU优先响应最高优先级的中断请求。高优先级的中断请求可以抢占正在运行的低优先级中断的处理机。3.3中断处理程序当一个进程请求I/O操作时,该进程将被挂起,直到I/O设备完成I/O操作后,设备控制器便向CPU发送一个中断请求,CPU响应后便转向中断处理程序,中断处理程序执行相应的处理,处理完后解除相应进程的阻塞状态.
中断处理程序的处理过程可以分为以下几个步骤:
①测定是否有未响应的中断信号
②保护被中断进程的CPU环境
③转入相应的设备处理程序
④中断处理
⑤恢复CPU的现场并退出中断
此刻是否回返回得到被中断的进程,取决于两个因素:
本中断是否采用了屏蔽中断的方式,若是就会返回被中断的进程嵌套中断。如果没有优先级更高的中断请求I/O,在中断完成后,仍会返回被中断的进程,反之系统处理更高的中断请求4设备驱动程序设备处理程序通常又称为设备驱动程序,它是I/O系统的高层与设备控制器之间的通信程序,其主要任务是接收上层软件发来的抽象I/O要求,如read或write命令,再把它转换为具体要求后,发送给设备控制器,启动设备去执行;反之,它也将由设备控制器发来的信号传送给上层软件。由于驱动程序与硬件密切相关,故通常应为每一类设备配置一种驱动程序。例如,打印机和显示器需要不同的驱动程序.
4.1设备驱动程序概述(1)设备驱动程序的功能
①接收由与设备无关的软件发来的命令和参数,并将命令中的抽象要求转换为与设备相关的低层操作序列
②检查用户I/O请求的合法性,了解I/O设备的工作状态,传递与I/O设备操作有关的参数,设置设备的工作方式
③发出I/O命令,若设备空闲,立即启动I/O设备,完成指定的I/O操作;如果设备忙碌,则将请求者的请求块挂在设备队列上等待
④及时响应由设备控制器发来的中断请求,并根据其中断类型,调用相应的中断处理程序进行处理
(2)设备驱动程序的特点
设备驱动程序属于低级的系统例程,它与一般的应用程序及系统程序之间有下述明显差异:
①驱动程序是实现在与设备无关的软件和设备控制器之间通信和转换的程序,具体说,它将抽象的I/O请求转换成具体的I/O操作后传送给控制器。又把控制器中所记录的设备状态和I/O操作完成情况,及时地反映给请求I/O的进程
②驱动程序与设备控制器以及I/O设备的硬件特性紧密相关,对于不同类型的设备,应配置不同的驱动程序。但可以为相同的多个终端设置一个终端驱动程序
③驱动程序与I/O设备所采用的I/O控制方式紧密相关,常用的I/O控制方式是中断驱动和DMA方式
④由于驱动程序与硬件紧密相关,因而其中的一部分必须用汇编语言书写。目前有很多驱动程序的基本部分已经固化在ROM中
⑤驱动程序应允许可重入。一个正在运行的驱动程序常会在一次调用完成前被再次调用
(3)设备处理方式
在不同的操作系统中,所采用的设备处理方式并不完全相同,设备处理方式分成以下三类:
①为每一类设备设置一个进程,专门用于执行这类设备的I/O操作
②在整个系统中设置一个I/0进程,专门用于执行系统中所有各类设备的I/O操作。也可以设置一个输入进程和一个输出进程,分别处理系统中的输入或输出操作。
③不设置专门的设备进程,而只为各类设备相应的设备驱动程序,供用户或系统进程调用。
4.2设备驱动程序的处理过程设备驱动程序的主要任务是启动指定设备,完成上层指定的I/O工作。但在启动之前,应先完成必要的准备工作,如检测设备状态是否为“忙”等。在完成所有的准备工作后,才向设备控制器发送一条启动命令。
处理过程:
①将抽象要求转换为具体要求
②对服务请求进行校验
③检查设备状态
④传送必要的参数
⑤启动I/O设备
4.3对I/O设备的控制方式对设备的控制,早期是使用轮询的可编程I/O方式,后来发展为使用中断的可编程I/O方式
(1)使用轮询的可编程I/O方式
在处理机向控制器发出一条I/O指令,启动输入设备输入数据时,要同时把状态寄存器中的忙/闲标志busy置为1,然后便不断地循环测试busy(称为轮询)。当busy=1时,表示输入机尚未输完一个字(符),处理机应继续对该标志进行测试,直至busy=0,表明输入机已将输入数据送入控制器的数据寄存器中。于是处理机将数据寄存器中的数据取出,送入内存指定单元中,这样便完成了一个字(符)的I/O。接着再去启动读下一个数据,并置busy=1。
(2)使用中断的可编程I/O方式
当前,对I/O设备的控制,广泛采用中断的可编程I/O方式,即当某进程要启动某个I/O设备工作时,便由CPU向相应的设备控制器发出一条I/O命令,然后立即返回继续执行原来的任务。设备控制器于是按照该命令的要求去控制指定I/O设备。此时,CPU与I/O设备并行操作。
(3)直接存储器访问方式
①接存储器访问方式的引入
虽然中断驱动I/O比程序I/O方式更有效,但它仍是以字(节)为单位进行I/O的。每当完成一个字(节)的I/O时,控制器便要向CPU请求一次中断。
该方式的特点是:
数据传输的基本单位是数据块,即在CPU与I/O设备之间,每次传送至少一个数据块所传送的数据是从设备直接送入内存的,或者相反仅在传送一个或多个数据块的开始和结束时,才需CPU干预,整块数据的传送是在控制器的控制下完成的。可见,DMA方式较之中断驱动方式又进一步提高了CPU与I/O设备的并行操作程度②DMA控制器的组成
DMA控制器由三部分组成:主机与DMA控制器的接口;DMA控制器与块设备的接口;I/O控制逻辑。
③DMA工作过程
当CPU要从磁盘读入一数据块时,便向磁盘控制器发送一条读命令。该命令被送入命令寄存器CR中。同时,需要将本次要读入数据在内存的起始目标地址送入内存地址寄存器MAR中。
4.4I/O通道控制方式(1)I/O通道控制方式的引入
DMA方式比起中断方式已经显著减少CPU的干预。即已由以字(节)为单位的干预减少到以数据块为单位的干预,但CPU每发出一条I/O指令,也只能去读(或写)一个连续的数据块。而当我们需要一次去读多个数据块且将它们分别传送到不同的内存区域,或者相反时,则须由CPU分别发出多条I/O指令及进行多次中断处理才能完成。
I/O通道方式是DMA方式的发展,它可以进一步减少CPU的干预,即把对一个数据块的读(或写)为单位的干预,减少为一组数据块的读(写)及有关的控制和管理。
(2)通道程序
通道是通过执行通道程序并与设备控制器共同实现对I/O设备的控制的。通道程序是由一系列通道指令(或称为通道命令)所构成的
每条指令都包含以下信息:
①操作码:它规定了指令所执行的操作,如读、写控制等操作
②内存地址:标明字符送入内存(读操作)和从内存取出(写操作)的时的内存首地址
③计数:表示本条指令所要读(或写)数据的字节数
④通道程序结束位P:用于表示通道程序是否结束。P=1表示本指令是通道程序的最后一条指令
⑤记录结束标志R:R=0表示本通道与下一条指令所处理的数据是同属于一个记录:R=1表示这是处理某记录的最后一条指令
5与设备无关的I/O软件为了方便用户和提高OS的可适应性与可扩展性,在现代OS的I/O系统中,都无一例外地增加了与设备无关的I/O软件,以实现设备独立性,也称为设备无关性。其基本含义是:应用程序中所用的设备,不局限于使用某个具体的物理设备。为每个设备所配置的设备驱动程序是与硬件紧密相关的软件
5.1与设备无关(DeviceIndependce)软件的基本概念(1)以物理设备名使用设备
在早期OS中,应用程序在使用I/O设备时,都使用设备的物理名称,这使应用程序与系统中的物理设备直接相关
(2)引入了逻辑设备名
为了实现与设备的无关性而引入了逻辑设备和物理设备两个概念。逻辑设备是抽象的设备名
(3)逻辑设备名称到物理设备名称的转换
在应用程序中,用逻辑设备名称使用设备虽然方便了用户,但系统却只识别物理设备名称,因此在实际执行时,还必须使用物理名称。为此,在系统中,必须具有将逻辑设备名称转换为某物理设备名称的功能
5.2与设备无关的软件(1)设备驱动程序的统一接口
为了使所有的设备驱动程序有着统一的接口,一方面,要求每个设备驱动程序与OS之间都有着相同的接口,或者相近的接口,这样会使添加一个新的设备驱动程序变得很容易,同时在很大程度上方便了开发人员对设备驱动程序的编制。另一方面,要将抽象的设备名映射到适当的驱动程序上,或者说,将抽象的设备名转换为具体的物理设备名,并进一步可以找到相应物理设备的驱动程序入口。此外,还应对设备进行保护,禁止用户直接访问设备,以防止无权访问的用户使用。
(2)缓冲管理
无论是字符设备还是块设备,它们的运行速度都远低于CPU的速度。为了缓和CPU和I/O设备之间的矛盾、提高CPU的利用率,在现代OS中都无一例外地分别为字符设备和块设备配置了相应的缓冲区。缓冲区有着多种形式,如单缓冲区、双缓冲区、循环缓冲区、公用缓冲池等,以满足不同情况的需要
(3)差错控制
由于设备中有着许多的机械和电气部分,因此,它们比主机更容易出现故障,这就导致I/O操作中的绝大多数错误都与设备有关。错误可分为如下两类:①暂时性错误②持久性错误
(4)对独立设备的分配与回收
在系统中有两类设备:独占设备和共享设备。对于独占设备,为了避免诸进程对独占设备的争夺,必须由系统来统一分配,不允许进程自行使用。每当进程需要使用某(独占)设备时,必须先提出申请。OS接到对设备的请求后,先对进程所请求的独占设备进行检查,看该设备是否空闲。若空闲,才把该设备分配给请求进程。否则,进程将被阻塞,放入该设备的请求队列中等待。等到其它进程释放该设备时,再将队列中的第一个进程唤醒,该进程得到设备后继续运行。
(5)独立于设备的逻辑数据块
不同类型的设备,其数据交换单位是不同的,读取和传输速率也各不相同,如字符型设备以单个字符(字)为单位,块设备是以一个数据块为单位。即使同一类型的设备,其数据交换单位的大小也是有差异的,如不同磁盘由于扇区大小的不同,可能造成数据块大小的不一致。设备独立性软件应能够隐藏这些差异而被逻辑设备使用,并向高层软件提供大小统一的逻辑数据块。
与设备无关软件的功能层次
5.3设备分配系统为实现对独占设备的分配,必须在系统中配置相应的数据结构
(1)设备分配中的数据结构
在用于设备分配的数据结构中,记录了对设备或控制器进行控制所需的信息。在进行设备分配时需要如下的数据结构
①设备控制表DCT
系统为每一个设备都配置了一张设备控制表,用于记录设备的情况
设备控制表中,除了有用于指示设备类型的字段type和设备标识字段deviceid外,还应该含有下列字段
设备队列首指针忙闲标志与设备连接的控制器表指针重复执行次数②控制器控制表、通道控制表和系统设备表
控制器控制表(COCT)。系统为每一个控制器都设置了用于记录控制器情况的控制器控制表通道控制表(CHCT)。每个通道都有一张通道控制表
系统设备表(SDT)。这是系统范围的数据结构,记录了系统中全部设备的情况,每个设备占一个表目,其中包括有设备类型、设备标识符、设备控制表及设备驱动程序的入口等项
(2)设备分配时应考虑的因素
①设备的固有属性—分成三种,对它们采取不同的分配策略
独占设备的分配策略共享设备的分配策略虚拟设备的分配策略②设备分配算法
先来先服务优先级高者优先③设备分配中的安全性
安全分配方式不安全分配方式(3)独占设备的分配程序
①基本的设备分配程序
当某进程提出I/O请求后,系统的设备分配程序可按下述步骤进行设备分配:
分配设备分配控制器分配通道②设备分配程序的改进
进程是以物理设备名提出I/O请求的。如果所指定的设备已分配给其它进程,则分配失败。或者说上面的设备分配程序不具有与设备无关性。为获得设备的独立性,进程应使用逻辑设备名请求I/O。
5.4逻辑设备名到物理设备名映射的实现(1)逻辑设备表LUT(LogicalUnitTable)
在逻辑设备表的每个表目中包含了三项:逻辑设备名、物理设备名和设备驱动程序的入口地址
(2)逻辑设备表的设置问题
在系统中可采取两种方式设置逻辑设备表:
①在整个系统中只设置一张LUT
②为每个用户设置一张LUT
6用户层的I/O软件6.1系统调用和库函数(1)系统调用
一方面,为使诸进程能有条不紊地使用I/O设备,且能保护设备的安全性,不允许运行在用户态的应用进程去直接调用运行在核心态(系统态)的OS过程。但另一方面,应用进程在运行时,又必须取得OS所提供的服务,否则,应用程序几乎无法运行。为了解决此矛盾,OS在用户层中引入了一个中介过程——系统调用,应用程序可以通过它间接调用OS中的I/O过程,对I/O设备进行操作。
(2)库函数
在C语言以及UNIX系统中,系统调用(如read)与各系统调用所使用的库函数(如read)之间几乎是一一对应的。而微软定义了一套过程,称为Win32API的应用程序接口(ApplicationProgramInterface),程序员利用它们取得OS服务,该接口与实际的系统调用并不一一对应。用户程序通过调用对应的库函数使用系统调用,这些库函数与调用程序连接在一起,被嵌入在运行时装入内存的二进制程序中。
6.2假脱机(Spooling)系统通过假脱机技术,可将一台物理I/O设备虚拟为多台逻辑I/O设备,这样就允许多个用户共享一台物理I/O设备
(1)假脱机技术
为了缓和CPU的高速性与I/O设备低速性间的矛盾,而引入了脱机输入、脱机输出技术。
该技术是利用专门的外围控制机,先将低速I/O设备上的数据传送到高速磁盘上,或者相反。这样当处理机需要输入数据时,便可以直接从磁盘中读取数据,极大地提高了输入速度。反之,在处理机需要输出数据时,也可以很快的速度把数据先输出到磁盘上,处理机便可去做自己的事情。
(2)SPOOLing的组成
SPOOLing技术是对脱机输入/输出系统的模拟
SPOOLing系统建立在通道技术和多道程序技术的基础上,以高速随机外存(通常为磁盘)为后援存储器
SPOOLing系统主要由以下四部分构成:
①输入井和输出井
这是在磁盘上开辟出来的两个存储区域。输入/输出井中的数据一般以文件的形式组织管理,这些文件叫井文件
②输入缓冲区和输出缓冲区
这是在内存中开辟的两个缓冲区,用于缓和CPU和磁盘之间的矛盾。
③输入进程和输出进程
④井管理程序
(3)SPOOLing系统的特点
①提高了I/O的速度
②将独占设备改造为共享设备
③实现了虚拟设备功能
(4)假脱机打印机系统
打印机是经常用到的输出设备,属于独占设备。利用假脱机技术可将它改造为一台可供多个用户共享的打印设备,从而提高设备的利用率,也方便了用户。共享打印机技术已被广泛地用于多用户系统和局域网络中。假脱机打印系统主要有以下三部分:
①磁盘缓冲区
②打印缓冲区
③假脱机管理进程和假脱机打印进程
(5)守护进程(daemon)
利用假脱机系统来实现打印机共享的一种方案,人们对该方案进行了某些修改,如取消该方案中的假脱机管理进程,为打印机建立一个守护进程,由它执行一部分原来由假脱机管理进程实现的功能,如为用户在磁盘缓冲区中申请一个空闲盘块,并将要打印的数据送入其中,将该盘块的首址返回给请求进程。另一部分由请求进程自己完成,每个要求打印的进程首先生成一份要求打印的文件,其中包含对打印的要求和指向装有打印输出数据盘块的指针等信息,然后将用户请求打印文件放入假脱机文件队列(目录)中。
7缓冲区管理7.1缓冲的引入①缓和CPU与I/O设备间速度不匹配的矛盾
②减少对CPU的中断频率,放宽对CPU中断响应时间的限制
③解决数据粒度不匹配的问题
④提高CPU和I/O设备之间的并行性
7.2单缓冲区和双缓冲区(1)单缓冲区(SingleBuffer)
在单缓冲情况下,每当用户进程发出一I/O请求时,操作系统便在主存中为之分配一缓冲区
单缓冲工作示意图:
(2)双缓冲区(DoubleBuffer)
缓冲区是共享资源,生产者与消费者在使用缓冲区时必须互斥。如果消费者尚未取走缓冲区中的数据,即使生产者又生产出新的数据,也无法将它送入缓冲区,生产者等待。如果为生产者与消费者设置了两个缓冲区,便能解决这一问题。
如果在实现两台机器之间的通信时仅为它们配置了单缓冲,那么,它们之间在任一时刻都只能实现单方向的数据传输。例如,只允许把数据从A传送到B,或者从B传送到A,而绝不允许双方同时向对方发送数据。
了实现双向数据传输,必须在两台机器中都设置两个缓冲区,一个用作发送缓冲区,另一个用作接收缓冲区
7.3环形缓冲区(1)环形缓冲区的组成
①多个缓冲区:每个缓冲区的大小相同
作为输入的多缓冲区可分为三种类型:
用于装输入数据的空缓冲区R已装满数据的缓冲区G计算进程正在使用的现行工作缓冲区C②多个指针:作为输入的缓冲区可设置三个指针
指示计算进程下一个可用缓冲区G的指针Nextg指示输入进程下次可用的空缓冲区R的指针Nexti指示计算进程正在使用的缓冲区C的指针Current(2)环形缓冲区的使用
计算进程和输入进程可利用两个过程来使用环形缓冲区:
①Getbuf过程②Releasebuf过程
(3)进程之间的同步问题
使用输入循环缓冲,可使输入过程和计算过程并行执行。Nexti指针和指针Nextg将不断地沿着顺时针方向移动,可能出现两种情况:
①Nexti指针追赶上Nextg指针。这意味着输入进程输入数据的速度大于计算进程处理数据的速度,已把全部可用的空缓冲区装满,无缓冲区可用。此时,输入进程应阻塞,直到计算进程把某个缓冲区中的数据全部提取完,使它成为空缓冲区R,并调用Releasebuf过程将它释放时,才将输入进程唤醒。这种情况称为系统计算受限。
②Nextg指针追赶上Nexti指针。这意味着输入进程输入数据的速度低于计算进程处理数据的速度,使全部装有输入数据的缓冲区都抽空。此时,计算进程应阻塞,直到输入进程又装满某个缓冲区,并调用Releasebuf过程将它释放时,才将计算进程唤醒。这种情况称为系统受I/O受限。
7.4缓冲池缓冲池和缓冲区的区别:缓冲区仅仅是一组内存块的链表,而缓冲池则包含了一个管理的数据结构及一组操作函数的管理机制,用于管理多个缓冲区。
(1)缓冲池的组成
具有相同类型的缓冲区连接成一个队列,三个队列:①空白缓冲队列emq
②输入队列inq
③输出队列outq
四个工作缓冲区:①用于收容输入数据的工作缓冲区
②用于提取输入数据的工作缓冲区
③用于收容输出数据的工作缓冲区
④用于提取输出数据的工作缓冲区
(2)Getbuf过程和Putbuf过程
Getbuf过程—从缓冲队列取出一个缓冲区的过程VoidGet_buf(type){Wait(RS(type));//type是指缓冲队列的类型,RS是用来线程同步信号量,初始值是缓冲区的大小。Wait(MS(type));//MS是用来互斥的信号量,保证缓冲队列的同一缓冲区只能被一个线程操作。B(number)=Take_buf(type);//number是指缓冲队列对应的位置,这里是得到缓冲队列的缓冲区。得到之后可以用来读写数据,Signal(MS(type));//发送互斥信号,对缓冲队列中的空间操作完成。}Putbuf过程—从缓冲区插入对应缓冲队列的过程VoidPut_buf(type,work_buf){Wait(MS(type));//MS是用来互斥的信号量,保证缓冲队列的同一缓冲区只能被一个线程操作。Add_buf(type,work_buf);//type是指缓冲队列的类型,work_buf代表工作缓冲区的类型。Signal(MS(type));//发送互斥信号,对缓冲队列中的空间操作完成。Signal(RS(type));//给对应类型的缓冲区发信号,代表返回缓冲队列的空间}(3)缓冲区的工作方式
①收容输入:把设备输入的数据放在缓冲区中
首先从空缓队列取出一个缓冲区当作hin工作缓冲区,hin=Get_buf(emq)。把数据装入到hin中把得到的hin缓冲区放在inq缓冲队列。inq=Put_buf(inq,hin)。供给用户程序利用②提取输入:把缓冲区的数据交给用户程序处理
把inq缓冲队列中的数据提取到sin工作缓冲区中,sin=Get_buf(inq)。供给用户提取数据提取完数据之后,把sin的工作缓冲区放回到emq空缓冲队列中。emq=Put_buf(emq,sin)③收容输出:把用户程序处理完的数据放在缓冲区中
先用工作缓冲区hout向空缓冲队列emq申请缓冲区,得到用户处理的数据,hout=Get_buf(emq)hout的数据读取完毕之后,放在outq缓冲区中。Put_buf(outq,hout)供给外设读取④提取输出
先把要输出到设备的缓冲区中的数据放在sout工作缓冲区中。sout=Get_buf(outq)提取完sout的数据之后,把sout缓冲区放到空缓冲队列而emq中。emq=Put_buf(emq,sout)8磁盘存储器的性能和调度算法8.1磁盘性能简述(1)数据的组织和格式
(2)磁盘的类型
常见:硬盘和软盘;单片盘和多片盘;固定头磁盘和活动头磁盘
(3)磁盘访问时间
有三部分组成:
①寻找时间Ts:指的是把读写磁头移动到要求的磁道位置所需要的时间。这个时间除跨越n条磁道的时间外,还包括启动磁臂的时间s,即:Ts=m*n+s。m是与磁盘驱动器速度有关的常数,约为0.2ms,磁臂的启动时间约为2ms。
②旋转延迟Tr:指的是在磁头到达所要求的磁道位置后,等待所要求的扇面旋转到磁头下方的平均时间。若平均来讲,所需要的扇面距磁头半圈远的距离,旋转延迟通常为旋转时间的一半。当前磁盘驱动器旋转速度所处的范围为每分钟3500转到10000转,因此旋转延迟的范围在3ms~8.7ms内。(以1w转为例,1w转耗时6wms,1转耗时3ms,其旋转延迟为3ms)
③传输时间Tt:从磁盘读出或向磁盘写入数据所经历的时间,这个时间取决于每次所读/写的字节数b和磁盘的旋转速度:Tt=b/(r*N)。式中,r为磁盘每秒钟的转数;N为一个磁道上的字节数。
8.2早期的磁盘调度算法(1)先来先服务FCFS
一种自然公平的调度策略。先来先到,无特权用户。FCFS算法根据进程请求访问磁盘的先后顺序进行调度,这是一种最简单的调度算法。
(2)最短寻道时间优先SSTF
要求访问的磁道与当前磁头所在的磁道距离最近,以使每次的寻道时间最短,但是不能保证平均寻道时间最短。
8.3基于扫描的磁盘调度算法(1)扫描SCAN算法
距离最近,但又在同一边的磁道先访问完之后再访问另一个磁道
SSTF修改后可以防止低优先级进程出现饥饿现象
(2)循环扫描算法CSCAN
能获得较好的寻道性能,又能防止饥饿现象。
(3)NStepSCAN算法
(4)FSCAN算法
动头磁盘
(3)磁盘访问时间
有三部分组成:
①寻找时间Ts:指的是把读写磁头移动到要求的磁道位置所需要的时间。这个时间除跨越n条磁道的时间外,还包括启动磁臂的时间s,即:Ts=m*n+s。m是与磁盘驱动器速度有关的常数,约为0.2ms,磁臂的启动时间约为2ms。
②旋转延迟Tr:指的是在磁头到达所要求的磁道位置后,等待所要求的扇面旋转到磁头下方的平均时间。若平均来讲,所需要的扇面距磁头半圈远的距离,旋转延迟通常为旋转时间的一半。当前磁盘驱动器旋转速度所处的范围为每分钟3500转到10000转,因此旋转延迟的范围在3ms~8.7ms内。(以1w转为例,1w转耗时6wms,1转耗时3ms,其旋转延迟为3ms)
③传输时间Tt:从磁盘读出或向磁盘写入数据所经历的时间,这个时间取决于每次所读/写的字节数b和磁盘的旋转速度:Tt=b/(r*N)。式中,r为磁盘每秒钟的转数;N为一个磁道上的字节数。
8.2早期的磁盘调度算法(1)先来先服务FCFS
一种自然公平的调度策略。先来先到,无特权用户。FCFS算法根据进程请求访问磁盘的先后顺序进行调度,这是一种最简单的调度算法。
(2)最短寻道时间优先SSTF
要求访问的磁道与当前磁头所在的磁道距离最近,以使每次的寻道时间最短,但是不能保证平均寻道时间最短。
8.3基于扫描的磁盘调度算法(1)扫描SCAN算法
距离最近,但又在同一边的磁道先访问完之后再访问另一个磁道
SSTF修改后可以防止低优先级进程出现饥饿现象
(2)循环扫描算法CSCAN
能获得较好的寻道性能,又能防止饥饿现象。
(3)NStepSCAN算法
(4)FSCAN算法
人工智能的十大应用
导读:人工智能已经逐渐走进我们的生活,并应用于各个领域,它不仅给许多行业带来了巨大的经济效益,也为我们的生活带来了许多改变和便利。下面,我们将分别介绍人工智能的一些主要应用场景。
作者:王健宗何安珣李泽远
来源:大数据DT(ID:hzdashuju)
01 无人驾驶汽车
无人驾驶汽车是智能汽车的一种,也称为轮式移动机器人,主要依靠车内以计算机系统为主的智能驾驶控制器来实现无人驾驶。无人驾驶中涉及的技术包含多个方面,例如计算机视觉、自动控制技术等。
美国、英国、德国等发达国家从20世纪70年代开始就投入到无人驾驶汽车的研究中,中国从20世纪80年代起也开始了无人驾驶汽车的研究。
2005年,一辆名为Stanley的无人驾驶汽车以平均40km/h的速度跑完了美国莫哈维沙漠中的野外地形赛道,用时6小时53分58秒,完成了约282千米的驾驶里程。
Stanley是由一辆大众途锐汽车经过改装而来的,由大众汽车技术研究部、大众汽车集团下属的电子研究工作实验室及斯坦福大学一起合作完成,其外部装有摄像头、雷达、激光测距仪等装置来感应周边环境,内部装有自动驾驶控制系统来完成指挥、导航、制动和加速等操作。
2006年,卡内基梅隆大学又研发了无人驾驶汽车Boss,Boss能够按照交通规则安全地驾驶通过附近有空军基地的街道,并且会避让其他车辆和行人。
近年来,伴随着人工智能浪潮的兴起,无人驾驶成为人们热议的话题,国内外许多公司都纷纷投入到自动驾驶和无人驾驶的研究中。例如,Google的GoogleX实验室正在积极研发无人驾驶汽车GoogleDriverlessCar,百度也已启动了“百度无人驾驶汽车”研发计划,其自主研发的无人驾驶汽车Apollo还曾亮相2018年央视春晚。
但是最近两年,发现无人驾驶的复杂程度远超几年前所预期的,要真正实现商业化还有很长的路要走。
02 人脸识别
人脸识别也称人像识别、面部识别,是基于人的脸部特征信息进行身份识别的一种生物识别技术。人脸识别涉及的技术主要包括计算机视觉、图像处理等。
人脸识别系统的研究始于20世纪60年代,之后,随着计算机技术和光学成像技术的发展,人脸识别技术水平在20世纪80年代得到不断提高。在20世纪90年代后期,人脸识别技术进入初级应用阶段。目前,人脸识别技术已广泛应用于多个领域,如金融、司法、公安、边检、航天、电力、教育、医疗等。
有一个关于人脸识别技术应用的有趣案例:张学友获封“逃犯克星”,因为警方利用人脸识别技术在其演唱会上多次抓到了在逃人员。
2018年4月7日,张学友南昌演唱会开始后,看台上一名粉丝便被警方带离现场。实际上,他是一名逃犯,安保人员通过人像识别系统锁定了在看台上的他;
2018年5月20日,张学友嘉兴演唱会上,犯罪嫌疑人于某在通过安检门时被人脸识别系统识别出是逃犯,随后被警方抓获。随着人脸识别技术的进一步成熟和社会认同度的提高,其将应用在更多领域,给人们的生活带来更多改变。
03机器翻译
机器翻译是计算语言学的一个分支,是利用计算机将一种自然语言转换为另一种自然语言的过程。机器翻译用到的技术主要是神经机器翻译技术(NeuralMachineTranslation,NMT),该技术当前在很多语言上的表现已经超过人类。
随着经济全球化进程的加快及互联网的迅速发展,机器翻译技术在促进政治、经济、文化交流等方面的价值凸显,也给人们的生活带来了许多便利。例如我们在阅读英文文献时,可以方便地通过有道翻译、Google翻译等网站将英文转换为中文,免去了查字典的麻烦,提高了学习和工作的效率。
04声纹识别
生物特征识别技术包括很多种,除了人脸识别,目前用得比较多的有声纹识别。声纹识别是一种生物鉴权技术,也称为说话人识别,包括说话人辨认和说话人确认。
声纹识别的工作过程为,系统采集说话人的声纹信息并将其录入数据库,当说话人再次说话时,系统会采集这段声纹信息并自动与数据库中已有的声纹信息做对比,从而识别出说话人的身份。
相比于传统的身份识别方法(如钥匙、证件),声纹识别具有抗遗忘、可远程的鉴权特点,在现有算法优化和随机密码的技术手段下,声纹也能有效防录音、防合成,因此安全性高、响应迅速且识别精准。
同时,相较于人脸识别、虹膜识别等生物特征识别技术,声纹识别技术具有可通过电话信道、网络信道等方式采集用户的声纹特征的特点,因此其在远程身份确认上极具优势。
目前,声纹识别技术有声纹核身、声纹锁和黑名单声纹库等多项应用案例,可广泛应用于金融、安防、智能家居等领域,落地场景丰富。
05智能客服机器人
智能客服机器人是一种利用机器模拟人类行为的人工智能实体形态,它能够实现语音识别和自然语义理解,具有业务推理、话术应答等能力。
当用户访问网站并发出会话时,智能客服机器人会根据系统获取的访客地址、IP和访问路径等,快速分析用户意图,回复用户的真实需求。同时,智能客服机器人拥有海量的行业背景知识库,能对用户咨询的常规问题进行标准回复,提高应答准确率。
智能客服机器人广泛应用于商业服务与营销场景,为客户解决问题、提供决策依据。同时,智能客服机器人在应答过程中,可以结合丰富的对话语料进行自适应训练,因此,其在应答话术上将变得越来越精确。
随着智能客服机器人的垂直发展,它已经可以深入解决很多企业的细分场景下的问题。比如电商企业面临的售前咨询问题,对大多数电商企业来说,用户所咨询的售前问题普遍围绕价格、优惠、货品来源渠道等主题,传统的人工客服每天都会对这几类重复性的问题进行回答,导致无法及时为存在更多复杂问题的客户群体提供服务。
而智能客服机器人可以针对用户的各类简单、重复性高的问题进行解答,还能为用户提供全天候的咨询应答、解决问题的服务,它的广泛应用也大大降低了企业的人工客服成本。
06智能外呼机器人
智能外呼机器人是人工智能在语音识别方面的典型应用,它能够自动发起电话外呼,以语音合成的自然人声形式,主动向用户群体介绍产品。
在外呼期间,它可以利用语音识别和自然语言处理技术获取客户意图,而后采用针对性话术与用户进行多轮交互会话,最后对用户进行目标分类,并自动记录每通电话的关键点,以成功完成外呼工作。
从2018年年初开始,智能外呼机器人呈现出喷井式兴起状态,它能够在互动过程中不带有情绪波动,并且自动完成应答、分类、记录和追踪,助力企业完成一些烦琐、重复和耗时的操作,从而解放人工,减少大量的人力成本和重复劳动力,让员工着力于目标客群,进而创造更高的商业价值。当然智能外呼机器人也带来了另一面,即会对用户造成频繁的打扰。
基于维护用户的合法权益,促进语音呼叫服务端健康发展,2020年8月31日国家工信部下发了《通信短信息和语音呼叫服务管理规定(征求意见稿)》,意味着未来的外呼服务,无论人工还是人工智能,都需要持证上岗,而且还要在监管的监视下进行,这也对智能外呼机器人的用户体验和服务质量提出了更高的要求。
07智能音箱
智能音箱是语音识别、自然语言处理等人工智能技术的电子产品类应用与载体,随着智能音箱的迅猛发展,其也被视为智能家居的未来入口。究其本质,智能音箱就是能完成对话环节的拥有语音交互能力的机器。通过与它直接对话,家庭消费者能够完成自助点歌、控制家居设备和唤起生活服务等操作。
支撑智能音箱交互功能的前置基础主要包括将人声转换成文本的自动语音识别(AutomaticSpeechRecognition,ASR)技术,对文字进行词性、句法、语义等分析的自然语言处理(NaturalLanguageProcessing,NLP)技术,以及将文字转换成自然语音流的语音合成技术(TextToSpeech,TTS)技术。
在人工智能技术的加持下,智能音箱也逐渐以更自然的语音交互方式创造出更多家庭场景下的应用。
08个性化推荐
个性化推荐是一种基于聚类与协同过滤技术的人工智能应用,它建立在海量数据挖掘的基础上,通过分析用户的历史行为建立推荐模型,主动给用户提供匹配他们的需求与兴趣的信息,如商品推荐、新闻推荐等。
个性化推荐既可以为用户快速定位需求产品,弱化用户被动消费意识,提升用户兴致和留存黏性,又可以帮助商家快速引流,找准用户群体与定位,做好产品营销。
个性化推荐系统广泛存在于各类网站和App中,本质上,它会根据用户的浏览信息、用户基本信息和对物品或内容的偏好程度等多因素进行考量,依托推荐引擎算法进行指标分类,将与用户目标因素一致的信息内容进行聚类,经过协同过滤算法,实现精确的个性化推荐。
09医学图像处理
医学图像处理是目前人工智能在医疗领域的典型应用,它的处理对象是由各种不同成像机理,如在临床医学中广泛使用的核磁共振成像、超声成像等生成的医学影像。
传统的医学影像诊断,主要通过观察二维切片图去发现病变体,这往往需要依靠医生的经验来判断。而利用计算机图像处理技术,可以对医学影像进行图像分割、特征提取、定量分析和对比分析等工作,进而完成病灶识别与标注,针对肿瘤放疗环节的影像的靶区自动勾画,以及手术环节的三维影像重建。
该应用可以辅助医生对病变体及其他目标区域进行定性甚至定量分析,从而大大提高医疗诊断的准确性和可靠性。另外,医学图像处理在医疗教学、手术规划、手术仿真、各类医学研究、医学二维影像重建中也起到重要的辅助作用。
10 图像搜索
图像搜索是近几年用户需求日益旺盛的信息检索类应用,分为基于文本的和基于内容的两类搜索方式。传统的图像搜索只识别图像本身的颜色、纹理等要素,基于深度学习的图像搜索还会计入人脸、姿态、地理位置和字符等语义特征,针对海量数据进行多维度的分析与匹配。
该技术的应用与发展,不仅是为了满足当下用户利用图像匹配搜索以顺利查找到相同或相似目标物的需求,更是为了通过分析用户的需求与行为,如搜索同款、相似物比对等,确保企业的产品迭代和服务升级在后续工作中更加聚焦。
关于作者:王健宗,博士,某大型金融集团科技公司资深人工智能总监、高级工程师,中国计算机学会大数据专家委员会委员、高级会员,美国佛罗里达大学人工智能博士后,曾任美国莱斯大学电子与计算机工程系研究员、美国惠普公司高级云计算解决方案专家。
何安珣,某大型金融集团科技公司高级算法工程师,中国计算机学会会员,中国计算机学会青年计算机科技论坛(YOCSEF深圳)委员。拥有丰富的金融智能从业经验,主要研究金融智能系统框架搭建、算法研究和模型融合技术等,致力于推动金融智能的落地应用与价值创造。
李泽远,某大型金融集团科技公司高级人工智能产品经理,中国计算机学会会员,长期致力于金融智能的产品化工作,负责技术服务类的产品生态搭建与实施推进。
本文摘编自《金融智能:AI如何为银行、保险、证券业赋能》,经出版方授权发布。
延伸阅读《金融智能》
点击上图了解及购买
转载请联系微信:DoctorData
推荐语:这是一部讲解如何用AI技术解决银行、保险、证券行业的核心痛点并帮助它们实现数智化转型的著作。作者从金融智能一线从业者的视角,深入剖析了传统金融行业的痛点与局限,以及金融智能的特点与优势,阐明了人工智能等技术在金融业的必要性,并针对金融智能在银行、保险和证券业的诸多应用场景,给出了具体解决方案。
划重点????
干货直达????
有了中台,那后台还剩下什么?(图解中台架构)
关于读书,我发现每一个技术大牛都有这个怪癖
2020福布斯中国富豪榜发布!10年来谁是中国最有钱的人?
34秒看完200余年美国总统大战:民主党vs共和党谁是赢家?
更多精彩????
在公众号对话框输入以下关键词
查看更多优质内容!
PPT | 读书 | 书单 | 硬核 | 干货 | 讲明白 | 神操作
大数据 | 云计算 | 数据库 | Python | 可视化
AI | 人工智能 | 机器学习 | 深度学习 | NLP
5G | 中台 | 用户画像 | 1024 | 数学 | 算法 | 数字孪生
据统计,99%的大咖都完成了这个神操作
????
人工智能的历史、现状和未来
如同蒸汽时代的蒸汽机、电气时代的发电机、信息时代的计算机和互联网,人工智能正成为推动人类进入智能时代的决定性力量。全球产业界充分认识到人工智能技术引领新一轮产业变革的重大意义,纷纷转型发展,抢滩布局人工智能创新生态。世界主要发达国家均把发展人工智能作为提升国家竞争力、维护国家安全的重大战略,力图在国际科技竞争中掌握主导权。习近平总书记在十九届中央政治局第九次集体学习时深刻指出,加快发展新一代人工智能是事关我国能否抓住新一轮科技革命和产业变革机遇的战略问题。错失一个机遇,就有可能错过整整一个时代。新一轮科技革命与产业变革已曙光可见,在这场关乎前途命运的大赛场上,我们必须抢抓机遇、奋起直追、力争超越。
概念与历程
了解人工智能向何处去,首先要知道人工智能从何处来。1956年夏,麦卡锡、明斯基等科学家在美国达特茅斯学院开会研讨“如何用机器模拟人的智能”,首次提出“人工智能(ArtificialIntelligence,简称AI)”这一概念,标志着人工智能学科的诞生。
人工智能是研究开发能够模拟、延伸和扩展人类智能的理论、方法、技术及应用系统的一门新的技术科学,研究目的是促使智能机器会听(语音识别、机器翻译等)、会看(图像识别、文字识别等)、会说(语音合成、人机对话等)、会思考(人机对弈、定理证明等)、会学习(机器学习、知识表示等)、会行动(机器人、自动驾驶汽车等)。
人工智能充满未知的探索道路曲折起伏。如何描述人工智能自1956年以来60余年的发展历程,学术界可谓仁者见仁、智者见智。我们将人工智能的发展历程划分为以下6个阶段:
一是起步发展期:1956年—20世纪60年代初。人工智能概念提出后,相继取得了一批令人瞩目的研究成果,如机器定理证明、跳棋程序等,掀起人工智能发展的第一个高潮。
二是反思发展期:20世纪60年代—70年代初。人工智能发展初期的突破性进展大大提升了人们对人工智能的期望,人们开始尝试更具挑战性的任务,并提出了一些不切实际的研发目标。然而,接二连三的失败和预期目标的落空(例如,无法用机器证明两个连续函数之和还是连续函数、机器翻译闹出笑话等),使人工智能的发展走入低谷。
三是应用发展期:20世纪70年代初—80年代中。20世纪70年代出现的专家系统模拟人类专家的知识和经验解决特定领域的问题,实现了人工智能从理论研究走向实际应用、从一般推理策略探讨转向运用专门知识的重大突破。专家系统在医疗、化学、地质等领域取得成功,推动人工智能走入应用发展的新高潮。
四是低迷发展期:20世纪80年代中—90年代中。随着人工智能的应用规模不断扩大,专家系统存在的应用领域狭窄、缺乏常识性知识、知识获取困难、推理方法单一、缺乏分布式功能、难以与现有数据库兼容等问题逐渐暴露出来。
五是稳步发展期:20世纪90年代中—2010年。由于网络技术特别是互联网技术的发展,加速了人工智能的创新研究,促使人工智能技术进一步走向实用化。1997年国际商业机器公司(简称IBM)深蓝超级计算机战胜了国际象棋世界冠军卡斯帕罗夫,2008年IBM提出“智慧地球”的概念。以上都是这一时期的标志性事件。
六是蓬勃发展期:2011年至今。随着大数据、云计算、互联网、物联网等信息技术的发展,泛在感知数据和图形处理器等计算平台推动以深度神经网络为代表的人工智能技术飞速发展,大幅跨越了科学与应用之间的“技术鸿沟”,诸如图像分类、语音识别、知识问答、人机对弈、无人驾驶等人工智能技术实现了从“不能用、不好用”到“可以用”的技术突破,迎来爆发式增长的新高潮。
现状与影响
对于人工智能的发展现状,社会上存在一些“炒作”。比如说,认为人工智能系统的智能水平即将全面超越人类水平、30年内机器人将统治世界、人类将成为人工智能的奴隶,等等。这些有意无意的“炒作”和错误认识会给人工智能的发展带来不利影响。因此,制定人工智能发展的战略、方针和政策,首先要准确把握人工智能技术和产业发展的现状。
专用人工智能取得重要突破。从可应用性看,人工智能大体可分为专用人工智能和通用人工智能。面向特定任务(比如下围棋)的专用人工智能系统由于任务单一、需求明确、应用边界清晰、领域知识丰富、建模相对简单,形成了人工智能领域的单点突破,在局部智能水平的单项测试中可以超越人类智能。人工智能的近期进展主要集中在专用智能领域。例如,阿尔法狗(AlphaGo)在围棋比赛中战胜人类冠军,人工智能程序在大规模图像识别和人脸识别中达到了超越人类的水平,人工智能系统诊断皮肤癌达到专业医生水平。
通用人工智能尚处于起步阶段。人的大脑是一个通用的智能系统,能举一反三、融会贯通,可处理视觉、听觉、判断、推理、学习、思考、规划、设计等各类问题,可谓“一脑万用”。真正意义上完备的人工智能系统应该是一个通用的智能系统。目前,虽然专用人工智能领域已取得突破性进展,但是通用人工智能领域的研究与应用仍然任重而道远,人工智能总体发展水平仍处于起步阶段。当前的人工智能系统在信息感知、机器学习等“浅层智能”方面进步显著,但是在概念抽象和推理决策等“深层智能”方面的能力还很薄弱。总体上看,目前的人工智能系统可谓有智能没智慧、有智商没情商、会计算不会“算计”、有专才而无通才。因此,人工智能依旧存在明显的局限性,依然还有很多“不能”,与人类智慧还相差甚远。
人工智能创新创业如火如荼。全球产业界充分认识到人工智能技术引领新一轮产业变革的重大意义,纷纷调整发展战略。比如,谷歌在其2017年年度开发者大会上明确提出发展战略从“移动优先”转向“人工智能优先”,微软2017财年年报首次将人工智能作为公司发展愿景。人工智能领域处于创新创业的前沿。麦肯锡公司报告指出,2016年全球人工智能研发投入超300亿美元并处于高速增长阶段;全球知名风投调研机构CBInsights报告显示,2017年全球新成立人工智能创业公司1100家,人工智能领域共获得投资152亿美元,同比增长141%。
创新生态布局成为人工智能产业发展的战略高地。信息技术和产业的发展史,就是新老信息产业巨头抢滩布局信息产业创新生态的更替史。例如,传统信息产业代表企业有微软、英特尔、IBM、甲骨文等,互联网和移动互联网时代信息产业代表企业有谷歌、苹果、脸书、亚马逊、阿里巴巴、腾讯、百度等。人工智能创新生态包括纵向的数据平台、开源算法、计算芯片、基础软件、图形处理器等技术生态系统和横向的智能制造、智能医疗、智能安防、智能零售、智能家居等商业和应用生态系统。目前智能科技时代的信息产业格局还没有形成垄断,因此全球科技产业巨头都在积极推动人工智能技术生态的研发布局,全力抢占人工智能相关产业的制高点。
人工智能的社会影响日益凸显。一方面,人工智能作为新一轮科技革命和产业变革的核心力量,正在推动传统产业升级换代,驱动“无人经济”快速发展,在智能交通、智能家居、智能医疗等民生领域产生积极正面影响。另一方面,个人信息和隐私保护、人工智能创作内容的知识产权、人工智能系统可能存在的歧视和偏见、无人驾驶系统的交通法规、脑机接口和人机共生的科技伦理等问题已经显现出来,需要抓紧提供解决方案。
趋势与展望
经过60多年的发展,人工智能在算法、算力(计算能力)和算料(数据)等“三算”方面取得了重要突破,正处于从“不能用”到“可以用”的技术拐点,但是距离“很好用”还有诸多瓶颈。那么在可以预见的未来,人工智能发展将会出现怎样的趋势与特征呢?
从专用智能向通用智能发展。如何实现从专用人工智能向通用人工智能的跨越式发展,既是下一代人工智能发展的必然趋势,也是研究与应用领域的重大挑战。2016年10月,美国国家科学技术委员会发布《国家人工智能研究与发展战略计划》,提出在美国的人工智能中长期发展策略中要着重研究通用人工智能。阿尔法狗系统开发团队创始人戴密斯·哈萨比斯提出朝着“创造解决世界上一切问题的通用人工智能”这一目标前进。微软在2017年成立了通用人工智能实验室,众多感知、学习、推理、自然语言理解等方面的科学家参与其中。
从人工智能向人机混合智能发展。借鉴脑科学和认知科学的研究成果是人工智能的一个重要研究方向。人机混合智能旨在将人的作用或认知模型引入到人工智能系统中,提升人工智能系统的性能,使人工智能成为人类智能的自然延伸和拓展,通过人机协同更加高效地解决复杂问题。在我国新一代人工智能规划和美国脑计划中,人机混合智能都是重要的研发方向。
从“人工+智能”向自主智能系统发展。当前人工智能领域的大量研究集中在深度学习,但是深度学习的局限是需要大量人工干预,比如人工设计深度神经网络模型、人工设定应用场景、人工采集和标注大量训练数据、用户需要人工适配智能系统等,非常费时费力。因此,科研人员开始关注减少人工干预的自主智能方法,提高机器智能对环境的自主学习能力。例如阿尔法狗系统的后续版本阿尔法元从零开始,通过自我对弈强化学习实现围棋、国际象棋、日本将棋的“通用棋类人工智能”。在人工智能系统的自动化设计方面,2017年谷歌提出的自动化学习系统(AutoML)试图通过自动创建机器学习系统降低人员成本。
人工智能将加速与其他学科领域交叉渗透。人工智能本身是一门综合性的前沿学科和高度交叉的复合型学科,研究范畴广泛而又异常复杂,其发展需要与计算机科学、数学、认知科学、神经科学和社会科学等学科深度融合。随着超分辨率光学成像、光遗传学调控、透明脑、体细胞克隆等技术的突破,脑与认知科学的发展开启了新时代,能够大规模、更精细解析智力的神经环路基础和机制,人工智能将进入生物启发的智能阶段,依赖于生物学、脑科学、生命科学和心理学等学科的发现,将机理变为可计算的模型,同时人工智能也会促进脑科学、认知科学、生命科学甚至化学、物理、天文学等传统科学的发展。
人工智能产业将蓬勃发展。随着人工智能技术的进一步成熟以及政府和产业界投入的日益增长,人工智能应用的云端化将不断加速,全球人工智能产业规模在未来10年将进入高速增长期。例如,2016年9月,咨询公司埃森哲发布报告指出,人工智能技术的应用将为经济发展注入新动力,可在现有基础上将劳动生产率提高40%;到2035年,美、日、英、德、法等12个发达国家的年均经济增长率可以翻一番。2018年麦肯锡公司的研究报告预测,到2030年,约70%的公司将采用至少一种形式的人工智能,人工智能新增经济规模将达到13万亿美元。
人工智能将推动人类进入普惠型智能社会。“人工智能+X”的创新模式将随着技术和产业的发展日趋成熟,对生产力和产业结构产生革命性影响,并推动人类进入普惠型智能社会。2017年国际数据公司IDC在《信息流引领人工智能新时代》白皮书中指出,未来5年人工智能将提升各行业运转效率。我国经济社会转型升级对人工智能有重大需求,在消费场景和行业应用的需求牵引下,需要打破人工智能的感知瓶颈、交互瓶颈和决策瓶颈,促进人工智能技术与社会各行各业的融合提升,建设若干标杆性的应用场景创新,实现低成本、高效益、广范围的普惠型智能社会。
人工智能领域的国际竞争将日益激烈。当前,人工智能领域的国际竞赛已经拉开帷幕,并且将日趋白热化。2018年4月,欧盟委员会计划2018—2020年在人工智能领域投资240亿美元;法国总统在2018年5月宣布《法国人工智能战略》,目的是迎接人工智能发展的新时代,使法国成为人工智能强国;2018年6月,日本《未来投资战略2018》重点推动物联网建设和人工智能的应用。世界军事强国也已逐步形成以加速发展智能化武器装备为核心的竞争态势,例如美国特朗普政府发布的首份《国防战略》报告即谋求通过人工智能等技术创新保持军事优势,确保美国打赢未来战争;俄罗斯2017年提出军工拥抱“智能化”,让导弹和无人机这样的“传统”兵器威力倍增。
人工智能的社会学将提上议程。为了确保人工智能的健康可持续发展,使其发展成果造福于民,需要从社会学的角度系统全面地研究人工智能对人类社会的影响,制定完善人工智能法律法规,规避可能的风险。2017年9月,联合国犯罪和司法研究所(UNICRI)决定在海牙成立第一个联合国人工智能和机器人中心,规范人工智能的发展。美国白宫多次组织人工智能领域法律法规问题的研讨会、咨询会。特斯拉等产业巨头牵头成立OpenAI等机构,旨在“以有利于整个人类的方式促进和发展友好的人工智能”。
态势与思考
当前,我国人工智能发展的总体态势良好。但是我们也要清醒看到,我国人工智能发展存在过热和泡沫化风险,特别在基础研究、技术体系、应用生态、创新人才、法律规范等方面仍然存在不少值得重视的问题。总体而言,我国人工智能发展现状可以用“高度重视,态势喜人,差距不小,前景看好”来概括。
高度重视。党中央、国务院高度重视并大力支持发展人工智能。习近平总书记在党的十九大、2018年两院院士大会、全国网络安全和信息化工作会议、十九届中央政治局第九次集体学习等场合多次强调要加快推进新一代人工智能的发展。2017年7月,国务院发布《新一代人工智能发展规划》,将新一代人工智能放在国家战略层面进行部署,描绘了面向2030年的我国人工智能发展路线图,旨在构筑人工智能先发优势,把握新一轮科技革命战略主动。国家发改委、工信部、科技部、教育部等国家部委和北京、上海、广东、江苏、浙江等地方政府都推出了发展人工智能的鼓励政策。
态势喜人。据清华大学发布的《中国人工智能发展报告2018》统计,我国已成为全球人工智能投融资规模最大的国家,我国人工智能企业在人脸识别、语音识别、安防监控、智能音箱、智能家居等人工智能应用领域处于国际前列。根据2017年爱思唯尔文献数据库统计结果,我国在人工智能领域发表的论文数量已居世界第一。近两年,中国科学院大学、清华大学、北京大学等高校纷纷成立人工智能学院,2015年开始的中国人工智能大会已连续成功召开四届并且规模不断扩大。总体来说,我国人工智能领域的创新创业、教育科研活动非常活跃。
差距不小。目前我国在人工智能前沿理论创新方面总体上尚处于“跟跑”地位,大部分创新偏重于技术应用,在基础研究、原创成果、顶尖人才、技术生态、基础平台、标准规范等方面距离世界领先水平还存在明显差距。在全球人工智能人才700强中,中国虽然入选人数名列第二,但远远低于约占总量一半的美国。2018年市场研究顾问公司CompassIntelligence对全球100多家人工智能计算芯片企业进行了排名,我国没有一家企业进入前十。另外,我国人工智能开源社区和技术生态布局相对滞后,技术平台建设力度有待加强,国际影响力有待提高。我国参与制定人工智能国际标准的积极性和力度不够,国内标准制定和实施也较为滞后。我国对人工智能可能产生的社会影响还缺少深度分析,制定完善人工智能相关法律法规的进程需要加快。
前景看好。我国发展人工智能具有市场规模、应用场景、数据资源、人力资源、智能手机普及、资金投入、国家政策支持等多方面的综合优势,人工智能发展前景看好。全球顶尖管理咨询公司埃森哲于2017年发布的《人工智能:助力中国经济增长》报告显示,到2035年人工智能有望推动中国劳动生产率提高27%。我国发布的《新一代人工智能发展规划》提出,到2030年人工智能核心产业规模超过1万亿元,带动相关产业规模超过10万亿元。在我国未来的发展征程中,“智能红利”将有望弥补人口红利的不足。
当前是我国加强人工智能布局、收获人工智能红利、引领智能时代的重大历史机遇期,如何在人工智能蓬勃发展的浪潮中选择好中国路径、抢抓中国机遇、展现中国智慧等,需要深入思考。
树立理性务实的发展理念。任何事物的发展不可能一直处于高位,有高潮必有低谷,这是客观规律。实现机器在任意现实环境的自主智能和通用智能,仍然需要中长期理论和技术积累,并且人工智能对工业、交通、医疗等传统领域的渗透和融合是个长期过程,很难一蹴而就。因此,发展人工智能要充分考虑到人工智能技术的局限性,充分认识到人工智能重塑传统产业的长期性和艰巨性,理性分析人工智能发展需求,理性设定人工智能发展目标,理性选择人工智能发展路径,务实推进人工智能发展举措,只有这样才能确保人工智能健康可持续发展。
重视固本强基的原创研究。人工智能前沿基础理论是人工智能技术突破、行业革新、产业化推进的基石。面临发展的临界点,要想取得最终的话语权,必须在人工智能基础理论和前沿技术方面取得重大突破。我们要按照习近平总书记提出的支持科学家勇闯人工智能科技前沿“无人区”的要求,努力在人工智能发展方向和理论、方法、工具、系统等方面取得变革性、颠覆性突破,形成具有国际影响力的人工智能原创理论体系,为构建我国自主可控的人工智能技术创新生态提供领先跨越的理论支撑。
构建自主可控的创新生态。我国人工智能开源社区和技术创新生态布局相对滞后,技术平台建设力度有待加强。我们要以问题为导向,主攻关键核心技术,加快建立新一代人工智能关键共性技术体系,全面增强人工智能科技创新能力,确保人工智能关键核心技术牢牢掌握在自己手里。要着力防范人工智能时代“空心化”风险,系统布局并重点发展人工智能领域的“新核高基”:“新”指新型开放创新生态,如产学研融合等;“核”指核心关键技术与器件,如先进机器学习技术、鲁棒模式识别技术、低功耗智能计算芯片等;“高”指高端综合应用系统与平台,如机器学习软硬件平台、大型数据平台等;“基”指具有重大原创意义和技术带动性的基础理论与方法,如脑机接口、类脑智能等。同时,我们要重视人工智能技术标准的建设、产品性能与系统安全的测试。特别是我国在人工智能技术应用方面走在世界前列,在人工智能国际标准制定方面应当掌握话语权,并通过实施标准加速人工智能驱动经济社会转型升级的进程。
推动共担共享的全球治理。目前看,发达国家通过人工智能技术创新掌控了产业链上游资源,难以逾越的技术鸿沟和产业壁垒有可能进一步拉大发达国家和发展中国家的生产力发展水平差距。在发展中国家中,我国有望成为全球人工智能竞争中的领跑者,应布局构建开放共享、质优价廉、普惠全球的人工智能技术和应用平台,配合“一带一路”建设,让“智能红利”助推共建人类命运共同体。
(作者:中央人民政府驻香港特别行政区联络办公室副主任、中国科学院院士)