insidetheerlangvm(编辑修改稿)内容摘要:

d timeouts 系 统调度 • 处理 timer超 时 • 处理子进程退出的情况 • 处理 port_task事件,也就是 port的 IO事件 o port_task独立 调度 有自己的 调度队列 • 如果没有活 跃的进程 就 sys_schdule阻塞在底 层的 IO中。  check_io • 根据 process的 优先级选出一个进程来调度。 o PRIORITY_MAX o PRIORITY_HIGH o PRIORITY_NORMAL o PRIORITY_LOW o PRIORITY_LEVELS 数据 结构 • 用地址来区分数据 类型 • pid X, Y, Z • atom o index表示 o cache 传送的是 index • binary bitstring o 非常高效 静 态分析 opcode执行 o 非 线性处理 • list o 单链表 表 头加入 • tuple o 相当于数 组 bitstring 非 线性数据处理 • 和 scatter read, gather write配 对 • 静 态分析 opcode实现 bitstring操作 • 减少内存搬 动 大大提高操作效率 • 对程序员透明 消息 传递 • 高效 pat • 内部格式 • 外部格式 o erts/emulator/internal_doc/ 描述了 erlang ext term的格式 , epmd通 讯的流程协议和流程 同 时还要 node 间通讯的协议 PID变换 o pid {X,Y,Z} 在 发到网络的时候发出去的格式是 {sysname, Y, Z} 因 为节点之前互相联系过 所以互相知道 对方的 sysname, 而且sysname在 dist_entry里保存,当 对端收到 dec_pid的 时候,用peer sysname 的 查到在自己 dist_entry里面的索引,然后用这个 index 来构造新的 pid,即 {index, Y, Z}。 内存分配器 • 每个 CPU一个内存池 • 自 动配置 • 有 200多个 alloc typ。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。