《计算机操作系统》复习题及复习资料.docx

上传人:b****6 文档编号:12922927 上传时间:2023-06-09 格式:DOCX 页数:28 大小:41.08KB
下载 相关 举报
《计算机操作系统》复习题及复习资料.docx_第1页
第1页 / 共28页
《计算机操作系统》复习题及复习资料.docx_第2页
第2页 / 共28页
《计算机操作系统》复习题及复习资料.docx_第3页
第3页 / 共28页
《计算机操作系统》复习题及复习资料.docx_第4页
第4页 / 共28页
《计算机操作系统》复习题及复习资料.docx_第5页
第5页 / 共28页
《计算机操作系统》复习题及复习资料.docx_第6页
第6页 / 共28页
《计算机操作系统》复习题及复习资料.docx_第7页
第7页 / 共28页
《计算机操作系统》复习题及复习资料.docx_第8页
第8页 / 共28页
《计算机操作系统》复习题及复习资料.docx_第9页
第9页 / 共28页
《计算机操作系统》复习题及复习资料.docx_第10页
第10页 / 共28页
《计算机操作系统》复习题及复习资料.docx_第11页
第11页 / 共28页
《计算机操作系统》复习题及复习资料.docx_第12页
第12页 / 共28页
《计算机操作系统》复习题及复习资料.docx_第13页
第13页 / 共28页
《计算机操作系统》复习题及复习资料.docx_第14页
第14页 / 共28页
《计算机操作系统》复习题及复习资料.docx_第15页
第15页 / 共28页
《计算机操作系统》复习题及复习资料.docx_第16页
第16页 / 共28页
《计算机操作系统》复习题及复习资料.docx_第17页
第17页 / 共28页
《计算机操作系统》复习题及复习资料.docx_第18页
第18页 / 共28页
《计算机操作系统》复习题及复习资料.docx_第19页
第19页 / 共28页
《计算机操作系统》复习题及复习资料.docx_第20页
第20页 / 共28页
亲,该文档总共28页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

《计算机操作系统》复习题及复习资料.docx

《《计算机操作系统》复习题及复习资料.docx》由会员分享,可在线阅读,更多相关《《计算机操作系统》复习题及复习资料.docx(28页珍藏版)》请在冰点文库上搜索。

《计算机操作系统》复习题及复习资料.docx

《计算机操作系统》复习题及复习资料

《计算机操作系统》复习题及答案

  第一章操作系统概述

  

  1.1什么是操作系统?

操作系统与普通的程序工作方式有何不同?

  至今没有统一的定义,但人们可以从不同的角度对操作系统加以理解:

  操作系统作为一台“虚拟机”;

  操作系统作为资源管理器。

操作系统是管理计算机系统资源的软件,它确保这些资源被高效合理地使用;

  操作系统作为用户与计算之间的接口。

这一接口为用户提供了两种使用操作系统的方式:

命令方式和系统调用方式.

  总之,操作系统实际上是一组计算机程序,与普通的程序工作方式相同。

主要区别在于程序的意图和运行模式不同。

操作系统控制CPU和其它系统资源的使用,并调度CPU运行普通程序的时间。

OS的程序在核心态(kernelmode)下运行,硬件保护它免受用户程序的破坏;而应用程序都在用户态(usermode)下运行,它们不受硬件保护。

  1.2 什么是作业?

  在批处理方式中,一个用户程序及其所需要的数据和操作命令的总和称为一个作业(Job).

  1.3 什么是通道?

什么是中断?

  所谓通道,实质上是一个功能单一、结构简单的I/O处理器,它独立于CPU并直接控制外设与内存进行数据传输。

  所谓中断,指在I/O正常结束或出现硬件故障时,相应硬件向CPU发出中断信号,CPU停止正在执行的操作,转去执行中断处理程序,中断处理完毕后CPU再回到原来的断点继续进行。

  1.4 什么是多道程序技术的主要思想?

   在内存中同时放入若干道用户作业,当一个作业需要等待I/O请求时,CPU转去执行另一道作业。

多道程序系统也称为多任务处理(multitasking)♣

  1.5 什么是分时系统(TimeSharing)?

  ♣在分时系统中使用了多道程序设计技术来处理多个交互的进程。

有时也称为多任务分时系统。

