<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://homeostasis.scs.carleton.ca/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ameti073</id>
	<title>Soma-notes - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://homeostasis.scs.carleton.ca/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ameti073"/>
	<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php/Special:Contributions/Ameti073"/>
	<updated>2026-06-02T21:08:47Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2015W_Session_4&amp;diff=19868</id>
		<title>DistOS 2015W Session 4</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2015W_Session_4&amp;diff=19868"/>
		<updated>2015-02-11T03:37:09Z</updated>

		<summary type="html">&lt;p&gt;Ameti073: /* Supported processor architectures */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Andrew File System =&lt;br /&gt;
AFS (Andrew File System) was set up as a direct response to NFS. Essentially universities found issues when they tried to scale NFS in a way that would allow them to share files amongst their staff effectively. AFS was more scalable than NFS because read-write operations happened locally before they were committed to the server (data store).&lt;br /&gt;
&lt;br /&gt;
Since AFS copied files locally when they were opened and only sent the data back when they were closed, all operations during that time are very fast and do need the network. NFS works with files remotely, so there is no data to transfer when opening/closing the file, making those operations instant.&lt;br /&gt;
&lt;br /&gt;
There are several problems with this design, however.&lt;br /&gt;
* The local system must have enough space to temporarily store the file.&lt;br /&gt;
* Opening and closing the files requires a lot of bandwidth for large files. To read even a single byte, the entire file must be retrieved (later versions remedied this).&lt;br /&gt;
* If the close operation fails, the system will not have the updated version of the file. Many programs don&#039;t even check the return value of the close operation, giving users the false impression that everything went well.&lt;br /&gt;
&lt;br /&gt;
Given all this, AFS was suitable for working with small files, not large ones, limiting its usefulness. It is also notoriously annoying to set up as it is geared towards university-sized networks, further limiting its success.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Amoeba Operating System =&lt;br /&gt;
&lt;br /&gt;
=== Capablities: ===&lt;br /&gt;
* Pointer to the object&lt;br /&gt;
* Capability assigning right to perform to some operation to the object ticket &lt;br /&gt;
* Communicate wide area network &lt;br /&gt;
* a kind of ticket or key that allows the holder of the capa- bility to perform some (not neces- sarily all) &lt;br /&gt;
* Each user process owns some collection of capabilities, which together define the set of objects it may access and the types of operations that my ne performed on each &lt;br /&gt;
* After the server has performed the operation, it sends back a reply message that unblocks the client &lt;br /&gt;
* Sending messages, blocking and accepting forms the remote procedure call that can be encapsulate using to make entire remote operation look like local procedure &lt;br /&gt;
* Second field:  used by the sever to identify which of its objects is being addressed server port and object number identify object which operation to performed  &lt;br /&gt;
* Generates 48-bit random number     &lt;br /&gt;
* The third field is the right field which contains a bit map telling which operation the holder of the capability  may performed&lt;br /&gt;
* X11 Window management&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Thread Management: ===&lt;br /&gt;
* Same process have multiple thread and each process has its own registered counter and stack &lt;br /&gt;
* Behave like process&lt;br /&gt;
* It can synchronized using mutex semaphore &lt;br /&gt;
* File: Multiple thread, &lt;br /&gt;
* Blocked when there&#039;s multiple threads &lt;br /&gt;
* Buttlet thread the mutex&lt;br /&gt;
* The careful reader may have noticed that user process can pull 813kbytes/sec&lt;br /&gt;
&lt;br /&gt;
= Unique features =&lt;br /&gt;
&lt;br /&gt;
== Pool processors ==&lt;br /&gt;
Pool processors are group of CPUs that are dynamically allocated as user needs. When a program is executed, any of the available processor run.&lt;br /&gt;
&lt;br /&gt;
== Supported architectures ==&lt;br /&gt;
Many different processor architectures are supported including:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; i80386(Pentium)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;68K&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;SPARC&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= The V Distributed System = &lt;br /&gt;
&lt;br /&gt;
* First tent in V design: High Performance communication is the most critical facility for distributed systems.&lt;br /&gt;
* Second; The protocols, not the software, define the system.&lt;br /&gt;
* Third; a relatively small operating system kernel can implement the basic protocols and services providing a simple network-transparent process, address space &amp;amp; communication model.&lt;br /&gt;
&lt;br /&gt;
=== Ideas that significantly affected the design ===&lt;br /&gt;
* Shared Memory.&lt;br /&gt;
* Dealing with group of entities same as they deal w/individual entities.&lt;br /&gt;
* Efficient file caching mechanism using the virtual memory caching mechanism.&lt;br /&gt;
&lt;br /&gt;
=== Design Decisions ===&lt;br /&gt;
* Designed for a cluster of workstations with high speed network access ( only really supports LAN ).&lt;br /&gt;
* Abstract the physical architecture of the participating workstations, by defining common protocols providing well-defined interfaces.&lt;br /&gt;
&lt;br /&gt;
V was run on LAN, and its developers developed a really fast IPC protocol which allowed for it to be a fasted distributed operating system in a small geographic area. Aside from the IPC protocols, V also implemented RPC calls in the background.&lt;br /&gt;
&lt;br /&gt;
V uses the strong consistency model. This model can cause issues with concurrency because in V files are a memory space. Thus two different users accessing the same file and in fact accessing the same memory location. This could result in issues unless there is an effective implementation to deal with multiple versions, etc.&lt;br /&gt;
&lt;br /&gt;
VMTP protocol was used for communication. It supports request-respond behavior. Besides, it provides transparency, group communication facility and flow control. It is pretty much like TCP.&lt;/div&gt;</summary>
		<author><name>Ameti073</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2015W_Session_4&amp;diff=19867</id>
		<title>DistOS 2015W Session 4</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2015W_Session_4&amp;diff=19867"/>
		<updated>2015-02-11T03:36:41Z</updated>

		<summary type="html">&lt;p&gt;Ameti073: /* Pool processors */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Andrew File System =&lt;br /&gt;
AFS (Andrew File System) was set up as a direct response to NFS. Essentially universities found issues when they tried to scale NFS in a way that would allow them to share files amongst their staff effectively. AFS was more scalable than NFS because read-write operations happened locally before they were committed to the server (data store).&lt;br /&gt;
&lt;br /&gt;
Since AFS copied files locally when they were opened and only sent the data back when they were closed, all operations during that time are very fast and do need the network. NFS works with files remotely, so there is no data to transfer when opening/closing the file, making those operations instant.&lt;br /&gt;
&lt;br /&gt;
There are several problems with this design, however.&lt;br /&gt;
* The local system must have enough space to temporarily store the file.&lt;br /&gt;
* Opening and closing the files requires a lot of bandwidth for large files. To read even a single byte, the entire file must be retrieved (later versions remedied this).&lt;br /&gt;
* If the close operation fails, the system will not have the updated version of the file. Many programs don&#039;t even check the return value of the close operation, giving users the false impression that everything went well.&lt;br /&gt;
&lt;br /&gt;
Given all this, AFS was suitable for working with small files, not large ones, limiting its usefulness. It is also notoriously annoying to set up as it is geared towards university-sized networks, further limiting its success.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Amoeba Operating System =&lt;br /&gt;
&lt;br /&gt;
=== Capablities: ===&lt;br /&gt;
* Pointer to the object&lt;br /&gt;
* Capability assigning right to perform to some operation to the object ticket &lt;br /&gt;
* Communicate wide area network &lt;br /&gt;
* a kind of ticket or key that allows the holder of the capa- bility to perform some (not neces- sarily all) &lt;br /&gt;
* Each user process owns some collection of capabilities, which together define the set of objects it may access and the types of operations that my ne performed on each &lt;br /&gt;
* After the server has performed the operation, it sends back a reply message that unblocks the client &lt;br /&gt;
* Sending messages, blocking and accepting forms the remote procedure call that can be encapsulate using to make entire remote operation look like local procedure &lt;br /&gt;
* Second field:  used by the sever to identify which of its objects is being addressed server port and object number identify object which operation to performed  &lt;br /&gt;
* Generates 48-bit random number     &lt;br /&gt;
* The third field is the right field which contains a bit map telling which operation the holder of the capability  may performed&lt;br /&gt;
* X11 Window management&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Thread Management: ===&lt;br /&gt;
* Same process have multiple thread and each process has its own registered counter and stack &lt;br /&gt;
* Behave like process&lt;br /&gt;
* It can synchronized using mutex semaphore &lt;br /&gt;
* File: Multiple thread, &lt;br /&gt;
* Blocked when there&#039;s multiple threads &lt;br /&gt;
* Buttlet thread the mutex&lt;br /&gt;
* The careful reader may have noticed that user process can pull 813kbytes/sec&lt;br /&gt;
&lt;br /&gt;
= Unique features =&lt;br /&gt;
&lt;br /&gt;
== Pool processors ==&lt;br /&gt;
Pool processors are group of CPUs that are dynamically allocated as user needs. When a program is executed, any of the available processor run.&lt;br /&gt;
&lt;br /&gt;
== Supported processor architectures ==&lt;br /&gt;
Many different processor architectures are supported including:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; i80386(Pentium)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;68K&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;SPARC&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= The V Distributed System = &lt;br /&gt;
&lt;br /&gt;
* First tent in V design: High Performance communication is the most critical facility for distributed systems.&lt;br /&gt;
* Second; The protocols, not the software, define the system.&lt;br /&gt;
* Third; a relatively small operating system kernel can implement the basic protocols and services providing a simple network-transparent process, address space &amp;amp; communication model.&lt;br /&gt;
&lt;br /&gt;
=== Ideas that significantly affected the design ===&lt;br /&gt;
* Shared Memory.&lt;br /&gt;
* Dealing with group of entities same as they deal w/individual entities.&lt;br /&gt;
* Efficient file caching mechanism using the virtual memory caching mechanism.&lt;br /&gt;
&lt;br /&gt;
=== Design Decisions ===&lt;br /&gt;
* Designed for a cluster of workstations with high speed network access ( only really supports LAN ).&lt;br /&gt;
* Abstract the physical architecture of the participating workstations, by defining common protocols providing well-defined interfaces.&lt;br /&gt;
&lt;br /&gt;
V was run on LAN, and its developers developed a really fast IPC protocol which allowed for it to be a fasted distributed operating system in a small geographic area. Aside from the IPC protocols, V also implemented RPC calls in the background.&lt;br /&gt;
&lt;br /&gt;
V uses the strong consistency model. This model can cause issues with concurrency because in V files are a memory space. Thus two different users accessing the same file and in fact accessing the same memory location. This could result in issues unless there is an effective implementation to deal with multiple versions, etc.&lt;br /&gt;
&lt;br /&gt;
VMTP protocol was used for communication. It supports request-respond behavior. Besides, it provides transparency, group communication facility and flow control. It is pretty much like TCP.&lt;/div&gt;</summary>
		<author><name>Ameti073</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2015W_Session_4&amp;diff=19866</id>
		<title>DistOS 2015W Session 4</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2015W_Session_4&amp;diff=19866"/>
		<updated>2015-02-11T03:33:45Z</updated>

		<summary type="html">&lt;p&gt;Ameti073: /* Unique features */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Andrew File System =&lt;br /&gt;
