nachos系统实验报告材料:实验三
纳氏试剂实验报告

一、实验目的1. 了解纳氏试剂的制备方法。
2. 掌握纳氏试剂的性质和应用。
3. 学习利用纳氏试剂检测氨氮的方法。
二、实验原理纳氏试剂,又称纳氏盐,是一种用于检测氨氮的化学试剂。
当氨氮与纳氏试剂反应时,会生成淡黄色的沉淀,沉淀的多少与氨氮的浓度成正比。
因此,通过测定沉淀的多少,可以推算出溶液中氨氮的浓度。
三、实验仪器与试剂1. 仪器:纳氏试剂瓶、烧杯、移液管、滴定管、试管、酒精灯、加热器、电子天平、磁力搅拌器等。
2. 试剂:纳氏试剂、浓盐酸、氨水、氢氧化钠、硫酸、蒸馏水等。
四、实验步骤1. 制备纳氏试剂(1)取一定量的氢氧化钠溶解于蒸馏水中,配制成一定浓度的氢氧化钠溶液。
(2)将配好的氢氧化钠溶液倒入烧杯中,加入适量的浓盐酸,搅拌至溶液澄清。
(3)将澄清的溶液倒入纳氏试剂瓶中,密封保存。
2. 检测氨氮(1)取一定量的氨水,加入适量的蒸馏水,配制成一定浓度的氨水溶液。
(2)取一定量的氨水溶液于试管中,加入适量的纳氏试剂,充分振荡。
(3)观察溶液颜色的变化,记录下颜色变化的时间。
(4)根据颜色变化的时间,计算出氨氮的浓度。
五、实验结果与分析1. 纳氏试剂制备过程中,溶液澄清且无沉淀生成,说明纳氏试剂制备成功。
2. 在检测氨氮的过程中,随着氨氮浓度的增加,溶液颜色逐渐变深,说明纳氏试剂可以用于检测氨氮。
3. 通过实验,得出以下数据:| 氨氮浓度(mg/L) | 溶液颜色变化时间(min) || :----------------: | :----------------------: || 0 | 0.5 || 5 | 1.0 || 10 | 1.5 || 15 | 2.0 || 20 | 2.5 |根据实验数据,可以绘制出氨氮浓度与溶液颜色变化时间的关系曲线。
六、实验总结1. 本实验成功制备了纳氏试剂,并掌握了纳氏试剂的性质和应用。
2. 通过实验,验证了纳氏试剂可以用于检测氨氮,为氨氮的测定提供了新的方法。
nachos作法

Nachos作法介绍Nachos(Not Another Completely Heuristic Operating System)是一个教学用的操作系统内核,由加州大学伯克利分校开发。
它是一个简化的操作系统,旨在帮助学生理解操作系统的基本原理和设计。
Nachos提供了一个模拟的计算机环境,可以在上面运行操作系统。
它提供了一些基本的系统调用,如创建进程、文件读写等,并模拟了一些硬件设备,如磁盘、内存等。
通过使用Nachos,学生可以学习操作系统的各个方面,包括进程管理、内存管理、文件系统等。
Nachos的特点Nachos有以下几个特点:1.模拟环境:Nachos提供了一个模拟的计算机环境,可以在上面运行操作系统。
这使得学生可以在不依赖真实硬件的情况下学习操作系统的原理和设计。
2.简化的操作系统:Nachos是一个简化的操作系统,它只实现了一些基本的功能,如进程管理、内存管理、文件系统等。
这使得学生可以更容易地理解和修改Nachos的代码。
3.可扩展性:Nachos的设计非常模块化,各个组件之间的耦合度较低。
这使得学生可以方便地扩展和修改Nachos的功能,以满足不同的教学需求。
4.开放源代码:Nachos是开放源代码的,任何人都可以访问和修改Nachos的代码。
这使得学生可以更深入地理解操作系统的实现细节,并参与到Nachos的开发中。
Nachos的使用方法要使用Nachos,你需要按照以下步骤进行操作:1.下载Nachos:首先,你需要从Nachos的官方网站上下载Nachos的源代码。
Nachos的官方网站提供了不同版本的Nachos,你可以根据自己的需求选择合适的版本。
2.编译Nachos:下载完Nachos的源代码后,你需要将其编译成可执行文件。
Nachos的源代码附带了一个Makefile,你只需要在终端中运行make命令即可编译Nachos。
3.运行Nachos:编译完成后,你可以在终端中运行./nachos命令来启动Nachos。
金属纳的实验报告