在分时系统中处理器的时间被多个用户分享。

在分时系统中多个用户通过终端(Terminal)同时访问系统。

  1.6 什么是并发?

什么是并行

   并发是指两个或两个以上事件在同一时间间隔内发生。

   并行是指两个或两个以上事件在同一时刻发生。

  1.7 操作系统内核的结构有哪三种构建方式?

各有何特点?

  操作系统内核的结构有三种构建方式:

整体式系统、层次式系统、客户/服务系统

   1.整体式系统(monolithicθkernel):

整体式的内核是指在一大块代码中实际上包含了所有操作系统功能,并作为一个单一进程运行,内核中的所有函数可以访问所有内部数据结构和例程。

对内核任何部分的修改都必须重新编译、链接整个内核、重新安装、重新启动。

如:

Linux内核

   2.层次式系统:

把系统看作一系列的层,每层完成操作系统功能的相关子集,每一层依赖下一层,而下一层完成更原始的功能.通过定义层,分解一个问题成更易于处理的子问题.θ

  3.客户/服务系统---微内核结构(Microkernel):

只给内核分配一些最基本的功能,包括地址空间、θ内部进程间通信(IPC)、基本的调度(Scheduling)。

其他的操作系统服务都是由运行在用户模式下的进程提供的,这些程序也称为服务程序。

微内核结构很适合于构建分布式系统,可能是现代操作系统发展的一种趋势。

如:

Windows2000

  1、操作系统的形成过程经历了哪几个主要阶段?

  答:

1、人工操作阶段,20世纪50年代前;2、单道批量处理,第二代计算机,可分早期和脱机批量处理;3、执行系统,20世纪50年代末到60年代初;4、多道程序系统。

  2、操作系统基本类型及主要特性:

  答:

1、多道批处理,多道、无序、调度;2、分时系统,多路、独立、交到;3、实时系统,多路、独立、及时、交互。

  3、操作系统基本特征含义及相互关系:

  答:

特征:

①并发两个以上事件在同一时间间隔发生;②共享,硬、软件资源可为多用户同时使用;③虚拟,把物理上的一个实体变成逻辑上的多个对应物;④异步性,内存中多进程按各自独立、不可预知的速度向前推进。

其中并发与共享是最基本的,相辅相成,互为依存条件。

  

  第二章用户接口

  2.1 什么是系统调用?

  所谓系统调用,指运行在用户态的应用程序请求操作系统为之服务的一种手段。

它由运行在核心态的操作系统的一段程序来完成特定功能,属于一种特殊的过程调用。

  4、作业是计算机按指定步骤,为用户一次上扣解题所完成作业的总和,作业管理是指一用户作业提交系统后,系统对其实施的所有管理和控制工作,包括作业控制和调度。

  5、作业由源程度、数据和作业处理的说明组成。

源程序和数据是用户上机运算的具体内容,后者是用户要求的计算机所做的具体步骤。

  6、系统为用户提供命令接口(分配与联机,是各种操作命令,组织作业的工作流程和控制作业运行),程序接口(是一组系统调用命令,是管理程序提供的服务界面,负责管理和控制正运行程序,帮它请求其他资源和服务),图形接口(为用户提供图形界面支好,有一定智能的用户环境)的接口,用声、色的键盘等驱动命令,控制作业运行。

  7、作业控制有作业控制卡、作业说明书、键盘命令、命令文件方式。

  第三章  进程管理

  3.1多道程序并发执行时的三个特征是什么?

  

(1)程序指令执行间断性。

  

(2)失去封闭性,资源共享。

  (3)运行结果不可再现性。

  3.2进程(Process)的定义和特征

  定义:

进程是一个正在执行的程序。

进程是程序在一个数据集合上的运行过程,它是系统进行资源分配和调度的一个独立单位。

  进程和程序相关联,但是是两个截然不同的概念。

进程有五个基本特征:

  •

(1)动态性。

有生命期。

  •

(2)并发性。

多个进程实体同存于内存,能并发执行。

  •(3)独立性。

具备申请系统资源的独立单位。

  •(4)异步性。

进程以各自独立、不可预知的速度向前推进。

  •(5)结构特性。