AFS (Andrew File System) was set up as a direct response to NFS. Essentially universities found issues when they tried to scale NFS in a way that would allow them to share files amongst their staff effectively. AFS was more scalable than NFS because read-write operations happened locally before they were committed to the server (data store).&lt;br /&gt;
&lt;br /&gt;
Since AFS copied files locally when they were opened and only sent the data back when they were closed, all operations during that time are very fast and do need the network. NFS works with files remotely, so there is no data to transfer when opening/closing the file, making those operations instant.&lt;br /&gt;
&lt;br /&gt;
There are several problems with this design, however.&lt;br /&gt;
* The local system must have enough space to temporarily store the file.&lt;br /&gt;
* Opening and closing the files requires a lot of bandwidth for large files. To read even a single byte, the entire file must be retrieved (later versions remedied this).&lt;br /&gt;
* If the close operation fails, the system will not have the updated version of the file. Many programs don&#039;t even check the return value of the close operation, giving users the false impression that everything went well.&lt;br /&gt;
&lt;br /&gt;
Given all this, AFS was suitable for working with small files, not large ones, limiting its usefulness. It is also notoriously annoying to set up as it is geared towards university-sized networks, further limiting its success.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Amoeba Operating System =&lt;br /&gt;
&lt;br /&gt;
=== Capablities: ===&lt;br /&gt;
* Pointer to the object&lt;br /&gt;
* Capability assigning right to perform to some operation to the object ticket &lt;br /&gt;
* Communicate wide area network &lt;br /&gt;
* a kind of ticket or key that allows the holder of the capa- bility to perform some (not neces- sarily all) &lt;br /&gt;
* Each user process owns some collection of capabilities, which together define the set of objects it may access and the types of operations that my ne performed on each &lt;br /&gt;
* After the server has performed the operation, it sends back a reply message that unblocks the client &lt;br /&gt;
* Sending messages, blocking and accepting forms the remote procedure call that can be encapsulate using to make entire remote operation look like local procedure &lt;br /&gt;
* Second field:  used by the sever to identify which of its objects is being addressed server port and object number identify object which operation to performed  &lt;br /&gt;
* Generates 48-bit random number     &lt;br /&gt;
* The third field is the right field which contains a bit map telling which operation the holder of the capability  may performed&lt;br /&gt;
* X11 Window management&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Thread Management: ===&lt;br /&gt;
* Same process have multiple thread and each process has its own registered counter and stack &lt;br /&gt;
* Behave like process&lt;br /&gt;
* It can synchronized using mutex semaphore &lt;br /&gt;
* File: Multiple thread, &lt;br /&gt;
* Blocked when there&#039;s multiple threads &lt;br /&gt;
* Buttlet thread the mutex&lt;br /&gt;
* The careful reader may have noticed that user process can pull 813kbytes/sec&lt;br /&gt;
&lt;br /&gt;
= Unique features =&lt;br /&gt;
&lt;br /&gt;
== Pool processors ==&lt;br /&gt;
Pool processors are group of CPUs that are dynamically allocated as user needs. When a program is executed, any of the available processor run.&lt;br /&gt;
&lt;br /&gt;
= The V Distributed System = &lt;br /&gt;
&lt;br /&gt;
* First tent in V design: High Performance communication is the most critical facility for distributed systems.&lt;br /&gt;
* Second; The protocols, not the software, define the system.&lt;br /&gt;
* Third; a relatively small operating system kernel can implement the basic protocols and services providing a simple network-transparent process, address space &amp;amp; communication model.&lt;br /&gt;
&lt;br /&gt;
=== Ideas that significantly affected the design ===&lt;br /&gt;
* Shared Memory.&lt;br /&gt;
* Dealing with group of entities same as they deal w/individual entities.&lt;br /&gt;
* Efficient file caching mechanism using the virtual memory caching mechanism.&lt;br /&gt;
&lt;br /&gt;
=== Design Decisions ===&lt;br /&gt;
* Designed for a cluster of workstations with high speed network access ( only really supports LAN ).&lt;br /&gt;
* Abstract the physical architecture of the participating workstations, by defining common protocols providing well-defined interfaces.&lt;br /&gt;
&lt;br /&gt;
V was run on LAN, and its developers developed a really fast IPC protocol which allowed for it to be a fasted distributed operating system in a small geographic area. Aside from the IPC protocols, V also implemented RPC calls in the background.&lt;br /&gt;
&lt;br /&gt;
V uses the strong consistency model. This model can cause issues with concurrency because in V files are a memory space. Thus two different users accessing the same file and in fact accessing the same memory location. This could result in issues unless there is an effective implementation to deal with multiple versions, etc.&lt;br /&gt;
&lt;br /&gt;
VMTP protocol was used for communication. It supports request-respond behavior. Besides, it provides transparency, group communication facility and flow control. It is pretty much like TCP.&lt;/div&gt;</summary>
		<author><name>Ameti073</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2015W_Session_4&amp;diff=19865</id>
		<title>DistOS 2015W Session 4</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2015W_Session_4&amp;diff=19865"/>
		<updated>2015-02-11T03:32:50Z</updated>

		<summary type="html">&lt;p&gt;Ameti073: /* Thread Management: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Andrew File System =&lt;br /&gt;
AFS (Andrew File System) was set up as a direct response to NFS. Essentially universities found issues when they tried to scale NFS in a way that would allow them to share files amongst their staff effectively. AFS was more scalable than NFS because read-write operations happened locally before they were committed to the server (data store).&lt;br /&gt;
&lt;br /&gt;
Since AFS copied files locally when they were opened and only sent the data back when they were closed, all operations during that time are very fast and do need the network. NFS works with files remotely, so there is no data to transfer when opening/closing the file, making those operations instant.&lt;br /&gt;
&lt;br /&gt;
There are several problems with this design, however.&lt;br /&gt;
* The local system must have enough space to temporarily store the file.&lt;br /&gt;
* Opening and closing the files requires a lot of bandwidth for large files. To read even a single byte, the entire file must be retrieved (later versions remedied this).&lt;br /&gt;
* If the close operation fails, the system will not have the updated version of the file. Many programs don&#039;t even check the return value of the close operation, giving users the false impression that everything went well.&lt;br /&gt;
&lt;br /&gt;
Given all this, AFS was suitable for working with small files, not large ones, limiting its usefulness. It is also notoriously annoying to set up as it is geared towards university-sized networks, further limiting its success.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Amoeba Operating System =&lt;br /&gt;
&lt;br /&gt;
=== Capablities: ===&lt;br /&gt;
* Pointer to the object&lt;br /&gt;
* Capability assigning right to perform to some operation to the object ticket &lt;br /&gt;
* Communicate wide area network &lt;br /&gt;
* a kind of ticket or key that allows the holder of the capa- bility to perform some (not neces- sarily all) &lt;br /&gt;
* Each user process owns some collection of capabilities, which together define the set of objects it may access and the types of operations that my ne performed on each &lt;br /&gt;
* After the server has performed the operation, it sends back a reply message that unblocks the client &lt;br /&gt;
* Sending messages, blocking and accepting forms the remote procedure call that can be encapsulate using to make entire remote operation look like local procedure &lt;br /&gt;
* Second field:  used by the sever to identify which of its objects is being addressed server port and object number identify object which operation to performed  &lt;br /&gt;
* Generates 48-bit random number     &lt;br /&gt;
* The third field is the right field which contains a bit map telling which operation the holder of the capability  may performed&lt;br /&gt;
* X11 Window management&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Unique features =&lt;br /&gt;
&lt;br /&gt;
== Pool processors ==&lt;br /&gt;
Pool processors are group of CPUs that are dynamically allocated as user needs. When a program is executed, any of the available processor run.&lt;br /&gt;
&lt;br /&gt;
=== Thread Management: ===&lt;br /&gt;
* Same process have multiple thread and each process has its own registered counter and stack &lt;br /&gt;
* Behave like process&lt;br /&gt;
* It can synchronized using mutex semaphore &lt;br /&gt;
* File: Multiple thread, &lt;br /&gt;
* Blocked when there&#039;s multiple threads &lt;br /&gt;
* Buttlet thread the mutex&lt;br /&gt;
* The careful reader may have noticed that user process can pull 813kbytes/sec&lt;br /&gt;
&lt;br /&gt;
= Unique features =&lt;br /&gt;
&lt;br /&gt;
== Pool processors ==&lt;br /&gt;
Pool processors are group of CPUs that are dynamically allocated as user needs. When a program is executed, any of the available processor run.&lt;br /&gt;
&lt;br /&gt;
= The V Distributed System = &lt;br /&gt;
&lt;br /&gt;
* First tent in V design: High Performance communication is the most critical facility for distributed systems.&lt;br /&gt;
* Second; The protocols, not the software, define the system.&lt;br /&gt;
* Third; a relatively small operating system kernel can implement the basic protocols and services providing a simple network-transparent process, address space &amp;amp; communication model.&lt;br /&gt;
&lt;br /&gt;
=== Ideas that significantly affected the design ===&lt;br /&gt;
* Shared Memory.&lt;br /&gt;
* Dealing with group of entities same as they deal w/individual entities.&lt;br /&gt;
* Efficient file caching mechanism using the virtual memory caching mechanism.&lt;br /&gt;
&lt;br /&gt;
=== Design Decisions ===&lt;br /&gt;
* Designed for a cluster of workstations with high speed network access ( only really supports LAN ).&lt;br /&gt;
* Abstract the physical architecture of the participating workstations, by defining common protocols providing well-defined interfaces.&lt;br /&gt;
&lt;br /&gt;
V was run on LAN, and its developers developed a really fast IPC protocol which allowed for it to be a fasted distributed operating system in a small geographic area. Aside from the IPC protocols, V also implemented RPC calls in the background.&lt;br /&gt;
&lt;br /&gt;
V uses the strong consistency model. This model can cause issues with concurrency because in V files are a memory space. Thus two different users accessing the same file and in fact accessing the same memory location. This could result in issues unless there is an effective implementation to deal with multiple versions, etc.&lt;br /&gt;
&lt;br /&gt;
VMTP protocol was used for communication. It supports request-respond behavior. Besides, it provides transparency, group communication facility and flow control. It is pretty much like TCP.&lt;/div&gt;</summary>
		<author><name>Ameti073</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2015W_Session_4&amp;diff=19864</id>
		<title>DistOS 2015W Session 4</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2015W_Session_4&amp;diff=19864"/>
		<updated>2015-02-11T03:32:21Z</updated>

		<summary type="html">&lt;p&gt;Ameti073: /* Pool processors */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Andrew File System =&lt;br /&gt;