一、实验目的1. 了解金属钠的性质,掌握金属钠的物理和化学性质。
2. 通过实验,观察金属钠与水、酸、盐溶液等反应的现象,验证金属钠的化学性质。
3. 掌握实验操作技能,提高实验分析能力。
二、实验原理金属钠是一种活泼的金属,容易与水、酸、盐溶液等反应。
金属钠与水反应生成氢气和氢氧化钠,反应方程式为:2Na + 2H2O = 2NaOH + H2↑。
金属钠与酸反应生成氢气和相应的钠盐,反应方程式为:2Na + 2HCl = 2NaCl + H2↑。
金属钠与盐溶液反应生成氢气和相应的钠盐,反应方程式为:2Na + 2NaCl = 2NaOH + Cl2↑。
三、实验用品1. 金属钠2. 蒸馏水3. 盐酸4. 硫酸铜溶液5. 氢氧化钠溶液6. 试管7. 试管夹8. 烧杯9. 玻璃棒10. 铁夹11. 滴管12. 铅笔四、实验步骤1. 将金属钠切成薄片,用滤纸吸去表面的煤油。
2. 在试管中加入少量蒸馏水,将金属钠放入试管中,观察现象。
3. 待金属钠反应结束后,用玻璃棒搅拌溶液,观察溶液的颜色变化。
4. 将试管中的溶液倒入烧杯中,用滴管加入少量盐酸,观察现象。
5. 将试管中的溶液倒入烧杯中,用滴管加入少量硫酸铜溶液,观察现象。
6. 将试管中的溶液倒入烧杯中,用滴管加入少量氢氧化钠溶液,观察现象。
五、实验现象及结果1. 金属钠与水反应:金属钠在水中迅速反应,产生气泡,溶液温度升高,溶液呈碱性。
2. 溶液颜色变化:金属钠与水反应生成的氢氧化钠溶液呈碱性,用玻璃棒搅拌后,溶液颜色变深。
3. 与盐酸反应:加入少量盐酸后,溶液中出现气泡,溶液温度升高,产生白色沉淀。
4. 与硫酸铜溶液反应:加入少量硫酸铜溶液后,溶液中出现蓝色沉淀。
5. 与氢氧化钠溶液反应:加入少量氢氧化钠溶液后,溶液中出现白色沉淀。
六、实验分析1. 金属钠与水反应:金属钠与水反应生成氢气和氢氧化钠,反应过程中放出大量热量,溶液呈碱性。
2. 与盐酸反应:金属钠与盐酸反应生成氢气和氯化钠,反应过程中放出热量,溶液中出现白色沉淀。
纳的性质实验报告(3篇)

第1篇一、实验目的1. 了解钠的物理性质和化学性质。
2. 通过实验观察钠与水、酸、碱的反应,探究钠的化学活性。
3. 熟悉实验室安全操作规范。
二、实验原理钠是一种银白色的金属,具有很高的化学活性。
钠在常温下与水、酸、碱等物质反应,生成相应的盐和氢气。
本实验通过观察钠与水、酸、碱的反应,了解钠的化学性质。
三、实验材料与仪器1. 实验材料:钠、水、盐酸、氢氧化钠、乙醇、氯化钠、蒸馏水、试管、酒精灯、镊子、滴管、试管夹、烧杯、玻璃棒、石棉网等。
2. 实验仪器:分析天平、电子天平、酒精灯、试管、试管夹、烧杯、玻璃棒、石棉网等。
四、实验步骤1. 钠的物理性质观察(1)取一小块钠,用镊子夹住,观察其外观、颜色、硬度等物理性质。
(2)将钠投入乙醇中,观察其浮沉情况。
2. 钠与水的反应(1)取一小块钠,用镊子夹住,迅速投入装有少量水的试管中。
(2)观察反应现象,记录气泡产生、火焰、颜色变化等。
3. 钠与盐酸的反应(1)取一小块钠,用镊子夹住,迅速投入装有少量盐酸的试管中。
(2)观察反应现象,记录气泡产生、火焰、颜色变化等。
4. 钠与氢氧化钠的反应(1)取一小块钠,用镊子夹住,迅速投入装有少量氢氧化钠的试管中。
(2)观察反应现象,记录气泡产生、火焰、颜色变化等。
五、实验结果与分析1. 钠的物理性质钠为银白色金属,质地软,密度小,熔点低。
钠在乙醇中浮沉,说明其密度小于乙醇。
2. 钠与水的反应钠与水反应剧烈,产生大量气泡,火焰颜色为黄色。
反应方程式为:2Na + 2H2O = 2NaOH + H2↑。
3. 钠与盐酸的反应钠与盐酸反应剧烈,产生大量气泡,火焰颜色为黄色。
反应方程式为:2Na + 2HCl = 2NaCl + H2↑。
4. 钠与氢氧化钠的反应钠与氢氧化钠反应,产生大量气泡,火焰颜色为黄色。
反应方程式为:2Na +2NaOH = 2Na2O + H2↑。
六、实验结论1. 钠是一种银白色金属,质地软,密度小,熔点低。
操作系统实验报告1