为描述进程的运动变化过程,每个进程都由程序段、数据段和一个进程控制块(PCB)三部分组成

  3.3图示进程的三种基本状态间的转换•

  就绪态(Ready)运行态(Running)阻塞态(Blocked)

  

  

  

  

  

  

  

  

  

  

  

  

  

  3.4 进程控制的主要任务是什么?

  进程控制的主要任务是对进程生命期控制(创建、撤销进程),以及实现对进程状态的转换(就绪态、运行态、阻塞态)。

包含三个内容:

  执行进程时,采取哪种执行模式(核心态或者用户态).♣

  进程怎样创建、怎样撤消.♣

  何时切换进程:

时钟中断时;发生I/O中断时;管理程序调用或系统调用.♣

  3.5 什么是原语,举例说明?

  如:

创建进程原语:

create(n),撤销进程原语:

destroy(n),阻塞进程原语:

block(),唤醒进程原语:

wakeup(n).♣所谓原语,是操作系统内核中,由若干条指令构成、用于完成一个特定的功能的一个过程,该过程在执行时是不可中断的。

  3.6 什么是临界资源?

临界区?

  操作系统中将一次仅允许一个进程访问的资源称为临界资源。

对共享资源访问的程序片段称为临界区(Criticalsection)。

  3.7 什么是进程同步(ProcessSynchronization)?

  所谓进程同步是指多个进程合作完成任务,它们在执行速度上相互协调,即一个进程的执行依赖于另一个进程的消息,当一个进程没有得到另一进程的消息时应等待,直到消息到达被唤醒为止。

进程的互斥实际上是进程同步的一种特例。

不同的是,进程同步的并发进程在使用共享资源时,进程间存在一种必然的依赖关系。

进程互斥有时并不能解决进程同步问题。

  3.8 怎样利用信号量机制编程解决生产者-消费者问题?

  structsemaphores,empty,full=1,n,0;messagebuffer[n];intin,out=0,0;

  Cobegin/*用s对临界区实行互斥*/

  voidproduce_i(void)voidconsume_j(void)

  {messagex;{messagey;

  while(TRUE){while(TRUE){

  produceanewmessageintox;P(full);/*递减满槽数*/

  P(empty);/*递减空槽数*/P(s);/*进入临界区*/

  P(s);/*进入临界区*/y=buffer[out];out=(out+1)modn;

  buffer[in]=x;in=(in+1)modn;V(s);/*离开临界区*/

  V(s);/*离开临界区*/V(empty);/*递增空槽数*/

  V(full);/*递增满槽数*/consumemessagey;

  }}

  }}Coend

  

  3.9 怎样利用信号量机制编程解决哲学家进餐问题?

  structsemaphorefork[5]={1,1,1,1,1};

  structsemaphorecount=4;

  Cobegin

  voidphilosopher(inti)

  {while(TRUE){

  think();/*哲学家思考*/

  P(count);/*最多同允许4位哲学家就餐*/

  P(fork[i]);/*哲学家拿起左边的叉子*/

  P(fork[(i+1)mod5]);/*哲学家拿起右边的叉子*/

  eat();/*哲学家就餐*/

  V(fork[(i+1)mod5]);/*哲学家放下右边叉子*/

  V(fork[i]);/*哲学家放下左边的叉子*/

  V(count);

  }

  }Coend

  

  3.10 进程间通信的三种常用类型

  1.共享存储器系统♣

  2.消息传递系统♣

  3.管道通信系统♣

  3.11 线程的定义

  线程是进程中可独立执行的子任务,一个进程可以有一个或多个线程。

现代操作系统都引入了线程的概念。

  8、程序顺序执行特征为顺序性、封闭性、可再现性,并发执行为间断性、失去封闭性和不可再现性。

  9、Bernstein条件:

满足此条件,相关程序可并发执行,否则按顺序执行,1966年Bernstein首次提出。

  如R(P1)nw(P2)∪R(P2)∩W(P1)∪W(P1)∩W(P2)=

  即P1的读集与P2写集的交集,P2读与P2写的交,P1写与P2写的交,均为空集。

  10、进程最少设置3个状态,执行、就绪和阻塞态。

因:

进程实质是程序的一次执行过程,最多一个执行程序占用CPV(就绪),OS为进程服务期间不能继续执行,放弃CPV处于阻塞等待态。

  11、多进程并发执行时存在两种制约关系。