AFS (Andrew File System) was set up as a direct response to NFS. Essentially universities found issues when they tried to scale NFS in a way that would allow them to share files amongst their staff effectively. AFS was more scalable than NFS because read-write operations happened locally before they were committed to the server (data store).&lt;br /&gt;
&lt;br /&gt;
Since AFS copied files locally when they were opened and only sent the data back when they were closed, all operations during that time are very fast and do need the network. NFS works with files remotely, so there is no data to transfer when opening/closing the file, making those operations instant.&lt;br /&gt;
&lt;br /&gt;
There are several problems with this design, however.&lt;br /&gt;
* The local system must have enough space to temporarily store the file.&lt;br /&gt;
* Opening and closing the files requires a lot of bandwidth for large files. To read even a single byte, the entire file must be retrieved (later versions remedied this).&lt;br /&gt;
* If the close operation fails, the system will not have the updated version of the file. Many programs don&#039;t even check the return value of the close operation, giving users the false impression that everything went well.&lt;br /&gt;
&lt;br /&gt;
Given all this, AFS was suitable for working with small files, not large ones, limiting its usefulness. It is also notoriously annoying to set up as it is geared towards university-sized networks, further limiting its success.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Amoeba Operating System =&lt;br /&gt;
&lt;br /&gt;
=== Capablities: ===&lt;br /&gt;
* Pointer to the object&lt;br /&gt;
* Capability assigning right to perform to some operation to the object ticket &lt;br /&gt;
* Communicate wide area network &lt;br /&gt;
* a kind of ticket or key that allows the holder of the capa- bility to perform some (not neces- sarily all) &lt;br /&gt;
* Each user process owns some collection of capabilities, which together define the set of objects it may access and the types of operations that my ne performed on each &lt;br /&gt;
* After the server has performed the operation, it sends back a reply message that unblocks the client &lt;br /&gt;
* Sending messages, blocking and accepting forms the remote procedure call that can be encapsulate using to make entire remote operation look like local procedure &lt;br /&gt;
* Second field:  used by the sever to identify which of its objects is being addressed server port and object number identify object which operation to performed  &lt;br /&gt;
* Generates 48-bit random number     &lt;br /&gt;
* The third field is the right field which contains a bit map telling which operation the holder of the capability  may performed&lt;br /&gt;
* X11 Window management&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Unique features =&lt;br /&gt;
&lt;br /&gt;
== Pool processors ==&lt;br /&gt;
Pool processors are group of CPUs that are dynamically allocated as user needs. When a program is executed, any of the available processor run.&lt;br /&gt;
&lt;br /&gt;
=== Thread Management: ===&lt;br /&gt;
* Same process have multiple thread and each process has its own registered counter and stack &lt;br /&gt;
* Behave like process&lt;br /&gt;
* It can synchronized using mutex semaphore &lt;br /&gt;
* File: Multiple thread, &lt;br /&gt;
* Blocked when there&#039;s multiple threads &lt;br /&gt;
* Buttlet thread the mutex&lt;br /&gt;
* The careful reader may have noticed that user process can pull 813kbytes/sec&lt;br /&gt;
&lt;br /&gt;
= The V Distributed System = &lt;br /&gt;
&lt;br /&gt;
* First tent in V design: High Performance communication is the most critical facility for distributed systems.&lt;br /&gt;
* Second; The protocols, not the software, define the system.&lt;br /&gt;
* Third; a relatively small operating system kernel can implement the basic protocols and services providing a simple network-transparent process, address space &amp;amp; communication model.&lt;br /&gt;
&lt;br /&gt;
=== Ideas that significantly affected the design ===&lt;br /&gt;
* Shared Memory.&lt;br /&gt;
* Dealing with group of entities same as they deal w/individual entities.&lt;br /&gt;
* Efficient file caching mechanism using the virtual memory caching mechanism.&lt;br /&gt;
&lt;br /&gt;
=== Design Decisions ===&lt;br /&gt;
* Designed for a cluster of workstations with high speed network access ( only really supports LAN ).&lt;br /&gt;
* Abstract the physical architecture of the participating workstations, by defining common protocols providing well-defined interfaces.&lt;br /&gt;
&lt;br /&gt;
V was run on LAN, and its developers developed a really fast IPC protocol which allowed for it to be a fasted distributed operating system in a small geographic area. Aside from the IPC protocols, V also implemented RPC calls in the background.&lt;br /&gt;
&lt;br /&gt;
V uses the strong consistency model. This model can cause issues with concurrency because in V files are a memory space. Thus two different users accessing the same file and in fact accessing the same memory location. This could result in issues unless there is an effective implementation to deal with multiple versions, etc.&lt;br /&gt;
&lt;br /&gt;
VMTP protocol was used for communication. It supports request-respond behavior. Besides, it provides transparency, group communication facility and flow control. It is pretty much like TCP.&lt;/div&gt;</summary>
		<author><name>Ameti073</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2015W_Session_4&amp;diff=19863</id>
		<title>DistOS 2015W Session 4</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2015W_Session_4&amp;diff=19863"/>
		<updated>2015-02-11T03:30:17Z</updated>

		<summary type="html">&lt;p&gt;Ameti073: /* Capablities: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Andrew File System =&lt;br /&gt;
AFS (Andrew File System) was set up as a direct response to NFS. Essentially universities found issues when they tried to scale NFS in a way that would allow them to share files amongst their staff effectively. AFS was more scalable than NFS because read-write operations happened locally before they were committed to the server (data store).&lt;br /&gt;
&lt;br /&gt;
Since AFS copied files locally when they were opened and only sent the data back when they were closed, all operations during that time are very fast and do need the network. NFS works with files remotely, so there is no data to transfer when opening/closing the file, making those operations instant.&lt;br /&gt;
&lt;br /&gt;
There are several problems with this design, however.&lt;br /&gt;
* The local system must have enough space to temporarily store the file.&lt;br /&gt;
* Opening and closing the files requires a lot of bandwidth for large files. To read even a single byte, the entire file must be retrieved (later versions remedied this).&lt;br /&gt;
* If the close operation fails, the system will not have the updated version of the file. Many programs don&#039;t even check the return value of the close operation, giving users the false impression that everything went well.&lt;br /&gt;
&lt;br /&gt;
Given all this, AFS was suitable for working with small files, not large ones, limiting its usefulness. It is also notoriously annoying to set up as it is geared towards university-sized networks, further limiting its success.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Amoeba Operating System =&lt;br /&gt;
&lt;br /&gt;
=== Capablities: ===&lt;br /&gt;
* Pointer to the object&lt;br /&gt;
* Capability assigning right to perform to some operation to the object ticket &lt;br /&gt;
* Communicate wide area network &lt;br /&gt;
* a kind of ticket or key that allows the holder of the capa- bility to perform some (not neces- sarily all) &lt;br /&gt;
* Each user process owns some collection of capabilities, which together define the set of objects it may access and the types of operations that my ne performed on each &lt;br /&gt;
* After the server has performed the operation, it sends back a reply message that unblocks the client &lt;br /&gt;
* Sending messages, blocking and accepting forms the remote procedure call that can be encapsulate using to make entire remote operation look like local procedure &lt;br /&gt;
* Second field:  used by the sever to identify which of its objects is being addressed server port and object number identify object which operation to performed  &lt;br /&gt;
* Generates 48-bit random number     &lt;br /&gt;
* The third field is the right field which contains a bit map telling which operation the holder of the capability  may performed&lt;br /&gt;
* X11 Window management&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Unique features =&lt;br /&gt;
&lt;br /&gt;
== Pool processors ==&lt;br /&gt;
&lt;br /&gt;
=== Thread Management: ===&lt;br /&gt;
* Same process have multiple thread and each process has its own registered counter and stack &lt;br /&gt;
* Behave like process&lt;br /&gt;
* It can synchronized using mutex semaphore &lt;br /&gt;
* File: Multiple thread, &lt;br /&gt;
* Blocked when there&#039;s multiple threads &lt;br /&gt;
* Buttlet thread the mutex&lt;br /&gt;
* The careful reader may have noticed that user process can pull 813kbytes/sec&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= The V Distributed System = &lt;br /&gt;
&lt;br /&gt;
* First tent in V design: High Performance communication is the most critical facility for distributed systems.&lt;br /&gt;
* Second; The protocols, not the software, define the system.&lt;br /&gt;
* Third; a relatively small operating system kernel can implement the basic protocols and services providing a simple network-transparent process, address space &amp;amp; communication model.&lt;br /&gt;
&lt;br /&gt;
=== Ideas that significantly affected the design ===&lt;br /&gt;
* Shared Memory.&lt;br /&gt;
* Dealing with group of entities same as they deal w/individual entities.&lt;br /&gt;
* Efficient file caching mechanism using the virtual memory caching mechanism.&lt;br /&gt;
&lt;br /&gt;
=== Design Decisions ===&lt;br /&gt;
* Designed for a cluster of workstations with high speed network access ( only really supports LAN ).&lt;br /&gt;
* Abstract the physical architecture of the participating workstations, by defining common protocols providing well-defined interfaces.&lt;br /&gt;
&lt;br /&gt;
V was run on LAN, and its developers developed a really fast IPC protocol which allowed for it to be a fasted distributed operating system in a small geographic area. Aside from the IPC protocols, V also implemented RPC calls in the background.&lt;br /&gt;
&lt;br /&gt;
V uses the strong consistency model. This model can cause issues with concurrency because in V files are a memory space. Thus two different users accessing the same file and in fact accessing the same memory location. This could result in issues unless there is an effective implementation to deal with multiple versions, etc.&lt;br /&gt;
&lt;br /&gt;
VMTP protocol was used for communication. It supports request-respond behavior. Besides, it provides transparency, group communication facility and flow control. It is pretty much like TCP.&lt;/div&gt;</summary>
		<author><name>Ameti073</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2015W_Session_5&amp;diff=19862</id>
		<title>DistOS 2015W Session 5</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2015W_Session_5&amp;diff=19862"/>
		<updated>2015-02-11T03:23:25Z</updated>

		<summary type="html">&lt;p&gt;Ameti073: /* Similaritieis with the UNIX */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= The Clouds Distributed Operating System =&lt;br /&gt;