姓名: 刘桂良
硬件环境:Ubuntu12.8.1-mips.tar.gz 和 nachos-3.4-2011.tar.gz 拷贝到 主文件夹 中,解压 nachos。 $ tar xzvf nachos-3.4-2011.tar.gz 输入 su,输入密码,进入 root 用户下, cp gcc-2.8.1-mips.tar.gz /usr/local $tar xzvf gcc-2.8.1-mips.tar.gz 在普通用户下,转到 threads 目录下, cd /nachos3.4/code/threads 之后输入 make 之后,测试 nachos 系统 测试成功结果如下:
软件学院实验报告
实验题目:Installation of Nachos System 日期:2013-11-1 班级: 11 级 3 班 Email:61536799@ 实验目的: 安装 Nachos 和 Mips gcc 交叉编译 了解基本 Nachos 系统组织结构 学号: 201100300144
结论分析与体会: 通过这次实验,熟悉了 C++语言和系统开发调试,理解 Nachos 系统的 Makefile, 掌握重构 Nachos 系统的方法。
操作系统nachos课程设计实验报告

一题目project1:实现nachos操作系统的project1中的join()方法,condition2 类,Alarm类,Communicator类,PriorityScheduler类和Boat类project2:实现nachos操作系统的project2中的creat open read write close unlink 文件系统调用,修改UserProcess.readVirtualMemory和UserProcess.writeVirtualMemory使操作系统能够运行多用户程序,实现exec join exit系统调用,实现LotteryScheduler类二实验目的熟悉nachos操作系统,深入理解操作系统内核了解用户程序的加载过程以及多用户进程的内存分配机制三实验要求完成nachos,提交设计文档和你的代码四实验说明,程序代码及测试结果Project1:1 join()要求实现join()方法,注意,其他线程没必要调用join函数,但是如果它被调用的话,也只能被调用一次。
join()方法第二次调用的结果是不被定义的,即使第二次调用的线程和第一次调用的线程是不同的。
无论有没有被join,一个进程都能够正常结束(a)设计思想当线程B执行A.join()时,将B放入A的等待队列,直到A完成时,唤醒在等待队列中的所有线程,因此需要实现join()方法和修改finish方法(b)源代码public void join(){Lib.debug(dbgThread, "Joining to thread:" + toString());Lib.assertTrue(this!=currentThread);Lib.assertTrue(join_counter == 0);join_counter++;boolean status=Machine.interrupt().disable();if (this.status != statusFinished) {waitQueue.waitForAccess(KThread.currentThread());currentThread.sleep();}Machine.interrupt().restore(s tatus);}public static void finish(){Lib.debug(dbgThread, "Finishing thread:" +currentThread.toString());Machine.interrupt().disable();Machine.autoGrader().finishingCurrentThread();Lib.assertTrue(toBeDestroyed == null);toBeDestroyed= currentThread;currentThread.status = statusFinished;KThread thread= currentThread().waitQueue.nextThread();if (thread!= null){thread.ready();}sleep();}(c)程序截图线程1每次执行打出执行的次数,每次执行过后放弃cpu,线程2 打出successful,线程2 执行thread1.join().通过截图可以看出代码正确2 Condition2通过使用开关中断提供原子性来直接实现条件变量,我们利用信号量提供了一个简单的实现方式,你的工作就是不直接使用信号量提供相同的实现(你或许使用锁,即使它们也间接的使用了信号量)。
nachos实验报告

