erlang emulator n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Erlang emulator 实现分析 PowerPoint Presentation
Download Presentation
Erlang emulator 实现分析

Loading in 2 Seconds...

play fullscreen
1 / 23

Erlang emulator 实现分析 - PowerPoint PPT Presentation


  • 179 Views
  • Uploaded on

Erlang emulator 实现分析. mryufeng@g mail.com 2007/10. emulator 是什么. Erlang vm + bif + 基 础设施 整个 erlang 系 统的核心实现 尺寸很小 适合于嵌入式. emulator 的特性. 高性能 分布式 支持多核. emulator 的物理 结构. tty_sl ram_file_drvzlib_drv udp_inet tcp_inet Efile async. Beam Driver Sys Utilts. beam Beam.smp

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Erlang emulator 实现分析' - maude


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
erlang emulator

Erlang emulator 实现分析

mryufeng@gmail.com

2007/10

emulator

emulator是什么

Erlang vm + bif + 基础设施

整个erlang系统的核心实现

尺寸很小适合于嵌入式

emulator1

emulator的特性

  • 高性能
  • 分布式
  • 支持多核
emulator2

emulator的物理结构

tty_sl

ram_file_drvzlib_drv

udp_inet

tcp_inet

Efile

async

Beam

Driver

Sys

Utilts

beam

Beam.smp

Beam.hybird

erlexec

escript

Unix

Windows

emulator3

emulator的类型

Beam

Beam.smp

Beam.hybird

emulator4

Emulator的运行期

单个smp

多个smp情况

erl_start->erl_init->process_main->schedule->sys_schedule

slide7

Beam的物理模块

Beam目录下的.c .h

这部份基本上是可移植的

process

Process

Process是调度的单元

轻量设计

无耦合

通过message交换信息

multi scheduling

线程协调multi_scheduling

可以按需开N个 scheduler

随时停止所有线程进行维护

slide10

内存分配策略

  • : binary_alloc
  • D: std_alloc
  • E: ets_alloc
  • F: fix_alloc
  • H: eheap_alloc
  • L: ll_alloc
  • M: mseg_alloc
  • S: sl_alloc
  • T: temp_alloc
  • Y: sys_alloc
slide11

dist

Pid(x,y,z)

节点间通讯

透明实现

erl ext dist txt

erl_ext_dist.txt

Dist 和 cnode 原理

slide13

Info模块

详细的系统运行器信息

erl_crash.dump 丰富的内容

benchmark

Benchmark

用于测量系统运行器的情况

slide15

ets

erlang term strorage

Hash和tree实现

Match vm

slide16

对信号的处理

SIGINT

SIGUSR1

SIGUSR2

在单独线程处理信号

eterm

Eterm数据结构

用指针来分辨类型

内部格式和外部格式

是GC回收

slide18

表格和代码生成器

某些表格在源码里面找不到

Make的时候调用utility 程序动态生成的

slide19

垃圾回收

针对Process的Message 进行的回收

针对普通的eterm进行的回收

port driver

Port & Driver

Port是erlang程序自己操作的界面

Driver是功能的实现

Io poller是 port和外部通讯的推动力

slide21

代码热部署原理

Moudle

Driver dll

slide22

系统微调

命令行参数

环境变量

运行期信息获取

slide23

结束

谢谢大家