Download presentation
Presentation is loading. Please wait.
Published byHugo Stanley Modified over 8 years ago
2
Drexel University Department of Electrical and Computer Engineering Open Design and Integration Environment
3
Developed by: Sean Woods Under the direction of: Dr. Prawat Nagvajara With assistance by: Ronald DeLoach Vy Ho David Romig, Jr.
4
YGGDRASIL Shared data structure for distributed environments
5
The name Yggdrasil is taken from the is the “World Tree” of Nordic legend. Its roots bound together heaven and earth, and all life lived in its branches.
6
Yggdrasil borrows it’s structure from organic molecules. The only formal data structure is the node. All else is handled by links between nodes. Name Data I Child J Child Next Parent
7
Nesting a tree within a tree, within a tree, within a tree allows yggdrasil to process many representations of data within the same database.
8
A tree begins with one node, the root, which has no parent. All others are descendants, possessing none, one, or many links. Not shown are the upward links all nodes have back to their parent.
9
/object.subordinate/attribute.adjective.descriptor In yggdrasil nodes can posses two types of links, i and j. Human interfaces to yggdrasil represent this links as different delimiters within a string for the address. I is a link to the beginning of a different hierarchy. I links are represented with a forward slash (/) J is a link to a descendant within the same hierarchy. J links are represented with a dot (.)
10
Data files often need to address groups of nodes. It is often shorter to use a finite state machine notation. We begin with an absolute node. All other references are local to that node, giving the relation and data stored. /example.item < {I attribute} < {j subattribute value} {j anotherattribute anothervalue} >
11
Complex databases are constructed by using a symbolic links. A node, instead of containing data actually contains a pointer to another node.When an address is resolved, the parser is redirected to another part of the tree.
12
cat See felis domesticus felis domesticus Known as the common housecat, these mammals are kept as pets by humans. They eat mice, drink milk, and love to have their fur stroked. An example would be a “see instead” link in an encyclopedia. Instead of containing an entry, it contains where the entry will be found.
13
Real-time process manager for distributed tasks ODIN
14
Odin was the king of the Nordic gods. He gave one eye for wisdom, and is said to have hung himself from the Yggdrasil to see the whole universe.
15
Odin is a special purpose real-time task management system. Tasks are broken into processes which operate in parallel. A process consists of a short code segment, called at either a fixed interval of time, or in response to an event within the system. They can alter the piece of code that is called, sleep for events, and alter the period at which they are called.
16
Odin uses a unique finite state machine style of multitasking. With the proper compiler, conventional procedural languages can be represented as fsm tasks. for(x=0;x<10;x++) { do_something(); } for(x=10;x<20;x++) { do_somethingelse(); } Do_something Do_somethingelse
17
Processes return several different control codes to the process manager: Break- Suspend the task Continue- Call the task again in period time Done- Task completed, remove from system Error - Task generated an error
18
Data stored in yggdrasil is shared between processes in a distributed task. Yggdrasil PhysicsGraphics Logic
19
Physics Position Control Signals Velocity Inertia Forces Graphics Position Internal State Screen Position Representation Logic Position Internal State Control Signals Goals Elements in blue are items that are modified by other processes, but read internally by the process. Odin processes use the yggdrasil to represent complex structures as simple elements. These elements can be manipulated to perform complex tasks.
20
Yggdrasil can store code to be executed within a process state, as well as branching logic an process control. In Yggdrasil /tasks.test/states {j start} < {I code {x=0}} {I next {counter}} > {j counter} < {I code {x++ ; printf(“%d”,x)} {I branch} < {j condition {x < 1000}} {j goto counter} > {I next {}} > In C Code for(x=0;x<1000;x++) { printf(“%d”,x) }
21
Start Counter Code x=0; Code x++; printf(“%d”,x); Exit Condition x<1000
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.