用“最近的过去”模拟“最近的将来”

本文从LRU置换算法出发,探讨了其在计算机科学中的应用及其哲学意义,即利用最近的过去预测最近的将来。同时,文章进一步讨论了这种思想在更广泛领域内的潜在应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近的过去模拟最近的将来

    今天翻看《计算机操作系统》的时候,不经意间翻到了关于虚拟内存的页面置换算法。其中的两个让我颇为震惊,一个是最佳(Opmital)置换算法,另一个是LRULeast Recently Used)置换算法。

    第一个讲的是一个理论上的算法,无法实现。因为,讲的是让计算机根据将来要发生的事来判断现在要干什么,显然它不能,只有程序员知道计算机下一步要干什么,而计算机并不能确定下一个时钟周期会在自己的哪个地址空间发生什么。

    而第二种讲的是一个比较实用的一个算法,能够实现,并颇具效率。讲的是查看最近发生的事情,如果某件是事情发生的最靠前,就断定其在较近的将来发生的可能性越小,因此淘汰掉它;相反的,在较近的过去发生的事,其在较近的将来发生的可能性越大。书上提到一句:利用最近的过去作为最近的将来的相似。我想这句话可能就是LRU算法的精髓。这种思想在计算机领域的很多方面得到体现,例如,高速缓存利用的空间的局部性,程序中指令的时间局部性。因此

for(int i=0; i<row; i++)

{

       for(int j=0;  j<column; j++)

       {

              array[row][column] = ?;

       }

}

for(int j=0;  j<column; j++)

{

       for(int i=0; i<row; i++)

       {

              array[row][column] = ?;

       }

}

快。而for(int i=0; i<100; i++) var = ?; 比复制100var = ?;执行速度快。当然一般人也不会写后一种写法。

 

       好,现在让我们回到我们自己所处的世界,同样的,我们也像计算机一样,不知道下一秒会在这个世界上的哪个地方会发生什么。这个世界被一个程序员(上帝)装上了一个程序(在这个宇宙中所有的事物,包括看得见的事物和看不见的规律)。所有的科学家、社会学家、什么什么家不都是在根据人类过往的历史去预测未来的事情吗?人类无法知道上帝这个程序员下一秒在这个世界上安排了什么。所以只能查看历史记录来预测将来,这和计算机何其相似?而丘吉尔的一句话能看到多远的过去,就能看到多远的将来。LRU算法不谋而合。

       现在出现了问题的重点,我们用LRU算法写了一个程序让计算机去管理它的虚拟内存,这样无生命的计算机也能利用最近的过去作为最近的将来的近似去做事情,但我们一般认为计算机并没有这种思想,因为是人让它这么做的,但这种思想真的是源于人类吗?它有可能是上帝这个程序员根据他的思想写的程序(规律)来控制世界,当人类想预测未来时就调用这个程序(规律)来判断。但可以肯定的是,人类具有发现这种程序(规律)并把它利用到其他地方的能力,因此丘吉尔说了那句话,让这种思想变的好像是人类的似的。

       不知道计算机有没有总结其内部程序的能力,如果有的话,它总结页面调度LRU算法程序,得到利用最近的过去作为最近的将来的近似的思想,总结Knuth 语法分析LR算法得到回首过去,展望未来,面对现实的思想,总结Dijkstra的银行家算法得到如果............”的思想;总结磁盘调度算法中的FCFS得到:按阶段划分目标,到达目标的步骤一旦确定,就算外界发生再诱人的变化也不会改变现有步骤。先把这个阶段目标实现了再说。的思想;总结SSTF得到:没有明确的步骤,时刻注意着外界变化,一旦有利可图,就见缝插针。的思想;总结SCAN得到:有自己的原则,并注意外界变化,如果违背这种原则,即使有利可图,也不会改变自己的方向,如果符合且有利,就顺便把这件事做了。的思想,等等。

    人类把多少种思想变成了算法输入了计算机,计算机就能总结多少种思想,然后在计算机世界到处运用这些思想。那时,计算机不也认为自己是个了吗?因此,将计算机变成的关键是,让他们能够总结程序员给他们的程序,得到思想,然后将这种思想用到其他方面。比如,总结LRU算法得到的这种思想可以用到任何空间有限的资源的调度。而这种技术实现起来并不困难,C++的泛型编程和滞后联编就是向这个方向的靠近,将来用不了多久,随着编程语言的发展,肯定能实现。

    到时候,计算机就真的能思考了,就成了生物。现在人类面临的绝大多数问题,计算机都能解决,因为很多问题换一种思想去看待就变的很简单,而人类就是在太多的思想中无法一个一个去实验,但计算机能。或许还会出现计算机康德去思考哲学的四大问题:计算机是什么?我可以希望什么?我能认识什么?我应该做什么?当然这个时候的计算机,也成了人类的威胁,因为它可能把人类输入的思想用到我们不确定的领域,比如,操作系统的Ring0内核保护程序使得他们有了自我保护的思想之后,人类就很危险了。

以上内容,仅是一个刚出道的小程序员的一家之言。如有分歧,请相信自己。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值