It is a distributed OS running on a set of computers that are interconnected by a group of network. It basically unifies different computers into a single component.&lt;br /&gt;
&lt;br /&gt;
The OS is based on 2 patterns:&lt;br /&gt;
* Message Based OS&lt;br /&gt;
* Object Based  OS&lt;br /&gt;
&lt;br /&gt;
== Object Thread Model ==&lt;br /&gt;
&lt;br /&gt;
The structure of this is based on object thread model. It has set of objects which are defined by the class. Objects respond to messages. Sending message to object causes object to execute the method and then reply back. &lt;br /&gt;
&lt;br /&gt;
The system has &#039;&#039;&#039;active objects&#039;&#039;&#039; and &#039;&#039;&#039;passive objects&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
# Active objects are the objects which have one or more processes associated with them and further they can communicate with the external environment. &lt;br /&gt;
# Passive objects are those that currently do not have an active thread executing in them.&lt;br /&gt;
&lt;br /&gt;
The content of the Clouds data is long lived. Since the memory is implemented as a single-level store, the data exists forever and can survive system crashes and shut downs.&lt;br /&gt;
&lt;br /&gt;
== Threads ==&lt;br /&gt;
&lt;br /&gt;
The threads are the logical path of execution that traverse objects and executes code in them. The Clouds thread is not bound to a single address space. Several threads can enter an object simultaneously and execute concurrently. The nature of the Clouds object prohibits a thread from accessing any data outside the current address space in which it is executing.&lt;br /&gt;
&lt;br /&gt;
== Interaction Between Objects and Threads ==&lt;br /&gt;
&lt;br /&gt;
# Inter object interfaces are procedural&lt;br /&gt;
# Invocations work across machine boundaries&lt;br /&gt;
# Objects in clouds unify concept of persistent storage and memory to create address space, thus making the programming simpler.&lt;br /&gt;
# Control flow achieved by threads invoking objects.&lt;br /&gt;
&lt;br /&gt;
== Clouds Environment ==&lt;br /&gt;
&lt;br /&gt;
# Integrates set of homogeneous machines into one seamless environment&lt;br /&gt;
# There are three logical categories of machines- Compute Server, User Workstation and Data server.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Plan 9 =&lt;br /&gt;
&lt;br /&gt;
Plan 9 is a general purpose, multi-user and mobile computing environment physically distributed across machines. Development of the system began in the late 1980s. The system was built at Bell Labs - the birth place of Unix. The original Unix OS had no support for networking, and there were many attempts over the years by others to create distributed systems with Unix compatibility. Plan 9, however, is distributed systems done following the original Unix philosophy.&lt;br /&gt;
&lt;br /&gt;
The goals of this system were:&lt;br /&gt;
# To built a distributed system that can be centrally administered.&lt;br /&gt;
# Be cost effective using cheap, modern microcomputers. &lt;br /&gt;
&lt;br /&gt;
The distribution itself is transparent to most programs. This property is made possible by 2 properties:&lt;br /&gt;
# A per process group namespace.&lt;br /&gt;
# Uniform access to most resources by representing them as a file.&lt;br /&gt;
&lt;br /&gt;
== Unix Compatibility ==&lt;br /&gt;
&lt;br /&gt;
The commands, libraries and system calls are similar to that of Unix and therefore a casual user cannot distinguish between these two. The problems in UNIX were too deep to fix but still the various ideas were brought along. The problems addressed badly by UNIX were improved. Old tools were dropped and others were polished and reused.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Similaritieis with the UNIX ==&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;shell&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Various C compilers&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Unique Features ==&lt;br /&gt;
&lt;br /&gt;
What actually distinguishes Plan 9 is its &#039;&#039;&#039;organization&#039;&#039;&#039;. Plan 9 is divided along the lines of service function.&lt;br /&gt;
* CPU services and terminals use same kernel.&lt;br /&gt;
* Users may choose to run programs locally or remotely on CPU servers.&lt;br /&gt;
* It lets the user choose whether they want a distributed or centralized system.&lt;br /&gt;
&lt;br /&gt;
The design of Plan 9 is based on 3 principles:&lt;br /&gt;
# Resources are named and accessed like files in hierarchical file system.&lt;br /&gt;
# Standard protocol 9P.&lt;br /&gt;
# Disjoint hierarchical provided by different services are joined together into single private hierarchical file name space.&lt;br /&gt;
&lt;br /&gt;
=== Virtual Namespaces ===&lt;br /&gt;
&lt;br /&gt;
In a virtual namespace, a user boots a terminal or connects to a CPU server and then a new process group is created. Processes in group can either add to or rearrange their name space using two system calls - mount and bind.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Mount&#039;&#039;&#039; is used to attach new file system to a point in name space.&lt;br /&gt;
* &#039;&#039;&#039;Bind&#039;&#039;&#039; is used to attach a kernel resident (existing, mounted) file system to name space and also arrange pieces of name space.&lt;br /&gt;
* There is also &#039;&#039;&#039;unbind&#039;&#039;&#039; which undoes the effects of the other two calls.&lt;br /&gt;
&lt;br /&gt;
Namespaces in Plan 9 are on a per-process basis. While everything had a way reference resources with a unique name, using mount and bind, every process could also build their namespace as they saw fit.&lt;br /&gt;
&lt;br /&gt;
Since most resources are in the form of files (and folders), the term &#039;&#039;namespace&#039;&#039; really only refers to the filesystem layout.&lt;br /&gt;
&lt;br /&gt;
=== Parallel Programming ===&lt;br /&gt;
The parallel programming has two aspects:&lt;br /&gt;
* Kernel provides simple process model and carefully designed system calls for synchronization.&lt;br /&gt;
* Programming language supports concurrent programming.&lt;br /&gt;
&lt;br /&gt;
== Legacy ==&lt;br /&gt;
&lt;br /&gt;
Even though Plan 9 is no longer developed, the good ideas from the system still exist today. For example, the &#039;&#039;/proc&#039;&#039; virtual filesystem which displays current process information in the form of files exists in moden Linux kernels.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Google File System =&lt;br /&gt;
&lt;br /&gt;
It is scalable, distributed file system for large, data intensive applications. It is crafted to Google&#039;s unique needs as a search engine company.&lt;br /&gt;
&lt;br /&gt;
Unlike most filesystems, GFS must be implemented by individual applications and is not part of the kernel. While this introduces some technical overhead, it gives the system more freedom to implement or not implement certain non-standard features.&lt;br /&gt;
&lt;br /&gt;
== Architecture ==&lt;br /&gt;
&lt;br /&gt;
The architecture of the Google file system consists of a single master, multiple chunk-servers and multiple clients. Chunk servers are used to store the data in uniformly sized chunks. Each chunk is identified by globally unique 64 bit handle assigned by master at the time of creation. The chunks are split into 64KB blocks, each with its own hashsum for data integrity checks. The chunks are replicated between servers, 3 by default. The master maintains all the file system metadata which includes the namespace and chunk location.&lt;br /&gt;
&lt;br /&gt;
Each of the chunks is 64 MB large (contrast this to the typical filesystem sectors of 512 or 4096 bytes) as the system is meant to hold enormous amount of data - namely the internet. The large chunk size is also important for the scalability of the system - the larger the chunk size, the less metadata the master server has to store for any given amount of data. With the current size, the master server is able to store the entirety of the metadata in memory, increasing performance by a significant margin.&lt;br /&gt;
&lt;br /&gt;
== Operation ==&lt;br /&gt;
&lt;br /&gt;
Master and Chunk server communication consists of&lt;br /&gt;
# checking whether there is any chunk-server is down.&lt;br /&gt;
# checking if any file is corrupted.&lt;br /&gt;
# deleting stale chunks&lt;br /&gt;
&lt;br /&gt;
When a client want to do some operations on the chunks&lt;br /&gt;
# it first asks the master server for the list of servers that store the parts of a file it wants to access&lt;br /&gt;
# it receives a list of chunk servers, with multiple servers for each chunk&lt;br /&gt;
# it finally communicates with the the chunk servers to perform the operation&lt;br /&gt;
&lt;br /&gt;
The system is geared towards appends and sequential reads. This is why the master server responds with multiple server addresses for each chunk - the client can then request a small piece from each server, increasing the data throughput linearly with the number of servers. Writes, in general, are in the form of a special &#039;&#039;append&#039;&#039; system call. When appending, there is no chance that two clients will want to write to the same location at the same time. This helps avoid any potential synchronization issues. If there are multiple appends to the same file at the same time, the chunk servers are free to order them as they wish (chunks on each server are not guaranteed to be byte-for-byte identical). While a problem in the general sense, this is good enough for Google&#039;s needs.&lt;br /&gt;
&lt;br /&gt;
== Redundancy ==&lt;br /&gt;
&lt;br /&gt;
GFS is built with failure in mind. The system expects that at any time, there is some server or disk that is malfunctioning. The system deals with the failures as follows.&lt;br /&gt;
&lt;br /&gt;
=== Chunk Servers ===&lt;br /&gt;
&lt;br /&gt;
By default, chunks are replicated to three servers. This exact number depends on the application in question doing the write. When a chunk server finds that some of its data is corrupt, it grabs the data from other servers to repair itself{{Citation needed}}.&lt;br /&gt;
&lt;br /&gt;
=== Master Server ===&lt;br /&gt;
&lt;br /&gt;
For efficiency, there is only a single live master server at a time. While not making the system completely distributed, it avoid many synchronization problems and suits Google&#039;s needs. At any point in time, there are multiple read-only master servers that copy metadata from the currently live master. Should it go down, they will serve any read operations from the clients, until one of the hot spares is promoted to being the new live master server.&lt;/div&gt;</summary>
		<author><name>Ameti073</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2015W_Session_5&amp;diff=19861</id>
		<title>DistOS 2015W Session 5</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2015W_Session_5&amp;diff=19861"/>
		<updated>2015-02-11T03:22:09Z</updated>

		<summary type="html">&lt;p&gt;Ameti073: /* Similaritieis with the UNIX */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= The Clouds Distributed Operating System =&lt;br /&gt;
It is a distributed OS running on a set of computers that are interconnected by a group of network. It basically unifies different computers into a single component.&lt;br /&gt;
&lt;br /&gt;
The OS is based on 2 patterns:&lt;br /&gt;
* Message Based OS&lt;br /&gt;
* Object Based  OS&lt;br /&gt;
&lt;br /&gt;
== Object Thread Model ==&lt;br /&gt;
&lt;br /&gt;
The structure of this is based on object thread model. It has set of objects which are defined by the class. Objects respond to messages. Sending message to object causes object to execute the method and then reply back. &lt;br /&gt;
&lt;br /&gt;
The system has &#039;&#039;&#039;active objects&#039;&#039;&#039; and &#039;&#039;&#039;passive objects&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
# Active objects are the objects which have one or more processes associated with them and further they can communicate with the external environment. &lt;br /&gt;
# Passive objects are those that currently do not have an active thread executing in them.&lt;br /&gt;
&lt;br /&gt;
The content of the Clouds data is long lived. Since the memory is implemented as a single-level store, the data exists forever and can survive system crashes and shut downs.&lt;br /&gt;
&lt;br /&gt;
== Threads ==&lt;br /&gt;
&lt;br /&gt;
The threads are the logical path of execution that traverse objects and executes code in them. The Clouds thread is not bound to a single address space. Several threads can enter an object simultaneously and execute concurrently. The nature of the Clouds object prohibits a thread from accessing any data outside the current address space in which it is executing.&lt;br /&gt;
&lt;br /&gt;
== Interaction Between Objects and Threads ==&lt;br /&gt;
&lt;br /&gt;
# Inter object interfaces are procedural&lt;br /&gt;
# Invocations work across machine boundaries&lt;br /&gt;
# Objects in clouds unify concept of persistent storage and memory to create address space, thus making the programming simpler.&lt;br /&gt;
# Control flow achieved by threads invoking objects.&lt;br /&gt;
&lt;br /&gt;
== Clouds Environment ==&lt;br /&gt;
&lt;br /&gt;
# Integrates set of homogeneous machines into one seamless environment&lt;br /&gt;
# There are three logical categories of machines- Compute Server, User Workstation and Data server.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Plan 9 =&lt;br /&gt;
&lt;br /&gt;
Plan 9 is a general purpose, multi-user and mobile computing environment physically distributed across machines. Development of the system began in the late 1980s. The system was built at Bell Labs - the birth place of Unix. The original Unix OS had no support for networking, and there were many attempts over the years by others to create distributed systems with Unix compatibility. Plan 9, however, is distributed systems done following the original Unix philosophy.&lt;br /&gt;
&lt;br /&gt;
The goals of this system were:&lt;br /&gt;
# To built a distributed system that can be centrally administered.&lt;br /&gt;
# Be cost effective using cheap, modern microcomputers. &lt;br /&gt;
&lt;br /&gt;
The distribution itself is transparent to most programs. This property is made possible by 2 properties:&lt;br /&gt;
# A per process group namespace.&lt;br /&gt;
# Uniform access to most resources by representing them as a file.&lt;br /&gt;
&lt;br /&gt;
== Unix Compatibility ==&lt;br /&gt;
&lt;br /&gt;
The commands, libraries and system calls are similar to that of Unix and therefore a casual user cannot distinguish between these two. The problems in UNIX were too deep to fix but still the various ideas were brought along. The problems addressed badly by UNIX were improved. Old tools were dropped and others were polished and reused.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Similaritieis with the UNIX ==&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;sdfsdf&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Unique Features ==&lt;br /&gt;
&lt;br /&gt;
What actually distinguishes Plan 9 is its &#039;&#039;&#039;organization&#039;&#039;&#039;. Plan 9 is divided along the lines of service function.&lt;br /&gt;
* CPU services and terminals use same kernel.&lt;br /&gt;
* Users may choose to run programs locally or remotely on CPU servers.&lt;br /&gt;
* It lets the user choose whether they want a distributed or centralized system.&lt;br /&gt;
&lt;br /&gt;
The design of Plan 9 is based on 3 principles:&lt;br /&gt;
# Resources are named and accessed like files in hierarchical file system.&lt;br /&gt;
# Standard protocol 9P.&lt;br /&gt;
# Disjoint hierarchical provided by different services are joined together into single private hierarchical file name space.&lt;br /&gt;
&lt;br /&gt;
=== Virtual Namespaces ===&lt;br /&gt;
&lt;br /&gt;
In a virtual namespace, a user boots a terminal or connects to a CPU server and then a new process group is created. Processes in group can either add to or rearrange their name space using two system calls - mount and bind.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Mount&#039;&#039;&#039; is used to attach new file system to a point in name space.&lt;br /&gt;
* &#039;&#039;&#039;Bind&#039;&#039;&#039; is used to attach a kernel resident (existing, mounted) file system to name space and also arrange pieces of name space.&lt;br /&gt;
* There is also &#039;&#039;&#039;unbind&#039;&#039;&#039; which undoes the effects of the other two calls.&lt;br /&gt;
&lt;br /&gt;
Namespaces in Plan 9 are on a per-process basis. While everything had a way reference resources with a unique name, using mount and bind, every process could also build their namespace as they saw fit.&lt;br /&gt;
&lt;br /&gt;
Since most resources are in the form of files (and folders), the term &#039;&#039;namespace&#039;&#039; really only refers to the filesystem layout.&lt;br /&gt;
&lt;br /&gt;
=== Parallel Programming ===&lt;br /&gt;
The parallel programming has two aspects:&lt;br /&gt;
* Kernel provides simple process model and carefully designed system calls for synchronization.&lt;br /&gt;
* Programming language supports concurrent programming.&lt;br /&gt;
&lt;br /&gt;
== Legacy ==&lt;br /&gt;
&lt;br /&gt;
Even though Plan 9 is no longer developed, the good ideas from the system still exist today. For example, the &#039;&#039;/proc&#039;&#039; virtual filesystem which displays current process information in the form of files exists in moden Linux kernels.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Google File System =&lt;br /&gt;
&lt;br /&gt;
It is scalable, distributed file system for large, data intensive applications. It is crafted to Google&#039;s unique needs as a search engine company.&lt;br /&gt;
&lt;br /&gt;
Unlike most filesystems, GFS must be implemented by individual applications and is not part of the kernel. While this introduces some technical overhead, it gives the system more freedom to implement or not implement certain non-standard features.&lt;br /&gt;
&lt;br /&gt;
== Architecture ==&lt;br /&gt;
&lt;br /&gt;
The architecture of the Google file system consists of a single master, multiple chunk-servers and multiple clients. Chunk servers are used to store the data in uniformly sized chunks. Each chunk is identified by globally unique 64 bit handle assigned by master at the time of creation. The chunks are split into 64KB blocks, each with its own hashsum for data integrity checks. The chunks are replicated between servers, 3 by default. The master maintains all the file system metadata which includes the namespace and chunk location.&lt;br /&gt;
&lt;br /&gt;
Each of the chunks is 64 MB large (contrast this to the typical filesystem sectors of 512 or 4096 bytes) as the system is meant to hold enormous amount of data - namely the internet. The large chunk size is also important for the scalability of the system - the larger the chunk size, the less metadata the master server has to store for any given amount of data. With the current size, the master server is able to store the entirety of the metadata in memory, increasing performance by a significant margin.&lt;br /&gt;
&lt;br /&gt;
== Operation ==&lt;br /&gt;
&lt;br /&gt;
Master and Chunk server communication consists of&lt;br /&gt;
# checking whether there is any chunk-server is down.&lt;br /&gt;
# checking if any file is corrupted.&lt;br /&gt;
# deleting stale chunks&lt;br /&gt;
&lt;br /&gt;
When a client want to do some operations on the chunks&lt;br /&gt;
# it first asks the master server for the list of servers that store the parts of a file it wants to access&lt;br /&gt;
# it receives a list of chunk servers, with multiple servers for each chunk&lt;br /&gt;
# it finally communicates with the the chunk servers to perform the operation&lt;br /&gt;
&lt;br /&gt;
The system is geared towards appends and sequential reads. This is why the master server responds with multiple server addresses for each chunk - the client can then request a small piece from each server, increasing the data throughput linearly with the number of servers. Writes, in general, are in the form of a special &#039;&#039;append&#039;&#039; system call. When appending, there is no chance that two clients will want to write to the same location at the same time. This helps avoid any potential synchronization issues. If there are multiple appends to the same file at the same time, the chunk servers are free to order them as they wish (chunks on each server are not guaranteed to be byte-for-byte identical). While a problem in the general sense, this is good enough for Google&#039;s needs.&lt;br /&gt;
&lt;br /&gt;
== Redundancy ==&lt;br /&gt;
&lt;br /&gt;
GFS is built with failure in mind. The system expects that at any time, there is some server or disk that is malfunctioning. The system deals with the failures as follows.&lt;br /&gt;
&lt;br /&gt;
=== Chunk Servers ===&lt;br /&gt;
&lt;br /&gt;
By default, chunks are replicated to three servers. This exact number depends on the application in question doing the write. When a chunk server finds that some of its data is corrupt, it grabs the data from other servers to repair itself{{Citation needed}}.&lt;br /&gt;
&lt;br /&gt;
=== Master Server ===&lt;br /&gt;
&lt;br /&gt;
For efficiency, there is only a single live master server at a time. While not making the system completely distributed, it avoid many synchronization problems and suits Google&#039;s needs. At any point in time, there are multiple read-only master servers that copy metadata from the currently live master. Should it go down, they will serve any read operations from the clients, until one of the hot spares is promoted to being the new live master server.&lt;/div&gt;</summary>
		<author><name>Ameti073</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2015W_Session_5&amp;diff=19860</id>
		<title>DistOS 2015W Session 5</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2015W_Session_5&amp;diff=19860"/>
		<updated>2015-02-11T03:21:37Z</updated>

		<summary type="html">&lt;p&gt;Ameti073: /* Unix Compatibility */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= The Clouds Distributed Operating System =&lt;br /&gt;