间接制约是多个进程间无逻辑关系,仅由于同处系统共享资源而有关。

例:

分时系统两用户进程编译PASCAL源程序,分时占用处理扣编译各自的源程序,存在间接制约关系。

直接制约是多个协作进程间存在的逻辑制约关系,即一进程的执行依赖另一进程的消息,无消息应等待,有消息被唤醒。

如共享一缓冲器的读进程和打印进程,须同步才能完成共同任务。

  12、临界资源:

系统中一次仅允许一个进程访问的资源。

临界区指系统每个进程中访问临界资源的那段代码段。

  13、具体分析读者——写者问题的同步算法,指出哪些语用控制读写互斥,写写互斥。

  答:

读一写问题指保证一个写者必须与其他写进程或读进程互斥地访问一个共享对象的同步问题。

写者进程P(Wrt)操作能实现写写,读写互斥,wrt=1,写者调用P(wrt)后信息量值为0,进入写操作,readcount=0,读者进程阻塞等待,实现读写互斥。

在读者进程中的P(wrt)操作仅能实现读写互斥。

  第四章死锁及其对策

  4.1死锁的定义?

死锁(Deadlock)是指一组进程由于竞争系统资源或互相通信而导致永久阻塞的状况。

至今没有完美有效的解决方案。

  4.2 产生死锁的四个必要条件?

  1)互斥(Mutualexclusion)♣在一段时间内某资源只能由一个进程占有。

  2)占有且等待(Holdandwait)♣已占有了一些资源的进程可能还要等待申请其他的资源才能继续工作。

  3)非剥夺(Nopreemption)♣已分配给某进程的资源不可被其他进程剥夺,除非该进程自己释放该资源。

  4)循环等待(Circularwait)存在一个封闭的进程-资源循环链。

  4.3 什么是鸵鸟算法?

  解决死锁最简单的方法是像鸵鸟一样对死锁视而不见。

  4.4 怎样考虑死锁预防?

  事前预防手段:

如果能保证死锁的四个条件中至少一个不成立,则死锁不会发生。

  打破互斥条件:

能作到不互斥就最好不互斥.如采用Spooling技术.

   打破占有且等待条件:

初始时就申请所有的资源.♣

   打破非剥夺条件:

将资源剥夺.♣

   打破环路等待条件:

对资源进行统一编号.♣

  4.5怎样考虑死锁避免?

  死锁避免是通过对每一次资源申请,采取边申请、边进行分析,来判断本次申请是否是一次安全的分配,即是否达到系统安全状态。

是否存在一种能作出正确选择的算法,从而避免死锁呢?

回答是肯定的,但条件是:

必须事先获得进程将来的资源请求信息.

  寻找死锁避免算法的思路是:

如果启动一个新进程而引发的资源请求可能导致死锁,则暂不启动这个进程。

如果一个进程提出新的资源请求会导致死锁,则暂不允许这个进程提出新的资源请求。

  4.6 怎样考虑死锁的检测和恢复?

  死锁检测算法(回溯):

每次资源被申请或释放时,检测系统资源图是否存在环路(此时死锁可能还没有发生),如果存在环路,则逐一在环路中选择一进程撤消,直至死锁消除.

  缺点:

效率太低,导致系统总体性能太为下降。

  死锁恢复策略(事后恢复):

依次流产所有的死锁进程,直至死锁解除;依次剥夺资源直到死锁解除;预先定义检测点,备份每一个死锁的进程,然后重启这些进程。

  缺点:

原来的死锁可能再次出现

  14、死锁系统并非所有的资源都分配完毕。

  

  第五章处理器调度管理

  5.1处理器调度(ProcessorScheduling)的类型是什么?

  1.Long-TermScheduling长程调度(作业调度):

用于决定哪些作业有执行资格。

  2.Medium-TermScheduling中程调度(中级调度):

用于决定哪些有执行资格的暂时被挂起(在外存)的进程可以进入主存中。

实质是将进程在内存和外存之间进行交换。

  3.Short-TermScheduling短程调度(又称为进程调度或CPU调度):

用于决定哪个在主存中的进程占用处理器。

  5.2CPU的两类调度模式是什么?

  1.CPU非剥夺调度模式,简称非剥夺调度模式:

