Lecture INF5510 2015-01-19 Note: references to slides and Emerald code files refer to the folder in which this summary is located on the INF5510 web page. 12.02.36 referes to the JPG picture in the folder Pictures 2015-F2. Agenda: see 12.02.36 Why Distribution? Concurrency Distribution (what it looks like in Emerald) Immutable Objects Planetlab Why Distribution: see slides: Distribuerte Objekter F2 2015-02-02 see slides: Emerald ? distributed OO language UiO F2 2015 Repeated the problem of the slow speed of light: Only 299 792 458 m/s - a lightfoot: 30 cm because this is the distance light travels in 1 ns. Approximate value: 300 000 km/s Exploding universe - all must use distribtion tehniques. Showed how the slow speed of light affects timing and navigation using, e.g., GPS, and the Frankfurt time transmitter, see 12.02.32 Showed how the slow speed of light has affected computing and cause numerous branches of Computer Science to actually have to consider the effects of the slow speed of light. Explained Moore's law, see moorespaper-1965-law-highlighted.pdf Gordon_Moore_1975_Speech.pdf timeline-Intel-Moores-Law.pdf Explained that this means that two computers that are constantly upgraded to current hardware, are moving exponentially increasingly far away from each other as measured by the minimum round trip time between them expressed in units of machine cycles. Another way to look at it, is that for a given compute speed the latency caused by the speed of light has doubled every 1-2 years from 1959 until now! Concurrency: see programs: synch.m, hiho.m Process concept in Emerald - think Java thread Exclusive access - achieved by using Hoare Monitors, see p549-hoare.pdf Synchronization via Conditions. Explained that Emerald Conditions could be any object as it is merely the identity of the object that is used, not the object itself. Immutable objects explained: enables local access to local copies of data, e.g., "17". Relationship between Initially section and Process section explained. Showed how to generate many processes using a simple loop, see picture 12.02.20. Showed how to implement semaphores in Emerald, see program sem.m Distribution: see 17.01.32 Explained distribution primitives, see 17.01.32 Explained sea of objects and its splitting into disjunct pieces, see 17.01.32 including important concept of Node, variable, object reference (differentiated from object pointer in, e.g., C, C++). Explained call-by-move and call-by-visit. Looked at breakeven for call-backs of an operation parameter, see 17.00.51 Told about planetlab, see www.planet-lab.eu/ Minor stuff: Arrays: explained array of arrays, see 17.00.51 Explained that type objects are merely objects that conform to a specific type. Explained that an Emerald class is merely any object that has an operation that creates a new object. Explained that it can be useful to define classes so that they are also types. Evaluation: see 17.01.39 Kurs feedback Next lecture is 16/2 at 10.15 in Perl, see 17.01.39