Monthly Archives: 10 月 2011

关于并行计算发展的一些思考

本文是在CU论坛上回答网友的问题《C语言标准有没有规定前一个语句必须在后一个语句之前完成?》而引发的关于并行处理的一些见解和思考,以下正文

难得OwnWaterloo老兄想起了在下,以及最近我也看到了一些并行方面的帖,就浮上水面说说自己的见解吧。
C语言是典型的Von Neumann体系下的编译性语言:”存储程序并顺序执行”。
70年代初的时候C语言发明和Unix的产生是息息相关的,必须要在一起说明的。当是计算机并行运算并不是很普遍,绝大多数的并行是靠多进程完全任务的,线程还没有被广泛提及,CPU也没有乱序执行的概念。这时候进程间的并行就靠操作系统去隔离,这一点当是的Unix做的非常不错,并由于涉及到Unix设计哲学(简单即美)复杂而高效的多线程在Unix类系统上一直没有得到重视,这也是影响了C语言的产生和发展。C语言设计者也认为C语言应该足够小巧灵活(C语言以控制和处理内部(存)数据为优先任务,个人见解),不要引入太多平台差异的东西,于是I/O功能和后来突飞猛进的并行计算自然只能丢到库中或者干脆完全隔离不予考虑。
[……]

继续阅读

Posted in 操作系统, 程序设计 | Tagged , | 4 Comments