nachos实验报告nachos实验报告一、引言操作系统是计算机系统中的核心软件之一,它负责管理计算机的硬件资源和提供各种服务。
为了更好地理解操作系统的原理和设计,我们在课程中进行了一系列的实验,其中之一就是使用nachos操作系统进行实验。
本报告将对我们在nachos实验中的学习和体验进行总结和分享。
二、nachos简介nachos是一个教学用的操作系统,它是为了帮助学生更好地理解操作系统的原理和设计而开发的。
nachos的设计简单、模块化,易于理解和扩展。
通过使用nachos,我们可以深入了解操作系统的各个组成部分,如进程管理、内存管理、文件系统等,并通过实验来加深对这些概念的理解。
三、实验一:进程管理在第一个实验中,我们学习了进程管理的基本原理和实现。
通过使用nachos,我们可以创建和管理多个进程,并学习它们之间的通信和同步机制。
我们了解了进程的状态转换、进程调度算法以及进程间通信的方法,如共享内存和消息传递等。
通过实验,我们更深入地理解了进程管理的重要性和挑战。
四、实验二:内存管理在第二个实验中,我们学习了内存管理的原理和实现。
nachos提供了虚拟内存的支持,我们可以通过设置页表和实现页面置换算法来管理内存。
我们了解了内存分页和分段的概念,以及常见的页面置换算法,如FIFO、LRU等。
通过实验,我们深入了解了内存管理的工作原理和性能优化方法。
五、实验三:文件系统在第三个实验中,我们学习了文件系统的原理和实现。
nachos提供了一个简单的文件系统接口,我们可以通过创建、读取和写入文件来学习文件系统的操作。
我们了解了文件系统的组织结构,如目录、文件和索引节点等,并学习了文件系统的一致性和恢复机制。
通过实验,我们更好地理解了文件系统的工作原理和性能优化方法。
六、实验四:网络通信在第四个实验中,我们学习了网络通信的原理和实现。
nachos提供了一个简单的网络模拟器,我们可以创建和管理多个网络节点,并通过网络进行通信。
利用Nachos操作系统研究和实验虚拟内存

