Erlang虚拟机源码阅读笔录(三)虚拟机的进程调度
?
?图2.2
Erlang虚拟机对系统IO的响应采用了事件驱动模式,这是一种异步模式,而不是同步模式,而Erlang语言中所涉及到的同步语法都是使用异步模式模拟的(即在用户态模式下由虚拟机进行阻塞操作,而不是由操作系统内核来进行同步调用的阻塞操作),虽然逻辑编写会变得更复杂,但这种模式对繁重的IO处理有很大的性能提升,所以Erlang不会出现某个调度线程由于调度内核函数而阻塞在内核态中不能及时切换到用户态。
Erlang虚拟机的每一条虚拟机指令(threaded-code)的执行都会进行错误检查,使erlang程序的容错性更高,也为Erlang的容错性提供了最底层的支持,同时Erlang的进程设计等方面也会考虑容错机制。