进程一直运行,直到结束,除非自己的I/O操作而中止或阻塞。

不适合多用户、多任务系统。

易于实现。

  2.CPU可剥夺调度模式,简称可剥夺调度模式:

当前正在运行的进程可以被操作系统中断、并转移到就绪态。

所有进程提供较好的服务,因为任何进程都不能独占处理器很长的时间。

较难实现,较大开销。

适合多用户、多任务系统.

  5.3 选择调度算法时应考虑什么因素?

  响应时间:

使交互的用户的响应时间尽可能短。

  吞吐率:

单位时间内处理的作业数最多。

  处理器效率:

使CPU百分之百忙碌。

  5.4 什么是时间片轮转算法(RoundRobin)?

  使用基于时针的剥夺调度模式。

允许每个进程周期性地使用处理器一个时间片长(通常为10-100milliseconds)。

以一定的间隔周期性地产生一个时钟中断。

当中断发生时,当前正在运行的进程置于就绪队列中。

下一就绪进程被选中变为运行态。

这种技术也称为时间片轮转技术。

  5,5 什么是多级反馈算法?

  思想:

处罚运行时间较长的作业.

  方法:

建立多级就绪调度队列,每个就绪队列对应一个调度优先级别,第1级队列优先级最高,第2级队列优先级次之,依此类推。

   各级就绪队列具有不同大小的时间片,优先级最高的第1级队列中进程的时间片最短,其余队列中进程的时间片依次增长。

   一个新进程首先放到第1级就绪队列末尾。

同级的进程按FCFS分配处理器♣,若进程完成全部工作则撤离,否则加入下一级就绪队到末尾。

   按队列优先级从高到低进行进程调度。

  15、批处理中,作业从提交互退出有4种状态。

提交是程序员把存储有作业实体信息的介质交给机房或用户通过终端键盘向计算机输入其作业实体信息时所处状态。

后备是作业实体信息已被输到输入井,建立JCB,等待作业调度态。

运行是作业被调度到装入的存、创建相应进程,投入运行态。

完成是作业运行结束或因错误而终止时,释放所占全部资源,准备离开态。

提交→后备操作员启动作业注册过程,涉及脱机输入程序或联机Spooling的输入进程,及作业注册程序;后备→运行涉及作业调度程序、内存管理程序和设备管理的功能程序;运行→完成在进程调度、进程控制原语及OS资源管理程序帮助下结束或作业终止程序处理出错工作。

  16、作业调度功能:

选择作业,分配资源,建立作业进程,建有关表格作业善后处理,用于批处理系统。

进程调度按某调度算法从就绪态进程选一个互处理机上运行,在OS中必备。

中级调度挂起和解除挂起进程,将程序数据在内外存对换,矩短期调整系统负荷。

配置于有挂起功能的系统。

  17、分时系统不必设作业调度,因用户键盘输入的命令数据,直接入内存,无需配置。

  18、抢占调度三原则:

时间片、优先级、短进程优先原则。

  19、调度队列模型有三:

进程型,用于分时系统,作业和进程型,在纯多道批处理系统,作业进程和中级型,用于多道批处理和分时处理系统。

  20、作业周转时间指从用户提交作业的全部实体信息进入输入片到作业完成时刻的间隔。

作业平均周转时间T=(n为被测作业流中的作业数,Ti是该作业流中第i个作业的周转时间);作业平均带权周转时间W=(Tri指作业i的实际运行时间)

  21、响应时间是用户从提交一个请求开始,到屏幕上显示结果的一段时间间隔,分时系统响应时间3—5S,实时控制系统秒级、毫秒级乃至低于100US。

  22、时间片轮转调度算法,选择时间片因素:

系统对响应时间的要求,就绪队列中进程的数目,系统的处理能力。

  23、短作业优先是对长作业不公平,最短作业优先调度不能用于分时系统。

  第六章存储器管理

  6.1  什么是计算机存储器层次结构?

  若干千字节(KB)非常快速、昂贵、易变的高速缓存(cache)。

  若干兆字节(MB)的中等速度、中等价格、易变的主存储器(RAM),简称为内存或主存。

  若干千兆字节(GB)的低速、价廉、不易变的磁盘组成,简称为外存或辅存。

  6.2 什么是内部碎片?

