From c3094764dd24479be2e801c796c966a646edc234 Mon Sep 17 00:00:00 2001 From: Connor Zanin Date: Thu, 8 Dec 2016 21:41:24 -0500 Subject: updating the doc --- chapter/4/dist-langs.md | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) (limited to 'chapter') diff --git a/chapter/4/dist-langs.md b/chapter/4/dist-langs.md index d4feaec..68f3873 100644 --- a/chapter/4/dist-langs.md +++ b/chapter/4/dist-langs.md @@ -75,14 +75,26 @@ A solution designed to solve one problem may exacerbate another. ## Three major approaches to distributed languages: -### Shared Memory +### Distributed Shared Memory -* Definition +Virtual memory provides a powerful abstraction for processes. +It allows each program running on a machine to believe it is the sole user of the machine, as well as provide each process with more (or less) memory addresses than may be physically present. +The operating system is responsible for mapping virtual memory addresses to physical ones and swapping addresses to and from disk. -* Mirage -* Linda -* Orca -* RPC ( and why RPC is shared-memory ) +Distributed takes the virtual memory abstraction one step further by allowing virtual addresses to be mapped to physical memory regions on remote machines. +Given such an abstraction, programs can communicate simply by reading from and writing to shared memory addresses. +Distributed shared memory is appealing because the programming model is the same for local and distributed systems. +However, it requires an underlying system to function properly. + +#### Mirage + +#### Linda + +#### Orca + + + +#### RPC ( and why RPC is shared-memory ) Tries to make many machines look like a single machine. This is hard because of consistency and partitioning. -- cgit v1.2.3