It is a distributed OS running on a set of computers that are interconnected by a group of network. It basically unifies different computers into a single component.&lt;br /&gt;
&lt;br /&gt;
The OS is based on 2 patterns:&lt;br /&gt;
* Message Based OS&lt;br /&gt;
* Object Based  OS&lt;br /&gt;
&lt;br /&gt;
== Object Thread Model ==&lt;br /&gt;
&lt;br /&gt;
The structure of this is based on object thread model. It has set of objects which are defined by the class. Objects respond to messages. Sending message to object causes object to execute the method and then reply back. &lt;br /&gt;
&lt;br /&gt;
The system has &#039;&#039;&#039;active objects&#039;&#039;&#039; and &#039;&#039;&#039;passive objects&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
# Active objects are the objects which have one or more processes associated with them and further they can communicate with the external environment. &lt;br /&gt;
# Passive objects are those that currently do not have an active thread executing in them.&lt;br /&gt;
&lt;br /&gt;
The content of the Clouds data is long lived. Since the memory is implemented as a single-level store, the data exists forever and can survive system crashes and shut downs.&lt;br /&gt;
&lt;br /&gt;
== Threads ==&lt;br /&gt;
&lt;br /&gt;
The threads are the logical path of execution that traverse objects and executes code in them. The Clouds thread is not bound to a single address space. Several threads can enter an object simultaneously and execute concurrently. The nature of the Clouds object prohibits a thread from accessing any data outside the current address space in which it is executing.&lt;br /&gt;
&lt;br /&gt;
== Interaction Between Objects and Threads ==&lt;br /&gt;
&lt;br /&gt;
# Inter object interfaces are procedural&lt;br /&gt;
# Invocations work across machine boundaries&lt;br /&gt;
# Objects in clouds unify concept of persistent storage and memory to create address space, thus making the programming simpler.&lt;br /&gt;
# Control flow achieved by threads invoking objects.&lt;br /&gt;
&lt;br /&gt;
== Clouds Environment ==&lt;br /&gt;
&lt;br /&gt;
# Integrates set of homogeneous machines into one seamless environment&lt;br /&gt;
# There are three logical categories of machines- Compute Server, User Workstation and Data server.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Plan 9 =&lt;br /&gt;
&lt;br /&gt;
Plan 9 is a general purpose, multi-user and mobile computing environment physically distributed across machines. Development of the system began in the late 1980s. The system was built at Bell Labs - the birth place of Unix. The original Unix OS had no support for networking, and there were many attempts over the years by others to create distributed systems with Unix compatibility. Plan 9, however, is distributed systems done following the original Unix philosophy.&lt;br /&gt;
&lt;br /&gt;
The goals of this system were:&lt;br /&gt;
# To built a distributed system that can be centrally administered.&lt;br /&gt;
# Be cost effective using cheap, modern microcomputers. &lt;br /&gt;
&lt;br /&gt;
The distribution itself is transparent to most programs. This property is made possible by 2 properties:&lt;br /&gt;
# A per process group namespace.&lt;br /&gt;
# Uniform access to most resources by representing them as a file.&lt;br /&gt;
&lt;br /&gt;
== Unix Compatibility ==&lt;br /&gt;
&lt;br /&gt;
The commands, libraries and system calls are similar to that of Unix and therefore a casual user cannot distinguish between these two. The problems in UNIX were too deep to fix but still the various ideas were brought along. The problems addressed badly by UNIX were improved. Old tools were dropped and others were polished and reused.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Similaritieis with the UNIX ==&lt;br /&gt;
&amp;lt;li&amp;gt;sdfsdf&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Unique Features ==&lt;br /&gt;
&lt;br /&gt;
What actually distinguishes Plan 9 is its &#039;&#039;&#039;organization&#039;&#039;&#039;. Plan 9 is divided along the lines of service function.&lt;br /&gt;
* CPU services and terminals use same kernel.&lt;br /&gt;
* Users may choose to run programs locally or remotely on CPU servers.&lt;br /&gt;
* It lets the user choose whether they want a distributed or centralized system.&lt;br /&gt;
&lt;br /&gt;
The design of Plan 9 is based on 3 principles:&lt;br /&gt;
# Resources are named and accessed like files in hierarchical file system.&lt;br /&gt;
# Standard protocol 9P.&lt;br /&gt;
# Disjoint hierarchical provided by different services are joined together into single private hierarchical file name space.&lt;br /&gt;
&lt;br /&gt;
=== Virtual Namespaces ===&lt;br /&gt;
&lt;br /&gt;
In a virtual namespace, a user boots a terminal or connects to a CPU server and then a new process group is created. Processes in group can either add to or rearrange their name space using two system calls - mount and bind.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Mount&#039;&#039;&#039; is used to attach new file system to a point in name space.&lt;br /&gt;
* &#039;&#039;&#039;Bind&#039;&#039;&#039; is used to attach a kernel resident (existing, mounted) file system to name space and also arrange pieces of name space.&lt;br /&gt;
* There is also &#039;&#039;&#039;unbind&#039;&#039;&#039; which undoes the effects of the other two calls.&lt;br /&gt;
&lt;br /&gt;
Namespaces in Plan 9 are on a per-process basis. While everything had a way reference resources with a unique name, using mount and bind, every process could also build their namespace as they saw fit.&lt;br /&gt;
&lt;br /&gt;
Since most resources are in the form of files (and folders), the term &#039;&#039;namespace&#039;&#039; really only refers to the filesystem layout.&lt;br /&gt;
&lt;br /&gt;
=== Parallel Programming ===&lt;br /&gt;
The parallel programming has two aspects:&lt;br /&gt;
* Kernel provides simple process model and carefully designed system calls for synchronization.&lt;br /&gt;
* Programming language supports concurrent programming.&lt;br /&gt;
&lt;br /&gt;
== Legacy ==&lt;br /&gt;
&lt;br /&gt;
Even though Plan 9 is no longer developed, the good ideas from the system still exist today. For example, the &#039;&#039;/proc&#039;&#039; virtual filesystem which displays current process information in the form of files exists in moden Linux kernels.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Google File System =&lt;br /&gt;
&lt;br /&gt;
It is scalable, distributed file system for large, data intensive applications. It is crafted to Google&#039;s unique needs as a search engine company.&lt;br /&gt;
&lt;br /&gt;
Unlike most filesystems, GFS must be implemented by individual applications and is not part of the kernel. While this introduces some technical overhead, it gives the system more freedom to implement or not implement certain non-standard features.&lt;br /&gt;
&lt;br /&gt;
== Architecture ==&lt;br /&gt;
&lt;br /&gt;
The architecture of the Google file system consists of a single master, multiple chunk-servers and multiple clients. Chunk servers are used to store the data in uniformly sized chunks. Each chunk is identified by globally unique 64 bit handle assigned by master at the time of creation. The chunks are split into 64KB blocks, each with its own hashsum for data integrity checks. The chunks are replicated between servers, 3 by default. The master maintains all the file system metadata which includes the namespace and chunk location.&lt;br /&gt;
&lt;br /&gt;
Each of the chunks is 64 MB large (contrast this to the typical filesystem sectors of 512 or 4096 bytes) as the system is meant to hold enormous amount of data - namely the internet. The large chunk size is also important for the scalability of the system - the larger the chunk size, the less metadata the master server has to store for any given amount of data. With the current size, the master server is able to store the entirety of the metadata in memory, increasing performance by a significant margin.&lt;br /&gt;
&lt;br /&gt;
== Operation ==&lt;br /&gt;
&lt;br /&gt;
Master and Chunk server communication consists of&lt;br /&gt;
# checking whether there is any chunk-server is down.&lt;br /&gt;
# checking if any file is corrupted.&lt;br /&gt;
# deleting stale chunks&lt;br /&gt;
&lt;br /&gt;
When a client want to do some operations on the chunks&lt;br /&gt;
# it first asks the master server for the list of servers that store the parts of a file it wants to access&lt;br /&gt;
# it receives a list of chunk servers, with multiple servers for each chunk&lt;br /&gt;
# it finally communicates with the the chunk servers to perform the operation&lt;br /&gt;
&lt;br /&gt;
The system is geared towards appends and sequential reads. This is why the master server responds with multiple server addresses for each chunk - the client can then request a small piece from each server, increasing the data throughput linearly with the number of servers. Writes, in general, are in the form of a special &#039;&#039;append&#039;&#039; system call. When appending, there is no chance that two clients will want to write to the same location at the same time. This helps avoid any potential synchronization issues. If there are multiple appends to the same file at the same time, the chunk servers are free to order them as they wish (chunks on each server are not guaranteed to be byte-for-byte identical). While a problem in the general sense, this is good enough for Google&#039;s needs.&lt;br /&gt;
&lt;br /&gt;
== Redundancy ==&lt;br /&gt;
&lt;br /&gt;
GFS is built with failure in mind. The system expects that at any time, there is some server or disk that is malfunctioning. The system deals with the failures as follows.&lt;br /&gt;
&lt;br /&gt;
=== Chunk Servers ===&lt;br /&gt;
&lt;br /&gt;
By default, chunks are replicated to three servers. This exact number depends on the application in question doing the write. When a chunk server finds that some of its data is corrupt, it grabs the data from other servers to repair itself{{Citation needed}}.&lt;br /&gt;
&lt;br /&gt;
=== Master Server ===&lt;br /&gt;
&lt;br /&gt;
For efficiency, there is only a single live master server at a time. While not making the system completely distributed, it avoid many synchronization problems and suits Google&#039;s needs. At any point in time, there are multiple read-only master servers that copy metadata from the currently live master. Should it go down, they will serve any read operations from the clients, until one of the hot spares is promoted to being the new live master server.&lt;/div&gt;</summary>
		<author><name>Ameti073</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2015W_Session_4&amp;diff=19803</id>
		<title>DistOS 2015W Session 4</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2015W_Session_4&amp;diff=19803"/>
		<updated>2015-02-05T04:01:44Z</updated>

		<summary type="html">&lt;p&gt;Ameti073: /* Design Decisions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Andrew File System =&lt;br /&gt;
AFS (Andrew File System) was set up as a direct response to NFS. Essentially universities found issues when they tried to scale NFS in a way that would allow them to share files amongst their staff effectively. AFS was more scalable than NFS because read-write operations happened locally before they were committed to the server (data store). As such the largest file size that AFS could deal with was the size of its local disk cache. &lt;br /&gt;
&lt;br /&gt;
AFS open-close operations were more time-consuming, while for NFS its read-write operations were more time consuming.&lt;br /&gt;
&lt;br /&gt;
= Amoeba Operating System =&lt;br /&gt;
&lt;br /&gt;
=== Capablities: ===&lt;br /&gt;
* Pointer to the object&lt;br /&gt;
* Capability assigning right to perform to some operation to the object ticket &lt;br /&gt;
* Communicate wide area network &lt;br /&gt;
* a kind of ticket or key that allows the holder of the capa- bility to perform some (not neces- sarily all) &lt;br /&gt;
* Each user process owns some collection of capabilities, which together define the set of objects it may access and the types of operations that my ne performed on each &lt;br /&gt;
* After the server has performed the operation, it sends back a reply message that unblocks the client &lt;br /&gt;
* Sending messages, blocking and accepting forms the remote procedure call that can be encapsulate using to make entire remote operation look like local procedure &lt;br /&gt;
* Second field:  used by the sever to identify which of its objects is being addressed server port and object number identify object which operation to performed  &lt;br /&gt;
* Generates 48-bit random number     &lt;br /&gt;
* The third field is the right field which contains a bit map telling which operation the holder of the capability  may performed&lt;br /&gt;
* X11 Window management&lt;br /&gt;
&lt;br /&gt;
=== Thread Management: ===&lt;br /&gt;
* Same process have multiple thread and each process has its own registered counter and stack &lt;br /&gt;
* Behave like process&lt;br /&gt;
* It can synchronized using mutex semaphore &lt;br /&gt;
* File: Multiple thread, &lt;br /&gt;
* Blocked when there&#039;s multiple threads &lt;br /&gt;
* Buttlet thread the mutex&lt;br /&gt;
* The careful reader may have noticed that user process can pull 813kbytes/sec&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= The V Distributed System = &lt;br /&gt;
&lt;br /&gt;
* First tent in V design: High Performance communication is the most critical facility for distributed systems.&lt;br /&gt;
* Second; The protocols, not the software, define the system.&lt;br /&gt;
* Third; a relatively small operating system kernel can implement the basic protocols and services providing a simple network-transparent process, address space &amp;amp; communication model.&lt;br /&gt;
&lt;br /&gt;
=== Ideas that significantly affected the design ===&lt;br /&gt;
* Shared Memory.&lt;br /&gt;
* Dealing with group of entities same as they deal w/individual entities.&lt;br /&gt;
* Efficient file caching mechanism using the virtual memory caching mechanism.&lt;br /&gt;
&lt;br /&gt;
=== Design Decisions ===&lt;br /&gt;
* Designed for a cluster of workstations with high speed network access ( only really supports LAN ).&lt;br /&gt;
* Abstract the physical architecture of the participating workstations, by defining common protocols providing well-defined interfaces.&lt;br /&gt;
&lt;br /&gt;
V was run on LAN, and its developers developed a really fast IPC protocol which allowed for it to be a fasted distributed operating system in a small geographic area. Aside from the IPC protocols, V also implemented RPC calls in the background.&lt;br /&gt;
&lt;br /&gt;
V uses the strong consistency model. This model can cause issues with concurrency because in V files are a memory space. Thus two different users accessing the same file and in fact accessing the same memory location. This could result in issues unless there is an effective implementation to deal with multiple versions, etc.&lt;br /&gt;
&lt;br /&gt;
VMTP protocol was used for communication. It supports request-respond behavior. Besides, it provides transparency, group communication facility and flow control. It is pretty much like TCP.&lt;/div&gt;</summary>
		<author><name>Ameti073</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2015W_Session_4&amp;diff=19802</id>
		<title>DistOS 2015W Session 4</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2015W_Session_4&amp;diff=19802"/>
		<updated>2015-02-05T04:00:07Z</updated>

		<summary type="html">&lt;p&gt;Ameti073: /* Capablities: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Andrew File System =&lt;br /&gt;
AFS (Andrew File System) was set up as a direct response to NFS. Essentially universities found issues when they tried to scale NFS in a way that would allow them to share files amongst their staff effectively. AFS was more scalable than NFS because read-write operations happened locally before they were committed to the server (data store). As such the largest file size that AFS could deal with was the size of its local disk cache. &lt;br /&gt;
&lt;br /&gt;
AFS open-close operations were more time-consuming, while for NFS its read-write operations were more time consuming.&lt;br /&gt;
&lt;br /&gt;
= Amoeba Operating System =&lt;br /&gt;
&lt;br /&gt;
=== Capablities: ===&lt;br /&gt;
* Pointer to the object&lt;br /&gt;
* Capability assigning right to perform to some operation to the object ticket &lt;br /&gt;
* Communicate wide area network &lt;br /&gt;
* a kind of ticket or key that allows the holder of the capa- bility to perform some (not neces- sarily all) &lt;br /&gt;
* Each user process owns some collection of capabilities, which together define the set of objects it may access and the types of operations that my ne performed on each &lt;br /&gt;
* After the server has performed the operation, it sends back a reply message that unblocks the client &lt;br /&gt;
* Sending messages, blocking and accepting forms the remote procedure call that can be encapsulate using to make entire remote operation look like local procedure &lt;br /&gt;
* Second field:  used by the sever to identify which of its objects is being addressed server port and object number identify object which operation to performed  &lt;br /&gt;
* Generates 48-bit random number     &lt;br /&gt;
* The third field is the right field which contains a bit map telling which operation the holder of the capability  may performed&lt;br /&gt;
* X11 Window management&lt;br /&gt;
&lt;br /&gt;
=== Thread Management: ===&lt;br /&gt;
* Same process have multiple thread and each process has its own registered counter and stack &lt;br /&gt;
* Behave like process&lt;br /&gt;
* It can synchronized using mutex semaphore &lt;br /&gt;
* File: Multiple thread, &lt;br /&gt;
* Blocked when there&#039;s multiple threads &lt;br /&gt;
* Buttlet thread the mutex&lt;br /&gt;
* The careful reader may have noticed that user process can pull 813kbytes/sec&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= The V Distributed System = &lt;br /&gt;
&lt;br /&gt;
* First tent in V design: High Performance communication is the most critical facility for distributed systems.&lt;br /&gt;
* Second; The protocols, not the software, define the system.&lt;br /&gt;
* Third; a relatively small operating system kernel can implement the basic protocols and services providing a simple network-transparent process, address space &amp;amp; communication model.&lt;br /&gt;
&lt;br /&gt;
=== Ideas that significantly affected the design ===&lt;br /&gt;
* Shared Memory.&lt;br /&gt;
* Dealing with group of entities same as they deal w/individual entities.&lt;br /&gt;
* Efficient file caching mechanism using the virtual memory caching mechanism.&lt;br /&gt;
&lt;br /&gt;
=== Design Decisions ===&lt;br /&gt;
* Designed for a cluster of workstations with high speed network access ( only really supports LAN ).&lt;br /&gt;
* Abstract the physical architecture of the participating workstations, by defining common protocols providing well-defined interfaces.&lt;br /&gt;
&lt;br /&gt;
V was run on LAN, and its developers developed a really fast IPC protocol which allowed for it to be a fasted distributed operating system in a small geographic area. Aside from the IPC protocols, V also implemented RPC calls in the background.&lt;br /&gt;
&lt;br /&gt;
V uses the strong consistency model. This model can cause issues with concurrency because in V files are a memory space. Thus two different users accessing the same file and in fact accessing the same memory location. This could result in issues unless there is an effective implementation to deal with multiple versions, etc.&lt;/div&gt;</summary>
		<author><name>Ameti073</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2015W_Session_3&amp;diff=19801</id>
		<title>DistOS 2015W Session 3</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2015W_Session_3&amp;diff=19801"/>
		<updated>2015-02-05T03:56:29Z</updated>

		<summary type="html">&lt;p&gt;Ameti073: /* Locus */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Reading Response Discussion&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Multics ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Team:&#039;&#039;&#039; Sameer, Shivjot, Ambalica, Veena&lt;br /&gt;