外部碎片?

  在固定式分区存储器管理中,这种由于被装入的数据块小于分区从而使得分区内部有空间浪费的现象称作内部碎片。

  在可变分区存储器管理中,系统运作一段时间后,导致小分区越来越多,而且越来越小的现象。

这种方法最终导致在主存中出现许多空洞,这种现象称作外部碎片。

  6.3 什么叫虚拟存储器?

  虚拟存储器(简称为虚存)基于“分页”技术或结合了“分页和分段”技术,提供给用户(比实际内存容量要大)足够大地址空间,是现代操作系统中普通采用的存储器管理技术。

  6.4 实现虚拟存储器的基本原理是什么?

  虚存对应用程序透明,使每个进程在处理时好像有无限的主存可用。

为实现这一点,操作系统为每个进程在磁盘上创建一个虚拟地址空间,在需要时,部分虚存被取进主存中。

按照这种方法,许多进程可以共享相对较小的主存。

一般有专门的硬件机制实现虚拟地址与物理地址之间的地址转换。

  6.5 什么是请求分页存储管理?

  所谓请求式分页管理,是指在进程开始执行前,不要求把进程一次性全部装入主存,而只把当前需要的一部分页面装入主存,其它部分在进程执行过程中需要时,再从辅存(硬盘)上调入主存。

  优点:

•一个进程的大小可以大过主存的全部。

  •在主存中可以维持更多的进程,对每一个进程仅仅装入了它的部分页。

  6.6 请求分页存储管理当执行一个程序时其过程是什么?

   1.首先,操作系统仅取程序开始处的几个页放到主存中。

   2.缺页中断处理阶段:

如果处理器处理一个不在主存中的逻辑地址(称为缺页),则产生一个中断。

操作系统将该进程的运行态置为阻塞态。

OS发出一个磁盘I/ORead请求;当发生磁盘I/O时,OS调度另一进程运行;当OS收到磁盘I/O完成的消息时,将刚才由于缺页而阻塞的进程重新放入就绪队列.

  3.操作系统根据提取页面策略(FetchPolicy),把包含引发缺页的逻辑地址的页取进主存。

  6.7 什么是局部性原理?

  在一个进程中,程序和数据的引用趋向于簇聚性。

(表现为空间局部性,即指令和数据的引用通常不会偏离太远);一个短的时间周期内,访问运行仅仅涉及到进程的少数几个块。

(表现为时间局部性,即刚刚使用过的指令和数据马上又会被使用).

  6.8什么是抖动(Thrashing)?

一个进程的页面刚刚交换到硬盘马上又需要取回来使用的现象称为抖动。

抖动情况下,处理器大部分时间花费在交换块,而不是执行指令。

页替换算法要尽可能防止抖动发生。

  6.9 分页存储管理的优缺点是什么?

  优点:

•不要求进程的程序段和数据段在主存中连续存放,从而有效地消除了外部碎片问题。

  •有利于多道程序运行和大程序运行。

  •分页对程序员是透明的。

  缺点:

•要求有相应硬件支持完成地址变换。

  •可能造成抖动。

  6.10 段式存储管理的基本思想是什么?

  把程序按过程(函数)关系分成段,每段有自己的段名,一个用户进程所包含的段对应于一个二维的线性虚拟空间,也就是一个二维虚拟存储器。

段式管理以段为单位为用户进程分配主存,然后通过地址映射机构把段式虚拟地址转换成实际的主存物理地址。

  6.11 段式存储管理的优缺点是什么?

  优点:

•便于模块化处理,便于共享分段,便于保护。

  •分段对程序员是可见的。

  •分段具有处理不断增长数据结构的能力

  缺点:

•为满足分段的动态增长和减少外部碎片,要采用拼接手段。

  6.12 段页式存储管理的基本思想是什么?

  用分段方法来分配和管理虚拟存储器。

即按程序的自然逻辑关系把进程的地址空间分成若干段,每段有各自的段名;用分页方法来分配和管理主存,即把主存分成大小相等的小块(帧);进程的每一段又采用分页方法,按帧的大小把每段分成许多页。

每段的分页从0开始连续编号。

则逻辑地址结构为(s,p,d),

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2