我很难理解磁盘调度的SCAN和CSCAN算法的工作原理。我了解FCFS,最近的圆柱体然后听说SCAN类似于电梯机制并且感到困惑。 我的书上说,对于收到的订单:[10 22 20 2 40 6 38](当前磁盘在20时),开始移动的SCAN服务[(20)20 22 38 40 10 6 2];这需要移动[0 2 16 2 30 4 4]个气缸,共58个气缸。 模式[(20)20 22 38 40 10 6 2]是怎么来的?SCAN和CSCAN算法
4
A
回答
6
让我们知道SCAN(电梯)磁盘调度算法说什么: -
它扫描下来,对最近端,然后当它击中底部 它扫描了服务,这没”的要求不会下降。如果 请求在扫描后发出,它将不会被服务 ,直到该过程回落或恢复为止。
因此,在你的情况下,磁盘的当前位置是20.因此,根据SCAN算法,它将扫描到最近的一端,并在触底之后,扫描服务请求备份。
的顺序是: -
| |
| * current position | * move back up to upside
|---> nearest disk is this one |
| so it'll move down and so on. |
| as it hit the bottom _______
____
Fig :- Demonstration of SCAN algorithm
所以,按照给定的数据,订货会[(20) 20 22 38 40 10 6 2];
编辑: -
SCAN和CSCAN之间唯一的区别是,在CSCAN,
开始其向最近端的扫描和它的作品的方式一路 到系统的末端。 一旦它碰到底部或顶部,它将跳到另一端 ,并沿相同方向移动,与使用相同路径移动回到顶部的SCAN不同。
根据CSCAN,运动的方向将相同,然后它会颠倒路径。
所以,根据给定的数据,订单将是[(20) 20 22 38 40 2 6 10];
请注意最后三个磁盘位置的变化。
我希望很清楚。随意问问剩下的疑惑。
相关问题
- 1. SCAN相对于C-SCAN和N-Step-Scan的弱点
- 2. Ruby语法包括“scan”,“join”和“==”
- 3. 春Redis的哈希运算SCAN
- 4. Spring @Configuration和<context:component-scan />
- 5. Oracle RAC VIP和SCAN IP
- 6. Oracle RAC和SCAN侦听器
- 7. scan,groupjoin或groupbyuntil?
- 8. Snake Scan Ordering
- 9. 正确Boto aws DynamoDb .scan语法
- 10. Zend_XmlRpc_Client无法与Zend_Xml_Security进行通信:: scan
- 11. <context:annotation-config>和<context:component-scan>
- 12. SET SCAN和SET DEFINE之间的区别
- 13. XMAS Scan中的位
- 14. UML和算法
- 15. iOS - Scan BLE devies在后台
- 16. wamp scan额外的php.ini
- 17. Symantec Scan Engine .NET API错误
- 18. ruby正则表达式.scan
- 19. 贪心算法和硬币算法
- 20. 约束和算法
- 21. OSM和A *算法
- 22. Prim's和Kruskal算法
- 23. PHP算法和MySQL
- 24. ListAdapters和WrapperListAdapter算法
- 25. PCA和KNN算法
- 26. Antlr4 perentheses和算法
- 27. STL算法和const_iterators
- 28. Dijkstra's和Prim's算法
- 29. 无符号乘法和求和算法
- 30. 错误“运行scan-build时无法发现'ccc-analyzer'”
请您澄清CSCAN也使用相同的例子? – Khan 2014-11-26 06:00:05