&lt;br /&gt;
It came into being in the 1960s and it completely vanished in 2000s. It was started by Bell, General Electric and MIT but Bell backed out of the project in 1969.&lt;br /&gt;
Multics is a time sharing OS which provides Multitasking and Multiprogramming. It is not a Distributed OS but it a Centralized system which was written in the assembly language.&lt;br /&gt;
&lt;br /&gt;
It provides following features:&lt;br /&gt;
# Utility Computing&lt;br /&gt;
# Access Control Lists&lt;br /&gt;
# Single level storage&lt;br /&gt;
# Dynamic linking&lt;br /&gt;
#* Sharded libraries or files can be loaded and linked to Random Access Memory at run time. &lt;br /&gt;
# Hot swapping&lt;br /&gt;
# Multiprocessing System&lt;br /&gt;
# Ring oriented Security&lt;br /&gt;
#* It provides number of levels of authorization within the computer System.&lt;br /&gt;
&lt;br /&gt;
== Unix ==&lt;br /&gt;
&lt;br /&gt;
Unix in its original conception is a small, minimal API system designed by two guys from Bell Labs. It was essentially a OS that would be easy to grasp for an programmer but not much beyond that. The UNIX OS ran on one computer, and terminals ran from that one computer. Thus it is not a distributed operating system as it is centralized and implements time sharing.&lt;br /&gt;
&lt;br /&gt;
== Sun NFS ==&lt;br /&gt;
&lt;br /&gt;
The Sun NFS OS implemented networking using RPC connections. These connections are not secure. Sun wanted to encrypt these RPC connections but encryption would result in government regulations that Sun wanted to avoid in order to sell NFS over seas (See below).&lt;br /&gt;
&lt;br /&gt;
    Sun wanted to encrypt their NFS system but decided not to. In the US encryption is regulated like munitions. Thus when Sun wanted to sell the NFS &lt;br /&gt;
    system abroad they would have to contend with government regulations. To avoid these regulations, Sun decided to sell the unencrypted NFS system abroad.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Team: Mert&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;== Locus ==&lt;br /&gt;
