文档介绍:操作系统抖动 15 什么是抖动? 产生抖动的原因是什么 a. 抖动(Thrashing) 就是指当内存中已无空闲空间而又发生缺页中断时,需要从内存中调出一页程序或--- 数据送磁盘的对换区中,如果算法不适当,刚被换出的页很快被访问,需重新调入,因此需再选一页--- 调出,而此时被换出的页很快又要被访问,因而又需将它调入, 如此频繁更换页面,以致花费大量的--- 时间,我们称这种现象为" 抖动"; b. 产生抖动的原因是由于 CPU 的利用率和多道程序度的对立统一矛盾关系引起的,为了提高 CPU 利用率, --- 可提高多道程序度,但单纯提高多道程序度又会造成缺页率的急剧上升,导致 CPU 的利用率下降,而--- 系统的调度程序又会为了提高 CPU 利用率而继续提高多道程序度,形成恶性循环,我们称这时的进程--- 是处于" 抖动" 状态. 17 .什么是虚拟设备?其实现所依赖的关键技术有哪些? 通过虚拟技术可将一***占设备变换成若干台逻辑设备, 供若干个用户( 进程) 同时使用, 通常把这种经过虚拟技术处理后的设备称为虚拟设备。其实现所依赖的关键技术是 SPOOLING 技术。 7、缓冲的引入原因操作系统引入缓冲机制的主要原因可归结为以下几点:(1) 缓和 CPU 与 I/O 设备间速度不匹配的矛盾;( 2 )减少对 CPU 的中断频率,放宽对中断响应时间的限制;(3) 提高 CPU 与 I/O 设备之间的并行性。 SPOLLing 系统的特点:提高了 I/O 的速度;将独占设备改造为共享设备;实现了虚拟设备功能。 6. 在生产者-消费者问题中,如果缺少了 signal(full) 或 signal(empty), 对执行结果会有何影响? 生产者-消费者问题可描述如下: var mutex,empty,full: semaphore:=1,n,0; buffer: array[0,...,n-1] of item; in,out: integer:=0,0; begin parbegin producer: begin repeat .. produce an item in nextp; .. wait(empty); wait(mutex); buffer(in):=nextp; in:=(in+1) mod n; signal(mutex); /* ************** */ signal(full); /* ************** */ until false; end consumer: begin repeat wait(full); wait(mutex); nextc:=buffer(out); out:=(out+1) mod n; signal(mutex); /* ************** */ signal(empty); /* ************** */ consume the item in nextc; until false; end parend end 可见, 生产者可以不断地往缓冲池送消息, 如果缓冲池满, 就会覆盖原有数据, wait(full) 操作将消费进程直接送入进程链表进行等待,无法访问缓冲池, 造成无限等待. 7. 在生产者-消费者问题中,如果将两个