利用Nachos操作系统研究和实验虚拟内存摘要:本文分析和论述了如何利用教学指导型操作系统Nachos研究和实验虚拟内存。
通过详细的实例设计与分析,阐述了在Nachos操作系统中如何构建虚拟内存,如何实现虚拟内存的各种调度算法;如何实验和分析虚拟内存的工作过程和性能。
对虚拟内存的教学和科研具有一定的指导辅助作用。
关键词:操作系统;虚拟内存;实践教学;Nachos1引言虚拟内存的实现和运行同时涉及到内存管理、调度与中断、文件系统等内核诸多方面的问题。
因此在操作系统的教学和实验中虚拟内存的讲解和实验是较为棘手和困难的一个问题。
为了能够讲清虚拟内存的基本构造和工作原理或想独立实践一下虚拟内存的构造和各种虚拟内存策略,我们可以利用一下教学指导型操作系统Nachos。
由于Nachos提供了一个自由构造虚拟内存的框架,可让我们在其上开发和构造自主设计的虚拟内存,辅助我们更好的开展好虚拟内存的教学和研究。
2内存管理和虚拟内存构造机制Nachos在它的页表机制中仅提供了可让用户构造虚拟内存的基本机制。
页表结构是由TranslationEntry 类定义的,该定义在文件machine/translation.h中: class TranslationEntry {public:int virtualPage; //逻辑页号int physicalPage; //物理页号bool valid; //有效位bool readOnly; //只读位bool use; //引用位bool dirty; //修改位};为了实现虚拟内存的页置换,我们需要在以上类中增加一个该页在文件中的块偏量:int inFilePage。
原始的Nachos内存无法实现多道程序同时驻留内存,为此可以为其增设了分段式内存管理,从而实现了多道程序同时驻留内存并发执行。
增设的段式内存管理机制的类结构为:class SegmentEntry { //段表public:int segID; //段号int segBase; //段基址int segPages; //段页数} ;class MemManager{ //段管理器public:MemManager();// 段构造~MemManager(); // 段析构SegmentEntry * Allocate(int segPages,int pid);//分配一个段void Deallocate(int Pid); //回收一个段private:List *usedList; //已用内存页表链List *idleList; //空闲内存页表链};用户的可执行文件按段装入到模拟机的物理内存中并发执行的过程(无虚拟内存方案)可参见文献[1]。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三一.实验目的学会运用实验二中实现的工具来实现一些多线程并发问题。
二.实验容1)EventBarrier:EventBarrier与某个事件相联系。
事件有signaled和unsignale两种状态。
线程想通过事件时必须等待事件被另外线程 signal。
只有当所有进入事件的线程完成动作时发出signal的线程才将事件状态设为unsignaled2)AlarmClock:AlarmClock让某个线程停止指定时间单位。
当事件到达时重新将线程放入就绪队列。
3)Bridge:Bridge是一个单行桥且最大允许3量车在桥上行驶。
实现应解决注意公平性与饥饿问题。
4)Elevator:实现Elevator类,并解决3个并发问题a)一个电梯,电梯容量无限。
b)一个电梯,电梯容量有限。
c)多个电梯。
三.实验结果1.E ventBarrier类定义:主要函数1)Wait(): 线程挂起待事件被 signal ,当事件已经处于signaled 状态时直接return2)Signal(): 线程通知所有等待事件的线程。
并且挂起等待 所有调用Wait()的线程 结 束操作并调用Complete()通知此线程(包括在挂起过程中调用Wait()的线程)。
3)Complete():当所有Wait()线程都完成操作调用Complete 后通知Signal 线程,此线程已经完成操作,并且的等地其它线程response 。
测试结果:测试中主线程来释放Signal 信号。
另4个线程做为等待线程,名字分别为 Thread 1~4。
Thread 1,2在主线程Signal之前就调用Wait()函数,Thread 3,4在事件被标志Signaled 状态时才调用Wait()。
最终结果如下图所示,事件在四个线程都response自后才改变状态,四个线程个主线程都运行正确。
Thread 1,2进入等待signal事件Thread 3,4直接过Barrier。
完成操作进入complete等待Thread 1,2 进入complete等待。
通知所有正在等待response的线程所有线程都已经complete2.AlarmClockclass Alarm {public:Alarm() ;~Alarm() ;void Pause (int howLong) ; //让线程在 howLong 事件后开始运行void ThreadRestart() ; //闹钟结束后重新开始运行线程类定义1) Pause(int howLong):让事件停止 howLong 个时间单位。
调用了系统自带的函数 i nterrupt->Schedule 函数,在howLong 时间后调用TimeUP (int 0)函数。
并将中断的发生时间totalTicks + howLong 当做此线程的优先级将其挂起,确保每次alarmClock 唤醒的线程是设置闹钟最早的线程。
2) TimeUP (int NoUse): 用于当做中断发生时的调用函数,函数中的alarmClock 为 全局闹钟变量。
参数没有任何作用。
3) ThreadRestart():一个闹钟中断到来。
唤醒对应线程(最早线程),将其加入就 绪队列。
测试结果:共七个线程,每个线程设置的 howLong 为 1~200随即数。
已运行多次进行检验。
其中一次结果如下图所示。
每个线程在正确的时间结束闹钟进入就绪队列。
每次时钟中断增加事件随机Thread 0 ,184alarm endThread3 ,201alarm endThread 2, 271alarm endThread 1, 284alarm endThread 6, 289alarm endThread 4, 325alarm endThread 5, 400alarm end3.Bridge供Bridge 模块使用的静态全局变量Bridge 采用的是先到先进的政策,若方向为1的车进桥,此时桥上只有1辆方向为1的车,但对面有方向为0的车在等待时,此车也进入等待。
以此达到公平和防止饿死,因为不会用车辆处于一直等待的状态。
1)ArriveBridge(int dir) :当桥上由3辆车时:线程直接挂起。
当桥上由1,2辆车时:若线程方向与桥的方向相反,线程挂起若线程方向与桥的方向相同但对面由车等待,则线程挂起当桥上没有车时:线程直接通过2)void ExitBridge (int dir):当没有车等待时直接exit。
有车等待时:当桥上有1辆车时:等待的车方向一定相反,按先后顺序唤醒1~3辆方向与此线程方向相反的车。
当桥上有2辆车时:因为此时等待队列下一辆车不可能与其方向相同。
所以当桥上车辆为2辆时不用处理。
当桥上有3两车时:若等待队列下一辆车方向相同,车唤醒下一辆车。
测试结果:创造6两车,每辆车的方向为随机0或1。
已检验多次,其中一次截图如下。
结果正确。
//从生成的车辆可以看出2~6号车将被挂起。
1号车exit桥,唤醒下面3辆方向与其相反的车辆2号车出桥并唤醒5号车3号车出桥唤醒6号车除了随机的测试之外还测试了一些具体的情况如:car 1, dir 0 car 2, dir 1 car 3, dir 0 car 4, dir 1 car 5, dir 0 car 6, dir 1car 1, dir 0 car 2, dir 0 car 3, dir 0 car 4, dir 0 car 5, dir 0 car 6, dir 0最终结果都显示正确。
4.ElevatorElevator 代码较多,下面按运行顺序进行介绍。
首先介绍Elevator的运行规则:1)当Elevator无人且无人等待此电梯时,电梯自动回到第1层。
当电梯在第一无任何需要时,电梯自动进入就绪态,让别的线程运行。
2)当电梯运行的方向上还有人等待进入电梯(不分进入的方向)时,电梯继续运行,直到电梯运行的方向上没有人要进入(或电梯满人)和退出为止,电梯改变方向。
3)电梯先出后进,且进来的人必须全都完成RequsetFloor()之后电梯才能关门。
4)当有多个电梯时,用GetClosestElevator()函数来选择一个最近的电梯。
计算远近时,假设此时电梯都按自己的方向运行到底之后才转变方向来确定电梯到达此楼需跨过多少楼层来当做距离。
函数介绍:电梯循环运行的Run()函数:测试结果:1.无容量限制的电梯,building有3层,共7个人测试结果如下每个人的开始层数和目的层数都是随机的。
结果正确2.1个电梯,容量为3,building有10层,共4个人。
每个人一开始都在第三层等待。
结果截图如下。
除此实验外。
还运行了多次building有3 层,共10个人的测试程序(截图太长),结果正确。
四个人都从第3层出发,电梯容量为3Rider 3因为电梯满人而没进成功Rider 1,2,4,RequstFloorRider3 重新call一次下次目的地选择第5层。
到达第六层后3个人一起下电梯最后载Rider 3电梯不需要了回到第一层。
Elevator结束3.多个电梯:2个电梯,4个人。
两人先选择电梯后,后两人在电梯位置改变后在进入building进行选择电梯。
除此之外还运行了3个电梯,每个电梯3容量,共 20人的测试几次。
结果正确四.实验总结•EventBarrier是用于某线程在进行某些操作前需要某个事件或条件先得到满足后再执行的情况下使用。
如ELevator实现中某层等待的人要进入电梯中的情况。
•因为Nachos的时间只有在线程调用Intrrupt::SetLeve或Thread::Sleep (Intrrupt::Idle)函数时才会前进。
所以Nachos的时钟中断只可能在这调用可这两个函数的时候产生。
•Bridge可以想象成总线传输数据一般,一次只能传输某个方向的数据,且传输的数据大小有限(OneVehicle代表一个单位数据)。
◦Bridge用先进现出的方法很大程度上影响了多线程的运行效率,lock的覆盖的围也太时影响效率。
在很多情况下即使对面有车先等着的时候这里也可以过桥,有很大改进空间。
•Elevator是到现在为止最复杂的多线程并行处理。
在处理过程中发生很多错误。
如在拥有lock的情况下还用EventBarrier将其挂起等等。
Elevator的实现让我对多线程的同步和互斥由了更深了了解和掌握。
◦Elevator的策略也不好,没有在有容量的情况下解决饥饿问题,电梯的搭乘策略会造成饿死。
可以按等待的人按电梯的时间来分配优先级优化电梯的选择搭乘算法。
在多电梯情况下更需要电梯选择策略来提高多个电梯的效率,避免个别几个电梯被过多使用,而另几个处于较闲的状态,使整体效率下降。