&lt;br /&gt;
# Not scalable (They did not bother themselves about scalability. Locus ran only in five computers.)&lt;br /&gt;
#* Every computer stores a copy of every file&lt;br /&gt;
#* Also used CAS to manage files&lt;br /&gt;
# Not efficient with abstractions&lt;br /&gt;
#* Trying to distribute files and processes&lt;br /&gt;
#Allowed for process migration&lt;br /&gt;
#Transparency&lt;br /&gt;
#* It provided network transparency  to “disguise” its distributed context.&lt;br /&gt;
#Dynamic reconfiguration. (It adapts topology changes.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Locus has lots of similarities with the today&#039;s systems. It uses replication and partitioning which are employed in cloud and distributed systems.&lt;br /&gt;
&lt;br /&gt;
== Sprite ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Team: &#039;&#039;&#039; Jamie, Hassan, Khaled&lt;br /&gt;
&lt;br /&gt;
Sprite had the following Design Features:&lt;br /&gt;
# Network Transparency&lt;br /&gt;
# Process Migration, file transfer between computers&lt;br /&gt;
#* User could initiate a process migration to an idle machine, and if the machine was no longer idle; due to it being used be another user, the system would take care of the process migration to another machine&lt;br /&gt;
# Handling Cache Consistency&lt;br /&gt;
#* Sequential file sharing ==&amp;gt; By using a version number for each file&lt;br /&gt;
#* Concurrent write sharing ==&amp;gt; Disable cache to clients, enable write-blocking and other methods&lt;br /&gt;
# Implemented a caching system that sped up performance&lt;br /&gt;
# Implemented a log structured file system&lt;br /&gt;
#* Log structured file systems are optimized for writes; data is written to cache instead of memory, over reads. This is a way of minimizing the performance issues of doing writes&lt;br /&gt;
#* Example: SSD (Solid-state disks)&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039; main features &#039;&#039;&#039; to take away from the Sprite system is that it implemented a log structured file system, and implemented caching to increase performanace.&lt;/div&gt;</summary>
		<author><name>Ameti073</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2015W_Session_3&amp;diff=19800</id>
		<title>DistOS 2015W Session 3</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2015W_Session_3&amp;diff=19800"/>
		<updated>2015-02-05T03:54:40Z</updated>

		<summary type="html">&lt;p&gt;Ameti073: /* Locus */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Reading Response Discussion&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Multics ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Team:&#039;&#039;&#039; Sameer, Shivjot, Ambalica, Veena&lt;br /&gt;
&lt;br /&gt;
It came into being in the 1960s and it completely vanished in 2000s. It was started by Bell, General Electric and MIT but Bell backed out of the project in 1969.&lt;br /&gt;
Multics is a time sharing OS which provides Multitasking and Multiprogramming. It is not a Distributed OS but it a Centralized system which was written in the assembly language.&lt;br /&gt;
&lt;br /&gt;
It provides following features:&lt;br /&gt;
# Utility Computing&lt;br /&gt;
# Access Control Lists&lt;br /&gt;
# Single level storage&lt;br /&gt;
# Dynamic linking&lt;br /&gt;
#* Sharded libraries or files can be loaded and linked to Random Access Memory at run time. &lt;br /&gt;
# Hot swapping&lt;br /&gt;
# Multiprocessing System&lt;br /&gt;
# Ring oriented Security&lt;br /&gt;
#* It provides number of levels of authorization within the computer System.&lt;br /&gt;
&lt;br /&gt;
== Unix ==&lt;br /&gt;
&lt;br /&gt;
Unix in its original conception is a small, minimal API system designed by two guys from Bell Labs. It was essentially a OS that would be easy to grasp for an programmer but not much beyond that. The UNIX OS ran on one computer, and terminals ran from that one computer. Thus it is not a distributed operating system as it is centralized and implements time sharing.&lt;br /&gt;
&lt;br /&gt;
== Sun NFS ==&lt;br /&gt;
&lt;br /&gt;
The Sun NFS OS implemented networking using RPC connections. These connections are not secure. Sun wanted to encrypt these RPC connections but encryption would result in government regulations that Sun wanted to avoid in order to sell NFS over seas (See below).&lt;br /&gt;
&lt;br /&gt;
    Sun wanted to encrypt their NFS system but decided not to. In the US encryption is regulated like munitions. Thus when Sun wanted to sell the NFS &lt;br /&gt;
    system abroad they would have to contend with government regulations. To avoid these regulations, Sun decided to sell the unencrypted NFS system abroad.&lt;br /&gt;
&lt;br /&gt;
== Locus ==&lt;br /&gt;
&lt;br /&gt;
# Not scalable (They did not bother themselves about scalability. Locus ran only in five computers.)&lt;br /&gt;
#* Every computer stores a copy of every file&lt;br /&gt;
#* Also used CAS to manage files&lt;br /&gt;
# Not efficient with abstractions&lt;br /&gt;
#* Trying to distribute files and processes&lt;br /&gt;
#Allowed for process migration&lt;br /&gt;
#Transparency&lt;br /&gt;
#* It provided network transparency  to “disguise” its distributed context.&lt;br /&gt;
#Dynamic reconfiguration. (It adapts topology changes.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Locus has lots of similarities with the today&#039;s systems. It uses replication and partitioning which are employed in cloud and distributed systems.&lt;br /&gt;
&lt;br /&gt;
== Sprite ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Team: &#039;&#039;&#039; Jamie, Hassan, Khaled&lt;br /&gt;
&lt;br /&gt;
Sprite had the following Design Features:&lt;br /&gt;
# Network Transparency&lt;br /&gt;
# Process Migration, file transfer between computers&lt;br /&gt;
#* User could initiate a process migration to an idle machine, and if the machine was no longer idle; due to it being used be another user, the system would take care of the process migration to another machine&lt;br /&gt;
# Handling Cache Consistency&lt;br /&gt;
#* Sequential file sharing ==&amp;gt; By using a version number for each file&lt;br /&gt;
#* Concurrent write sharing ==&amp;gt; Disable cache to clients, enable write-blocking and other methods&lt;br /&gt;
# Implemented a caching system that sped up performance&lt;br /&gt;
# Implemented a log structured file system&lt;br /&gt;
#* Log structured file systems are optimized for writes; data is written to cache instead of memory, over reads. This is a way of minimizing the performance issues of doing writes&lt;br /&gt;
#* Example: SSD (Solid-state disks)&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039; main features &#039;&#039;&#039; to take away from the Sprite system is that it implemented a log structured file system, and implemented caching to increase performanace.&lt;/div&gt;</summary>
		<author><name>Ameti073</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2015W_Session_3&amp;diff=19799</id>
		<title>DistOS 2015W Session 3</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2015W_Session_3&amp;diff=19799"/>
		<updated>2015-02-05T03:53:01Z</updated>

		<summary type="html">&lt;p&gt;Ameti073: /* Locus */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Reading Response Discussion&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Multics ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Team:&#039;&#039;&#039; Sameer, Shivjot, Ambalica, Veena&lt;br /&gt;
&lt;br /&gt;
It came into being in the 1960s and it completely vanished in 2000s. It was started by Bell, General Electric and MIT but Bell backed out of the project in 1969.&lt;br /&gt;
Multics is a time sharing OS which provides Multitasking and Multiprogramming. It is not a Distributed OS but it a Centralized system which was written in the assembly language.&lt;br /&gt;
&lt;br /&gt;
It provides following features:&lt;br /&gt;
# Utility Computing&lt;br /&gt;
# Access Control Lists&lt;br /&gt;
# Single level storage&lt;br /&gt;
# Dynamic linking&lt;br /&gt;
#* Sharded libraries or files can be loaded and linked to Random Access Memory at run time. &lt;br /&gt;
# Hot swapping&lt;br /&gt;
# Multiprocessing System&lt;br /&gt;
# Ring oriented Security&lt;br /&gt;
#* It provides number of levels of authorization within the computer System.&lt;br /&gt;
&lt;br /&gt;
== Unix ==&lt;br /&gt;
&lt;br /&gt;
Unix in its original conception is a small, minimal API system designed by two guys from Bell Labs. It was essentially a OS that would be easy to grasp for an programmer but not much beyond that. The UNIX OS ran on one computer, and terminals ran from that one computer. Thus it is not a distributed operating system as it is centralized and implements time sharing.&lt;br /&gt;
&lt;br /&gt;
== Sun NFS ==&lt;br /&gt;
&lt;br /&gt;
The Sun NFS OS implemented networking using RPC connections. These connections are not secure. Sun wanted to encrypt these RPC connections but encryption would result in government regulations that Sun wanted to avoid in order to sell NFS over seas (See below).&lt;br /&gt;
&lt;br /&gt;
    Sun wanted to encrypt their NFS system but decided not to. In the US encryption is regulated like munitions. Thus when Sun wanted to sell the NFS &lt;br /&gt;
    system abroad they would have to contend with government regulations. To avoid these regulations, Sun decided to sell the unencrypted NFS system abroad.&lt;br /&gt;
&lt;br /&gt;
== Locus ==&lt;br /&gt;
&lt;br /&gt;
# Not scalable (They did not bother themselves about scalability. Locus ran only in five computers.)&lt;br /&gt;
#* Every computer stores a copy of every file&lt;br /&gt;
#* Also used CAS to manage files&lt;br /&gt;
# Not efficient with abstractions&lt;br /&gt;
#* Trying to distribute files and processes&lt;br /&gt;
#Allowed for process migration&lt;br /&gt;
#Transparency&lt;br /&gt;
#* It provided network transparency  to “disguise” its distributed context.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Locus has lots of similarities with the today&#039;s systems. It uses replication and partitioning which are employed in cloud and distributed systems.&lt;br /&gt;
&lt;br /&gt;
== Sprite ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Team: &#039;&#039;&#039; Jamie, Hassan, Khaled&lt;br /&gt;
&lt;br /&gt;
Sprite had the following Design Features:&lt;br /&gt;
# Network Transparency&lt;br /&gt;
# Process Migration, file transfer between computers&lt;br /&gt;
#* User could initiate a process migration to an idle machine, and if the machine was no longer idle; due to it being used be another user, the system would take care of the process migration to another machine&lt;br /&gt;
# Handling Cache Consistency&lt;br /&gt;
#* Sequential file sharing ==&amp;gt; By using a version number for each file&lt;br /&gt;
#* Concurrent write sharing ==&amp;gt; Disable cache to clients, enable write-blocking and other methods&lt;br /&gt;
# Implemented a caching system that sped up performance&lt;br /&gt;
# Implemented a log structured file system&lt;br /&gt;
#* Log structured file systems are optimized for writes; data is written to cache instead of memory, over reads. This is a way of minimizing the performance issues of doing writes&lt;br /&gt;
#* Example: SSD (Solid-state disks)&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039; main features &#039;&#039;&#039; to take away from the Sprite system is that it implemented a log structured file system, and implemented caching to increase performanace.&lt;/div&gt;</summary>
		<author><name>Ameti073</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2015W_Session_3&amp;diff=19798</id>
		<title>DistOS 2015W Session 3</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2015W_Session_3&amp;diff=19798"/>
		<updated>2015-02-05T03:49:59Z</updated>

		<summary type="html">&lt;p&gt;Ameti073: /* Locus */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Reading Response Discussion&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Multics ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Team:&#039;&#039;&#039; Sameer, Shivjot, Ambalica, Veena&lt;br /&gt;
&lt;br /&gt;
It came into being in the 1960s and it completely vanished in 2000s. It was started by Bell, General Electric and MIT but Bell backed out of the project in 1969.&lt;br /&gt;
Multics is a time sharing OS which provides Multitasking and Multiprogramming. It is not a Distributed OS but it a Centralized system which was written in the assembly language.&lt;br /&gt;
&lt;br /&gt;
It provides following features:&lt;br /&gt;
# Utility Computing&lt;br /&gt;
# Access Control Lists&lt;br /&gt;
# Single level storage&lt;br /&gt;
# Dynamic linking&lt;br /&gt;
#* Sharded libraries or files can be loaded and linked to Random Access Memory at run time. &lt;br /&gt;
# Hot swapping&lt;br /&gt;
# Multiprocessing System&lt;br /&gt;
# Ring oriented Security&lt;br /&gt;
#* It provides number of levels of authorization within the computer System.&lt;br /&gt;
&lt;br /&gt;
== Unix ==&lt;br /&gt;
&lt;br /&gt;
Unix in its original conception is a small, minimal API system designed by two guys from Bell Labs. It was essentially a OS that would be easy to grasp for an programmer but not much beyond that. The UNIX OS ran on one computer, and terminals ran from that one computer. Thus it is not a distributed operating system as it is centralized and implements time sharing.&lt;br /&gt;
&lt;br /&gt;
== Sun NFS ==&lt;br /&gt;
&lt;br /&gt;
The Sun NFS OS implemented networking using RPC connections. These connections are not secure. Sun wanted to encrypt these RPC connections but encryption would result in government regulations that Sun wanted to avoid in order to sell NFS over seas (See below).&lt;br /&gt;
&lt;br /&gt;
    Sun wanted to encrypt their NFS system but decided not to. In the US encryption is regulated like munitions. Thus when Sun wanted to sell the NFS &lt;br /&gt;
    system abroad they would have to contend with government regulations. To avoid these regulations, Sun decided to sell the unencrypted NFS system abroad.&lt;br /&gt;
&lt;br /&gt;
== Locus ==&lt;br /&gt;
&lt;br /&gt;
# Not scalable (They did not bother themselves about scalability. Locus ran only in five computers.)&lt;br /&gt;
#* Every computer stores a copy of every file&lt;br /&gt;
#* Also used CAS to manage files&lt;br /&gt;
# Not efficient with abstractions&lt;br /&gt;
#* Trying to distribute files and processes&lt;br /&gt;
#Allowed for process migration&lt;br /&gt;
#Transparency&lt;br /&gt;
#* It provided network transparency  to “disguise” its distributed context.&lt;br /&gt;
&lt;br /&gt;
== Sprite ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Team: &#039;&#039;&#039; Jamie, Hassan, Khaled&lt;br /&gt;
&lt;br /&gt;
Sprite had the following Design Features:&lt;br /&gt;
# Network Transparency&lt;br /&gt;
# Process Migration, file transfer between computers&lt;br /&gt;
#* User could initiate a process migration to an idle machine, and if the machine was no longer idle; due to it being used be another user, the system would take care of the process migration to another machine&lt;br /&gt;
# Handling Cache Consistency&lt;br /&gt;
#* Sequential file sharing ==&amp;gt; By using a version number for each file&lt;br /&gt;
#* Concurrent write sharing ==&amp;gt; Disable cache to clients, enable write-blocking and other methods&lt;br /&gt;
# Implemented a caching system that sped up performance&lt;br /&gt;
# Implemented a log structured file system&lt;br /&gt;
#* Log structured file systems are optimized for writes; data is written to cache instead of memory, over reads. This is a way of minimizing the performance issues of doing writes&lt;br /&gt;
#* Example: SSD (Solid-state disks)&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039; main features &#039;&#039;&#039; to take away from the Sprite system is that it implemented a log structured file system, and implemented caching to increase performanace.&lt;/div&gt;</summary>
		<author><name>Ameti073</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2015W_Session_3&amp;diff=19797</id>
		<title>DistOS 2015W Session 3</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2015W_Session_3&amp;diff=19797"/>
		<updated>2015-02-05T03:49:22Z</updated>

		<summary type="html">&lt;p&gt;Ameti073: /* Locus */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Reading Response Discussion&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Multics ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Team:&#039;&#039;&#039; Sameer, Shivjot, Ambalica, Veena&lt;br /&gt;
&lt;br /&gt;
It came into being in the 1960s and it completely vanished in 2000s. It was started by Bell, General Electric and MIT but Bell backed out of the project in 1969.&lt;br /&gt;
Multics is a time sharing OS which provides Multitasking and Multiprogramming. It is not a Distributed OS but it a Centralized system which was written in the assembly language.&lt;br /&gt;
&lt;br /&gt;
It provides following features:&lt;br /&gt;
# Utility Computing&lt;br /&gt;
# Access Control Lists&lt;br /&gt;
# Single level storage&lt;br /&gt;
# Dynamic linking&lt;br /&gt;
#* Sharded libraries or files can be loaded and linked to Random Access Memory at run time. &lt;br /&gt;
# Hot swapping&lt;br /&gt;
# Multiprocessing System&lt;br /&gt;
# Ring oriented Security&lt;br /&gt;
#* It provides number of levels of authorization within the computer System.&lt;br /&gt;
&lt;br /&gt;
== Unix ==&lt;br /&gt;
&lt;br /&gt;
Unix in its original conception is a small, minimal API system designed by two guys from Bell Labs. It was essentially a OS that would be easy to grasp for an programmer but not much beyond that. The UNIX OS ran on one computer, and terminals ran from that one computer. Thus it is not a distributed operating system as it is centralized and implements time sharing.&lt;br /&gt;
&lt;br /&gt;
== Sun NFS ==&lt;br /&gt;
&lt;br /&gt;
The Sun NFS OS implemented networking using RPC connections. These connections are not secure. Sun wanted to encrypt these RPC connections but encryption would result in government regulations that Sun wanted to avoid in order to sell NFS over seas (See below).&lt;br /&gt;
&lt;br /&gt;
    Sun wanted to encrypt their NFS system but decided not to. In the US encryption is regulated like munitions. Thus when Sun wanted to sell the NFS &lt;br /&gt;
    system abroad they would have to contend with government regulations. To avoid these regulations, Sun decided to sell the unencrypted NFS system abroad.&lt;br /&gt;
&lt;br /&gt;
== Locus ==&lt;br /&gt;
&lt;br /&gt;
# Not scalable (They did not bother themselves about scalability. Locus ran only in five computers.)&lt;br /&gt;
#* Every computer stores a copy of every file&lt;br /&gt;
#* Also used CAS to manage files&lt;br /&gt;
# Not efficient with abstractions&lt;br /&gt;
#* Trying to distribute files and processes&lt;br /&gt;
#Allowed for process migration&lt;br /&gt;
#* It provided network transparency  to “disguise” its distributed context.&lt;br /&gt;
&lt;br /&gt;
== Sprite ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Team: &#039;&#039;&#039; Jamie, Hassan, Khaled&lt;br /&gt;
&lt;br /&gt;
Sprite had the following Design Features:&lt;br /&gt;
# Network Transparency&lt;br /&gt;
# Process Migration, file transfer between computers&lt;br /&gt;
#* User could initiate a process migration to an idle machine, and if the machine was no longer idle; due to it being used be another user, the system would take care of the process migration to another machine&lt;br /&gt;
# Handling Cache Consistency&lt;br /&gt;
#* Sequential file sharing ==&amp;gt; By using a version number for each file&lt;br /&gt;
#* Concurrent write sharing ==&amp;gt; Disable cache to clients, enable write-blocking and other methods&lt;br /&gt;
# Implemented a caching system that sped up performance&lt;br /&gt;
# Implemented a log structured file system&lt;br /&gt;
#* Log structured file systems are optimized for writes; data is written to cache instead of memory, over reads. This is a way of minimizing the performance issues of doing writes&lt;br /&gt;
#* Example: SSD (Solid-state disks)&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039; main features &#039;&#039;&#039; to take away from the Sprite system is that it implemented a log structured file system, and implemented caching to increase performanace.&lt;/div&gt;</summary>
		<author><name>Ameti073</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2015W_Session_3&amp;diff=19796</id>
		<title>DistOS 2015W Session 3</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2015W_Session_3&amp;diff=19796"/>
		<updated>2015-02-05T03:46:52Z</updated>

		<summary type="html">&lt;p&gt;Ameti073: /* Locus */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Reading Response Discussion&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Multics ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Team:&#039;&#039;&#039; Sameer, Shivjot, Ambalica, Veena&lt;br /&gt;
&lt;br /&gt;
It came into being in the 1960s and it completely vanished in 2000s. It was started by Bell, General Electric and MIT but Bell backed out of the project in 1969.&lt;br /&gt;
Multics is a time sharing OS which provides Multitasking and Multiprogramming. It is not a Distributed OS but it a Centralized system which was written in the assembly language.&lt;br /&gt;
&lt;br /&gt;
It provides following features:&lt;br /&gt;
# Utility Computing&lt;br /&gt;
# Access Control Lists&lt;br /&gt;
# Single level storage&lt;br /&gt;
# Dynamic linking&lt;br /&gt;
#* Sharded libraries or files can be loaded and linked to Random Access Memory at run time. &lt;br /&gt;
# Hot swapping&lt;br /&gt;
# Multiprocessing System&lt;br /&gt;
# Ring oriented Security&lt;br /&gt;
#* It provides number of levels of authorization within the computer System.&lt;br /&gt;
&lt;br /&gt;
== Unix ==&lt;br /&gt;
&lt;br /&gt;
Unix in its original conception is a small, minimal API system designed by two guys from Bell Labs. It was essentially a OS that would be easy to grasp for an programmer but not much beyond that. The UNIX OS ran on one computer, and terminals ran from that one computer. Thus it is not a distributed operating system as it is centralized and implements time sharing.&lt;br /&gt;
&lt;br /&gt;
== Sun NFS ==&lt;br /&gt;
&lt;br /&gt;
The Sun NFS OS implemented networking using RPC connections. These connections are not secure. Sun wanted to encrypt these RPC connections but encryption would result in government regulations that Sun wanted to avoid in order to sell NFS over seas (See below).&lt;br /&gt;
&lt;br /&gt;
    Sun wanted to encrypt their NFS system but decided not to. In the US encryption is regulated like munitions. Thus when Sun wanted to sell the NFS &lt;br /&gt;
    system abroad they would have to contend with government regulations. To avoid these regulations, Sun decided to sell the unencrypted NFS system abroad.&lt;br /&gt;
&lt;br /&gt;
== Locus ==&lt;br /&gt;
&lt;br /&gt;
# Not scalable (They did not bother themselves about scalability. Locus ran only in five computers.)&lt;br /&gt;
#* Every computer stores a copy of every file&lt;br /&gt;
#* Also used CAS to manage files&lt;br /&gt;
# Not efficient with abstractions&lt;br /&gt;
#* Trying to distribute files and processes&lt;br /&gt;
#Allowed for process migration&lt;br /&gt;
&lt;br /&gt;
== Sprite ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Team: &#039;&#039;&#039; Jamie, Hassan, Khaled&lt;br /&gt;
&lt;br /&gt;
Sprite had the following Design Features:&lt;br /&gt;
# Network Transparency&lt;br /&gt;
# Process Migration, file transfer between computers&lt;br /&gt;
#* User could initiate a process migration to an idle machine, and if the machine was no longer idle; due to it being used be another user, the system would take care of the process migration to another machine&lt;br /&gt;
# Handling Cache Consistency&lt;br /&gt;
#* Sequential file sharing ==&amp;gt; By using a version number for each file&lt;br /&gt;
#* Concurrent write sharing ==&amp;gt; Disable cache to clients, enable write-blocking and other methods&lt;br /&gt;
# Implemented a caching system that sped up performance&lt;br /&gt;
# Implemented a log structured file system&lt;br /&gt;
#* Log structured file systems are optimized for writes; data is written to cache instead of memory, over reads. This is a way of minimizing the performance issues of doing writes&lt;br /&gt;
#* Example: SSD (Solid-state disks)&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039; main features &#039;&#039;&#039; to take away from the Sprite system is that it implemented a log structured file system, and implemented caching to increase performanace.&lt;/div&gt;</summary>
		<author><name>Ameti073</name></author>
	</entry>
</feed>