<?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=Atubman</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=Atubman"/>
	<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php/Special:Contributions/Atubman"/>
	<updated>2026-04-22T14:07:15Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_2&amp;diff=6533</id>
		<title>Talk:COMP 3000 Essay 2 2010 Question 2</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_2&amp;diff=6533"/>
		<updated>2010-12-02T22:12:18Z</updated>

		<summary type="html">&lt;p&gt;Atubman: spelling&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Comments &amp;amp; Discussion=&lt;br /&gt;
&lt;br /&gt;
I&#039;m adding bits and pieces here and there in most of the sections including references. &lt;br /&gt;
&lt;br /&gt;
--[[User:Ymoussou|Youcef M.]] 22:01, 2 December 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--Writing up a critique of the researches evaluation methods for the critique section now&lt;br /&gt;
&lt;br /&gt;
[[User:Atubman|Atubman]] 21:25, 2 December 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I&#039;ve added to the Contribution part of the essay. I&#039;ve basically explained as much as I thought was pertinent in what the section was asking for but don&#039;t be shy to add more!&lt;br /&gt;
&lt;br /&gt;
--[[User:Selliot3|Selliot3]] 14:11, 2 December 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
IBOS is designed to talk directly to the hardware. That&#039;s why they have everything at the lower level. All that extra TCB in other browsers was for all the extra stuff like services, OS components blah blah. I get their drift and how less code is secure but I don&#039;t get how they did it! From where do they get the services they claim to have taken out but still operates the same as any other browser. There is a catch somewhere but I can&#039;t find it in the paper or maybe I&#039;m blind. I&#039;ve been reading a lot of text but I got nowhere, its either too complex or not close to what I&#039;m looking for. &lt;br /&gt;
&lt;br /&gt;
--[[User:Ymoussou|Youcef M.]] 04:19, 2 December 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Brief description of the research problem below. (Still Needs expanding/fleshing out. can anyone help expand on why exactly shrinking the TCB will be more secure. I&#039;m fuzzy on that)&lt;br /&gt;
 &lt;br /&gt;
The IBOS attempts to improve the security of web browsers. The writers argue that the large size of the trusted code bases (TCB) which modern web browsers make use of increases the possibility of a security hole. For example a hijacked window manager could be used to draw a fake phishing website overtop a web browser. The researchers solution is drastically shrinking the size of the TCB. The TCB is shrunk by turning the web browser into an operating system in itself with direct access to hardware abstractions. &lt;br /&gt;
&lt;br /&gt;
Meanwhile, the IBOS must still support existing web applications while maintaining security.&lt;br /&gt;
&lt;br /&gt;
[[User:Atubman|Atubman]] 03:36, 2 December 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
This is what I understand of the TCB. Basically it is all of the components that are essential to the security of the computer system. Pretty much the stuff inside the kernel that if is compromised is &amp;quot;bad news bears&amp;quot;. By removing things like device drivers, you reduce the TCB quite considerably (like probably 10s of thousands of lines of code). The smaller the TCB, the less of a chance that you have of an essential component getting corrupted. I don&#039;t know if I&#039;m explaining it right, but maybe someone else can expand on what I&#039;ve written here.&lt;br /&gt;
--[[User:Gsmith6|Gsmith6]] 16:13, 2 December 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
EDIT: I&#039;ve pretty much explained the background concept behind IBOS and I kind of added the way it&#039;s executed near the end. Feel free to move that into the research section.&lt;br /&gt;
&lt;br /&gt;
I can work on the background of IBOS&lt;br /&gt;
&lt;br /&gt;
--[[User:Selliot3|Selliot3]] 23:03, 22 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It seems we only have 5/7 members. We should start splitting up the tasks and assign who gets what. So if everybody writes what section they would like to work on that would be great.&lt;br /&gt;
&lt;br /&gt;
--[[User:Ymoussou|Youcef M.]] 15:19, 20 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I&#039;ll do the contribution section. I&#039;ll be reading through the paper thoroughly today and taking notes as I go. I&#039;ll post them later on this page as a sort of cheat-sheet/reminder. --[[User:Gsmith6|Gsmith6]] 17:45, 25 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
=Group Members=&lt;br /&gt;
&lt;br /&gt;
Leave your name and e-mail address if you are assigned to this question.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[User:Ymoussou|Youcef M.]] moussoud@gmail.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I am alive and still in the class, selliot3@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
--[[User:Selliot3|Selliot3]] 18:12, 15 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Still in the class, andrewtubman84@gmail.com&lt;br /&gt;
&lt;br /&gt;
[[User:Atubman|Atubman]]&lt;br /&gt;
&lt;br /&gt;
I&#039;m here. I have received an email reply from John Vanden Heuvel as well (he may not see this) gsmith0413@gmail.com&lt;br /&gt;
--[[User:Gsmith6|Gsmith6]] 22:31, 15 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
[[User:vviveka2|vG]]&lt;br /&gt;
&lt;br /&gt;
I am here... and replied to the email&lt;br /&gt;
&lt;br /&gt;
=Question 2 members=&lt;br /&gt;
&lt;br /&gt;
Elliott Charles selliot3&lt;br /&gt;
&lt;br /&gt;
Moussoud Youcef ymoussou&lt;br /&gt;
&lt;br /&gt;
Pharand Alexandre apharan2&lt;br /&gt;
&lt;br /&gt;
Smith Geoffrey gsmith6&lt;br /&gt;
&lt;br /&gt;
Tubman Andrew   atubman&lt;br /&gt;
&lt;br /&gt;
Vanden Heuvel John jvheuvel&lt;br /&gt;
&lt;br /&gt;
Vivekanandarajah Vijitharan vviveka2&lt;br /&gt;
&lt;br /&gt;
=Raw Information=&lt;br /&gt;
&lt;br /&gt;
The web itself is ubiquitous which a person can use for communication; banking, business, social networking and it can be useful for other purposes. There are different type of vulnerabilities web applications, browser, OS and library vulnerabilities. Insecure web browsers are monolithic, and they are easy to exploit. Secure  web browser such as chrome isolate web applications and it still contain huge trusted computing base (TCB). Browser abstractions as the first-class OS, contains reduced TCB for web browser and it also have protection to withstand attacks to most components. [[User:vviveka2|vG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Extra Resources=&lt;br /&gt;
http://www.cs.uiuc.edu/homes/stang6/ibos.html#slide1&lt;br /&gt;
I found some presentation slides by Shuo Tang, Haohui Mai and Sam King, the authors and developers of IBOS&lt;br /&gt;
--[[User:Gsmith6|Gsmith6]] 22:35, 25 November 2010 (UTC)&lt;/div&gt;</summary>
		<author><name>Atubman</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_2_2010_Question_2&amp;diff=6524</id>
		<title>COMP 3000 Essay 2 2010 Question 2</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_2_2010_Question_2&amp;diff=6524"/>
		<updated>2010-12-02T21:45:56Z</updated>

		<summary type="html">&lt;p&gt;Atubman: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Paper==&lt;br /&gt;
&#039;&#039;&#039;Trust and Protection in the Illinois Browser Operating System&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
http://www.usenix.org/events/osdi10/tech/full_papers/Tang.pdf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Shuo Tang, Haohui Mai, Samuel T. King&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;University of Illinois at Urbana-Champaig&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Presentation slides to go along with the paper: Trust and Protection in the Illinois Browser Operating System. http://www.cs.uiuc.edu/homes/stang6/ibos.html#slide1&lt;br /&gt;
&lt;br /&gt;
==Background Concepts==&lt;br /&gt;
The Illinois Browser Operating System (IBOS) is not just a new browser to improve security, it is also a full operating system. It was developed by three graduate students at the University of Illinois. It’s main goal is to expose browser-level abstractions at the lowest possible software layer, reducing the trusted computing base for web browsers. Many websites and web applications have become major targets for attackers and hackers. These attackers are always finding new ways of exploiting even the most secure systems. Just recently, cross-site scripting (XSS) has become the most common security vulnerability over the age old buffer overflow.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Plenty of research has gone in to improving security among the various web browsers on the market today but all browsers still remain susceptible to attacks on the lower layers. Compromised Ethernet drivers can send sensitive HTTP packets to third parties, compromised storage modules can send persistent data to unwanted viewers and compromised window managers can overlay fake interfaces common in phishing attacks. Common web browsers run on top of commodity operating systems with shared system services and user-mode libraries, increasing the trusted computing base(TCB). IBOS looks to solve this issue by exposing browser-level abstractions rather than just general-purpose abstractions. Important concepts such as cookies, HTTP connections and tabs for displaying pages are all brought into the browser abstraction layer. By using all of these methods, the IBOS system ultimately aims to reduce the computer&#039;s TCB. &lt;br /&gt;
&lt;br /&gt;
===TCB===&lt;br /&gt;
The TCB is the hardware and software that is critical to the computer&#039;s security. Modern operating system-browser combinations have massive TCBs that may have several millions of lines of code. By extracting components such as device drivers from the kernel, one can lower a systems TCB considerably. If a device driver is outside of the TCB and becomes corrupted, the effects would not be too severe, but if the driver is left in the TCB, then the results could be cataclysmic. By removing elements from the TCB, you make it smaller, thereby reducing the risk of having an attack get inside.&lt;br /&gt;
&lt;br /&gt;
==Research Problem==&lt;br /&gt;
Modern browsers, such as Google Chrome and Mozilla Firefox, are continuously being revised and updated to keep ahead of the latest attacks, but continuously have hundreds of security vulnerabilities. Most of these attacks are simple, slightly harmful assaults on web applications, but many attacks are on the browser or even the operating system and its libraries. Since the browser runs lower on the shared storage stack, a successful attack on a browser can have horrible repercussions because it gives access to all of the browser data for all of the web application. It also provides the attacker with access to other resources on the system which is being exploited. An attack on the operating system can be disastrous if it is successful and may cause serious damage to the entire system because the attackers can access arbitrary states and events, allowing them to have full control over the system. The focus of this research is to prevent and decrease the attacks on the browser, libraries, operating systems and system services.&lt;br /&gt;
&lt;br /&gt;
==Contribution==&lt;br /&gt;
&lt;br /&gt;
===Architecture and Design=== &lt;br /&gt;
The authors have developed IBOS to reduce security risks, without compromising speed and efficiency. One of the ways they have achieved this is through the use of process creation. Essentially there are two types of processes. A web page instance and a traditional process. Any time the user opens a new tab, clicks on a link, or enters a web address in the uniform resource locator(URL) bar, the IBOS kernel creates a new process. Upon creating a web page instance process, the kernel labels it with the originating address of the HTTP request. If a web site such as &#039;&#039;facebook.com&#039;&#039; decides to host an outside script, also known as an iframe, from another website, the kernel creates a new process for the embedded script and labels it appropriately.   Traditional processes are every other process that is created for the local machine. These processes are simply labeled as &#039;&#039;localhost&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
By creating unique labels for each web page instance, the kernel can isolate them from one another. This prevents a compromised component from taking control of other processes. Also by labeling where requests come from, the IBOS kernel can ensure that the data it is receiving is in fact from the expected origin.&lt;br /&gt;
&lt;br /&gt;
IBOS has considerably smaller TCB compared to other modern browsers. Where both Chrome and Firefox come in at over 4 million plus lines of code in their trusted computing base, IBOS has only about 42,000. Since IBOS isolates each process, it was also able to prevent between 75-100% of vulnerabilities from affected components on a machine. Using Chrome, the researchers tested 175 known issues on the IBOS kernel which ranged from memory exploits to interface spoofing. Out of all the known issues, IBOS was able to prevent 135 or 77% of the issues whereas Chrome was only able to contain 83 of them. The issue is that Chrome is able to catch exploits in its rendering engine since it is in a sandbox but any exploits that took advantage of the browser kernel could not be prevented. This is not a problem for IBOS because many of the browser components inside the trusted computing base in Chrome have been brought outside of the IBOS TCB limiting what can be done with exploitation.&lt;br /&gt;
&lt;br /&gt;
===Performance===&lt;br /&gt;
In terms of performance, IBOS is comparable to the two best performing web browsers currently released: Firefox and Chrome. For websites such as Google Maps and Facebook, IBOS actually performs much better than Firefox while loading pages. This may be due partly to the fact that IBOS was developed with the WebKit engine, which has been optimized to run Google Maps. For Facebook and Wikipedia, sites that use many HTTP requests, IBOS performs slightly slower than the other two browsers, but for the others, where there are only a few HTTP requests, IBOS runs just as quickly as the others.&lt;br /&gt;
&lt;br /&gt;
==Critique==&lt;br /&gt;
&lt;br /&gt;
===Structure===&lt;br /&gt;
This paper was very well organized and executed. It naturally flows and keeps order in what it is trying to explain without the need to flip back and reference another piece of content in the paper. Starting with the core mechanics of why it is needed to how the kernel is organized and working its way up to many high-level pieces of information it felt like a natural progression of ideas, giving you the information you need to understand upcoming concepts.&lt;br /&gt;
&lt;br /&gt;
===Evaluation===&lt;br /&gt;
The evaluation of the IBOS security has some flaws,it is not very thorough and the data set the testing against is potentially confounding.  &lt;br /&gt;
&lt;br /&gt;
The IBOS has shown through internal testing that it is able to resist 77% of  attacks from a set of 175 security bugs whereas Chrome is only able prevent 46%.  The improvement sounds impressive however, the set of security bugs they tested against was obtained from Google “Chrome’s bug tracker”.    The fact they are comparing known security flaws in Chrome against the new IBOS makes their improvement of 31% far less impressive. &lt;br /&gt;
&lt;br /&gt;
In addition, Their initial test set contained 217 bugs with duplicates removed, and 42 bugs were omitted because they were denial of service attacks and the IBOS does not protect against that form of attack. It is understandable this is out of the scope of this research. However, that is a big set of flaws which are not addressed.&lt;br /&gt;
&lt;br /&gt;
Furthermore, the researches only compared their results against the Chrome web browser. A comparison which also includes other browsers such as Mozilla Firefox, Internet Explorer and Safari would be much more compelling. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
You will almost certainly have to refer to other resources; please cite these resources in the style of citation of the papers assigned (inlined numbered references). Place your bibliographic entries in this section.&lt;/div&gt;</summary>
		<author><name>Atubman</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_2&amp;diff=6516</id>
		<title>Talk:COMP 3000 Essay 2 2010 Question 2</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_2&amp;diff=6516"/>
		<updated>2010-12-02T21:25:43Z</updated>

		<summary type="html">&lt;p&gt;Atubman: /* Comments &amp;amp; Discussion */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Comments &amp;amp; Discussion=&lt;br /&gt;
&lt;br /&gt;
--Writing up a critic of the researches evalution methods for the critic section now&lt;br /&gt;
&lt;br /&gt;
[[User:Atubman|Atubman]] 21:25, 2 December 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I&#039;ve added to the Contribution part of the essay. I&#039;ve basically explained as much as I thought was pertinent in what the section was asking for but don&#039;t be shy to add more!&lt;br /&gt;
&lt;br /&gt;
--[[User:Selliot3|Selliot3]] 14:11, 2 December 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
IBOS is designed to talk directly to the hardware. That&#039;s why they have everything at the lower level. All that extra TCB in other browsers was for all the extra stuff like services, OS components blah blah. I get their drift and how less code is secure but I don&#039;t get how they did it! From where do they get the services they claim to have taken out but still operates the same as any other browser. There is a catch somewhere but I can&#039;t find it in the paper or maybe I&#039;m blind. I&#039;ve been reading a lot of text but I got nowhere, its either too complex or not close to what I&#039;m looking for. &lt;br /&gt;
&lt;br /&gt;
--[[User:Ymoussou|Youcef M.]] 04:19, 2 December 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Brief description of the research problem below. (Still Needs expanding/fleshing out. can anyone help expand on why exactly shrinking the TCB will be more secure. I&#039;m fuzzy on that)&lt;br /&gt;
 &lt;br /&gt;
The IBOS attempts to improve the security of web browsers. The writers argue that the large size of the trusted code bases (TCB) which modern web browsers make use of increases the possibility of a security hole. For example a hijacked window manager could be used to draw a fake phishing website overtop a web browser. The researchers solution is drastically shrinking the size of the TCB. The TCB is shrunk by turning the web browser into an operating system in itself with direct access to hardware abstractions. &lt;br /&gt;
&lt;br /&gt;
Meanwhile, the IBOS must still support existing web applications while maintaining security.&lt;br /&gt;
&lt;br /&gt;
[[User:Atubman|Atubman]] 03:36, 2 December 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
This is what I understand of the TCB. Basically it is all of the components that are essential to the security of the computer system. Pretty much the stuff inside the kernel that if is compromised is &amp;quot;bad news bears&amp;quot;. By removing things like device drivers, you reduce the TCB quite considerably (like probably 10s of thousands of lines of code). The smaller the TCB, the less of a chance that you have of an essential component getting corrupted. I don&#039;t know if I&#039;m explaining it right, but maybe someone else can expand on what I&#039;ve written here.&lt;br /&gt;
--[[User:Gsmith6|Gsmith6]] 16:13, 2 December 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
EDIT: I&#039;ve pretty much explained the background concept behind IBOS and I kind of added the way it&#039;s executed near the end. Feel free to move that into the research section.&lt;br /&gt;
&lt;br /&gt;
I can work on the background of IBOS&lt;br /&gt;
&lt;br /&gt;
--[[User:Selliot3|Selliot3]] 23:03, 22 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It seems we only have 5/7 members. We should start splitting up the tasks and assign who gets what. So if everybody writes what section they would like to work on that would be great.&lt;br /&gt;
&lt;br /&gt;
--[[User:Ymoussou|Youcef M.]] 15:19, 20 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I&#039;ll do the contribution section. I&#039;ll be reading through the paper thoroughly today and taking notes as I go. I&#039;ll post them later on this page as a sort of cheat-sheet/reminder. --[[User:Gsmith6|Gsmith6]] 17:45, 25 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
=Group Members=&lt;br /&gt;
&lt;br /&gt;
Leave your name and e-mail address if you are assigned to this question.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[User:Ymoussou|Youcef M.]] moussoud@gmail.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I am alive and still in the class, selliot3@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
--[[User:Selliot3|Selliot3]] 18:12, 15 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Still in the class, andrewtubman84@gmail.com&lt;br /&gt;
&lt;br /&gt;
[[User:Atubman|Atubman]]&lt;br /&gt;
&lt;br /&gt;
I&#039;m here. I have received an email reply from John Vanden Heuvel as well (he may not see this) gsmith0413@gmail.com&lt;br /&gt;
--[[User:Gsmith6|Gsmith6]] 22:31, 15 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
[[User:vviveka2|vG]]&lt;br /&gt;
&lt;br /&gt;
I am here... and replied to the email&lt;br /&gt;
&lt;br /&gt;
=Question 2 members=&lt;br /&gt;
&lt;br /&gt;
Elliott Charles selliot3&lt;br /&gt;
&lt;br /&gt;
Moussoud Youcef ymoussou&lt;br /&gt;
&lt;br /&gt;
Pharand Alexandre apharan2&lt;br /&gt;
&lt;br /&gt;
Smith Geoffrey gsmith6&lt;br /&gt;
&lt;br /&gt;
Tubman Andrew   atubman&lt;br /&gt;
&lt;br /&gt;
Vanden Heuvel John jvheuvel&lt;br /&gt;
&lt;br /&gt;
Vivekanandarajah Vijitharan vviveka2&lt;br /&gt;
&lt;br /&gt;
=Raw Information=&lt;br /&gt;
&lt;br /&gt;
The web itself is ubiquitous which a person can use for communication; banking, business, social networking and it can be useful for other purposes. There are different type of vulnerabilities web applications, browser, OS and library vulnerabilities. Insecure web browsers are monolithic, and they are easy to exploit. Secure  web browser such as chrome isolate web applications and it still contain huge trusted computing base (TCB). Browser abstractions as the first-class OS, contains reduced TCB for web browser and it also have protection to withstand attacks to most components. [[User:vviveka2|vG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Extra Resources=&lt;br /&gt;
http://www.cs.uiuc.edu/homes/stang6/ibos.html#slide1&lt;br /&gt;
I found some presentation slides by Shuo Tang, Haohui Mai and Sam King, the authors and developers of IBOS&lt;br /&gt;
--[[User:Gsmith6|Gsmith6]] 22:35, 25 November 2010 (UTC)&lt;/div&gt;</summary>
		<author><name>Atubman</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_2_2010_Question_2&amp;diff=6504</id>
		<title>COMP 3000 Essay 2 2010 Question 2</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_2_2010_Question_2&amp;diff=6504"/>
		<updated>2010-12-02T20:46:54Z</updated>

		<summary type="html">&lt;p&gt;Atubman: adding headings to break up chunks of text&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Paper==&lt;br /&gt;
&#039;&#039;&#039;Trust and Protection in the Illinois Browser Operating System&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
http://www.usenix.org/events/osdi10/tech/full_papers/Tang.pdf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Shuo Tang, Haohui Mai, Samuel T. King&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;University of Illinois at Urbana-Champaig&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Presentation slides to go along with the paper: Trust and Protection in the Illinois Browser Operating System. http://www.cs.uiuc.edu/homes/stang6/ibos.html#slide1&lt;br /&gt;
&lt;br /&gt;
==Research Problem==&lt;br /&gt;
Modern browsers, such as Google Chrome and Mozilla Firefox, are continuously being revised and updated to keep ahead of the latest attacks, but continuously have hundreds of security vulnerabilities. Most of these attacks are simple, slightly harmful assaults on web applications, but many attacks are on the browser or even the operating system and its libraries. Since the browser runs lower on the shared storage stack, a successful attack on a browser can have horrible repercussions because it gives access to all of the browser data for all of the web application. It also provides the attacker with access to other resources on the system which is being exploited. An attack on the operating system can be disastrous if it is successful and may cause serious damage to the entire system because the attackers can access arbitrary states and events, allowing them to have full control over the system. The focus of this research is to prevent and decrease the attacks on the browser, libraries, operating systems and system services. &lt;br /&gt;
&lt;br /&gt;
==Background Concepts==&lt;br /&gt;
The Illinois Browser Operating System (IBOS) is not just a new browser to improve security, it is also a full operating system. It was developed by three graduate students at the University of Illinois. It’s main goal is to expose browser-level abstractions at the lowest possible software layer, reducing the trusted computing base for web browsers. Many websites and web applications have become major targets for attackers and hackers. These attackers are always finding new ways of exploiting even the most secure systems. Just recently, cross-site scripting (XSS) has become the most common security vulnerability over the age old buffer overflow.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Plenty of research has gone in to improving security among the various web browsers on the market today but all browsers still remain susceptible to attacks on the lower layers. Compromised Ethernet drivers can send sensitive HTTP packets to third parties, compromised storage modules can send persistent data to unwanted viewers and compromised window managers can overlay fake interfaces common in phishing attacks. Common web browsers run on top of commodity operating systems with shared system services and user-mode libraries, increasing the trusted computing base(TCB). IBOS looks to solve this issue by exposing browser-level abstractions rather than just general-purpose abstractions. Important concepts such as cookies, HTTP connections and tabs for displaying pages are all brought into the browser abstraction layer. By using all of these methods, the IBOS system ultimately aims to reduce the computer&#039;s TCB. &lt;br /&gt;
&lt;br /&gt;
===TCB===&lt;br /&gt;
The TCB is the hardware and software that is critical to the computer&#039;s security. Modern operating system-browser combinations have massive TCBs that may have several millions of lines of code. By extracting components such as device drivers from the kernel, one can lower a systems TCB considerably. If a device driver is outside of the TCB and becomes corrupted, the effects would not be too severe, but if the driver is left in the TCB, then the results could be cataclysmic. By removing elements from the TCB, you make it smaller, thereby reducing the risk of having an attack get inside.&lt;br /&gt;
&lt;br /&gt;
==Contribution==&lt;br /&gt;
&lt;br /&gt;
===Architecture and Design=== &lt;br /&gt;
The authors have developed IBOS to reduce security risks, without compromising speed and efficiency. One of the ways they have achieved this is through the use of process creation. Essentially there are two types of processes. A web page instance and a traditional process. Any time the user opens a new tab, clicks on a link, or enters a web address in the uniform resource locator(URL) bar, the IBOS kernel creates a new process. Upon creating a web page instance process, the kernel labels it with the originating address of the HTTP request. If a web site such as &#039;&#039;facebook.com&#039;&#039; decides to host an outside script, also known as an iframe, from another website, the kernel creates a new process for the embedded script and labels it appropriately.   Traditional processes are every other process that is created for the local machine. These processes are simply labeled as &#039;&#039;localhost&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
By creating unique labels for each web page instance, the kernel can isolate them from one another. This prevents a compromised component from taking control of other processes. Also by labeling where requests come from, the IBOS kernel can ensure that the data it is receiving is in fact from the expected origin.&lt;br /&gt;
&lt;br /&gt;
IBOS has considerably smaller TCB compared to other modern browsers. Where both Chrome and Firefox come in at over 4 million plus lines of code in their trusted computing base, IBOS has only about 42,000. Since IBOS isolates each process, it was also able to prevent between 75-100% of vulnerabilities from affected components on a machine. Using Chrome, the researchers tested 175 known issues on the IBOS kernel which ranged from memory exploits to interface spoofing. Out of all the known issues, IBOS was able to prevent 135 or 77% of the issues whereas Chrome was only able to contain 83 of them. The issue is that Chrome is able to catch exploits in its rendering engine since it is in a sandbox but any exploits that took advantage of the browser kernel could not be prevented. This is not a problem for IBOS because many of the browser components inside the trusted computing base in Chrome have been brought outside of the IBOS TCB limiting what can be done with exploitation.&lt;br /&gt;
&lt;br /&gt;
===Performance===&lt;br /&gt;
In terms of performance, IBOS is comparable to the two best performing web browsers currently released: Firefox and Chrome. For websites such as Google Maps and Facebook, IBOS actually performs much better than Firefox while loading pages. This may be due partly to the fact that IBOS was developed with the WebKit engine, which has been optimized to run Google Maps. For Facebook and Wikipedia, sites that use many HTTP requests, IBOS performs slightly slower than the other two browsers, but for the others, where there are only a few HTTP requests, IBOS runs just as quickly as the others.&lt;br /&gt;
&lt;br /&gt;
==Critique==&lt;br /&gt;
&lt;br /&gt;
===Structure===&lt;br /&gt;
This paper was very well organized and executed. It naturally flows and keeps order in what it is trying to explain without the need to flip back and reference another piece of content in the paper. Starting with the core mechanics of why it is needed to how the kernel is organized and working its way up to many high-level pieces of information it felt like a natural progression of ideas, giving you the information you need to understand upcoming concepts.&lt;br /&gt;
&lt;br /&gt;
===Content===&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
You will almost certainly have to refer to other resources; please cite these resources in the style of citation of the papers assigned (inlined numbered references). Place your bibliographic entries in this section.&lt;/div&gt;</summary>
		<author><name>Atubman</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_2_2010_Question_2&amp;diff=6497</id>
		<title>COMP 3000 Essay 2 2010 Question 2</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_2_2010_Question_2&amp;diff=6497"/>
		<updated>2010-12-02T20:11:39Z</updated>

		<summary type="html">&lt;p&gt;Atubman: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Paper==&lt;br /&gt;
&#039;&#039;&#039;Trust and Protection in the Illinois Browser Operating System&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
http://www.usenix.org/events/osdi10/tech/full_papers/Tang.pdf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Shuo Tang, Haohui Mai, Samuel T. King&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;University of Illinois at Urbana-Champaig&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Presentation slides to go along with the paper: Trust and Protection in the Illinois Browser Operating System. http://www.cs.uiuc.edu/homes/stang6/ibos.html#slide1&lt;br /&gt;
&lt;br /&gt;
==Research Problem==&lt;br /&gt;
Modern browsers, such as Google Chrome and Mozilla Firefox, are continuously being revised and updated to keep ahead of the latest attacks, but continuously have hundreds of security vulnerabilities. Most of these attacks are simple, slightly harmful assaults on web applications, but many attacks are on the browser or even the operating system and its libraries. Since the browser runs lower on the shared storage stack, a successful attack on a browser can have horrible repercussions because it gives access to all of the browser data for all of the web application. It also provides the attacker with access to other resources on the system which is being exploited. An attack on the operating system can be disastrous if it is successful and may cause serious damage to the entire system because the attackers can access arbitrary states and events, allowing them to have full control over the system. The focus of this research is to prevent and decrease the attacks on the browser, libraries, operating systems and system services. &lt;br /&gt;
&lt;br /&gt;
==Background Concepts==&lt;br /&gt;
The Illinois Browser Operating System (IBOS) is not just a new browser to improve security, it is also a full operating system. It was developed by three graduate students at the University of Illinois. It’s main goal is to expose browser-level abstractions at the lowest possible software layer, reducing the trusted computing base for web browsers. Many websites and web applications have become major targets for attackers and hackers. These attackers are always finding new ways of exploiting even the most secure systems. Just recently, cross-site scripting (XSS) has become the most common security vulnerability over the age old buffer overflow.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Plenty of research has gone in to improving security among the various web browsers on the market today but all browsers still remain susceptible to attacks on the lower layers. Compromised Ethernet drivers can send sensitive HTTP packets to third parties, compromised storage modules can send persistent data to unwanted viewers and compromised window managers can overlay fake interfaces common in phishing attacks. Common web browsers run on top of commodity operating systems with shared system services and user-mode libraries, increasing the trusted computing base(TCB). IBOS looks to solve this issue by exposing browser-level abstractions rather than just general-purpose abstractions. Important concepts such as cookies, HTTP connections and tabs for displaying pages are all brought into the browser abstraction layer. By using all of these methods, the IBOS system ultimately aims to reduce the computer&#039;s TCB. &lt;br /&gt;
&lt;br /&gt;
===TCB===&lt;br /&gt;
The TCB is the hardware and software that is critical to the computer&#039;s security. Modern operating system-browser combinations have massive TCBs that may have several millions of lines of code. By extracting components such as device drivers from the kernel, one can lower a systems TCB considerably. If a device driver is outside of the TCB and becomes corrupted, the effects would not be too severe, but if the driver is left in the TCB, then the results could be cataclysmic. By removing elements from the TCB, you make it smaller, thereby reducing the risk of having an attack get inside.&lt;br /&gt;
&lt;br /&gt;
==Contribution==&lt;br /&gt;
&lt;br /&gt;
The authors have developed IBOS to reduce security risks, without compromising speed and efficiency. One of the ways they have achieved this is through the use of process creation. Essentially there are two types of processes. A web page instance and a traditional process. Any time the user opens a new tab, clicks on a link, or enters a web address in the uniform resource locator(URL) bar, the IBOS kernel creates a new process. Upon creating a web page instance process, the kernel labels it with the originating address of the HTTP request. If a web site such as &#039;&#039;facebook.com&#039;&#039; decides to host an outside script, also known as an iframe, from another website, the kernel creates a new process for the embedded script and labels it appropriately.   Traditional processes are every other process that is created for the local machine. These processes are simply labeled as &#039;&#039;localhost&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
By creating unique labels for each web page instance, the kernel can isolate them from one another. This prevents a compromised component from taking control of other processes. Also by labeling where requests come from, the IBOS kernel can ensure that the data it is receiving is in fact from the expected origin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
IBOS has considerably smaller TCB compared to other modern browsers. Where both Chrome and Firefox come in at over 4 million plus lines of code in their trusted computing base, IBOS has only about 42,000. Since IBOS isolates each process, it was also able to prevent between 75-100% of vulnerabilities from affected components on a machine. Using Chrome, the researchers tested 175 known issues on the IBOS kernel which ranged from memory exploits to interface spoofing. Out of all the known issues, IBOS was able to prevent 135 or 77% of the issues whereas Chrome was only able to contain 83 of them. The issue is that Chrome is able to catch exploits in its rendering engine since it is in a sandbox but any exploits that took advantage of the browser kernel could not be prevented. This is not a problem for IBOS because many of the browser components inside the trusted computing base in Chrome have been brought outside of the IBOS TCB limiting what can be done with exploitation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In terms of performance, IBOS is comparable to the two best performing web browsers currently released: Firefox and Chrome. For websites such as Google Maps and Facebook, IBOS actually performs much better than Firefox while loading pages. This may be due partly to the fact that IBOS was developed with the WebKit engine, which has been optimized to run Google Maps. For Facebook and Wikipedia, sites that use many HTTP requests, IBOS performs slightly slower than the other two browsers, but for the others, where there are only a few HTTP requests, IBOS runs just as quickly as the others.&lt;br /&gt;
&lt;br /&gt;
==Critique==&lt;br /&gt;
&lt;br /&gt;
===Structure===&lt;br /&gt;
This paper was very well organized and executed. It naturally flows and keeps order in what it is trying to explain without the need to flip back and reference another piece of content in the paper. Starting with the core mechanics of why it is needed to how the kernel is organized and working its way up to many high-level pieces of information it felt like a natural progression of ideas, giving you the information you need to understand upcoming concepts.&lt;br /&gt;
&lt;br /&gt;
===Content===&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
You will almost certainly have to refer to other resources; please cite these resources in the style of citation of the papers assigned (inlined numbered references). Place your bibliographic entries in this section.&lt;/div&gt;</summary>
		<author><name>Atubman</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_2_2010_Question_2&amp;diff=6494</id>
		<title>COMP 3000 Essay 2 2010 Question 2</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_2_2010_Question_2&amp;diff=6494"/>
		<updated>2010-12-02T20:10:17Z</updated>

		<summary type="html">&lt;p&gt;Atubman: rephrasing&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Paper==&lt;br /&gt;
&#039;&#039;&#039;Trust and Protection in the Illinois Browser Operating System&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
http://www.usenix.org/events/osdi10/tech/full_papers/Tang.pdf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Shuo Tang, Haohui Mai, Samuel T. King&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;University of Illinois at Urbana-Champaig&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Presentation slides to go along with the paper: Trust and Protection in the Illinois Browser Operating System. http://www.cs.uiuc.edu/homes/stang6/ibos.html#slide1&lt;br /&gt;
&lt;br /&gt;
==Research Problem==&lt;br /&gt;
Modern browsers, such as Google Chrome and Mozilla Firefox, are continuously being revised and updated to keep ahead of the latest attacks, but continuously have hundreds of security vulnerabilities. Most of these attacks are simple, slightly harmful assaults on web applications, but many attacks are on the browser or even the operating system and its libraries. Since the browser runs lower on the shared storage stack, a successful attack on a browser can have horrible repercussions because it gives access to all of the browser data for all of the web application. It also provides the attacker with access to other resources on the system which is being exploited. An attack on the operating system can be disastrous if it is successful and may cause serious damage to the entire system because the attackers can access arbitrary states and events, allowing them to have full control over the system. The focus of this research is to prevent and decrease the attacks on the browser, libraries, operating systems and system services. &lt;br /&gt;
&lt;br /&gt;
==Background Concepts==&lt;br /&gt;
The Illinois Browser Operating System (IBOS) is not just a new browser to improve security, it is also a full operating system. It was developed by three graduate students at the University of Illinois. It’s main goal is to expose browser-level abstractions at the lowest possible software layer, reducing the trusted computing base for web browsers. Many websites and web applications have become major targets for attackers and hackers. These attackers are always finding new ways of exploiting even the most secure systems. Just recently, cross-site scripting (XSS) has become the most common security vulnerability over the age old buffer overflow.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Plenty of research has gone in to improving security among the various web browsers on the market today but all browsers still remain susceptible to attacks on the lower layers. Compromised Ethernet drivers can send sensitive HTTP packets to third parties, compromised storage modules can send persistent data to unwanted viewers and compromised window managers can overlay fake interfaces common in phishing attacks. Common web browsers run on top of commodity operating systems with shared system services and user-mode libraries, increasing the trusted computing base(TCB). IBOS looks to solve this issue by exposing browser-level abstractions rather than just general-purpose abstractions. Important concepts such as cookies, HTTP connections and tabs for displaying pages are all brought into the browser abstraction layer. By using all of these methods, the IBOS system ultimately aims to reduce the computer&#039;s TCB. &lt;br /&gt;
&lt;br /&gt;
===TCB===&lt;br /&gt;
The TCB is the hardware and software that is critical to the computer&#039;s security. Modern operating system-browser combinations have massive TCBs that may have several millions of lines of code. By extracting components such as device drivers from the kernel, one can lower a systems TCB considerably. If a device driver is outside of the TCB and becomes corrupted, the effects would not be too severe, but if the driver is left in the TCB, then the results could be cataclysmic. By removing elements from the TCB, you make it smaller, thereby reducing the risk of having an attack get inside.&lt;br /&gt;
&lt;br /&gt;
==Contribution==&lt;br /&gt;
&lt;br /&gt;
The authors have developed IBOS to reduce security risks, without compromising speed and efficiency. One of the ways they have achieved this is through the use of process creation. Essentially there are two types of processes. A web page instance and a traditional process. Any time the user opens a new tab, clicks on a link, or enters a web address in the uniform resource locator(URL) bar, the IBOS kernel creates a new process. Upon creating a web page instance process, the kernel labels it with the originating address of the HTTP request. If a web site such as &#039;&#039;facebook.com&#039;&#039; decides to host an outside script, also known as an iframe, from another website, the kernel creates a new process for the embedded script and labels it appropriately.   Traditional processes are every other process that is created for the local machine. These processes are simply labeled as &#039;&#039;localhost&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
By creating unique labels for each web page instance, the kernel can isolate them from one another. This prevents a compromised component from taking control of other processes. Also by labeling where requests come from, the IBOS kernel can ensure that the data it is receiving is in fact from the expected origin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
IBOS has considerably smaller TCB compared to other modern browsers. Where both Chrome and Firefox come in at over 4 million plus lines of code in their trusted computing base, IBOS has only about 42,000. Since IBOS isolates each process, it was also able to prevent between 75-100% of vulnerabilities from affected components on a machine. Using Chrome, the researchers tested 175 known issues on the IBOS kernel which ranged from memory exploits to interface spoofing. Out of all the known issues, IBOS was able to prevent 135 or 77% of the issues whereas Chrome was only able to contain 83 of them. The issue is that Chrome is able to catch exploits in its rendering engine since it is in a sandbox but any exploits that took advantage of the browser kernel could not be prevented. This is not a problem for IBOS because many of the browser components inside the trusted computing base in Chrome have been brought outside of the IBOS TCB limiting what can be done with exploitation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In terms of performance, IBOS is comparable to the two best performing web browsers currently released: Firefox and Chrome. For websites such as Google Maps and Facebook, IBOS actually performs much better than Firefox while loading pages. This may be due partly to the fact that IBOS was developed with the WebKit engine, which has been optimized to run Google Maps. For Facebook and Wikipedia, sites that use many HTTP requests, IBOS performs slightly slower than the other two browsers, but for the others, where there are only a few HTTP requests, IBOS runs just as quickly as the others.&lt;br /&gt;
&lt;br /&gt;
==Critique==&lt;br /&gt;
This paper was very well organized and executed. It naturally flows and keeps order in what it is trying to explain without the need to flip back and reference another piece of content in the paper. Starting with the core mechanics of why it is needed to how the kernel is organized and working its way up to many high-level pieces of information it felt like a natural progression of ideas, giving you the information you need to understand upcoming concepts.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
You will almost certainly have to refer to other resources; please cite these resources in the style of citation of the papers assigned (inlined numbered references). Place your bibliographic entries in this section.&lt;/div&gt;</summary>
		<author><name>Atubman</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_2&amp;diff=6178</id>
		<title>Talk:COMP 3000 Essay 2 2010 Question 2</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_2&amp;diff=6178"/>
		<updated>2010-12-02T04:24:48Z</updated>

		<summary type="html">&lt;p&gt;Atubman: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Comments &amp;amp; Discussion=&lt;br /&gt;
IBOS is designed to talk directly to the hardware. That&#039;s why they have everything at the lower level. All that extra TCB in other browsers was for all the extra stuff like services, OS components blah blah. I get their drift and how less code is secure but I don&#039;t get how they did it! From where do they get the services they claim to have taken out but still operates the same as any other browser. There is a catch somewhere but I can&#039;t find it in the paper or maybe I&#039;m blind. I&#039;ve been reading a lot of text but I got nowhere, its either too complex or not close to what I&#039;m looking for. &lt;br /&gt;
&lt;br /&gt;
--[[User:Ymoussou|Youcef M.]] 04:19, 2 December 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Brief description of the research problem below. (Still Needs expanding/fleshing out. can anyone help expand on why exactly shrinking the TCB will be more secure. I&#039;m fuzzy on that)&lt;br /&gt;
 &lt;br /&gt;
The IBOS attempts to improve the security of web browsers. The writers argue that the large size of the trusted code bases (TCB) which modern web browsers make use of increases the possibility of a security hole. For example a hijacked window manager could be used to draw a fake phishing website overtop a web browser. The researchers solution is drastically shrinking the size of the TCB. The TCB is shrunk by turning the web browser into an operating system in itself with direct access to hardware abstractions. &lt;br /&gt;
&lt;br /&gt;
Meanwhile, the IBOS must still support existing web applications while maintaining security.&lt;br /&gt;
&lt;br /&gt;
[[User:Atubman|Atubman]] 03:36, 2 December 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
EDIT: I&#039;ve pretty much explained the background concept behind IBOS and I kind of added the way it&#039;s executed near the end. Feel free to move that into the research section.&lt;br /&gt;
&lt;br /&gt;
I can work on the background of IBOS&lt;br /&gt;
&lt;br /&gt;
--[[User:Selliot3|Selliot3]] 23:03, 22 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It seems we only have 5/7 members. We should start splitting up the tasks and assign who gets what. So if everybody writes what section they would like to work on that would be great.&lt;br /&gt;
&lt;br /&gt;
--[[User:Ymoussou|Youcef M.]] 15:19, 20 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I&#039;ll do the contribution section. I&#039;ll be reading through the paper thoroughly today and taking notes as I go. I&#039;ll post them later on this page as a sort of cheat-sheet/reminder. --[[User:Gsmith6|Gsmith6]] 17:45, 25 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
=Group Members=&lt;br /&gt;
&lt;br /&gt;
Leave your name and e-mail address if you are assigned to this question.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[User:Ymoussou|Youcef M.]] moussoud@gmail.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I am alive and still in the class, selliot3@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
--[[User:Selliot3|Selliot3]] 18:12, 15 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Still in the class, andrewtubman84@gmail.com&lt;br /&gt;
&lt;br /&gt;
[[User:Atubman|Atubman]]&lt;br /&gt;
&lt;br /&gt;
I&#039;m here. I have received an email reply from John Vanden Heuvel as well (he may not see this) gsmith0413@gmail.com&lt;br /&gt;
--[[User:Gsmith6|Gsmith6]] 22:31, 15 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
[[User:vviveka2|vG]]&lt;br /&gt;
&lt;br /&gt;
I am here... and replied to the email&lt;br /&gt;
&lt;br /&gt;
=Question 2 members=&lt;br /&gt;
&lt;br /&gt;
Elliott Charles selliot3&lt;br /&gt;
&lt;br /&gt;
Moussoud Youcef ymoussou&lt;br /&gt;
&lt;br /&gt;
Pharand Alexandre apharan2&lt;br /&gt;
&lt;br /&gt;
Smith Geoffrey gsmith6&lt;br /&gt;
&lt;br /&gt;
Tubman Andrew   atubman&lt;br /&gt;
&lt;br /&gt;
Vanden Heuvel John jvheuvel&lt;br /&gt;
&lt;br /&gt;
Vivekanandarajah Vijitharan vviveka2&lt;br /&gt;
&lt;br /&gt;
=Raw Information=&lt;br /&gt;
&lt;br /&gt;
The web itself is ubiquitous which a person can use for communication; banking, business, social networking and it can be useful for other purposes. There are different type of vulnerabilities web applications, browser, OS and library vulnerabilities. Insecure web browsers are monolithic, and they are easy to exploit. Secure  web browser such as chrome isolate web applications and it still contain huge trusted computing base (TCB). Browser abstractions as the first-class OS, contains reduced TCB for web browser and it also have protection to withstand attacks to most components. [[User:vviveka2|vG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Extra Resources=&lt;br /&gt;
http://www.cs.uiuc.edu/homes/stang6/ibos.html#slide1&lt;br /&gt;
I found some presentation slides by Shuo Tang, Haohui Mai and Sam King, the authors and developers of IBOS&lt;br /&gt;
--[[User:Gsmith6|Gsmith6]] 22:35, 25 November 2010 (UTC)&lt;/div&gt;</summary>
		<author><name>Atubman</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_2&amp;diff=6144</id>
		<title>Talk:COMP 3000 Essay 2 2010 Question 2</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_2&amp;diff=6144"/>
		<updated>2010-12-02T03:36:18Z</updated>

		<summary type="html">&lt;p&gt;Atubman: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Comments &amp;amp; Discussion=&lt;br /&gt;
Brief description of the research problem below. (Still Needs expanding/fleshing out. can anyone help expand on why exactly shrinking the TCB will be more secure. I&#039;m fuzzy on that)&lt;br /&gt;
 &lt;br /&gt;
The IBOS attempts to improve the security of web browsers. The writers argue that the large size of the trusted code bases (TCB) which modern web browsers make use of increases the possibility of a security hole. For example a hijacked window manager could be used to draw a fake phishing website overtop a web browser. The researchers solution is drastically shrinking the size of the TCB. The TCB is shrunk by turning the web browser into an operating system in itself with direct access to hardware abstractions. &lt;br /&gt;
&lt;br /&gt;
[[User:Atubman|Atubman]] 03:36, 2 December 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
EDIT: I&#039;ve pretty much explained the background concept behind IBOS and I kind of added the way it&#039;s executed near the end. Feel free to move that into the research section.&lt;br /&gt;
&lt;br /&gt;
I can work on the background of IBOS&lt;br /&gt;
&lt;br /&gt;
--[[User:Selliot3|Selliot3]] 23:03, 22 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It seems we only have 5/7 members. We should start splitting up the tasks and assign who gets what. So if everybody writes what section they would like to work on that would be great.&lt;br /&gt;
&lt;br /&gt;
--[[User:Ymoussou|Youcef M.]] 15:19, 20 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I&#039;ll do the contribution section. I&#039;ll be reading through the paper thoroughly today and taking notes as I go. I&#039;ll post them later on this page as a sort of cheat-sheet/reminder. --[[User:Gsmith6|Gsmith6]] 17:45, 25 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
=Group Members=&lt;br /&gt;
&lt;br /&gt;
Leave your name and e-mail address if you are assigned to this question.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[User:Ymoussou|Youcef M.]] moussoud@gmail.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I am alive and still in the class, selliot3@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
--[[User:Selliot3|Selliot3]] 18:12, 15 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Still in the class, andrewtubman84@gmail.com&lt;br /&gt;
&lt;br /&gt;
[[User:Atubman|Atubman]]&lt;br /&gt;
&lt;br /&gt;
I&#039;m here. I have received an email reply from John Vanden Heuvel as well (he may not see this) gsmith0413@gmail.com&lt;br /&gt;
--[[User:Gsmith6|Gsmith6]] 22:31, 15 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
[[User:vviveka2|vG]]&lt;br /&gt;
&lt;br /&gt;
I am here... and replied to the email&lt;br /&gt;
&lt;br /&gt;
=Question 2 members=&lt;br /&gt;
&lt;br /&gt;
Elliott Charles selliot3&lt;br /&gt;
&lt;br /&gt;
Moussoud Youcef ymoussou&lt;br /&gt;
&lt;br /&gt;
Pharand Alexandre apharan2&lt;br /&gt;
&lt;br /&gt;
Smith Geoffrey gsmith6&lt;br /&gt;
&lt;br /&gt;
Tubman Andrew   atubman&lt;br /&gt;
&lt;br /&gt;
Vanden Heuvel John jvheuvel&lt;br /&gt;
&lt;br /&gt;
Vivekanandarajah Vijitharan vviveka2&lt;br /&gt;
&lt;br /&gt;
=Raw Information=&lt;br /&gt;
&lt;br /&gt;
The web itself is ubiquitous which a person can use for communication; banking, business, social networking and it can be useful for other purposes. There are different type of vulnerabilities web applications, browser, OS and library vulnerabilities. Insecure web browsers are monolithic, and they are easy to exploit. Secure  web browser such as chrome isolate web applications and it still contain huge trusted computing base (TCB). Browser abstractions as the first-class OS, contains reduced TCB for web browser and it also have protection to withstand attacks to most components. [[User:vviveka2|vG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Extra Resources=&lt;br /&gt;
http://www.cs.uiuc.edu/homes/stang6/ibos.html#slide1&lt;br /&gt;
I found some presentation slides by Shuo Tang, Haohui Mai and Sam King, the authors and developers of IBOS&lt;br /&gt;
--[[User:Gsmith6|Gsmith6]] 22:35, 25 November 2010 (UTC)&lt;/div&gt;</summary>
		<author><name>Atubman</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_2&amp;diff=6142</id>
		<title>Talk:COMP 3000 Essay 2 2010 Question 2</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_2&amp;diff=6142"/>
		<updated>2010-12-02T03:36:01Z</updated>

		<summary type="html">&lt;p&gt;Atubman: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Comments &amp;amp; Discussion=&lt;br /&gt;
Brief description of the research problem below. (Still Needs expanding/fleshing out. can anyone help expand on why exactly shrinking the TCB will be more secure. I&#039;m fuzzy on that)&lt;br /&gt;
 &lt;br /&gt;
The IBOS attempts to improve the security of web browsers. The writers argue that the large size of the trusted code bases (TCB) which modern web browsers make use of increases the possibility of a security hole. For example a hijacked window manager could be used to draw a fake phishing website overtop a web browser. The researchers solution is drastically shrinking the size of the TCB. The TCB is shrunk by turning the web browser into an operating system in itself with direct access to hardware abstractions. &lt;br /&gt;
[[User:Atubman|Atubman]] 03:36, 2 December 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
EDIT: I&#039;ve pretty much explained the background concept behind IBOS and I kind of added the way it&#039;s executed near the end. Feel free to move that into the research section.&lt;br /&gt;
&lt;br /&gt;
I can work on the background of IBOS&lt;br /&gt;
&lt;br /&gt;
--[[User:Selliot3|Selliot3]] 23:03, 22 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It seems we only have 5/7 members. We should start splitting up the tasks and assign who gets what. So if everybody writes what section they would like to work on that would be great.&lt;br /&gt;
&lt;br /&gt;
--[[User:Ymoussou|Youcef M.]] 15:19, 20 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I&#039;ll do the contribution section. I&#039;ll be reading through the paper thoroughly today and taking notes as I go. I&#039;ll post them later on this page as a sort of cheat-sheet/reminder. --[[User:Gsmith6|Gsmith6]] 17:45, 25 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
=Group Members=&lt;br /&gt;
&lt;br /&gt;
Leave your name and e-mail address if you are assigned to this question.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[User:Ymoussou|Youcef M.]] moussoud@gmail.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I am alive and still in the class, selliot3@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
--[[User:Selliot3|Selliot3]] 18:12, 15 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Still in the class, andrewtubman84@gmail.com&lt;br /&gt;
&lt;br /&gt;
[[User:Atubman|Atubman]]&lt;br /&gt;
&lt;br /&gt;
I&#039;m here. I have received an email reply from John Vanden Heuvel as well (he may not see this) gsmith0413@gmail.com&lt;br /&gt;
--[[User:Gsmith6|Gsmith6]] 22:31, 15 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
[[User:vviveka2|vG]]&lt;br /&gt;
&lt;br /&gt;
I am here... and replied to the email&lt;br /&gt;
&lt;br /&gt;
=Question 2 members=&lt;br /&gt;
&lt;br /&gt;
Elliott Charles selliot3&lt;br /&gt;
&lt;br /&gt;
Moussoud Youcef ymoussou&lt;br /&gt;
&lt;br /&gt;
Pharand Alexandre apharan2&lt;br /&gt;
&lt;br /&gt;
Smith Geoffrey gsmith6&lt;br /&gt;
&lt;br /&gt;
Tubman Andrew   atubman&lt;br /&gt;
&lt;br /&gt;
Vanden Heuvel John jvheuvel&lt;br /&gt;
&lt;br /&gt;
Vivekanandarajah Vijitharan vviveka2&lt;br /&gt;
&lt;br /&gt;
=Raw Information=&lt;br /&gt;
&lt;br /&gt;
The web itself is ubiquitous which a person can use for communication; banking, business, social networking and it can be useful for other purposes. There are different type of vulnerabilities web applications, browser, OS and library vulnerabilities. Insecure web browsers are monolithic, and they are easy to exploit. Secure  web browser such as chrome isolate web applications and it still contain huge trusted computing base (TCB). Browser abstractions as the first-class OS, contains reduced TCB for web browser and it also have protection to withstand attacks to most components. [[User:vviveka2|vG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Extra Resources=&lt;br /&gt;
http://www.cs.uiuc.edu/homes/stang6/ibos.html#slide1&lt;br /&gt;
I found some presentation slides by Shuo Tang, Haohui Mai and Sam King, the authors and developers of IBOS&lt;br /&gt;
--[[User:Gsmith6|Gsmith6]] 22:35, 25 November 2010 (UTC)&lt;/div&gt;</summary>
		<author><name>Atubman</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_2&amp;diff=4994</id>
		<title>Talk:COMP 3000 Essay 2 2010 Question 2</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_2&amp;diff=4994"/>
		<updated>2010-11-15T18:19:50Z</updated>

		<summary type="html">&lt;p&gt;Atubman: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Group Members=&lt;br /&gt;
&lt;br /&gt;
Leave your name and e-mail address if you are assigned to this question.&lt;br /&gt;
&lt;br /&gt;
[[User:Ymoussou|Youcef M.]] moussoud@gmail.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I am alive and still in the class, selliot3@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
--[[User:Selliot3|Selliot3]] 18:12, 15 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Still in the class, andrewtubman84@gmail.com&lt;br /&gt;
&lt;br /&gt;
[[User:Atubman|Atubman]]&lt;br /&gt;
&lt;br /&gt;
=Question 2 members=&lt;br /&gt;
&lt;br /&gt;
Elliott Charles selliot3&lt;br /&gt;
&lt;br /&gt;
Moussoud Youcef ymoussou&lt;br /&gt;
&lt;br /&gt;
Pharand Alexandre apharan2&lt;br /&gt;
&lt;br /&gt;
Smith Geoffrey gsmith6&lt;br /&gt;
&lt;br /&gt;
Tubman Andrew   atubman&lt;br /&gt;
&lt;br /&gt;
Vanden Heuvel John jvheuvel&lt;br /&gt;
&lt;br /&gt;
Vivekanandarajah Vijitharan vviveka2&lt;/div&gt;</summary>
		<author><name>Atubman</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_6&amp;diff=4086</id>
		<title>COMP 3000 Essay 1 2010 Question 6</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_6&amp;diff=4086"/>
		<updated>2010-10-14T21:03:49Z</updated>

		<summary type="html">&lt;p&gt;Atubman: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Question=&lt;br /&gt;
&lt;br /&gt;
What are some examples of notable systems that have failed due to flawed efforts at mutual exclusion and/or race conditions? How significant was the failure in each case?&lt;br /&gt;
&lt;br /&gt;
=Answer=&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
Race conditions have their fare share of notoriety in the history of software bugs. This may range from a piece of Java code causing an application to halt, the corruption of web services, or the failure of a life-critical system with fatal consequences. In this article, we will define race conditions, examine some of the most well known cases involving race conditions. We will also take a look at some of the solution schemes and ways the industry have proposed to track and detect race conditions.&lt;br /&gt;
&lt;br /&gt;
=Overview=&lt;br /&gt;
&lt;br /&gt;
A race condition occurs when two or more processes receive write access to shared data simultaneously. The end result may be incorrect &lt;br /&gt;
depending on the exact timing of those processes. Consequently a major system failure can occur. The main challenge with race condition errors is &lt;br /&gt;
that they&#039;re usually unpredictable and can be triggered in various ways depending on the processes involved and the surrounding environment, making it a nightmare for&lt;br /&gt;
the programmers to debug and track the error.&lt;br /&gt;
&lt;br /&gt;
=Examples=&lt;br /&gt;
== Therac-25 ==&lt;br /&gt;
&lt;br /&gt;
The Therac-25 was an x-ray machine developed in Canada by Atomic Energy of Canada Limited (AECL). The machine was used to treat people using radiation therapy. Between 1985 and 1987 six patients were given overdoses of radiation by the machine. Half these patients died due to the accident. The incident is quite possibly the most infamous software bug relating to race conditions. The cause of the incidents has been traced back to a programming bug which caused a race-condition.&lt;br /&gt;
The Therac-25 software was written by a single programmer in PDP-11 assembly language. Portions of code were reused from software in the previous Therac-6 and Therac-20 machines. &lt;br /&gt;
The main portion of the code runs a function called “Treat” this function determins which of the programs 8 main subroutines it should be executing. The Keyboard handler task ran concurrently with “Treat”.&lt;br /&gt;
&lt;br /&gt;
===Main Subroutines===&lt;br /&gt;
&lt;br /&gt;
The Therac-25 had 8 main subroutines it made use of. The Datent had its own helper routine called magnet which prepared the x-rays magnets to administer the correct dosage of radiation.&lt;br /&gt;
&lt;br /&gt;
#Reset&lt;br /&gt;
#Datent&lt;br /&gt;
##Magnet&lt;br /&gt;
#Set Up Done&lt;br /&gt;
#Set Up Test&lt;br /&gt;
#Patient Treatment&lt;br /&gt;
#Pause Treatment&lt;br /&gt;
#Terminate Treatment&lt;br /&gt;
#Date, Time, ID Changes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Datent subroutine communicated with the keyboard hander task through a shared variable which signaled if the operator was finished entering the necessary data. Once the Datent subroutine sets the flag signifying the operator has entered the necessary information it allows the main program to move onto the next subroutine. If the flag was not set the “Treat” task reschedules itself in turn rescheduling the Datent subroutine. This continues until the shared data entry flag is set.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Datent subroutine was also responsible for preparing the x-ray to administer the correct radiation dosage. The subroutine was setup so that before returning to “Treat” instructions to move on to the next of its 8 subroutines it would first call the “Magnet” subroutine. This subroutine parsed the operators input and moved the x-ray machines magnets into position to administer the prescribed radiation. This magnet subroutine took approximately 8 seconds to complete and while it ran the keyboard handler was also running. If the operator modified the data before the “magnet” subroutine returned their changes would not be register and the x-ray strength would already be set to its prior value ignoring the operator’s changes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Example Bug Situation===&lt;br /&gt;
&lt;br /&gt;
The situation below illustrates a chain of events that would result in an unintended dose of radiation being administered.&lt;br /&gt;
&lt;br /&gt;
#Operator types up data, presses return&lt;br /&gt;
#(Magnet subroutine is initiated)&lt;br /&gt;
#Operator realizes there is an extra 0 in the radiation intensity field&lt;br /&gt;
#Operator quickly moves cursor up and fixes the error and presses return again.&lt;br /&gt;
#Magnets are set to previous power level .subroutine returns &lt;br /&gt;
#Program moves on to next subroutine without registering changes&lt;br /&gt;
#Patient is administered a lethal overdose of radiation&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Root Causes &amp;amp; Outcomes===&lt;br /&gt;
&lt;br /&gt;
A number of factors contributed to the failure of the Therac-25. The code was put together by a single programmer and no proper testing was conducted. In addition, code was reused from previous generation machines without verifying it was fully compatible with the new hardware. Previous Therac-6 and Therac-20 had hardware interrupts which prevent race conditions from occurring. It is clear that proper planning and forethought could have prevented this incident.&lt;br /&gt;
&lt;br /&gt;
Six incidents involving the Therac-25 took place over the span 1985 and 1987. It took 2 years until the FDA took the machines out of service. The FDA forced AECL to make modifications to the Therac-25 before it was allowed back on the market. Software bugs were fixed to suspend all other operations while the magnets positioned themselves to administer the correct radiation strength. In addition, a dead mans switch was added the switch was a foot pedal which the operator must hold down to enable motion of the x-ray machine. This prevented the operator of being unaware of changes in the x-ray machines state.&lt;br /&gt;
&lt;br /&gt;
After these changes were made the Therac-25 was reintroduced into the market in 1988. Some of the machines are still in service today. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Black-out of 2003 ==&lt;br /&gt;
&lt;br /&gt;
An energy management system failed due to a race condition, ultimately leading to Ontario and parts of the United States experiencing a black-out.&lt;br /&gt;
&lt;br /&gt;
The incident occured on August 14th, 2003, when a power plant located in Eastlake, Ohio went offline. The system was set up so that if this were to occur, a warning would be sent to FirstEnergy&#039;s control center in Akron, Ohio. Upon recieving this warning, power would be re-routed through other plants to isolate the failure.However, no warning was recieved, resulting in a domino effect causing ultimately over 100 power plants to go offline.&lt;br /&gt;
&lt;br /&gt;
FirstEnergy at the time was using General Eletric&#039;s Unix-based XA/21 energy management system. This system was responsible for alerting the operators of the control center whenever there was a problem. Unfortunately, a flaw in the software caused the system to crash.The energy management system crashed silently, so that the operators at the control center had no idea they were not receiving alerts the otherwise would be. Without any warnings, the operators had no idea the power plant went offline, and so took no measures to prevent the cascading effect leading to the black-out.&lt;br /&gt;
 &lt;br /&gt;
===Cause of Race Condition===&lt;br /&gt;
&lt;br /&gt;
The XA/21 energy management system failed due to three sagging power lines being tripped simultaneously. These three seperate events then attempted to execute on a shared state, causing the main system to fail. A back-up server went online to attempt to handle the requests. By the time it kicked in the accumulation of events since the main system failure caused the back-up to fail as well.&lt;br /&gt;
&lt;br /&gt;
===Aftermath===&lt;br /&gt;
With the system failure that ultimately led to 256 plants going offline, a massive black-out was experienced in North Eastern USA and Ontario. It is estimated that 55 million people were effected by the black-out. Investigations in the aftermath revealed both negligence on FirstEnergy&#039;s part and revealed the deeply embedded bug within the XA/21 energy management system. The bug has since been fixed with a patch.&lt;br /&gt;
&lt;br /&gt;
== The NASA Mars-Rover ==&lt;br /&gt;
The NASA Mars-Rover incident is another well known case of system failure due to race conditions. The Mars-Rover is a six wheeled driven, four wheeled steered vehicle designed by NASA to navigate the surface of Mars in order to gather videos, images, samples or and possible data about the planet. NASA landed two Rover vehicles, the Spirit and Opportunity Rovers, on January 4 and January 25, 2004, respectively. The Rover was controlled on a daily basis by the NASA team on earth by sending messages and tasks. Each solar day in the life of the Rover is called a Sol. &lt;br /&gt;
&lt;br /&gt;
===Hardware design and architecture===&lt;br /&gt;
The vehicle&#039;s main operating equipment consists of a set of high-resolution cameras, a collection of specialized spectrometers and a set of radio antennas for transmitting and receiving data. The main computer was built around a BAE RAD-6000 CPU (Rad6k), RAM and non-volatile memory (a combination of FLASH and ROM). &lt;br /&gt;
&lt;br /&gt;
===Software design===&lt;br /&gt;
The Rover is controlled by the VxWorks real-time operating system.  The Rover flight software was mostly implemented in ANSI C, with some fragements of code written in C++ and assembly. &lt;br /&gt;
The rover relied on an autonomous system that enabled it to drive itself and carry out a number of self-maintenance operations. The system implements a time-multiplexing system, where all processes share and access resources on the single CPU. The Rover records progress through the use of three primary log-file systems: event reports (EVRs), engineering data (EH&amp;amp;A) and data products.&lt;br /&gt;
&lt;br /&gt;
===System failures and vulnerabilities===&lt;br /&gt;
The first race-condition bug occured in the Spirit Rover Sol 131. The initilazation module (IM) process was preparing to increment a counter that keeps track of the number of times an initilazation occured, in order to do that, the IM process must request permission and be granted access to write that counter to memory (critical section). While requesting the permission, another process was granted access to use that very same piece of memory (critical section). This resulted in the IM process generating a fatal exception through its EVR log. The exception lead to loss and trouble in transmitting data to the NASA team on earth, which eventually led to&lt;br /&gt;
the Rover being in a halt state for a few days. The NASA team attempted to solve the problem by rebooting the Rover and restricting another module from operating during that time-frame. However, the same bug reoccured in the Spirit Rover on Sol 209 and then on the Opportunity Rover on Sol 596 and Sol 622.&lt;br /&gt;
&lt;br /&gt;
A similar type of error occurred on the Spirit Sol 136, this time the Imaging Services Module (IMG) was involved. Just as the NASA team requested data from the Rover to be transmitted, the IMG was beginning a deactivation state, the IMG reading cycles from memory were suddenly interrupted by the deactivation process which was attempting to power off the piece of memory associated with the IMG reading task. This resulted in a failure to return the requested data from the Rover. &lt;br /&gt;
&lt;br /&gt;
==Windows Blue-Screens-Of-Death==&lt;br /&gt;
&lt;br /&gt;
When a problem in Windows forces the operation systems to fail, the computer often displays an error screen, know as Stop message, that describes the cause of the problem, most people called this a Blue Screen of Death (BSOD).&lt;br /&gt;
&lt;br /&gt;
The error 0X0000001a, MEMORY_MANAGEMENT, occurs because of the race condition of memory management. It is a hardware error related to memory management. It is possible that the computer can not timely get enough power to the memory for the process. &lt;br /&gt;
&lt;br /&gt;
The BSOD has surfaced on a number of Windows versions including Windows 7. It has also caused system failures in airports, ATM machines and street hoardings. However, the most notable public incident happened on the opening ceremony of the 2008 Beijing Summer Olympics in China, when one of the projectors crashed because of a BSOD bug.  &lt;br /&gt;
&lt;br /&gt;
=Conclusions=&lt;br /&gt;
The need to control race conditions and maintain concurrency and safe sharing of resources among &lt;br /&gt;
processes brings us to the concept of mutual exclusion (Mutex). Mutual exclusion is the idea of making sure &lt;br /&gt;
processes access data in a serialized way. Meaning that, if process A for instance, happens to be executing or &lt;br /&gt;
using a particular data structure (called a critical section), then no other process like B would be allowed&lt;br /&gt;
to execute or use that very same data structure (critical section) until process A finishes executing or decides&lt;br /&gt;
to leave the data structure. Common algorithms and techniques used to establish mutual exclusion include locks, semaphores and monitors.&lt;br /&gt;
&lt;br /&gt;
A handful of commercial software tools have been developed to address and detect race conditions errors as well. More recently, a US software company that goes by the name of ReplaySolutions has been awarded a patent from the US government for developing an innovative kit for debugging race conditions found in software.  &lt;br /&gt;
&lt;br /&gt;
As the industry strives for faster and more efficient level of performance through the use of multi-processor systems and multi-core chips, this area continues to be a vast field for research and innovation within the computing world. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
* Nancy Leveson. July 1993. [http://sunnyday.mit.edu/papers/therac.pdf Medical Devices: The Therac-25] &lt;br /&gt;
* Nancy Leveson and Clark Turner. July 1993. [http://www.stanford.edu/class/cs240/readings/therac-25.pdf An Investigation of the Therac-25 Accidents]  &lt;br /&gt;
* Anne Marie Porrello. July 1993. [http://users.csc.calpoly.edu/~jdalbey/SWE/Papers/THERAC25.html Death and Denial: The Failure of the THERAC-25, A Medical Linear Accelerator]  &lt;br /&gt;
* Reeves and Snyder. 10 January 2006. [http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&amp;amp;arnumber=1571113&amp;amp;userType=inst An Overview of the Mars Exploration Rovers&#039; Flight Software]. [http://trs-new.jpl.nasa.gov/dspace/bitstream/2014/37499/1/05-0539.pdf another source]&lt;br /&gt;
* Matijevic and E. Dewell. 2006 [http://trs-new.jpl.nasa.gov/dspace/bitstream/2014/39897/1/06-0922.pdf Anomaly Recovery and the Mars Exploration Rovers]&lt;br /&gt;
* John Chan. 12 August 2008. Dreaded Blue Screen of Death strikes Olympics [http://news.cnet.com/8301-17938_105-10015872-1.html] &lt;br /&gt;
* Dr. Dobb&#039;s Journal. 9 June 2010. Patent Awarded for Debugging Race Conditions [http://www.drdobbs.com/tools/225600068]&lt;/div&gt;</summary>
		<author><name>Atubman</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_6&amp;diff=4085</id>
		<title>COMP 3000 Essay 1 2010 Question 6</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_6&amp;diff=4085"/>
		<updated>2010-10-14T21:01:22Z</updated>

		<summary type="html">&lt;p&gt;Atubman: Added Root Causes &amp;amp; Outcomes to the Therac-25 example. More good references added as well&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Question=&lt;br /&gt;
&lt;br /&gt;
What are some examples of notable systems that have failed due to flawed efforts at mutual exclusion and/or race conditions? How significant was the failure in each case?&lt;br /&gt;
&lt;br /&gt;
=Answer=&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
Race conditions have their fare share of notoriety in the history of software bugs. This may range from a piece of Java code causing an application to halt, the corruption of web services, or the failure of a life-critical system with fatal consequences. In this article, we will define race conditions, examine some of the most well known cases involving race conditions. We will also take a look at some of the solution schemes and ways the industry have proposed to track and detect race conditions.&lt;br /&gt;
&lt;br /&gt;
=Overview=&lt;br /&gt;
&lt;br /&gt;
A race condition occurs when two or more processes receive write access to shared data simultaneously. The end result may be incorrect &lt;br /&gt;
depending on the exact timing of those processes. Consequently a major system failure can occur. The main challenge with race condition errors is &lt;br /&gt;
that they&#039;re usually unpredictable and can be triggered in various ways depending on the processes involved and the surrounding environment, making it a nightmare for&lt;br /&gt;
the programmers to debug and track the error.&lt;br /&gt;
&lt;br /&gt;
=Examples=&lt;br /&gt;
== Therac-25 ==&lt;br /&gt;
&lt;br /&gt;
The Therac-25 was an x-ray machine developed in Canada by Atomic Energy of Canada Limited (AECL). The machine was used to treat people using radiation therapy. Between 1985 and 1987 six patients were given overdoses of radiation by the machine. Half these patients died due to the accident. The incident is quite possibly the most infamous software bug relating to race conditions. The cause of the incidents has been traced back to a programming bug which caused a race-condition.&lt;br /&gt;
The Therac-25 software was written by a single programmer in PDP-11 assembly language. Portions of code were reused from software in the previous Therac-6 and Therac-20 machines. &lt;br /&gt;
The main portion of the code runs a function called “Treat” this function determins which of the programs 8 main subroutines it should be executing. The Keyboard handler task ran concurrently with “Treat”.&lt;br /&gt;
&lt;br /&gt;
===Main Subroutines===&lt;br /&gt;
&lt;br /&gt;
The Therac-25 had 8 main subroutines it made use of. The Datent had its own helper routine called magnet which prepared the x-rays magnets to administer the correct dosage of radiation.&lt;br /&gt;
&lt;br /&gt;
#Reset&lt;br /&gt;
#Datent&lt;br /&gt;
##Magnet&lt;br /&gt;
#Set Up Done&lt;br /&gt;
#Set Up Test&lt;br /&gt;
#Patient Treatment&lt;br /&gt;
#Pause Treatment&lt;br /&gt;
#Terminate Treatment&lt;br /&gt;
#Date, Time, ID Changes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Datent subroutine communicated with the keyboard hander task through a shared variable which signaled if the operator was finished entering the necessary data. Once the Datent subroutine sets the flag signifying the operator has entered the necessary information it allows the main program to move onto the next subroutine. If the flag was not set the “Treat” task reschedules itself in turn rescheduling the Datent subroutine. This continues until the shared data entry flag is set.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Datent subroutine was also responsible for preparing the x-ray to administer the correct radiation dosage. The subroutine was setup so that before returning to “Treat” instructions to move on to the next of its 8 subroutines it would first call the “Magnet” subroutine. This subroutine parsed the operators input and moved the x-ray machines magnets into position to administer the prescribed radiation. This magnet subroutine took approximately 8 seconds to complete and while it ran the keyboard handler was also running. If the operator modified the data before the “magnet” subroutine returned their changes would not be register and the x-ray strength would already be set to its prior value ignoring the operator’s changes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Example Bug Situation===&lt;br /&gt;
&lt;br /&gt;
The situation below illustrates a chain of events that would result in an unintended dose of radiation being administered.&lt;br /&gt;
&lt;br /&gt;
#Operator types up data, presses return&lt;br /&gt;
#(Magnet subroutine is initiated)&lt;br /&gt;
#Operator realizes there is an extra 0 in the radiation intensity field&lt;br /&gt;
#Operator quickly moves cursor up and fixes the error and presses return again.&lt;br /&gt;
#Magnets are set to previous power level .subroutine returns &lt;br /&gt;
#Program moves on to next subroutine without registering changes&lt;br /&gt;
#Patient is administered a lethal overdose of radiation&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Root Causes &amp;amp; Outcome===&lt;br /&gt;
&lt;br /&gt;
A number of factors contributed to the failure of the Therac-25. The code was put together by a single programmer and no proper testing was conducted. In addition, code was reused from previous generation machines without verifying it was fully compatible with the new hardware. Previous Therac-6 and Therac-20 had hardware interrupts which prevent race conditions from occurring. It is clear that proper planning and forethought could have prevented this incident.&lt;br /&gt;
&lt;br /&gt;
Six incidents involving the Therac-25 took place over the span 1985 and 1987. It took 2 years until the FDA took the machines out of service. The FDA forced AECL to make modifications to the Therac-25 before it was allowed back on the market. Software bugs were fixed to suspend all other operations while the magnets positioned themselves to administer the correct radiation strength. In addition, a dead mans switch was added the switch was a foot pedal which the operator must hold down to enable motion of the x-ray machine. This prevented the operator of being unaware of changes in the x-ray machines state.&lt;br /&gt;
&lt;br /&gt;
After these changes were made the Therac-25 was reintroduced into the market in 1988. Some of the machines are still in service today. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Black-out of 2003 ==&lt;br /&gt;
&lt;br /&gt;
An energy management system failed due to a race condition, ultimately leading to Ontario and parts of the United States experiencing a black-out.&lt;br /&gt;
&lt;br /&gt;
The incident occured on August 14th, 2003, when a power plant located in Eastlake, Ohio went offline. The system was set up so that if this were to occur, a warning would be sent to FirstEnergy&#039;s control center in Akron, Ohio. Upon recieving this warning, power would be re-routed through other plants to isolate the failure.However, no warning was recieved, resulting in a domino effect causing ultimately over 100 power plants to go offline.&lt;br /&gt;
&lt;br /&gt;
FirstEnergy at the time was using General Eletric&#039;s Unix-based XA/21 energy management system. This system was responsible for alerting the operators of the control center whenever there was a problem. Unfortunately, a flaw in the software caused the system to crash.The energy management system crashed silently, so that the operators at the control center had no idea they were not receiving alerts the otherwise would be. Without any warnings, the operators had no idea the power plant went offline, and so took no measures to prevent the cascading effect leading to the black-out.&lt;br /&gt;
 &lt;br /&gt;
===Cause of Race Condition===&lt;br /&gt;
&lt;br /&gt;
The XA/21 energy management system failed due to three sagging power lines being tripped simultaneously. These three seperate events then attempted to execute on a shared state, causing the main system to fail. A back-up server went online to attempt to handle the requests. By the time it kicked in the accumulation of events since the main system failure caused the back-up to fail as well.&lt;br /&gt;
&lt;br /&gt;
===Aftermath===&lt;br /&gt;
With the system failure that ultimately led to 256 plants going offline, a massive black-out was experienced in North Eastern USA and Ontario. It is estimated that 55 million people were effected by the black-out. Investigations in the aftermath revealed both negligence on FirstEnergy&#039;s part and revealed the deeply embedded bug within the XA/21 energy management system. The bug has since been fixed with a patch.&lt;br /&gt;
&lt;br /&gt;
== The NASA Mars-Rover ==&lt;br /&gt;
The NASA Mars-Rover incident is another well known case of system failure due to race conditions. The Mars-Rover is a six wheeled driven, four wheeled steered vehicle designed by NASA to navigate the surface of Mars in order to gather videos, images, samples or and possible data about the planet. NASA landed two Rover vehicles, the Spirit and Opportunity Rovers, on January 4 and January 25, 2004, respectively. The Rover was controlled on a daily basis by the NASA team on earth by sending messages and tasks. Each solar day in the life of the Rover is called a Sol. &lt;br /&gt;
&lt;br /&gt;
===Hardware design and architecture===&lt;br /&gt;
The vehicle&#039;s main operating equipment consists of a set of high-resolution cameras, a collection of specialized spectrometers and a set of radio antennas for transmitting and receiving data. The main computer was built around a BAE RAD-6000 CPU (Rad6k), RAM and non-volatile memory (a combination of FLASH and ROM). &lt;br /&gt;
&lt;br /&gt;
===Software design===&lt;br /&gt;
The Rover is controlled by the VxWorks real-time operating system.  The Rover flight software was mostly implemented in ANSI C, with some fragements of code written in C++ and assembly. &lt;br /&gt;
The rover relied on an autonomous system that enabled it to drive itself and carry out a number of self-maintenance operations. The system implements a time-multiplexing system, where all processes share and access resources on the single CPU. The Rover records progress through the use of three primary log-file systems: event reports (EVRs), engineering data (EH&amp;amp;A) and data products.&lt;br /&gt;
&lt;br /&gt;
===System failures and vulnerabilities===&lt;br /&gt;
The first race-condition bug occured in the Spirit Rover Sol 131. The initilazation module (IM) process was preparing to increment a counter that keeps track of the number of times an initilazation occured, in order to do that, the IM process must request permission and be granted access to write that counter to memory (critical section). While requesting the permission, another process was granted access to use that very same piece of memory (critical section). This resulted in the IM process generating a fatal exception through its EVR log. The exception lead to loss and trouble in transmitting data to the NASA team on earth, which eventually led to&lt;br /&gt;
the Rover being in a halt state for a few days. The NASA team attempted to solve the problem by rebooting the Rover and restricting another module from operating during that time-frame. However, the same bug reoccured in the Spirit Rover on Sol 209 and then on the Opportunity Rover on Sol 596 and Sol 622.&lt;br /&gt;
&lt;br /&gt;
A similar type of error occurred on the Spirit Sol 136, this time the Imaging Services Module (IMG) was involved. Just as the NASA team requested data from the Rover to be transmitted, the IMG was beginning a deactivation state, the IMG reading cycles from memory were suddenly interrupted by the deactivation process which was attempting to power off the piece of memory associated with the IMG reading task. This resulted in a failure to return the requested data from the Rover. &lt;br /&gt;
&lt;br /&gt;
==Windows Blue-Screens-Of-Death==&lt;br /&gt;
&lt;br /&gt;
When a problem in Windows forces the operation systems to fail, the computer often displays an error screen, know as Stop message, that describes the cause of the problem, most people called this a Blue Screen of Death (BSOD).&lt;br /&gt;
&lt;br /&gt;
The error 0X0000001a, MEMORY_MANAGEMENT, occurs because of the race condition of memory management. It is a hardware error related to memory management. It is possible that the computer can not timely get enough power to the memory for the process. &lt;br /&gt;
&lt;br /&gt;
The BSOD has surfaced on a number of Windows versions including Windows 7. It has also caused system failures in airports, ATM machines and street hoardings. However, the most notable public incident happened on the opening ceremony of the 2008 Beijing Summer Olympics in China, when one of the projectors crashed because of a BSOD bug.  &lt;br /&gt;
&lt;br /&gt;
=Conclusions=&lt;br /&gt;
The need to control race conditions and maintain concurrency and safe sharing of resources among &lt;br /&gt;
processes brings us to the concept of mutual exclusion (Mutex). Mutual exclusion is the idea of making sure &lt;br /&gt;
processes access data in a serialized way. Meaning that, if process A for instance, happens to be executing or &lt;br /&gt;
using a particular data structure (called a critical section), then no other process like B would be allowed&lt;br /&gt;
to execute or use that very same data structure (critical section) until process A finishes executing or decides&lt;br /&gt;
to leave the data structure. Common algorithms and techniques used to establish mutual exclusion include locks, semaphores and monitors.&lt;br /&gt;
&lt;br /&gt;
A handful of commercial software tools have been developed to address and detect race conditions errors as well. More recently, a US software company that goes by the name of ReplaySolutions has been awarded a patent from the US government for developing an innovative kit for debugging race conditions found in software.  &lt;br /&gt;
&lt;br /&gt;
As the industry strives for faster and more efficient level of performance through the use of multi-processor systems and multi-core chips, this area continues to be a vast field for research and innovation within the computing world. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
* Nancy Leveson. July 1993. [http://sunnyday.mit.edu/papers/therac.pdf Medical Devices: The Therac-25] &lt;br /&gt;
* Nancy Leveson and Clark Turner. July 1993. [http://www.stanford.edu/class/cs240/readings/therac-25.pdf An Investigation of the Therac-25 Accidents]  &lt;br /&gt;
* Anne Marie Porrello. July 1993. [http://users.csc.calpoly.edu/~jdalbey/SWE/Papers/THERAC25.html Death and Denial: The Failure of the THERAC-25, A Medical Linear Accelerator]  &lt;br /&gt;
* Reeves and Snyder. 10 January 2006. [http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&amp;amp;arnumber=1571113&amp;amp;userType=inst An Overview of the Mars Exploration Rovers&#039; Flight Software]. [http://trs-new.jpl.nasa.gov/dspace/bitstream/2014/37499/1/05-0539.pdf another source]&lt;br /&gt;
* Matijevic and E. Dewell. 2006 [http://trs-new.jpl.nasa.gov/dspace/bitstream/2014/39897/1/06-0922.pdf Anomaly Recovery and the Mars Exploration Rovers]&lt;br /&gt;
* John Chan. 12 August 2008. Dreaded Blue Screen of Death strikes Olympics [http://news.cnet.com/8301-17938_105-10015872-1.html] &lt;br /&gt;
* Dr. Dobb&#039;s Journal. 9 June 2010. Patent Awarded for Debugging Race Conditions [http://www.drdobbs.com/tools/225600068]&lt;/div&gt;</summary>
		<author><name>Atubman</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_6&amp;diff=3578</id>
		<title>COMP 3000 Essay 1 2010 Question 6</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_6&amp;diff=3578"/>
		<updated>2010-10-14T03:12:54Z</updated>

		<summary type="html">&lt;p&gt;Atubman: Made couple changes to Therac-25 and cleaned lists&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Question=&lt;br /&gt;
&lt;br /&gt;
What are some examples of notable systems that have failed due to flawed efforts at mutual exclusion and/or race conditions? How significant was the failure in each case?&lt;br /&gt;
&lt;br /&gt;
=Answer=&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
Race conditions bugs have their fare share of notoriety in the history of software bugs. This may range from a piece of Java code causing the application to halt, to life-critical system failures that lead to fatal results. In this article, we will define race conditions, examine some of the most well known cases involving race conditions and explore some of the solution schemes and ways the industry have proposed to track and detect race conditions.&lt;br /&gt;
&lt;br /&gt;
=Overview=&lt;br /&gt;
&lt;br /&gt;
Race conditions is the term used in situations where two or more processes can access the same piece of data simutaneously and &lt;br /&gt;
the end result depends on the timing sequence of those processes. This end result can be quite hazardous leading to major system&lt;br /&gt;
failures.&lt;br /&gt;
&lt;br /&gt;
The need to control those race conditions and maintain concurrency and safe sharing of resources among processes brings us to the concept of mutual exclusion (Mutex). Mutual exclusion is the idea of making sure processes access data in a serialized way. Meaning that, if process A for instance, happens to be executing or using a particular data structure (called a critical section), then no other process like B would be allowed to execute or use that very same data structure (critical section) until process A finishes executing or decides to leave the data structure. Common algorithms and techniques used to establish mutual exclusion include locks, semaphores and monitors.&lt;br /&gt;
=Examples=&lt;br /&gt;
== Therac-25 ==&lt;br /&gt;
&lt;br /&gt;
The Therac-25 was an x-ray machine developed in Canada by Atomic Energy of Canada Limited (AECL). The machine was used to treat people using radiation therapy. Between 1985 and 1987 six patients were given overdoses of radiation by the machine. Half these patients died due to the accident. The cause of the incidents has been traced back to a programming bug which caused a race-condition.&lt;br /&gt;
The Therac-25 software was written by a single programmer in PDP-11 assembly language. Portions of code were reused from software in the previous Therac-6 and Therac-20 machines. &lt;br /&gt;
The main portion of the code runs a function called “Treat” this function determins which of the programs 8 main subroutines it should be executing. The Keyboard handler task ran concurrently with “Treat”&lt;br /&gt;
&lt;br /&gt;
===Main Subroutines===&lt;br /&gt;
&lt;br /&gt;
The Therac-25 had 8 main subroutines it made use of. The Datent had its own helper routine called magnet which prepared the x-rays magnets to administer the correct dosage of radiation.&lt;br /&gt;
&lt;br /&gt;
#Reset&lt;br /&gt;
#Datent&lt;br /&gt;
##Magnet&lt;br /&gt;
#Set Up Done&lt;br /&gt;
#Set Up Test&lt;br /&gt;
#Patient Treatment&lt;br /&gt;
#Pause Treatment&lt;br /&gt;
#Terminate Treatment&lt;br /&gt;
#Date, Time, ID Changes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Datent subroutine communicated with the keyboard hander task through a shared variable which signaled if the operator was finished entering the necessary data. Once the Datent subroutine sets the flag signifying the operator has entered the necessary information it allows the main program to move onto the next subroutine. If the flag was not set the “Treat” task reschedules itself in turn rescheduling the Datent subroutine. This continues until the shared data entry flag is set.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Datent subroutine was also responsible for preparing the x-ray to administer the correct radiation dosage. The subroutine was setup so that before returning to “Treat” instructions to move on to the next of its 8 subroutines it would first call the “Magnet” subroutine. This subroutine parsed the operators input and moved the x-ray machines magnets into position to administer the prescribed radiation. This magnet subroutine took approximately 8 seconds to complete and while it ran the keyboard handler was also running. If the operator modified the data before the “magnet” subroutine returned their changes would not be register and the x-ray strength would already be set to its prior value ignoring the operator’s changes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Example Bug Situation===&lt;br /&gt;
&lt;br /&gt;
The situation below illustrates a chain of events that would result in an unintended dose of radiation being administered.&lt;br /&gt;
&lt;br /&gt;
#Operator types up data, presses return&lt;br /&gt;
#(Magnet subroutine is initiated)&lt;br /&gt;
#Operator realizes there is an extra 0 in the radiation intensity field&lt;br /&gt;
#Operator quickly moves cursor up and fixes the error and presses return again.&lt;br /&gt;
#Magnets are set to previous power level .subroutine returns &lt;br /&gt;
#Program moves on to next subroutine without registering changes&lt;br /&gt;
#Patient is administered a lethal overdose of radiation&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Black-out of 2003 ==&lt;br /&gt;
&lt;br /&gt;
On August 14th, 2003, a massive power outage spread through the Northeastern and Midwestern United States and Canada. A generating plant in Eastlake, Ohio went offline, causing a domino affect ultimately leading to over 100 power plants shutting down.&lt;br /&gt;
&lt;br /&gt;
There are several reasons that are attributed to this massive failure. One of the most prominent factors being a software bug in General Electric Energy&#039;s Unix-based XA/21 energy management system.&lt;br /&gt;
&lt;br /&gt;
FirstEnergy&#039;s Akron, Ohio control center was responsible for monitoring the Eastlake plant. However, the software flaw caused the control center to be unable to receive any warning or alarm from the plants.&lt;br /&gt;
&lt;br /&gt;
Because of this, the control center&#039;s ability to prevent the cascading effect after the Eastlake plant went offline.&lt;br /&gt;
&lt;br /&gt;
The XA/21 bug was triggered through a unique combination of events and alarm conditions on the equipment it was monitoring. The main system failed, unable to handle the combination of requests. By the time the back-up server kicked in, the accumulation of events since the main system failure caused it to go down as well.&lt;br /&gt;
&lt;br /&gt;
The system made no indication that it had failed, and the control center received no warnings about the fact that they were operating without an alarm system.&lt;br /&gt;
&lt;br /&gt;
The combination which caused the first system failure itself was due to three sagging power lines being tripped simultaneously. The three separate events attempted to execute on a shared state, causing no alarm to be raised and the system to fail.&lt;br /&gt;
&lt;br /&gt;
== The NASA Mars-Rover ==&lt;br /&gt;
&lt;br /&gt;
The NASA Mars-Rover incident is another well known case of system failure due to race conditions. The Mars-Rover is a six wheeled driven, four wheeled steered vehicle designed by NASA to navigate the surface of Mars in order to gather videos, images, samples or any possible data about the planet. NASA landed two Rover vehicles, the Spirit and Opportunity Rovers, on January 4 and January 25, 2004, respectively. The Rover was controlled on a daily basis by the NASA team on earth by sending messages and tasks. Each solar day in the life of the Rover is called a Sol. &lt;br /&gt;
&lt;br /&gt;
===Hardware design and architecture===&lt;br /&gt;
&lt;br /&gt;
The vehicle&#039;s main operating equipment consists of a set of high-resolution cameras, a collection of specialized spectrometers and a set of radio antennas for transmitting and receiving data. The main computer was built around a BAE RAD-6000 CPU (Rad6k), RAM and non-volatile memory (a combination of FLASH and ROM). &lt;br /&gt;
&lt;br /&gt;
===Software design===&lt;br /&gt;
&lt;br /&gt;
The Rover software was mostly implemented in ANSI C, with some fragements of code written in C++ and assembly. The rover relied on an autonomous system that enabled the rover to drive itself and carry out a number of self-maintenance operations. The system implements a time-multiplexing system, as all processes share resources on the CPU. The Rover records progress through the use of three primary log-file systems: event reports (EVRs), engineering data (EH&amp;amp;A) and data products.&lt;br /&gt;
&lt;br /&gt;
===System failures===&lt;br /&gt;
The first race-condition bug occured in the Spirit Rover on Sol 131. The initilazation module (IM) process was preparing to increment a counter that keeps track of the number of times an initilazation occured, in order to do that, the IM process must request permission and be granted access to write that counter to memory (critical section). While requesting the permission, another process was granted access to use that very same piece of memory (critical section). This resulted in the IM process generating a fatal exception through its EVR log. The exception lead to loss and trouble in transmitting data to the NASA team on earth. The NASA team attempted to solve the problem by restricting another module from operating during that time-frame. However, the same bug reoccured in the Spirit Rover on Sol 209 and then on the Opportunity Rover on Sol 596 and Sol 622.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Windows Blue-Screens-Of-Death==&lt;br /&gt;
&lt;br /&gt;
When a problem in Windows forces the operation systems to fail, the computer often displays an error screen, know as Stop message, that describes the cause of the problem, most people called this a Blue Screen of Death (BSOD).&lt;br /&gt;
&lt;br /&gt;
The error 0X0000001a, MEMORY_MANAGEMENT, occurs because of the race condition of memory management. It is a hardware error related to memory management. It is possible that the computer can not timely get enough power to the memory for the process. &lt;br /&gt;
&lt;br /&gt;
The BSOD has surfaced on a number of Windows versions including Windows 7. It has also caused system failures in airports, ATM machines and street hoardings. However, the most notable public incident happened on the opening ceremony of the 2008 Beijing Summer Olympics in China, when one of the projectors crashed because of a BSOD bug.  &lt;br /&gt;
&lt;br /&gt;
=Conclusions=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
* Nancy Leveson. [http://sunnyday.mit.edu/papers/therac.pdf Medical Devices: The Therac-25] &lt;br /&gt;
* Reeves and Snyder. [http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&amp;amp;arnumber=1571113&amp;amp;userType=inst An Overview of the Mars Exploration Rovers&#039; Flight Software]&lt;br /&gt;
* Matijevic and E. Dewell. 2006 [http://trs-new.jpl.nasa.gov/dspace/bitstream/2014/39897/1/06-0922.pdf Anomaly Recovery and the Mars Exploration Rovers]&lt;br /&gt;
* Dreaded Blue Screen of Death strikes Olympics [http://news.cnet.com/8301-17938_105-10015872-1.html]&lt;/div&gt;</summary>
		<author><name>Atubman</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_6&amp;diff=3547</id>
		<title>COMP 3000 Essay 1 2010 Question 6</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_6&amp;diff=3547"/>
		<updated>2010-10-14T02:31:14Z</updated>

		<summary type="html">&lt;p&gt;Atubman: Added Therac-25 Reference&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Question=&lt;br /&gt;
&lt;br /&gt;
What are some examples of notable systems that have failed due to flawed efforts at mutual exclusion and/or race conditions? How significant was the failure in each case?&lt;br /&gt;
&lt;br /&gt;
=Answer=&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
Race conditions bugs have their fare share of notoriety in the history of software bugs. This may range from a piece of Java code causing the application to halt, to life-critical system failures that lead to fatal results. In this article, we will define race conditions, examine some of the most well known cases involving race conditions and explore some of the solution schemes and ways the industry have proposed to track and detect race conditions.&lt;br /&gt;
&lt;br /&gt;
=Overview=&lt;br /&gt;
&lt;br /&gt;
Race conditions is the term used in situations where two or more processes can access the same piece of data simutaneously and &lt;br /&gt;
the end result depends on the timing sequence of those processes. This end result can be quite hazardous leading to major system&lt;br /&gt;
failures.&lt;br /&gt;
&lt;br /&gt;
The need to control those race conditions and maintain concurrency and safe sharing of resources among processes brings us to the concept of mutual exclusion (Mutex). Mutual exclusion is the idea of making sure processes access data in a serialized way. Meaning that, if process A for instance, happens to be executing or using a particular data structure (called a critical section), then no other process like B would be allowed to execute or use that very same data structure (critical section) until process A finishes executing or decides to leave the data structure. Common algorithms and techniques used to establish mutual exclusion include locks, semaphores and monitors.&lt;br /&gt;
=Examples=&lt;br /&gt;
== Therac-25 ==&lt;br /&gt;
(This is still very rough and needs work. Thought I would lay it out there as a starting point)&lt;br /&gt;
&lt;br /&gt;
The Therac-25 was an x-ray machine developed in Canada by Atomic Energy of Canada Limited (AECL). The machine was used to treat people using radiation therapy. Between 1985 and 1987 six patients were given overdoses of radiation by the machine. Half these patients died due to the accident. The cause of the incidents has been traced back to a programming bug which caused a race-condition.&lt;br /&gt;
The Therac-25 software was written by a single programmer in PDP-11 assembly language. Portions of code were reused from software in the previous Therac-6 and Therac-20 machines. &lt;br /&gt;
The main portion of the code runs a function called “Treat” this function determins which of the programs 8 main subroutines it should be executing. The Keyboard handler task ran concurrently with “Treat”&lt;br /&gt;
&lt;br /&gt;
The 8 main subroutines were: &lt;br /&gt;
&lt;br /&gt;
Reset&lt;br /&gt;
&lt;br /&gt;
Datent&lt;br /&gt;
&lt;br /&gt;
Set Up Done&lt;br /&gt;
&lt;br /&gt;
Set Up Test&lt;br /&gt;
&lt;br /&gt;
Patient Treatment&lt;br /&gt;
&lt;br /&gt;
Pause Treatment&lt;br /&gt;
&lt;br /&gt;
Terminate Treatment&lt;br /&gt;
&lt;br /&gt;
Date, Time, ID Changes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Datent subroutine communicated with the keyboard hander task through a shared variable which signaled if the operator was finished entering the necessary data. Once the Datent subroutine sets the flag signifying the operator has entered the necessary information it allows the main program to move onto the next subroutine. If the flag was not set the “Treat” task reschedules itself in turn rescheduling the Datent subroutine. This continues until the shared data entry flag is set.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Datent subroutine was also responsible for preparing the x-ray to administer the correct radiation dosage. The subroutine was setup so that before returning to “Treat” instructions to move on to the next of its 8 subroutines it would first call the “Magnet” subroutine. This subroutine parsed the operators input and moved the x-ray machines magnets into position to administer the prescribed radiation. This magnet subroutine took approximately 8 seconds to complete and while it ran the keyboard handler was also running. If the operator modified the data before the “magnet” subroutine returned their changes would not be register and the x-ray strength would already be set to its prior value ignoring the operator’s changes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hypothetical example situation:&lt;br /&gt;
&lt;br /&gt;
-Operator types up data, presses return&lt;br /&gt;
&lt;br /&gt;
-(Magnet subroutine is initiated)&lt;br /&gt;
&lt;br /&gt;
-Operator realizes there is an extra 0 in the radiation intensity field&lt;br /&gt;
-Operator moves cursor up and fixes the error and presses return again.&lt;br /&gt;
&lt;br /&gt;
-Magnets are set to previous power level .subroutine returns &lt;br /&gt;
&lt;br /&gt;
-Program moves on to next subroutine without registering changes&lt;br /&gt;
&lt;br /&gt;
-Patient is administered a lethal overdose of radiation&lt;br /&gt;
&lt;br /&gt;
== Black-out of 2003 ==&lt;br /&gt;
&lt;br /&gt;
On August 14th, 2003, a massive power outage spread through the Northeastern and Midwestern United States and Canada. A generating plant in Eastlake, Ohio went offline, causing a domino affect ultimately leading to over 100 power plants shutting down.&lt;br /&gt;
&lt;br /&gt;
There are several reasons that are attributed to this massive failure. One of the most prominent factors being a software bug in General Electric Energy&#039;s Unix-based XA/21 energy management system.&lt;br /&gt;
&lt;br /&gt;
FirstEnergy&#039;s Akron, Ohio control center was responsible for monitoring the Eastlake plant. However, the software flaw caused the control center to be unable to receive any warning or alarm from the plants.&lt;br /&gt;
&lt;br /&gt;
Because of this, the control center&#039;s ability to prevent the cascading effect after the Eastlake plant went offline.&lt;br /&gt;
&lt;br /&gt;
The XA/21 bug was triggered through a unique combination of events and alarm conditions on the equipment it was monitoring. The main system failed, unable to handle the combination of requests. By the time the back-up server kicked in, the accumulation of events since the main system failure caused it to go down as well.&lt;br /&gt;
&lt;br /&gt;
The system made no indication that it had failed, and the control center received no warnings about the fact that they were operating without an alarm system.&lt;br /&gt;
&lt;br /&gt;
The combination which caused the first system failure itself was due to three sagging power lines being tripped simultaneously. The three separate events attempted to execute on a shared state, causing no alarm to be raised and the system to fail.&lt;br /&gt;
&lt;br /&gt;
== The NASA Mars-Rover ==&lt;br /&gt;
&lt;br /&gt;
The NASA Mars-Rover incident is another well known case of system failure due to race conditions. The Mars-Rover is a six wheeled driven, four wheeled steered vehicle designed by NASA to navigate the surface of Mars in order to gather videos, images, samples or any possible data about the planet. NASA landed two Rover vehicles, the Spirit and Opportunity Rovers, on January 4 and January 25, 2004, respectively. The Rover was controlled on a daily basis by the NASA team on earth by sending messages and tasks. Each solar day in the life of the Rover is called a Sol. &lt;br /&gt;
&lt;br /&gt;
===Hardware design and architecture===&lt;br /&gt;
&lt;br /&gt;
The vehicle&#039;s main operating equipment consists of a set of high-resolution cameras, a collection of specialized spectrometers and a set of radio antennas for transmitting and receiving data. The main computer was built around a BAE RAD-6000 CPU (Rad6k), RAM and non-volatile memory (a combination of FLASH and ROM). &lt;br /&gt;
&lt;br /&gt;
===Software design===&lt;br /&gt;
&lt;br /&gt;
The Rover software was mostly implemented in ANSI C, with some fragements of code written in C++ and assembly. The rover relied on an autonomous system that enabled the rover to drive itself and carry out a number of self-maintenance operations. The system implements a time-multiplexing system, as all processes share resources on the CPU. The Rover records progress through the use of three primary log-file systems: event reports (EVRs), engineering data (EH&amp;amp;A) and data products.&lt;br /&gt;
&lt;br /&gt;
===System failures===&lt;br /&gt;
The first race-condition bug occured in the Spirit Rover on Sol 131. The initilazation module (IM) process was preparing to increment a counter that keeps track of the number of times an initilazation occured, in order to do that, the IM process must request permission and be granted access to write that counter to memory (critical section). While requesting the permission, another process was granted access to use that very same piece of memory (critical section). This resulted in the IM process generating a fatal exception through its EVR log. The exception lead to loss and trouble in transmitting data to the NASA team on earth. The NASA team attempted to solve the problem by restricting another module from operating during that time-frame. However, the same bug reoccured in the Spirit Rover on Sol 209 and then on the Opportunity Rover on Sol 596 and Sol 622.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Windows Blue-Screens-Of-Death==&lt;br /&gt;
&lt;br /&gt;
When a problem in Windows forces the operation systems to fail, the computer often displays an error screen, know as Stop message, that describes the cause of the problem, most people called this a Blue Screen of Death (BSOD).&lt;br /&gt;
&lt;br /&gt;
The error 0X0000001a, MEMORY_MANAGEMENT, occurs because of the race condition of memory management. It is a hardware error related to memory management. It is possible that the computer can not timely get enough power to the memory for the process. &lt;br /&gt;
&lt;br /&gt;
The BSOD has surfaced on a number of Windows versions including Windows 7. It has also caused system failures in airports, ATM machines and street hoardings. However, the most notable public incident happened on the opening ceremony of the 2008 Beijing Summer Olympics in China, when one of the projectors crashed because of a BSOD bug.  &lt;br /&gt;
&lt;br /&gt;
=Conclusions=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
* Nancy Leveson. [http://sunnyday.mit.edu/papers/therac.pdf Medical Devices: The Therac-25] &lt;br /&gt;
* Reeves and Snyder. [http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&amp;amp;arnumber=1571113&amp;amp;userType=inst An Overview of the Mars Exploration Rovers&#039; Flight Software]&lt;br /&gt;
* Matijevic and E. Dewell. 2006 [http://trs-new.jpl.nasa.gov/dspace/bitstream/2014/39897/1/06-0922.pdf Anomaly Recovery and the Mars Exploration Rovers]&lt;br /&gt;
* Dreaded Blue Screen of Death strikes Olympics [http://news.cnet.com/8301-17938_105-10015872-1.html]&lt;/div&gt;</summary>
		<author><name>Atubman</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_1_2010_Question_6&amp;diff=2871</id>
		<title>Talk:COMP 3000 Essay 1 2010 Question 6</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_1_2010_Question_6&amp;diff=2871"/>
		<updated>2010-10-10T23:28:12Z</updated>

		<summary type="html">&lt;p&gt;Atubman: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hey guys, this is Munther. I&#039;m one of the members of the group assigned to this question. Before we start, let me just say that since this is a collective piece of work thats supposed to include contributions from each member of the group, let us all assume the role of the editor. So we will all contribute and help edit the final version of the article.&lt;br /&gt;
&lt;br /&gt;
Regarding our question. As a starting point, I figured it would be appropriate to start defining what mutual exclusion (mutex) and race conditions mean. Lets start with race conditions, since mutual exclusion basically came to life because of the need to control race conditions.&lt;br /&gt;
&lt;br /&gt;
Race conditions: situations where one or more processes are trying to write, read or access the same piece of data, and the final result depends on who runs precisely when. Look at the text book in pages 117-118 for a detailed example of that.&lt;br /&gt;
&lt;br /&gt;
Mutual exclusion (mutex): the idea of making sure that processes access data in a serialized way. Meaning that, if process A for instance, happens to be executing or using a particular data structure (called a critical section), then no other process like B would be allowed to execute or use that very same data structure (critical section) until process A finishes executing or decides to leave the data structure. Common algorithms and techniques used in mutual exclusion include: locks, semaphores and monitors.&lt;br /&gt;
&lt;br /&gt;
Our question asks for examples of systems that have failed due to flawed efforts. For starters, this is a wiki-programming page (Rosetta code) that examines race conditions and offers an example from the Unix/Linux operating systems, whether the example mentioned here is considered a &amp;quot;failure&amp;quot; we should check with the prof. Anyways, its a good starting point.&lt;br /&gt;
http://rosettacode.org/wiki/Race_condition&lt;br /&gt;
&lt;br /&gt;
Heres also a paper that goes back to 1992, which basically examines the excessive amount of expenses and resources used in older versions of the Unix system when implementing mutual exclusion. The paper goes to explain the problem and offers a better solution. Its pretty easy to follow and understand, worth reading as well.&lt;br /&gt;
http://www.usenix.org/publications/library/proceedings/sa92/moran.pdf&lt;br /&gt;
&lt;br /&gt;
-- Munther&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hey Andrew here another member of this group. Those are some good starting points. The Wikipedia page on race conditions have references to a few good examples http://en.wikipedia.org/wiki/Race_condition&lt;br /&gt;
&lt;br /&gt;
Couple notable ones:&lt;br /&gt;
&lt;br /&gt;
The Therac-25 x-ray machine which killed a bunch of people http://courses.cs.vt.edu/~cs3604/lib/Therac_25/Side_bar_1.html&lt;br /&gt;
&lt;br /&gt;
A blackout in 2003 was caused by a race condition in one of the power company&#039;s alarm systems http://www.securityfocus.com/news/8412 (really awful block of text)&lt;br /&gt;
&lt;br /&gt;
--Andrew&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Alright, so the things that the prof mentioned in our last lecture proved to be super helpful. Basically, what he means by &amp;quot;systems&amp;quot;, is any device based operating system. It doesn&#039;t necessarily has to be a PC-based operating system (Windows, Linux, etc.). So the Therac-25 story mentioned by Andrew in the above post is a prime example of the type of things we might be looking for.&lt;br /&gt;
&lt;br /&gt;
Other notable examples:&lt;br /&gt;
&lt;br /&gt;
1. The Opportunity Mars-Rover 1116 incident. (A rover is basically a space exploration vehicle designed to navigate the surface of a planet in order to gather images, samples or any possible information about that particular surface.). The rover experienced a rare unexpected error due to a race-conditions fault. For some reason, this seems to be a fairly common problem for those Mars-Rovers, since the same kind of error was experienced on the Spirit Mars-Rover as well. &lt;br /&gt;
&lt;br /&gt;
Heres an overview of the Opportunity 1116 incident from MarsToday : http://www.marstoday.com/news/viewsr.html?pid=23772&lt;br /&gt;
&lt;br /&gt;
Heres a paper that examines the race conditions experienced on those rovers, discuses the Spirit Rover incident and even goes to &lt;br /&gt;
explain the underlying architecture of the rover hardware: http://trs-new.jpl.nasa.gov/dspace/bitstream/2014/39897/1/06-0922.pdf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. A file-system based type of race condition involves an older version of the Unix operating system, in which the user-mode can actually be bypassed, allowing the user to access the entire system. I can see this being considered an error or a case of failure as well. This actually may be a bit more approachable, as far as understanding the Unix kernel and stuff like that, I&#039;m sure we can find a lot of resources for this.&lt;br /&gt;
&lt;br /&gt;
A small article exploring the issue: http://www.osdata.com/holistic/security/attacks/racecond.html&lt;br /&gt;
&lt;br /&gt;
- - - - - - - - - - -&lt;br /&gt;
&lt;br /&gt;
Heres also a paper that examines Race Conditions in depth, talks about the importance of mutual exclusion and provides a number of solutions :&lt;br /&gt;
http://www.google.ca/url?sa=t&amp;amp;source=web&amp;amp;cd=4&amp;amp;ved=0CCoQFjAD&amp;amp;url=http%3A%2F%2Fciteseerx.ist.psu.edu%2Fviewdoc%2Fdownload%3Fdoi%3D10.1.1.1.5897%26rep%3Drep1%26type%3Dpdf&amp;amp;rct=j&amp;amp;q=race%20conditions%20case%20study%20steve%20carr%2010.1.1.1&amp;amp;ei=FTCtTOzRN8mVnAeL-OThDA&amp;amp;usg=AFQjCNHdyHdeFSpES0nMjzb7lPkFxKwC2g&amp;amp;sig2=u2Qo9kdemxdCWAlH10GNeQ&lt;br /&gt;
&lt;br /&gt;
Heres another paper from the ACM Portal: http://portal.acm.org/citation.cfm?id=130616.130623&amp;amp;coll=Portal&amp;amp;dl=GUIDE&amp;amp;CFID=104720795&amp;amp;CFTOKEN=13393160&lt;br /&gt;
&lt;br /&gt;
If anyone can&#039;t access the pdf files on the ACM Portal or even CiteSeer for that matter, you need to log in to the netwrk using your Carleton library account. Go to the following: http://portal.acm.org.proxy.library.carleton.ca&lt;br /&gt;
You will be prompted to enter your Student ID card barcode number, thats the number below your name on your student ID. And the password is your CarletonCentral password.&lt;br /&gt;
&lt;br /&gt;
I think so far we have managed to gather a handful amount of cases. In the next couple of days, we should probably delve deeper into some of those cases.&lt;br /&gt;
&lt;br /&gt;
PS: If you wanna contact me, go to my profile in the history tab. Click on Hesperus.&lt;br /&gt;
&lt;br /&gt;
-- Munther&lt;br /&gt;
&lt;br /&gt;
--------------------&lt;br /&gt;
&lt;br /&gt;
Hey guys, I am Daniel. I am also in group 6 (Am i the final group member?). I&#039;m ready to help get this show on the road! I am going to set up a basic essay structure on the other page so that we know what to aim for. You guys look like you&#039;ve rounded up quite a bit of info on the subject already, great job!&lt;br /&gt;
&lt;br /&gt;
 Introduction Paragraph: Introduces the question and gives some general background etc.&lt;br /&gt;
 Paragraph 1: Gives first example in detail&lt;br /&gt;
 Paragraph 2: Gives second example in detail&lt;br /&gt;
 Paragraph 3: Gives third example in detail&lt;br /&gt;
 Conclusion: Relates it all back together or something (never been good with conclusions) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I think each example paragraph should be broken down like this:&lt;br /&gt;
&lt;br /&gt;
 1. Introduction to the example&lt;br /&gt;
 2. What they tried to use the Multi-Threading to do (or something like that)&lt;br /&gt;
 3. Story of the system failing&lt;br /&gt;
 4. The significance/involvement of race condition and mutual exclusion in the failure&lt;br /&gt;
 5. Conclusion (how it was solved and stuff like that can go here too)&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hey guys, I&#039;m Fangchen. I am also in group 6. (So I might be the last member lol) &lt;br /&gt;
I found a chapter of a book from sun, which name of the chapter is Race Conditions and&lt;br /&gt;
Mutual Exclusion.There are some examples on race condition in Java programming which i think we could study for sure.&lt;br /&gt;
&lt;br /&gt;
The link of the book chapter is here.&lt;br /&gt;
&lt;br /&gt;
http://java.sun.com/developer/Books/performance2/chap3.pdf&lt;br /&gt;
&lt;br /&gt;
On page 2 of the pdf file, there is a first example of race condition. I think this might be useful in our essay as a case study.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--Fangchen&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
My name is Julie and I believe that I am the last group member. Our professor said that every group has 5 to 6 members.&lt;br /&gt;
It appears that we have quite the list of resources. Are we planning to use them all? It might be a good idea to list the resources we believe are the most relevant. &lt;br /&gt;
&lt;br /&gt;
Note:  This link, http://www.osdata.com/holistic/security/attacks/racecond.html, is broken. &lt;br /&gt;
&lt;br /&gt;
I only have one resource to add. I found a paper that summarizes information about Therac-25 and the blackout of 2003: http://x4.6times7.org/downloads/software_catastrophes.pdf.&lt;br /&gt;
&lt;br /&gt;
4.1 Blackout (pg. 5 – 6)&lt;br /&gt;
&lt;br /&gt;
4.3 Therac-25 (pg. 7 – 8)&lt;br /&gt;
&lt;br /&gt;
I think we should agree on a thesis soon. Currently the examples in our essay are not connected by a central argument. If we have time, I think we should try to find another example (assuming we have agreed to write about Therac-25, the blackout of 2003 and the Mars rovers). Prof. Anil said that he was expecting four to five examples. Three examples is a minimum. I have been trying to search for one that is not as well known (as encouraged in class) but I have not had any luck.&lt;br /&gt;
&lt;br /&gt;
Are the series of Mars rovers (Opportunity and Spirit from 2004-2005) the most recent examples? I have not found any that are more recent so far. I wonder if systems programmers have learned from these past failures. I noticed, while searching for resources, that researchers have developed/are now developing tools and strategies to detect race conditions. &lt;br /&gt;
&lt;br /&gt;
Lastly, what is our plan on how divide the work for this essay?  Also do we want to meet in person someday?&lt;br /&gt;
&lt;br /&gt;
--[[User:J powers|J powers]] 16:08, 9 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
One suggestion I have for dividing the work is for everyone to write a paragraph of the essay or about a specific disaster.&lt;br /&gt;
--[[User:J powers|J powers]] 16:50, 9 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
Cool, its good to have the other members of the group on board. I will handle the editing and the introductory paragraph. I will try to make it as academic as possible. &lt;br /&gt;
&lt;br /&gt;
What Julie mentioned is right. The prof said that 3 examples are alright. But he&#039;s really looking for 4-5 cases. We need to impress him a little bit here. The other case he mentioned was the Blue-Screens-Of-Death incidents. I believe a mail man was killed because of that. I will try to find some information on that later on today. &lt;br /&gt;
&lt;br /&gt;
Also, if you guys wanna meet up a couple of days before the due date, thats ok by me. We can meet up in the Herzberg labs in the 4th floor, not the undergrad ones, the ones at the end of the hall. Or I can reserve a room for us in the library. Or if you just want to continue doing this online, I know that each one of us has probably a different schedule and everything.&lt;br /&gt;
&lt;br /&gt;
-- Munther&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Alright, Seems we needed more than i originally thought :p so i tweaked the other page to have 5 of them instead of 3.  I would absolutely like to meet up :D. Doing this online thing makes me feel wierd for some reason...&lt;br /&gt;
&lt;br /&gt;
But if we do meet up lets put all our discussion and decisions on the page here so it can get reviewed etc.&lt;br /&gt;
&lt;br /&gt;
If we are gonna meet up I would prefer Herzberg (not that it really matters, its just where i hang out anyways)&lt;br /&gt;
&lt;br /&gt;
Also is this due on tuesday or thursday?&lt;br /&gt;
&lt;br /&gt;
-- Daniel&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
Ok everyone write in here when you are available before the 14th&lt;br /&gt;
&lt;br /&gt;
 Daniel: all day Monday, Tuesday, and Thursday&lt;br /&gt;
 Munther: --&lt;br /&gt;
 Fangchen: --&lt;br /&gt;
 Andrew: After 12:30 Tues-Wed-Thurs&lt;br /&gt;
 Julie: Tuesday after 2:30, and Wednesday/Thursday after 1:00　[[User:J powers|J powers]] 19:32, 10 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Hey Everyone. Awesome looks like we have a lot of information and resources here to work from. Daniels template structure looks good and we should follow that. We should come up with a plan for executing this, what topics we want to cover and who would like to focus on what. I think the 3 big examples we&#039;ve found lots of resources for are the Therac-25, Mars Rover and the Blackout. The professor mentioned he&#039;d like to see some more exotic examples lets try and find some for examples 4/5.&lt;br /&gt;
&lt;br /&gt;
Layout we can build on.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Introduction&lt;br /&gt;
&lt;br /&gt;
Therac-25&lt;br /&gt;
&lt;br /&gt;
Mars Rover&lt;br /&gt;
&lt;br /&gt;
Blackout&lt;br /&gt;
&lt;br /&gt;
Example 4&lt;br /&gt;
&lt;br /&gt;
Example 5&lt;br /&gt;
&lt;br /&gt;
Conclusion&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I&#039;m going to try and read up a bit more on the Therac-25 and put in a few paragraphs today.&lt;br /&gt;
&lt;br /&gt;
[[User:Atubman|Atubman]] 21:55, 10 October 2010 (UTC) (did not know about the 4 tildes thing, thanks for sharing)&lt;br /&gt;
----&lt;br /&gt;
I do not mind which topic I write about but I feel a personal connection with the blackout. My hometown was affected for a long time and there were concerns about chemical plants nearby. Therefore I have an interest in writing/researching about it.&lt;br /&gt;
&lt;br /&gt;
Has the group member above (&amp;lt;strike&amp;gt;Could you please put your name? Was it Andrew?&amp;lt;/strike&amp;gt;) decided on Therac-25 then? &lt;br /&gt;
&lt;br /&gt;
Also I have noticed that everyone has not been using 4 tildes. I am not sure if this how the professor knows who wrote what but it would not hurt to use it (Less to type as well). &lt;br /&gt;
&lt;br /&gt;
Any ideas on a deadline for all of our writing?&lt;br /&gt;
&lt;br /&gt;
[[User:J powers|J powers]] 21:05, 10 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
I tried writing up a bit about the Therac-25. Still pretty rough but its a start.&lt;br /&gt;
&lt;br /&gt;
Good information in this paper http://sunnyday.mit.edu/papers/therac.pdf&lt;br /&gt;
&lt;br /&gt;
Pages 22-28 deal with the software bug&lt;br /&gt;
&lt;br /&gt;
[[User:Atubman|Atubman]] 23:27, 10 October 2010 (UTC)&lt;/div&gt;</summary>
		<author><name>Atubman</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_1_2010_Question_6&amp;diff=2870</id>
		<title>Talk:COMP 3000 Essay 1 2010 Question 6</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_1_2010_Question_6&amp;diff=2870"/>
		<updated>2010-10-10T23:27:47Z</updated>

		<summary type="html">&lt;p&gt;Atubman: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hey guys, this is Munther. I&#039;m one of the members of the group assigned to this question. Before we start, let me just say that since this is a collective piece of work thats supposed to include contributions from each member of the group, let us all assume the role of the editor. So we will all contribute and help edit the final version of the article.&lt;br /&gt;
&lt;br /&gt;
Regarding our question. As a starting point, I figured it would be appropriate to start defining what mutual exclusion (mutex) and race conditions mean. Lets start with race conditions, since mutual exclusion basically came to life because of the need to control race conditions.&lt;br /&gt;
&lt;br /&gt;
Race conditions: situations where one or more processes are trying to write, read or access the same piece of data, and the final result depends on who runs precisely when. Look at the text book in pages 117-118 for a detailed example of that.&lt;br /&gt;
&lt;br /&gt;
Mutual exclusion (mutex): the idea of making sure that processes access data in a serialized way. Meaning that, if process A for instance, happens to be executing or using a particular data structure (called a critical section), then no other process like B would be allowed to execute or use that very same data structure (critical section) until process A finishes executing or decides to leave the data structure. Common algorithms and techniques used in mutual exclusion include: locks, semaphores and monitors.&lt;br /&gt;
&lt;br /&gt;
Our question asks for examples of systems that have failed due to flawed efforts. For starters, this is a wiki-programming page (Rosetta code) that examines race conditions and offers an example from the Unix/Linux operating systems, whether the example mentioned here is considered a &amp;quot;failure&amp;quot; we should check with the prof. Anyways, its a good starting point.&lt;br /&gt;
http://rosettacode.org/wiki/Race_condition&lt;br /&gt;
&lt;br /&gt;
Heres also a paper that goes back to 1992, which basically examines the excessive amount of expenses and resources used in older versions of the Unix system when implementing mutual exclusion. The paper goes to explain the problem and offers a better solution. Its pretty easy to follow and understand, worth reading as well.&lt;br /&gt;
http://www.usenix.org/publications/library/proceedings/sa92/moran.pdf&lt;br /&gt;
&lt;br /&gt;
-- Munther&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hey Andrew here another member of this group. Those are some good starting points. The Wikipedia page on race conditions have references to a few good examples http://en.wikipedia.org/wiki/Race_condition&lt;br /&gt;
&lt;br /&gt;
Couple notable ones:&lt;br /&gt;
&lt;br /&gt;
The Therac-25 x-ray machine which killed a bunch of people http://courses.cs.vt.edu/~cs3604/lib/Therac_25/Side_bar_1.html&lt;br /&gt;
&lt;br /&gt;
A blackout in 2003 was caused by a race condition in one of the power company&#039;s alarm systems http://www.securityfocus.com/news/8412 (really awful block of text)&lt;br /&gt;
&lt;br /&gt;
--Andrew&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Alright, so the things that the prof mentioned in our last lecture proved to be super helpful. Basically, what he means by &amp;quot;systems&amp;quot;, is any device based operating system. It doesn&#039;t necessarily has to be a PC-based operating system (Windows, Linux, etc.). So the Therac-25 story mentioned by Andrew in the above post is a prime example of the type of things we might be looking for.&lt;br /&gt;
&lt;br /&gt;
Other notable examples:&lt;br /&gt;
&lt;br /&gt;
1. The Opportunity Mars-Rover 1116 incident. (A rover is basically a space exploration vehicle designed to navigate the surface of a planet in order to gather images, samples or any possible information about that particular surface.). The rover experienced a rare unexpected error due to a race-conditions fault. For some reason, this seems to be a fairly common problem for those Mars-Rovers, since the same kind of error was experienced on the Spirit Mars-Rover as well. &lt;br /&gt;
&lt;br /&gt;
Heres an overview of the Opportunity 1116 incident from MarsToday : http://www.marstoday.com/news/viewsr.html?pid=23772&lt;br /&gt;
&lt;br /&gt;
Heres a paper that examines the race conditions experienced on those rovers, discuses the Spirit Rover incident and even goes to &lt;br /&gt;
explain the underlying architecture of the rover hardware: http://trs-new.jpl.nasa.gov/dspace/bitstream/2014/39897/1/06-0922.pdf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. A file-system based type of race condition involves an older version of the Unix operating system, in which the user-mode can actually be bypassed, allowing the user to access the entire system. I can see this being considered an error or a case of failure as well. This actually may be a bit more approachable, as far as understanding the Unix kernel and stuff like that, I&#039;m sure we can find a lot of resources for this.&lt;br /&gt;
&lt;br /&gt;
A small article exploring the issue: http://www.osdata.com/holistic/security/attacks/racecond.html&lt;br /&gt;
&lt;br /&gt;
- - - - - - - - - - -&lt;br /&gt;
&lt;br /&gt;
Heres also a paper that examines Race Conditions in depth, talks about the importance of mutual exclusion and provides a number of solutions :&lt;br /&gt;
http://www.google.ca/url?sa=t&amp;amp;source=web&amp;amp;cd=4&amp;amp;ved=0CCoQFjAD&amp;amp;url=http%3A%2F%2Fciteseerx.ist.psu.edu%2Fviewdoc%2Fdownload%3Fdoi%3D10.1.1.1.5897%26rep%3Drep1%26type%3Dpdf&amp;amp;rct=j&amp;amp;q=race%20conditions%20case%20study%20steve%20carr%2010.1.1.1&amp;amp;ei=FTCtTOzRN8mVnAeL-OThDA&amp;amp;usg=AFQjCNHdyHdeFSpES0nMjzb7lPkFxKwC2g&amp;amp;sig2=u2Qo9kdemxdCWAlH10GNeQ&lt;br /&gt;
&lt;br /&gt;
Heres another paper from the ACM Portal: http://portal.acm.org/citation.cfm?id=130616.130623&amp;amp;coll=Portal&amp;amp;dl=GUIDE&amp;amp;CFID=104720795&amp;amp;CFTOKEN=13393160&lt;br /&gt;
&lt;br /&gt;
If anyone can&#039;t access the pdf files on the ACM Portal or even CiteSeer for that matter, you need to log in to the netwrk using your Carleton library account. Go to the following: http://portal.acm.org.proxy.library.carleton.ca&lt;br /&gt;
You will be prompted to enter your Student ID card barcode number, thats the number below your name on your student ID. And the password is your CarletonCentral password.&lt;br /&gt;
&lt;br /&gt;
I think so far we have managed to gather a handful amount of cases. In the next couple of days, we should probably delve deeper into some of those cases.&lt;br /&gt;
&lt;br /&gt;
PS: If you wanna contact me, go to my profile in the history tab. Click on Hesperus.&lt;br /&gt;
&lt;br /&gt;
-- Munther&lt;br /&gt;
&lt;br /&gt;
--------------------&lt;br /&gt;
&lt;br /&gt;
Hey guys, I am Daniel. I am also in group 6 (Am i the final group member?). I&#039;m ready to help get this show on the road! I am going to set up a basic essay structure on the other page so that we know what to aim for. You guys look like you&#039;ve rounded up quite a bit of info on the subject already, great job!&lt;br /&gt;
&lt;br /&gt;
 Introduction Paragraph: Introduces the question and gives some general background etc.&lt;br /&gt;
 Paragraph 1: Gives first example in detail&lt;br /&gt;
 Paragraph 2: Gives second example in detail&lt;br /&gt;
 Paragraph 3: Gives third example in detail&lt;br /&gt;
 Conclusion: Relates it all back together or something (never been good with conclusions) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I think each example paragraph should be broken down like this:&lt;br /&gt;
&lt;br /&gt;
 1. Introduction to the example&lt;br /&gt;
 2. What they tried to use the Multi-Threading to do (or something like that)&lt;br /&gt;
 3. Story of the system failing&lt;br /&gt;
 4. The significance/involvement of race condition and mutual exclusion in the failure&lt;br /&gt;
 5. Conclusion (how it was solved and stuff like that can go here too)&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hey guys, I&#039;m Fangchen. I am also in group 6. (So I might be the last member lol) &lt;br /&gt;
I found a chapter of a book from sun, which name of the chapter is Race Conditions and&lt;br /&gt;
Mutual Exclusion.There are some examples on race condition in Java programming which i think we could study for sure.&lt;br /&gt;
&lt;br /&gt;
The link of the book chapter is here.&lt;br /&gt;
&lt;br /&gt;
http://java.sun.com/developer/Books/performance2/chap3.pdf&lt;br /&gt;
&lt;br /&gt;
On page 2 of the pdf file, there is a first example of race condition. I think this might be useful in our essay as a case study.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--Fangchen&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
My name is Julie and I believe that I am the last group member. Our professor said that every group has 5 to 6 members.&lt;br /&gt;
It appears that we have quite the list of resources. Are we planning to use them all? It might be a good idea to list the resources we believe are the most relevant. &lt;br /&gt;
&lt;br /&gt;
Note:  This link, http://www.osdata.com/holistic/security/attacks/racecond.html, is broken. &lt;br /&gt;
&lt;br /&gt;
I only have one resource to add. I found a paper that summarizes information about Therac-25 and the blackout of 2003: http://x4.6times7.org/downloads/software_catastrophes.pdf.&lt;br /&gt;
&lt;br /&gt;
4.1 Blackout (pg. 5 – 6)&lt;br /&gt;
&lt;br /&gt;
4.3 Therac-25 (pg. 7 – 8)&lt;br /&gt;
&lt;br /&gt;
I think we should agree on a thesis soon. Currently the examples in our essay are not connected by a central argument. If we have time, I think we should try to find another example (assuming we have agreed to write about Therac-25, the blackout of 2003 and the Mars rovers). Prof. Anil said that he was expecting four to five examples. Three examples is a minimum. I have been trying to search for one that is not as well known (as encouraged in class) but I have not had any luck.&lt;br /&gt;
&lt;br /&gt;
Are the series of Mars rovers (Opportunity and Spirit from 2004-2005) the most recent examples? I have not found any that are more recent so far. I wonder if systems programmers have learned from these past failures. I noticed, while searching for resources, that researchers have developed/are now developing tools and strategies to detect race conditions. &lt;br /&gt;
&lt;br /&gt;
Lastly, what is our plan on how divide the work for this essay?  Also do we want to meet in person someday?&lt;br /&gt;
&lt;br /&gt;
--[[User:J powers|J powers]] 16:08, 9 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
One suggestion I have for dividing the work is for everyone to write a paragraph of the essay or about a specific disaster.&lt;br /&gt;
--[[User:J powers|J powers]] 16:50, 9 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
Cool, its good to have the other members of the group on board. I will handle the editing and the introductory paragraph. I will try to make it as academic as possible. &lt;br /&gt;
&lt;br /&gt;
What Julie mentioned is right. The prof said that 3 examples are alright. But he&#039;s really looking for 4-5 cases. We need to impress him a little bit here. The other case he mentioned was the Blue-Screens-Of-Death incidents. I believe a mail man was killed because of that. I will try to find some information on that later on today. &lt;br /&gt;
&lt;br /&gt;
Also, if you guys wanna meet up a couple of days before the due date, thats ok by me. We can meet up in the Herzberg labs in the 4th floor, not the undergrad ones, the ones at the end of the hall. Or I can reserve a room for us in the library. Or if you just want to continue doing this online, I know that each one of us has probably a different schedule and everything.&lt;br /&gt;
&lt;br /&gt;
-- Munther&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Alright, Seems we needed more than i originally thought :p so i tweaked the other page to have 5 of them instead of 3.  I would absolutely like to meet up :D. Doing this online thing makes me feel wierd for some reason...&lt;br /&gt;
&lt;br /&gt;
But if we do meet up lets put all our discussion and decisions on the page here so it can get reviewed etc.&lt;br /&gt;
&lt;br /&gt;
If we are gonna meet up I would prefer Herzberg (not that it really matters, its just where i hang out anyways)&lt;br /&gt;
&lt;br /&gt;
Also is this due on tuesday or thursday?&lt;br /&gt;
&lt;br /&gt;
-- Daniel&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
Ok everyone write in here when you are available before the 14th&lt;br /&gt;
&lt;br /&gt;
 Daniel: all day Monday, Tuesday, and Thursday&lt;br /&gt;
 Munther: --&lt;br /&gt;
 Fangchen: --&lt;br /&gt;
 Andrew: After 12:30 Tues-Wed-Thurs&lt;br /&gt;
 Julie: Tuesday after 2:30, and Wednesday/Thursday after 1:00　[[User:J powers|J powers]] 19:32, 10 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Hey Everyone. Awesome looks like we have a lot of information and resources here to work from. Daniels template structure looks good and we should follow that. We should come up with a plan for executing this, what topics we want to cover and who would like to focus on what. I think the 3 big examples we&#039;ve found lots of resources for are the Therac-25, Mars Rover and the Blackout. The professor mentioned he&#039;d like to see some more exotic examples lets try and find some for examples 4/5.&lt;br /&gt;
&lt;br /&gt;
Layout we can build on.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Introduction&lt;br /&gt;
&lt;br /&gt;
Therac-25&lt;br /&gt;
&lt;br /&gt;
Mars Rover&lt;br /&gt;
&lt;br /&gt;
Blackout&lt;br /&gt;
&lt;br /&gt;
Example 4&lt;br /&gt;
&lt;br /&gt;
Example 5&lt;br /&gt;
&lt;br /&gt;
Conclusion&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I&#039;m going to try and read up a bit more on the Therac-25 and put in a few paragraphs today.&lt;br /&gt;
&lt;br /&gt;
[[User:Atubman|Atubman]] 21:55, 10 October 2010 (UTC) (did not know about the 4 tildes thing, thanks for sharing)&lt;br /&gt;
----&lt;br /&gt;
I do not mind which topic I write about but I feel a personal connection with the blackout. My hometown was affected for a long time and there were concerns about chemical plants nearby. Therefore I have an interest in writing/researching about it.&lt;br /&gt;
&lt;br /&gt;
Has the group member above (&amp;lt;strike&amp;gt;Could you please put your name? Was it Andrew?&amp;lt;/strike&amp;gt;) decided on Therac-25 then? &lt;br /&gt;
&lt;br /&gt;
Also I have noticed that everyone has not been using 4 tildes. I am not sure if this how the professor knows who wrote what but it would not hurt to use it (Less to type as well). &lt;br /&gt;
&lt;br /&gt;
Any ideas on a deadline for all of our writing?&lt;br /&gt;
&lt;br /&gt;
[[User:J powers|J powers]] 21:05, 10 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
I tried writing up a bit about the Therac-25. Still pretty rough but its a start.&lt;br /&gt;
Good information in this paper http://sunnyday.mit.edu/papers/therac.pdf&lt;br /&gt;
Pages 22-28 deal with the software bug&lt;br /&gt;
&lt;br /&gt;
[[User:Atubman|Atubman]] 23:27, 10 October 2010 (UTC)&lt;/div&gt;</summary>
		<author><name>Atubman</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_6&amp;diff=2869</id>
		<title>COMP 3000 Essay 1 2010 Question 6</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_6&amp;diff=2869"/>
		<updated>2010-10-10T23:26:00Z</updated>

		<summary type="html">&lt;p&gt;Atubman: Adding content&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Question=&lt;br /&gt;
&lt;br /&gt;
What are some examples of notable systems that have failed due to flawed efforts at mutual exclusion and/or race conditions? How significant was the failure in each case?&lt;br /&gt;
&lt;br /&gt;
=Answer=&lt;br /&gt;
&lt;br /&gt;
Check the discussion tab. -- Munther &lt;br /&gt;
&lt;br /&gt;
Introduction Paragraph:&lt;br /&gt;
Introduces the question and gives some general background etc.&lt;br /&gt;
&lt;br /&gt;
Paragraph 1:&lt;br /&gt;
Gives first example in detail&lt;br /&gt;
&lt;br /&gt;
Paragraph 2:&lt;br /&gt;
Gives second example in detail&lt;br /&gt;
&lt;br /&gt;
Paragraph 3:&lt;br /&gt;
Gives third example in detail&lt;br /&gt;
&lt;br /&gt;
Paragraph 4:&lt;br /&gt;
Gives fourth example in detail&lt;br /&gt;
&lt;br /&gt;
Paragraph 5:&lt;br /&gt;
Gives fifth example in detail&lt;br /&gt;
&lt;br /&gt;
Conclusion:&lt;br /&gt;
Relates it all back together or something (never been good with conclusions)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Therac-25 ==&lt;br /&gt;
(This is still very rough and needs work. Thought I would lay it out there as a starting point)&lt;br /&gt;
&lt;br /&gt;
The Therac-25 was an x-ray machine developed in Canada by Atomic Energy of Canada Limited (AECL). The machine was used to treat people using radiation therapy. Between 1985 and 1987 six patients were given overdoses of radiation by the machine. Half these patients died due to the accident. The cause of the incidents has been traced back to a programming bug which caused a race-condition.&lt;br /&gt;
The Therac-25 software was written by a single programmer in PDP-11 assembly language. Portions of code were reused from software in the previous Therac-6 and Therac-20 machines. &lt;br /&gt;
The main portion of the code runs a function called “Treat” this function determins which of the programs 8 main subroutines it should be executing. The Keyboard handler task ran concurrently with “Treat”&lt;br /&gt;
&lt;br /&gt;
The 8 main subroutines were: &lt;br /&gt;
&lt;br /&gt;
Reset&lt;br /&gt;
&lt;br /&gt;
Datent&lt;br /&gt;
&lt;br /&gt;
Set Up Done&lt;br /&gt;
&lt;br /&gt;
Set Up Test&lt;br /&gt;
&lt;br /&gt;
Patient Treatment&lt;br /&gt;
&lt;br /&gt;
Pause Treatment&lt;br /&gt;
&lt;br /&gt;
Terminate Treatment&lt;br /&gt;
&lt;br /&gt;
Date, Time, ID Changes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Datent subroutine communicated with the keyboard hander task through a shared variable which signaled if the operator was finished entering the necessary data. Once the Datent subroutine sets the flag signifying the operator has entered the necessary information it allows the main program to move onto the next subroutine. If the flag was not set the “Treat” task reschedules itself in turn rescheduling the Datent subroutine. This continues until the shared data entry flag is set.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Datent subroutine was also responsible for preparing the x-ray to administer the correct radiation dosage. The subroutine was setup so that before returning to “Treat” instructions to move on to the next of its 8 subroutines it would first call the “Magnet” subroutine. This subroutine parsed the operators input and moved the x-ray machines magnets into position to administer the prescribed radiation. This magnet subroutine took approximately 8 seconds to complete and while it ran the keyboard handler was also running. If the operator modified the data before the “magnet” subroutine returned their changes would not be register and the x-ray strength would already be set to its prior value ignoring the operator’s changes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hypothetical example situation:&lt;br /&gt;
&lt;br /&gt;
-Operator types up data, presses return&lt;br /&gt;
&lt;br /&gt;
-(Magnet subroutine is initiated)&lt;br /&gt;
&lt;br /&gt;
-Operator realizes there is an extra 0 in the radiation intensity field&lt;br /&gt;
-Operator moves cursor up and fixes the error and presses return again.&lt;br /&gt;
&lt;br /&gt;
-Magnets are set to previous power level .subroutine returns &lt;br /&gt;
&lt;br /&gt;
-Program moves on to next subroutine without registering changes&lt;br /&gt;
&lt;br /&gt;
-Patient is administered a lethal overdose of radiation&lt;/div&gt;</summary>
		<author><name>Atubman</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_1_2010_Question_6&amp;diff=2863</id>
		<title>Talk:COMP 3000 Essay 1 2010 Question 6</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_1_2010_Question_6&amp;diff=2863"/>
		<updated>2010-10-10T21:55:18Z</updated>

		<summary type="html">&lt;p&gt;Atubman: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hey guys, this is Munther. I&#039;m one of the members of the group assigned to this question. Before we start, let me just say that since this is a collective piece of work thats supposed to include contributions from each member of the group, let us all assume the role of the editor. So we will all contribute and help edit the final version of the article.&lt;br /&gt;
&lt;br /&gt;
Regarding our question. As a starting point, I figured it would be appropriate to start defining what mutual exclusion (mutex) and race conditions mean. Lets start with race conditions, since mutual exclusion basically came to life because of the need to control race conditions.&lt;br /&gt;
&lt;br /&gt;
Race conditions: situations where one or more processes are trying to write, read or access the same piece of data, and the final result depends on who runs precisely when. Look at the text book in pages 117-118 for a detailed example of that.&lt;br /&gt;
&lt;br /&gt;
Mutual exclusion (mutex): the idea of making sure that processes access data in a serialized way. Meaning that, if process A for instance, happens to be executing or using a particular data structure (called a critical section), then no other process like B would be allowed to execute or use that very same data structure (critical section) until process A finishes executing or decides to leave the data structure. Common algorithms and techniques used in mutual exclusion include: locks, semaphores and monitors.&lt;br /&gt;
&lt;br /&gt;
Our question asks for examples of systems that have failed due to flawed efforts. For starters, this is a wiki-programming page (Rosetta code) that examines race conditions and offers an example from the Unix/Linux operating systems, whether the example mentioned here is considered a &amp;quot;failure&amp;quot; we should check with the prof. Anyways, its a good starting point.&lt;br /&gt;
http://rosettacode.org/wiki/Race_condition&lt;br /&gt;
&lt;br /&gt;
Heres also a paper that goes back to 1992, which basically examines the excessive amount of expenses and resources used in older versions of the Unix system when implementing mutual exclusion. The paper goes to explain the problem and offers a better solution. Its pretty easy to follow and understand, worth reading as well.&lt;br /&gt;
http://www.usenix.org/publications/library/proceedings/sa92/moran.pdf&lt;br /&gt;
&lt;br /&gt;
-- Munther&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hey Andrew here another member of this group. Those are some good starting points. The Wikipedia page on race conditions have references to a few good examples http://en.wikipedia.org/wiki/Race_condition&lt;br /&gt;
&lt;br /&gt;
Couple notable ones:&lt;br /&gt;
&lt;br /&gt;
The Therac-25 x-ray machine which killed a bunch of people http://courses.cs.vt.edu/~cs3604/lib/Therac_25/Side_bar_1.html&lt;br /&gt;
&lt;br /&gt;
A blackout in 2003 was caused by a race condition in one of the power company&#039;s alarm systems http://www.securityfocus.com/news/8412 (really awful block of text)&lt;br /&gt;
&lt;br /&gt;
--Andrew&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Alright, so the things that the prof mentioned in our last lecture proved to be super helpful. Basically, what he means by &amp;quot;systems&amp;quot;, is any device based operating system. It doesn&#039;t necessarily has to be a PC-based operating system (Windows, Linux, etc.). So the Therac-25 story mentioned by Andrew in the above post is a prime example of the type of things we might be looking for.&lt;br /&gt;
&lt;br /&gt;
Other notable examples:&lt;br /&gt;
&lt;br /&gt;
1. The Opportunity Mars-Rover 1116 incident. (A rover is basically a space exploration vehicle designed to navigate the surface of a planet in order to gather images, samples or any possible information about that particular surface.). The rover experienced a rare unexpected error due to a race-conditions fault. For some reason, this seems to be a fairly common problem for those Mars-Rovers, since the same kind of error was experienced on the Spirit Mars-Rover as well. &lt;br /&gt;
&lt;br /&gt;
Heres an overview of the Opportunity 1116 incident from MarsToday : http://www.marstoday.com/news/viewsr.html?pid=23772&lt;br /&gt;
&lt;br /&gt;
Heres a paper that examines the race conditions experienced on those rovers, discuses the Spirit Rover incident and even goes to &lt;br /&gt;
explain the underlying architecture of the rover hardware: http://trs-new.jpl.nasa.gov/dspace/bitstream/2014/39897/1/06-0922.pdf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. A file-system based type of race condition involves an older version of the Unix operating system, in which the user-mode can actually be bypassed, allowing the user to access the entire system. I can see this being considered an error or a case of failure as well. This actually may be a bit more approachable, as far as understanding the Unix kernel and stuff like that, I&#039;m sure we can find a lot of resources for this.&lt;br /&gt;
&lt;br /&gt;
A small article exploring the issue: http://www.osdata.com/holistic/security/attacks/racecond.html&lt;br /&gt;
&lt;br /&gt;
- - - - - - - - - - -&lt;br /&gt;
&lt;br /&gt;
Heres also a paper that examines Race Conditions in depth, talks about the importance of mutual exclusion and provides a number of solutions :&lt;br /&gt;
http://www.google.ca/url?sa=t&amp;amp;source=web&amp;amp;cd=4&amp;amp;ved=0CCoQFjAD&amp;amp;url=http%3A%2F%2Fciteseerx.ist.psu.edu%2Fviewdoc%2Fdownload%3Fdoi%3D10.1.1.1.5897%26rep%3Drep1%26type%3Dpdf&amp;amp;rct=j&amp;amp;q=race%20conditions%20case%20study%20steve%20carr%2010.1.1.1&amp;amp;ei=FTCtTOzRN8mVnAeL-OThDA&amp;amp;usg=AFQjCNHdyHdeFSpES0nMjzb7lPkFxKwC2g&amp;amp;sig2=u2Qo9kdemxdCWAlH10GNeQ&lt;br /&gt;
&lt;br /&gt;
Heres another paper from the ACM Portal: http://portal.acm.org/citation.cfm?id=130616.130623&amp;amp;coll=Portal&amp;amp;dl=GUIDE&amp;amp;CFID=104720795&amp;amp;CFTOKEN=13393160&lt;br /&gt;
&lt;br /&gt;
If anyone can&#039;t access the pdf files on the ACM Portal or even CiteSeer for that matter, you need to log in to the netwrk using your Carleton library account. Go to the following: http://portal.acm.org.proxy.library.carleton.ca&lt;br /&gt;
You will be prompted to enter your Student ID card barcode number, thats the number below your name on your student ID. And the password is your CarletonCentral password.&lt;br /&gt;
&lt;br /&gt;
I think so far we have managed to gather a handful amount of cases. In the next couple of days, we should probably delve deeper into some of those cases.&lt;br /&gt;
&lt;br /&gt;
PS: If you wanna contact me, go to my profile in the history tab. Click on Hesperus.&lt;br /&gt;
&lt;br /&gt;
-- Munther&lt;br /&gt;
&lt;br /&gt;
--------------------&lt;br /&gt;
&lt;br /&gt;
Hey guys, I am Daniel. I am also in group 6 (Am i the final group member?). I&#039;m ready to help get this show on the road! I am going to set up a basic essay structure on the other page so that we know what to aim for. You guys look like you&#039;ve rounded up quite a bit of info on the subject already, great job!&lt;br /&gt;
&lt;br /&gt;
 Introduction Paragraph: Introduces the question and gives some general background etc.&lt;br /&gt;
 Paragraph 1: Gives first example in detail&lt;br /&gt;
 Paragraph 2: Gives second example in detail&lt;br /&gt;
 Paragraph 3: Gives third example in detail&lt;br /&gt;
 Conclusion: Relates it all back together or something (never been good with conclusions) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I think each example paragraph should be broken down like this:&lt;br /&gt;
&lt;br /&gt;
 1. Introduction to the example&lt;br /&gt;
 2. What they tried to use the Multi-Threading to do (or something like that)&lt;br /&gt;
 3. Story of the system failing&lt;br /&gt;
 4. The significance/involvement of race condition and mutual exclusion in the failure&lt;br /&gt;
 5. Conclusion (how it was solved and stuff like that can go here too)&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hey guys, I&#039;m Fangchen. I am also in group 6. (So I might be the last member lol) &lt;br /&gt;
I found a chapter of a book from sun, which name of the chapter is Race Conditions and&lt;br /&gt;
Mutual Exclusion.There are some examples on race condition in Java programming which i think we could study for sure.&lt;br /&gt;
&lt;br /&gt;
The link of the book chapter is here.&lt;br /&gt;
&lt;br /&gt;
http://java.sun.com/developer/Books/performance2/chap3.pdf&lt;br /&gt;
&lt;br /&gt;
On page 2 of the pdf file, there is a first example of race condition. I think this might be useful in our essay as a case study.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--Fangchen&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
My name is Julie and I believe that I am the last group member. Our professor said that every group has 5 to 6 members.&lt;br /&gt;
It appears that we have quite the list of resources. Are we planning to use them all? It might be a good idea to list the resources we believe are the most relevant. &lt;br /&gt;
&lt;br /&gt;
Note:  This link, http://www.osdata.com/holistic/security/attacks/racecond.html, is broken. &lt;br /&gt;
&lt;br /&gt;
I only have one resource to add. I found a paper that summarizes information about Therac-25 and the blackout of 2003: http://x4.6times7.org/downloads/software_catastrophes.pdf.&lt;br /&gt;
&lt;br /&gt;
4.1 Blackout (pg. 5 – 6)&lt;br /&gt;
&lt;br /&gt;
4.3 Therac-25 (pg. 7 – 8)&lt;br /&gt;
&lt;br /&gt;
I think we should agree on a thesis soon. Currently the examples in our essay are not connected by a central argument. If we have time, I think we should try to find another example (assuming we have agreed to write about Therac-25, the blackout of 2003 and the Mars rovers). Prof. Anil said that he was expecting four to five examples. Three examples is a minimum. I have been trying to search for one that is not as well known (as encouraged in class) but I have not had any luck.&lt;br /&gt;
&lt;br /&gt;
Are the series of Mars rovers (Opportunity and Spirit from 2004-2005) the most recent examples? I have not found any that are more recent so far. I wonder if systems programmers have learned from these past failures. I noticed, while searching for resources, that researchers have developed/are now developing tools and strategies to detect race conditions. &lt;br /&gt;
&lt;br /&gt;
Lastly, what is our plan on how divide the work for this essay?  Also do we want to meet in person someday?&lt;br /&gt;
&lt;br /&gt;
--[[User:J powers|J powers]] 16:08, 9 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
One suggestion I have for dividing the work is for everyone to write a paragraph of the essay or about a specific disaster.&lt;br /&gt;
--[[User:J powers|J powers]] 16:50, 9 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
Cool, its good to have the other members of the group on board. I will handle the editing and the introductory paragraph. I will try to make it as academic as possible. &lt;br /&gt;
&lt;br /&gt;
What Julie mentioned is right. The prof said that 3 examples are alright. But he&#039;s really looking for 4-5 cases. We need to impress him a little bit here. The other case he mentioned was the Blue-Screens-Of-Death incidents. I believe a mail man was killed because of that. I will try to find some information on that later on today. &lt;br /&gt;
&lt;br /&gt;
Also, if you guys wanna meet up a couple of days before the due date, thats ok by me. We can meet up in the Herzberg labs in the 4th floor, not the undergrad ones, the ones at the end of the hall. Or I can reserve a room for us in the library. Or if you just want to continue doing this online, I know that each one of us has probably a different schedule and everything.&lt;br /&gt;
&lt;br /&gt;
-- Munther&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Alright, Seems we needed more than i originally thought :p so i tweaked the other page to have 5 of them instead of 3.  I would absolutely like to meet up :D. Doing this online thing makes me feel wierd for some reason...&lt;br /&gt;
&lt;br /&gt;
But if we do meet up lets put all our discussion and decisions on the page here so it can get reviewed etc.&lt;br /&gt;
&lt;br /&gt;
If we are gonna meet up I would prefer Herzberg (not that it really matters, its just where i hang out anyways)&lt;br /&gt;
&lt;br /&gt;
Also is this due on tuesday or thursday?&lt;br /&gt;
&lt;br /&gt;
-- Daniel&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
Ok everyone write in here when you are available before the 14th&lt;br /&gt;
&lt;br /&gt;
 Daniel: all day Monday, Tuesday, and Thursday&lt;br /&gt;
 Munther: --&lt;br /&gt;
 Fangchen: --&lt;br /&gt;
 Andrew: After 12:30 Tues-Wed-Thurs&lt;br /&gt;
 Julie: Tuesday after 2:30, and Wednesday/Thursday after 1:00[[User:J powers|J powers]] 19:32, 10 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Hey Everyone. Awesome looks like we have a lot of information and resources here to work from. Daniels template structure looks good and we should follow that. We should come up with a plan for executing this, what topics we want to cover and who would like to focus on what. I think the 3 big examples we&#039;ve found lots of resources for are the Therac-25, Mars Rover and the Blackout. The professor mentioned he&#039;d like to see some more exotic examples lets try and find some for examples 4/5.&lt;br /&gt;
&lt;br /&gt;
Layout we can build on.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Introduction&lt;br /&gt;
&lt;br /&gt;
Therac-25&lt;br /&gt;
&lt;br /&gt;
Mars Rover&lt;br /&gt;
&lt;br /&gt;
Blackout&lt;br /&gt;
&lt;br /&gt;
Example 4&lt;br /&gt;
&lt;br /&gt;
Example 5&lt;br /&gt;
&lt;br /&gt;
Conclusion&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I&#039;m going to try and read up a bit more on the Therac-25 and put in a few paragraphs today.&lt;br /&gt;
&lt;br /&gt;
[[User:Atubman|Atubman]] 21:55, 10 October 2010 (UTC) (did not know about the 4 tildes thing, thanks for sharing)&lt;br /&gt;
----&lt;br /&gt;
I do not mind which topic I write about but I feel a personal connection with the blackout. My hometown was affected for a long time and there were concerns about chemical plants nearby. Therefore I have an interest in writing/researching about it.&lt;br /&gt;
&lt;br /&gt;
Has the group member above (Could you please put your name? Was it Andrew?) decided on Therac-25 then? &lt;br /&gt;
&lt;br /&gt;
Also I have noticed that everyone has not been using 4 tildes. I am not sure if this how the professor knows who wrote what but it would not hurt to use it (Less to type as well). &lt;br /&gt;
&lt;br /&gt;
Any ideas on a deadline for all of our writing?&lt;br /&gt;
--[[User:J powers|J powers]] 21:05, 10 October 2010 (UTC)&lt;/div&gt;</summary>
		<author><name>Atubman</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_1_2010_Question_6&amp;diff=2862</id>
		<title>Talk:COMP 3000 Essay 1 2010 Question 6</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_1_2010_Question_6&amp;diff=2862"/>
		<updated>2010-10-10T21:54:02Z</updated>

		<summary type="html">&lt;p&gt;Atubman: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hey guys, this is Munther. I&#039;m one of the members of the group assigned to this question. Before we start, let me just say that since this is a collective piece of work thats supposed to include contributions from each member of the group, let us all assume the role of the editor. So we will all contribute and help edit the final version of the article.&lt;br /&gt;
&lt;br /&gt;
Regarding our question. As a starting point, I figured it would be appropriate to start defining what mutual exclusion (mutex) and race conditions mean. Lets start with race conditions, since mutual exclusion basically came to life because of the need to control race conditions.&lt;br /&gt;
&lt;br /&gt;
Race conditions: situations where one or more processes are trying to write, read or access the same piece of data, and the final result depends on who runs precisely when. Look at the text book in pages 117-118 for a detailed example of that.&lt;br /&gt;
&lt;br /&gt;
Mutual exclusion (mutex): the idea of making sure that processes access data in a serialized way. Meaning that, if process A for instance, happens to be executing or using a particular data structure (called a critical section), then no other process like B would be allowed to execute or use that very same data structure (critical section) until process A finishes executing or decides to leave the data structure. Common algorithms and techniques used in mutual exclusion include: locks, semaphores and monitors.&lt;br /&gt;
&lt;br /&gt;
Our question asks for examples of systems that have failed due to flawed efforts. For starters, this is a wiki-programming page (Rosetta code) that examines race conditions and offers an example from the Unix/Linux operating systems, whether the example mentioned here is considered a &amp;quot;failure&amp;quot; we should check with the prof. Anyways, its a good starting point.&lt;br /&gt;
http://rosettacode.org/wiki/Race_condition&lt;br /&gt;
&lt;br /&gt;
Heres also a paper that goes back to 1992, which basically examines the excessive amount of expenses and resources used in older versions of the Unix system when implementing mutual exclusion. The paper goes to explain the problem and offers a better solution. Its pretty easy to follow and understand, worth reading as well.&lt;br /&gt;
http://www.usenix.org/publications/library/proceedings/sa92/moran.pdf&lt;br /&gt;
&lt;br /&gt;
-- Munther&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hey Andrew here another member of this group. Those are some good starting points. The Wikipedia page on race conditions have references to a few good examples http://en.wikipedia.org/wiki/Race_condition&lt;br /&gt;
&lt;br /&gt;
Couple notable ones:&lt;br /&gt;
&lt;br /&gt;
The Therac-25 x-ray machine which killed a bunch of people http://courses.cs.vt.edu/~cs3604/lib/Therac_25/Side_bar_1.html&lt;br /&gt;
&lt;br /&gt;
A blackout in 2003 was caused by a race condition in one of the power company&#039;s alarm systems http://www.securityfocus.com/news/8412 (really awful block of text)&lt;br /&gt;
&lt;br /&gt;
--Andrew&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Alright, so the things that the prof mentioned in our last lecture proved to be super helpful. Basically, what he means by &amp;quot;systems&amp;quot;, is any device based operating system. It doesn&#039;t necessarily has to be a PC-based operating system (Windows, Linux, etc.). So the Therac-25 story mentioned by Andrew in the above post is a prime example of the type of things we might be looking for.&lt;br /&gt;
&lt;br /&gt;
Other notable examples:&lt;br /&gt;
&lt;br /&gt;
1. The Opportunity Mars-Rover 1116 incident. (A rover is basically a space exploration vehicle designed to navigate the surface of a planet in order to gather images, samples or any possible information about that particular surface.). The rover experienced a rare unexpected error due to a race-conditions fault. For some reason, this seems to be a fairly common problem for those Mars-Rovers, since the same kind of error was experienced on the Spirit Mars-Rover as well. &lt;br /&gt;
&lt;br /&gt;
Heres an overview of the Opportunity 1116 incident from MarsToday : http://www.marstoday.com/news/viewsr.html?pid=23772&lt;br /&gt;
&lt;br /&gt;
Heres a paper that examines the race conditions experienced on those rovers, discuses the Spirit Rover incident and even goes to &lt;br /&gt;
explain the underlying architecture of the rover hardware: http://trs-new.jpl.nasa.gov/dspace/bitstream/2014/39897/1/06-0922.pdf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. A file-system based type of race condition involves an older version of the Unix operating system, in which the user-mode can actually be bypassed, allowing the user to access the entire system. I can see this being considered an error or a case of failure as well. This actually may be a bit more approachable, as far as understanding the Unix kernel and stuff like that, I&#039;m sure we can find a lot of resources for this.&lt;br /&gt;
&lt;br /&gt;
A small article exploring the issue: http://www.osdata.com/holistic/security/attacks/racecond.html&lt;br /&gt;
&lt;br /&gt;
- - - - - - - - - - -&lt;br /&gt;
&lt;br /&gt;
Heres also a paper that examines Race Conditions in depth, talks about the importance of mutual exclusion and provides a number of solutions :&lt;br /&gt;
http://www.google.ca/url?sa=t&amp;amp;source=web&amp;amp;cd=4&amp;amp;ved=0CCoQFjAD&amp;amp;url=http%3A%2F%2Fciteseerx.ist.psu.edu%2Fviewdoc%2Fdownload%3Fdoi%3D10.1.1.1.5897%26rep%3Drep1%26type%3Dpdf&amp;amp;rct=j&amp;amp;q=race%20conditions%20case%20study%20steve%20carr%2010.1.1.1&amp;amp;ei=FTCtTOzRN8mVnAeL-OThDA&amp;amp;usg=AFQjCNHdyHdeFSpES0nMjzb7lPkFxKwC2g&amp;amp;sig2=u2Qo9kdemxdCWAlH10GNeQ&lt;br /&gt;
&lt;br /&gt;
Heres another paper from the ACM Portal: http://portal.acm.org/citation.cfm?id=130616.130623&amp;amp;coll=Portal&amp;amp;dl=GUIDE&amp;amp;CFID=104720795&amp;amp;CFTOKEN=13393160&lt;br /&gt;
&lt;br /&gt;
If anyone can&#039;t access the pdf files on the ACM Portal or even CiteSeer for that matter, you need to log in to the netwrk using your Carleton library account. Go to the following: http://portal.acm.org.proxy.library.carleton.ca&lt;br /&gt;
You will be prompted to enter your Student ID card barcode number, thats the number below your name on your student ID. And the password is your CarletonCentral password.&lt;br /&gt;
&lt;br /&gt;
I think so far we have managed to gather a handful amount of cases. In the next couple of days, we should probably delve deeper into some of those cases.&lt;br /&gt;
&lt;br /&gt;
PS: If you wanna contact me, go to my profile in the history tab. Click on Hesperus.&lt;br /&gt;
&lt;br /&gt;
-- Munther&lt;br /&gt;
&lt;br /&gt;
--------------------&lt;br /&gt;
&lt;br /&gt;
Hey guys, I am Daniel. I am also in group 6 (Am i the final group member?). I&#039;m ready to help get this show on the road! I am going to set up a basic essay structure on the other page so that we know what to aim for. You guys look like you&#039;ve rounded up quite a bit of info on the subject already, great job!&lt;br /&gt;
&lt;br /&gt;
 Introduction Paragraph: Introduces the question and gives some general background etc.&lt;br /&gt;
 Paragraph 1: Gives first example in detail&lt;br /&gt;
 Paragraph 2: Gives second example in detail&lt;br /&gt;
 Paragraph 3: Gives third example in detail&lt;br /&gt;
 Conclusion: Relates it all back together or something (never been good with conclusions) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I think each example paragraph should be broken down like this:&lt;br /&gt;
&lt;br /&gt;
 1. Introduction to the example&lt;br /&gt;
 2. What they tried to use the Multi-Threading to do (or something like that)&lt;br /&gt;
 3. Story of the system failing&lt;br /&gt;
 4. The significance/involvement of race condition and mutual exclusion in the failure&lt;br /&gt;
 5. Conclusion (how it was solved and stuff like that can go here too)&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hey guys, I&#039;m Fangchen. I am also in group 6. (So I might be the last member lol) &lt;br /&gt;
I found a chapter of a book from sun, which name of the chapter is Race Conditions and&lt;br /&gt;
Mutual Exclusion.There are some examples on race condition in Java programming which i think we could study for sure.&lt;br /&gt;
&lt;br /&gt;
The link of the book chapter is here.&lt;br /&gt;
&lt;br /&gt;
http://java.sun.com/developer/Books/performance2/chap3.pdf&lt;br /&gt;
&lt;br /&gt;
On page 2 of the pdf file, there is a first example of race condition. I think this might be useful in our essay as a case study.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--Fangchen&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
My name is Julie and I believe that I am the last group member. Our professor said that every group has 5 to 6 members.&lt;br /&gt;
It appears that we have quite the list of resources. Are we planning to use them all? It might be a good idea to list the resources we believe are the most relevant. &lt;br /&gt;
&lt;br /&gt;
Note:  This link, http://www.osdata.com/holistic/security/attacks/racecond.html, is broken. &lt;br /&gt;
&lt;br /&gt;
I only have one resource to add. I found a paper that summarizes information about Therac-25 and the blackout of 2003: http://x4.6times7.org/downloads/software_catastrophes.pdf.&lt;br /&gt;
&lt;br /&gt;
4.1 Blackout (pg. 5 – 6)&lt;br /&gt;
&lt;br /&gt;
4.3 Therac-25 (pg. 7 – 8)&lt;br /&gt;
&lt;br /&gt;
I think we should agree on a thesis soon. Currently the examples in our essay are not connected by a central argument. If we have time, I think we should try to find another example (assuming we have agreed to write about Therac-25, the blackout of 2003 and the Mars rovers). Prof. Anil said that he was expecting four to five examples. Three examples is a minimum. I have been trying to search for one that is not as well known (as encouraged in class) but I have not had any luck.&lt;br /&gt;
&lt;br /&gt;
Are the series of Mars rovers (Opportunity and Spirit from 2004-2005) the most recent examples? I have not found any that are more recent so far. I wonder if systems programmers have learned from these past failures. I noticed, while searching for resources, that researchers have developed/are now developing tools and strategies to detect race conditions. &lt;br /&gt;
&lt;br /&gt;
Lastly, what is our plan on how divide the work for this essay?  Also do we want to meet in person someday?&lt;br /&gt;
&lt;br /&gt;
--[[User:J powers|J powers]] 16:08, 9 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
One suggestion I have for dividing the work is for everyone to write a paragraph of the essay or about a specific disaster.&lt;br /&gt;
--[[User:J powers|J powers]] 16:50, 9 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
Cool, its good to have the other members of the group on board. I will handle the editing and the introductory paragraph. I will try to make it as academic as possible. &lt;br /&gt;
&lt;br /&gt;
What Julie mentioned is right. The prof said that 3 examples are alright. But he&#039;s really looking for 4-5 cases. We need to impress him a little bit here. The other case he mentioned was the Blue-Screens-Of-Death incidents. I believe a mail man was killed because of that. I will try to find some information on that later on today. &lt;br /&gt;
&lt;br /&gt;
Also, if you guys wanna meet up a couple of days before the due date, thats ok by me. We can meet up in the Herzberg labs in the 4th floor, not the undergrad ones, the ones at the end of the hall. Or I can reserve a room for us in the library. Or if you just want to continue doing this online, I know that each one of us has probably a different schedule and everything.&lt;br /&gt;
&lt;br /&gt;
-- Munther&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Alright, Seems we needed more than i originally thought :p so i tweaked the other page to have 5 of them instead of 3.  I would absolutely like to meet up :D. Doing this online thing makes me feel wierd for some reason...&lt;br /&gt;
&lt;br /&gt;
But if we do meet up lets put all our discussion and decisions on the page here so it can get reviewed etc.&lt;br /&gt;
&lt;br /&gt;
If we are gonna meet up I would prefer Herzberg (not that it really matters, its just where i hang out anyways)&lt;br /&gt;
&lt;br /&gt;
Also is this due on tuesday or thursday?&lt;br /&gt;
&lt;br /&gt;
-- Daniel&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
Ok everyone write in here when you are available before the 14th&lt;br /&gt;
&lt;br /&gt;
 Daniel: all day Monday, Tuesday, and Thursday&lt;br /&gt;
 Munther: --&lt;br /&gt;
 Fangchen: --&lt;br /&gt;
 Andrew: After 12:30 Tues-Wed-Thurs&lt;br /&gt;
 Julie: Tuesday after 2:30, and Wednesday/Thursday after 1:00[[User:J powers|J powers]] 19:32, 10 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Hey Everyone. Awesome looks like we have a lot of information and resources here to work from. Daniels template structure looks good and we should follow that. We should come up with a plan for executing this, what topics we want to cover and who would like to focus on what. I think the 3 big examples we&#039;ve found lots of resources for are the Therac-25, Mars Rover and the Blackout. The professor mentioned he&#039;d like to see some more exotic examples lets try and find some for examples 4/5.&lt;br /&gt;
&lt;br /&gt;
Layout we can build on.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Introduction&lt;br /&gt;
&lt;br /&gt;
Therac-25&lt;br /&gt;
&lt;br /&gt;
Mars Rover&lt;br /&gt;
&lt;br /&gt;
Blackout&lt;br /&gt;
&lt;br /&gt;
Example 4&lt;br /&gt;
&lt;br /&gt;
Example 5&lt;br /&gt;
&lt;br /&gt;
Conclusion&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I&#039;m going to try and read up a bit more on the Therac-25 and put in a few paragraphs today.&lt;br /&gt;
&lt;br /&gt;
--Andrew (Edit: Forgot to sign)&lt;br /&gt;
----&lt;br /&gt;
I do not mind which topic I write about but I feel a personal connection with the blackout. My hometown was affected for a long time and there were concerns about chemical plants nearby. Therefore I have an interest in writing/researching about it.&lt;br /&gt;
&lt;br /&gt;
Has the group member above (Could you please put your name? Was it Andrew?) decided on Therac-25 then? &lt;br /&gt;
&lt;br /&gt;
Also I have noticed that everyone has not been using 4 tildes. I am not sure if this how the professor knows who wrote what but it would not hurt to use it (Less to type as well). &lt;br /&gt;
&lt;br /&gt;
Any ideas on a deadline for all of our writing?&lt;br /&gt;
--[[User:J powers|J powers]] 21:05, 10 October 2010 (UTC)&lt;/div&gt;</summary>
		<author><name>Atubman</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_1_2010_Question_6&amp;diff=2846</id>
		<title>Talk:COMP 3000 Essay 1 2010 Question 6</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_1_2010_Question_6&amp;diff=2846"/>
		<updated>2010-10-10T20:24:23Z</updated>

		<summary type="html">&lt;p&gt;Atubman: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hey guys, this is Munther. I&#039;m one of the members of the group assigned to this question. Before we start, let me just say that since this is a collective piece of work thats supposed to include contributions from each member of the group, let us all assume the role of the editor. So we will all contribute and help edit the final version of the article.&lt;br /&gt;
&lt;br /&gt;
Regarding our question. As a starting point, I figured it would be appropriate to start defining what mutual exclusion (mutex) and race conditions mean. Lets start with race conditions, since mutual exclusion basically came to life because of the need to control race conditions.&lt;br /&gt;
&lt;br /&gt;
Race conditions: situations where one or more processes are trying to write, read or access the same piece of data, and the final result depends on who runs precisely when. Look at the text book in pages 117-118 for a detailed example of that.&lt;br /&gt;
&lt;br /&gt;
Mutual exclusion (mutex): the idea of making sure that processes access data in a serialized way. Meaning that, if process A for instance, happens to be executing or using a particular data structure (called a critical section), then no other process like B would be allowed to execute or use that very same data structure (critical section) until process A finishes executing or decides to leave the data structure. Common algorithms and techniques used in mutual exclusion include: locks, semaphores and monitors.&lt;br /&gt;
&lt;br /&gt;
Our question asks for examples of systems that have failed due to flawed efforts. For starters, this is a wiki-programming page (Rosetta code) that examines race conditions and offers an example from the Unix/Linux operating systems, whether the example mentioned here is considered a &amp;quot;failure&amp;quot; we should check with the prof. Anyways, its a good starting point.&lt;br /&gt;
http://rosettacode.org/wiki/Race_condition&lt;br /&gt;
&lt;br /&gt;
Heres also a paper that goes back to 1992, which basically examines the excessive amount of expenses and resources used in older versions of the Unix system when implementing mutual exclusion. The paper goes to explain the problem and offers a better solution. Its pretty easy to follow and understand, worth reading as well.&lt;br /&gt;
http://www.usenix.org/publications/library/proceedings/sa92/moran.pdf&lt;br /&gt;
&lt;br /&gt;
-- Munther&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hey Andrew here another member of this group. Those are some good starting points. The Wikipedia page on race conditions have references to a few good examples http://en.wikipedia.org/wiki/Race_condition&lt;br /&gt;
&lt;br /&gt;
Couple notable ones:&lt;br /&gt;
&lt;br /&gt;
The Therac-25 x-ray machine which killed a bunch of people http://courses.cs.vt.edu/~cs3604/lib/Therac_25/Side_bar_1.html&lt;br /&gt;
&lt;br /&gt;
A blackout in 2003 was caused by a race condition in one of the power company&#039;s alarm systems http://www.securityfocus.com/news/8412 (really awful block of text)&lt;br /&gt;
&lt;br /&gt;
--Andrew&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Alright, so the things that the prof mentioned in our last lecture proved to be super helpful. Basically, what he means by &amp;quot;systems&amp;quot;, is any device based operating system. It doesn&#039;t necessarily has to be a PC-based operating system (Windows, Linux, etc.). So the Therac-25 story mentioned by Andrew in the above post is a prime example of the type of things we might be looking for.&lt;br /&gt;
&lt;br /&gt;
Other notable examples:&lt;br /&gt;
&lt;br /&gt;
1. The Opportunity Mars-Rover 1116 incident. (A rover is basically a space exploration vehicle designed to navigate the surface of a planet in order to gather images, samples or any possible information about that particular surface.). The rover experienced a rare unexpected error due to a race-conditions fault. For some reason, this seems to be a fairly common problem for those Mars-Rovers, since the same kind of error was experienced on the Spirit Mars-Rover as well. &lt;br /&gt;
&lt;br /&gt;
Heres an overview of the Opportunity 1116 incident from MarsToday : http://www.marstoday.com/news/viewsr.html?pid=23772&lt;br /&gt;
&lt;br /&gt;
Heres a paper that examines the race conditions experienced on those rovers, discuses the Spirit Rover incident and even goes to &lt;br /&gt;
explain the underlying architecture of the rover hardware: http://trs-new.jpl.nasa.gov/dspace/bitstream/2014/39897/1/06-0922.pdf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. A file-system based type of race condition involves an older version of the Unix operating system, in which the user-mode can actually be bypassed, allowing the user to access the entire system. I can see this being considered an error or a case of failure as well. This actually may be a bit more approachable, as far as understanding the Unix kernel and stuff like that, I&#039;m sure we can find a lot of resources for this.&lt;br /&gt;
&lt;br /&gt;
A small article exploring the issue: http://www.osdata.com/holistic/security/attacks/racecond.html&lt;br /&gt;
&lt;br /&gt;
- - - - - - - - - - -&lt;br /&gt;
&lt;br /&gt;
Heres also a paper that examines Race Conditions in depth, talks about the importance of mutual exclusion and provides a number of solutions :&lt;br /&gt;
http://www.google.ca/url?sa=t&amp;amp;source=web&amp;amp;cd=4&amp;amp;ved=0CCoQFjAD&amp;amp;url=http%3A%2F%2Fciteseerx.ist.psu.edu%2Fviewdoc%2Fdownload%3Fdoi%3D10.1.1.1.5897%26rep%3Drep1%26type%3Dpdf&amp;amp;rct=j&amp;amp;q=race%20conditions%20case%20study%20steve%20carr%2010.1.1.1&amp;amp;ei=FTCtTOzRN8mVnAeL-OThDA&amp;amp;usg=AFQjCNHdyHdeFSpES0nMjzb7lPkFxKwC2g&amp;amp;sig2=u2Qo9kdemxdCWAlH10GNeQ&lt;br /&gt;
&lt;br /&gt;
Heres another paper from the ACM Portal: http://portal.acm.org/citation.cfm?id=130616.130623&amp;amp;coll=Portal&amp;amp;dl=GUIDE&amp;amp;CFID=104720795&amp;amp;CFTOKEN=13393160&lt;br /&gt;
&lt;br /&gt;
If anyone can&#039;t access the pdf files on the ACM Portal or even CiteSeer for that matter, you need to log in to the netwrk using your Carleton library account. Go to the following: http://portal.acm.org.proxy.library.carleton.ca&lt;br /&gt;
You will be prompted to enter your Student ID card barcode number, thats the number below your name on your student ID. And the password is your CarletonCentral password.&lt;br /&gt;
&lt;br /&gt;
I think so far we have managed to gather a handful amount of cases. In the next couple of days, we should probably delve deeper into some of those cases.&lt;br /&gt;
&lt;br /&gt;
PS: If you wanna contact me, go to my profile in the history tab. Click on Hesperus.&lt;br /&gt;
&lt;br /&gt;
-- Munther&lt;br /&gt;
&lt;br /&gt;
--------------------&lt;br /&gt;
&lt;br /&gt;
Hey guys, I am Daniel. I am also in group 6 (Am i the final group member?). I&#039;m ready to help get this show on the road! I am going to set up a basic essay structure on the other page so that we know what to aim for. You guys look like you&#039;ve rounded up quite a bit of info on the subject already, great job!&lt;br /&gt;
&lt;br /&gt;
 Introduction Paragraph: Introduces the question and gives some general background etc.&lt;br /&gt;
 Paragraph 1: Gives first example in detail&lt;br /&gt;
 Paragraph 2: Gives second example in detail&lt;br /&gt;
 Paragraph 3: Gives third example in detail&lt;br /&gt;
 Conclusion: Relates it all back together or something (never been good with conclusions) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I think each example paragraph should be broken down like this:&lt;br /&gt;
&lt;br /&gt;
 1. Introduction to the example&lt;br /&gt;
 2. What they tried to use the Multi-Threading to do (or something like that)&lt;br /&gt;
 3. Story of the system failing&lt;br /&gt;
 4. The significance/involvement of race condition and mutual exclusion in the failure&lt;br /&gt;
 5. Conclusion (how it was solved and stuff like that can go here too)&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hey guys, I&#039;m Fangchen. I am also in group 6. (So I might be the last member lol) &lt;br /&gt;
I found a chapter of a book from sun, which name of the chapter is Race Conditions and&lt;br /&gt;
Mutual Exclusion.There are some examples on race condition in Java programming which i think we could study for sure.&lt;br /&gt;
&lt;br /&gt;
The link of the book chapter is here.&lt;br /&gt;
&lt;br /&gt;
http://java.sun.com/developer/Books/performance2/chap3.pdf&lt;br /&gt;
&lt;br /&gt;
On page 2 of the pdf file, there is a first example of race condition. I think this might be useful in our essay as a case study.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--Fangchen&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
My name is Julie and I believe that I am the last group member. Our professor said that every group has 5 to 6 members.&lt;br /&gt;
It appears that we have quite the list of resources. Are we planning to use them all? It might be a good idea to list the resources we believe are the most relevant. &lt;br /&gt;
&lt;br /&gt;
Note:  This link, http://www.osdata.com/holistic/security/attacks/racecond.html, is broken. &lt;br /&gt;
&lt;br /&gt;
I only have one resource to add. I found a paper that summarizes information about Therac-25 and the blackout of 2003: http://x4.6times7.org/downloads/software_catastrophes.pdf.&lt;br /&gt;
&lt;br /&gt;
4.1 Blackout (pg. 5 – 6)&lt;br /&gt;
&lt;br /&gt;
4.3 Therac-25 (pg. 7 – 8)&lt;br /&gt;
&lt;br /&gt;
I think we should agree on a thesis soon. Currently the examples in our essay are not connected by a central argument. If we have time, I think we should try to find another example (assuming we have agreed to write about Therac-25, the blackout of 2003 and the Mars rovers). Prof. Anil said that he was expecting four to five examples. Three examples is a minimum. I have been trying to search for one that is not as well known (as encouraged in class) but I have not had any luck.&lt;br /&gt;
&lt;br /&gt;
Are the series of Mars rovers (Opportunity and Spirit from 2004-2005) the most recent examples? I have not found any that are more recent so far. I wonder if systems programmers have learned from these past failures. I noticed, while searching for resources, that researchers have developed/are now developing tools and strategies to detect race conditions. &lt;br /&gt;
&lt;br /&gt;
Lastly, what is our plan on how divide the work for this essay?  Also do we want to meet in person someday?&lt;br /&gt;
&lt;br /&gt;
--[[User:J powers|J powers]] 16:08, 9 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
One suggestion I have for dividing the work is for everyone to write a paragraph of the essay or about a specific disaster.&lt;br /&gt;
--[[User:J powers|J powers]] 16:50, 9 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
Cool, its good to have the other members of the group on board. I will handle the editing and the introductory paragraph. I will try to make it as academic as possible. &lt;br /&gt;
&lt;br /&gt;
What Julie mentioned is right. The prof said that 3 examples are alright. But he&#039;s really looking for 4-5 cases. We need to impress him a little bit here. The other case he mentioned was the Blue-Screens-Of-Death incidents. I believe a mail man was killed because of that. I will try to find some information on that later on today. &lt;br /&gt;
&lt;br /&gt;
Also, if you guys wanna meet up a couple of days before the due date, thats ok by me. We can meet up in the Herzberg labs in the 4th floor, not the undergrad ones, the ones at the end of the hall. Or I can reserve a room for us in the library. Or if you just want to continue doing this online, I know that each one of us has probably a different schedule and everything.&lt;br /&gt;
&lt;br /&gt;
-- Munther&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Alright, Seems we needed more than i originally thought :p so i tweaked the other page to have 5 of them instead of 3.  I would absolutely like to meet up :D. Doing this online thing makes me feel wierd for some reason...&lt;br /&gt;
&lt;br /&gt;
But if we do meet up lets put all our discussion and decisions on the page here so it can get reviewed etc.&lt;br /&gt;
&lt;br /&gt;
If we are gonna meet up I would prefer Herzberg (not that it really matters, its just where i hang out anyways)&lt;br /&gt;
&lt;br /&gt;
Also is this due on tuesday or thursday?&lt;br /&gt;
&lt;br /&gt;
-- Daniel&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
Ok everyone write in here when you are available before the 14th&lt;br /&gt;
&lt;br /&gt;
 Daniel: all day Monday, Tuesday, and Thursday&lt;br /&gt;
 Munther: --&lt;br /&gt;
 Fangchen: --&lt;br /&gt;
 Andrew: After 12:30 Tues-Wed-Thurs&lt;br /&gt;
 Julie: Tuesday after 2:30, Wednesday after 1:00, and Thursday after 1:00 [[User:J powers|J powers]] 19:32, 10 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Hey Everyone. Awesome looks like we have a lot of information and resources here to work from. Daniels template structure looks good and we should follow that. We should come up with a plan for executing this, what topics we want to cover and who would like to focus on what. I think the 3 big examples we&#039;ve found lots of resources for are the Therac-25, Mars Rover and the Blackout. The professor mentioned he&#039;d like to see some more exotic examples lets try and find some for examples 4/5.&lt;br /&gt;
&lt;br /&gt;
Layout we can build on.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Introduction&lt;br /&gt;
&lt;br /&gt;
Therac-25&lt;br /&gt;
&lt;br /&gt;
Mars Rover&lt;br /&gt;
Blackout&lt;br /&gt;
&lt;br /&gt;
Example 4&lt;br /&gt;
&lt;br /&gt;
Example 5&lt;br /&gt;
&lt;br /&gt;
Conclusion&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I&#039;m going to try and read up a bit more on the Therac-25 and put in a few paragraphs today.&lt;/div&gt;</summary>
		<author><name>Atubman</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_1_2010_Question_6&amp;diff=2845</id>
		<title>Talk:COMP 3000 Essay 1 2010 Question 6</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_1_2010_Question_6&amp;diff=2845"/>
		<updated>2010-10-10T20:23:54Z</updated>

		<summary type="html">&lt;p&gt;Atubman: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hey guys, this is Munther. I&#039;m one of the members of the group assigned to this question. Before we start, let me just say that since this is a collective piece of work thats supposed to include contributions from each member of the group, let us all assume the role of the editor. So we will all contribute and help edit the final version of the article.&lt;br /&gt;
&lt;br /&gt;
Regarding our question. As a starting point, I figured it would be appropriate to start defining what mutual exclusion (mutex) and race conditions mean. Lets start with race conditions, since mutual exclusion basically came to life because of the need to control race conditions.&lt;br /&gt;
&lt;br /&gt;
Race conditions: situations where one or more processes are trying to write, read or access the same piece of data, and the final result depends on who runs precisely when. Look at the text book in pages 117-118 for a detailed example of that.&lt;br /&gt;
&lt;br /&gt;
Mutual exclusion (mutex): the idea of making sure that processes access data in a serialized way. Meaning that, if process A for instance, happens to be executing or using a particular data structure (called a critical section), then no other process like B would be allowed to execute or use that very same data structure (critical section) until process A finishes executing or decides to leave the data structure. Common algorithms and techniques used in mutual exclusion include: locks, semaphores and monitors.&lt;br /&gt;
&lt;br /&gt;
Our question asks for examples of systems that have failed due to flawed efforts. For starters, this is a wiki-programming page (Rosetta code) that examines race conditions and offers an example from the Unix/Linux operating systems, whether the example mentioned here is considered a &amp;quot;failure&amp;quot; we should check with the prof. Anyways, its a good starting point.&lt;br /&gt;
http://rosettacode.org/wiki/Race_condition&lt;br /&gt;
&lt;br /&gt;
Heres also a paper that goes back to 1992, which basically examines the excessive amount of expenses and resources used in older versions of the Unix system when implementing mutual exclusion. The paper goes to explain the problem and offers a better solution. Its pretty easy to follow and understand, worth reading as well.&lt;br /&gt;
http://www.usenix.org/publications/library/proceedings/sa92/moran.pdf&lt;br /&gt;
&lt;br /&gt;
-- Munther&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hey Andrew here another member of this group. Those are some good starting points. The Wikipedia page on race conditions have references to a few good examples http://en.wikipedia.org/wiki/Race_condition&lt;br /&gt;
&lt;br /&gt;
Couple notable ones:&lt;br /&gt;
&lt;br /&gt;
The Therac-25 x-ray machine which killed a bunch of people http://courses.cs.vt.edu/~cs3604/lib/Therac_25/Side_bar_1.html&lt;br /&gt;
&lt;br /&gt;
A blackout in 2003 was caused by a race condition in one of the power company&#039;s alarm systems http://www.securityfocus.com/news/8412 (really awful block of text)&lt;br /&gt;
&lt;br /&gt;
--Andrew&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Alright, so the things that the prof mentioned in our last lecture proved to be super helpful. Basically, what he means by &amp;quot;systems&amp;quot;, is any device based operating system. It doesn&#039;t necessarily has to be a PC-based operating system (Windows, Linux, etc.). So the Therac-25 story mentioned by Andrew in the above post is a prime example of the type of things we might be looking for.&lt;br /&gt;
&lt;br /&gt;
Other notable examples:&lt;br /&gt;
&lt;br /&gt;
1. The Opportunity Mars-Rover 1116 incident. (A rover is basically a space exploration vehicle designed to navigate the surface of a planet in order to gather images, samples or any possible information about that particular surface.). The rover experienced a rare unexpected error due to a race-conditions fault. For some reason, this seems to be a fairly common problem for those Mars-Rovers, since the same kind of error was experienced on the Spirit Mars-Rover as well. &lt;br /&gt;
&lt;br /&gt;
Heres an overview of the Opportunity 1116 incident from MarsToday : http://www.marstoday.com/news/viewsr.html?pid=23772&lt;br /&gt;
&lt;br /&gt;
Heres a paper that examines the race conditions experienced on those rovers, discuses the Spirit Rover incident and even goes to &lt;br /&gt;
explain the underlying architecture of the rover hardware: http://trs-new.jpl.nasa.gov/dspace/bitstream/2014/39897/1/06-0922.pdf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. A file-system based type of race condition involves an older version of the Unix operating system, in which the user-mode can actually be bypassed, allowing the user to access the entire system. I can see this being considered an error or a case of failure as well. This actually may be a bit more approachable, as far as understanding the Unix kernel and stuff like that, I&#039;m sure we can find a lot of resources for this.&lt;br /&gt;
&lt;br /&gt;
A small article exploring the issue: http://www.osdata.com/holistic/security/attacks/racecond.html&lt;br /&gt;
&lt;br /&gt;
- - - - - - - - - - -&lt;br /&gt;
&lt;br /&gt;
Heres also a paper that examines Race Conditions in depth, talks about the importance of mutual exclusion and provides a number of solutions :&lt;br /&gt;
http://www.google.ca/url?sa=t&amp;amp;source=web&amp;amp;cd=4&amp;amp;ved=0CCoQFjAD&amp;amp;url=http%3A%2F%2Fciteseerx.ist.psu.edu%2Fviewdoc%2Fdownload%3Fdoi%3D10.1.1.1.5897%26rep%3Drep1%26type%3Dpdf&amp;amp;rct=j&amp;amp;q=race%20conditions%20case%20study%20steve%20carr%2010.1.1.1&amp;amp;ei=FTCtTOzRN8mVnAeL-OThDA&amp;amp;usg=AFQjCNHdyHdeFSpES0nMjzb7lPkFxKwC2g&amp;amp;sig2=u2Qo9kdemxdCWAlH10GNeQ&lt;br /&gt;
&lt;br /&gt;
Heres another paper from the ACM Portal: http://portal.acm.org/citation.cfm?id=130616.130623&amp;amp;coll=Portal&amp;amp;dl=GUIDE&amp;amp;CFID=104720795&amp;amp;CFTOKEN=13393160&lt;br /&gt;
&lt;br /&gt;
If anyone can&#039;t access the pdf files on the ACM Portal or even CiteSeer for that matter, you need to log in to the netwrk using your Carleton library account. Go to the following: http://portal.acm.org.proxy.library.carleton.ca&lt;br /&gt;
You will be prompted to enter your Student ID card barcode number, thats the number below your name on your student ID. And the password is your CarletonCentral password.&lt;br /&gt;
&lt;br /&gt;
I think so far we have managed to gather a handful amount of cases. In the next couple of days, we should probably delve deeper into some of those cases.&lt;br /&gt;
&lt;br /&gt;
PS: If you wanna contact me, go to my profile in the history tab. Click on Hesperus.&lt;br /&gt;
&lt;br /&gt;
-- Munther&lt;br /&gt;
&lt;br /&gt;
--------------------&lt;br /&gt;
&lt;br /&gt;
Hey guys, I am Daniel. I am also in group 6 (Am i the final group member?). I&#039;m ready to help get this show on the road! I am going to set up a basic essay structure on the other page so that we know what to aim for. You guys look like you&#039;ve rounded up quite a bit of info on the subject already, great job!&lt;br /&gt;
&lt;br /&gt;
 Introduction Paragraph: Introduces the question and gives some general background etc.&lt;br /&gt;
 Paragraph 1: Gives first example in detail&lt;br /&gt;
 Paragraph 2: Gives second example in detail&lt;br /&gt;
 Paragraph 3: Gives third example in detail&lt;br /&gt;
 Conclusion: Relates it all back together or something (never been good with conclusions) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I think each example paragraph should be broken down like this:&lt;br /&gt;
&lt;br /&gt;
 1. Introduction to the example&lt;br /&gt;
 2. What they tried to use the Multi-Threading to do (or something like that)&lt;br /&gt;
 3. Story of the system failing&lt;br /&gt;
 4. The significance/involvement of race condition and mutual exclusion in the failure&lt;br /&gt;
 5. Conclusion (how it was solved and stuff like that can go here too)&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hey guys, I&#039;m Fangchen. I am also in group 6. (So I might be the last member lol) &lt;br /&gt;
I found a chapter of a book from sun, which name of the chapter is Race Conditions and&lt;br /&gt;
Mutual Exclusion.There are some examples on race condition in Java programming which i think we could study for sure.&lt;br /&gt;
&lt;br /&gt;
The link of the book chapter is here.&lt;br /&gt;
&lt;br /&gt;
http://java.sun.com/developer/Books/performance2/chap3.pdf&lt;br /&gt;
&lt;br /&gt;
On page 2 of the pdf file, there is a first example of race condition. I think this might be useful in our essay as a case study.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--Fangchen&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
My name is Julie and I believe that I am the last group member. Our professor said that every group has 5 to 6 members.&lt;br /&gt;
It appears that we have quite the list of resources. Are we planning to use them all? It might be a good idea to list the resources we believe are the most relevant. &lt;br /&gt;
&lt;br /&gt;
Note:  This link, http://www.osdata.com/holistic/security/attacks/racecond.html, is broken. &lt;br /&gt;
&lt;br /&gt;
I only have one resource to add. I found a paper that summarizes information about Therac-25 and the blackout of 2003: http://x4.6times7.org/downloads/software_catastrophes.pdf.&lt;br /&gt;
&lt;br /&gt;
4.1 Blackout (pg. 5 – 6)&lt;br /&gt;
&lt;br /&gt;
4.3 Therac-25 (pg. 7 – 8)&lt;br /&gt;
&lt;br /&gt;
I think we should agree on a thesis soon. Currently the examples in our essay are not connected by a central argument. If we have time, I think we should try to find another example (assuming we have agreed to write about Therac-25, the blackout of 2003 and the Mars rovers). Prof. Anil said that he was expecting four to five examples. Three examples is a minimum. I have been trying to search for one that is not as well known (as encouraged in class) but I have not had any luck.&lt;br /&gt;
&lt;br /&gt;
Are the series of Mars rovers (Opportunity and Spirit from 2004-2005) the most recent examples? I have not found any that are more recent so far. I wonder if systems programmers have learned from these past failures. I noticed, while searching for resources, that researchers have developed/are now developing tools and strategies to detect race conditions. &lt;br /&gt;
&lt;br /&gt;
Lastly, what is our plan on how divide the work for this essay?  Also do we want to meet in person someday?&lt;br /&gt;
&lt;br /&gt;
--[[User:J powers|J powers]] 16:08, 9 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
One suggestion I have for dividing the work is for everyone to write a paragraph of the essay or about a specific disaster.&lt;br /&gt;
--[[User:J powers|J powers]] 16:50, 9 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
Cool, its good to have the other members of the group on board. I will handle the editing and the introductory paragraph. I will try to make it as academic as possible. &lt;br /&gt;
&lt;br /&gt;
What Julie mentioned is right. The prof said that 3 examples are alright. But he&#039;s really looking for 4-5 cases. We need to impress him a little bit here. The other case he mentioned was the Blue-Screens-Of-Death incidents. I believe a mail man was killed because of that. I will try to find some information on that later on today. &lt;br /&gt;
&lt;br /&gt;
Also, if you guys wanna meet up a couple of days before the due date, thats ok by me. We can meet up in the Herzberg labs in the 4th floor, not the undergrad ones, the ones at the end of the hall. Or I can reserve a room for us in the library. Or if you just want to continue doing this online, I know that each one of us has probably a different schedule and everything.&lt;br /&gt;
&lt;br /&gt;
-- Munther&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Alright, Seems we needed more than i originally thought :p so i tweaked the other page to have 5 of them instead of 3.  I would absolutely like to meet up :D. Doing this online thing makes me feel wierd for some reason...&lt;br /&gt;
&lt;br /&gt;
But if we do meet up lets put all our discussion and decisions on the page here so it can get reviewed etc.&lt;br /&gt;
&lt;br /&gt;
If we are gonna meet up I would prefer Herzberg (not that it really matters, its just where i hang out anyways)&lt;br /&gt;
&lt;br /&gt;
Also is this due on tuesday or thursday?&lt;br /&gt;
&lt;br /&gt;
-- Daniel&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
Ok everyone write in here when you are available before the 14th&lt;br /&gt;
&lt;br /&gt;
 Daniel: all day Monday, Tuesday, and Thursday&lt;br /&gt;
 Munther: --&lt;br /&gt;
 Fangchen: --&lt;br /&gt;
 Andrew: After 12:30 Tues-Wed-Thurs&lt;br /&gt;
 Julie: Tuesday after 2:30, Wednesday after 1:00, and Thursday after 1:00 [[User:J powers|J powers]] 19:32, 10 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Hey Everyone. Awesome looks like we have a lot of information and resources here to work from. Daniels template structure looks good and we should follow that. We should come up with a plan for executing this, what topics we want to cover and who would like to focus on what. I think the 3 big examples we&#039;ve found lots of resources for are the Therac-25, Mars Rover and the Blackout. The professor mentioned he&#039;d like to see some more exotic examples lets try and find some for examples 4/5.&lt;br /&gt;
&lt;br /&gt;
Layout we can build on.&lt;br /&gt;
&lt;br /&gt;
Introduction&lt;br /&gt;
Therac-25&lt;br /&gt;
Mars Rover&lt;br /&gt;
Blackout&lt;br /&gt;
Example 4&lt;br /&gt;
Example 5&lt;br /&gt;
Conclusion&lt;br /&gt;
&lt;br /&gt;
I&#039;m going to try and read up a bit more on the Therac-25 and put in a few paragraphs today.&lt;/div&gt;</summary>
		<author><name>Atubman</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_1_2010_Question_6&amp;diff=2844</id>
		<title>Talk:COMP 3000 Essay 1 2010 Question 6</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_1_2010_Question_6&amp;diff=2844"/>
		<updated>2010-10-10T20:08:04Z</updated>

		<summary type="html">&lt;p&gt;Atubman: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hey guys, this is Munther. I&#039;m one of the members of the group assigned to this question. Before we start, let me just say that since this is a collective piece of work thats supposed to include contributions from each member of the group, let us all assume the role of the editor. So we will all contribute and help edit the final version of the article.&lt;br /&gt;
&lt;br /&gt;
Regarding our question. As a starting point, I figured it would be appropriate to start defining what mutual exclusion (mutex) and race conditions mean. Lets start with race conditions, since mutual exclusion basically came to life because of the need to control race conditions.&lt;br /&gt;
&lt;br /&gt;
Race conditions: situations where one or more processes are trying to write, read or access the same piece of data, and the final result depends on who runs precisely when. Look at the text book in pages 117-118 for a detailed example of that.&lt;br /&gt;
&lt;br /&gt;
Mutual exclusion (mutex): the idea of making sure that processes access data in a serialized way. Meaning that, if process A for instance, happens to be executing or using a particular data structure (called a critical section), then no other process like B would be allowed to execute or use that very same data structure (critical section) until process A finishes executing or decides to leave the data structure. Common algorithms and techniques used in mutual exclusion include: locks, semaphores and monitors.&lt;br /&gt;
&lt;br /&gt;
Our question asks for examples of systems that have failed due to flawed efforts. For starters, this is a wiki-programming page (Rosetta code) that examines race conditions and offers an example from the Unix/Linux operating systems, whether the example mentioned here is considered a &amp;quot;failure&amp;quot; we should check with the prof. Anyways, its a good starting point.&lt;br /&gt;
http://rosettacode.org/wiki/Race_condition&lt;br /&gt;
&lt;br /&gt;
Heres also a paper that goes back to 1992, which basically examines the excessive amount of expenses and resources used in older versions of the Unix system when implementing mutual exclusion. The paper goes to explain the problem and offers a better solution. Its pretty easy to follow and understand, worth reading as well.&lt;br /&gt;
http://www.usenix.org/publications/library/proceedings/sa92/moran.pdf&lt;br /&gt;
&lt;br /&gt;
-- Munther&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hey Andrew here another member of this group. Those are some good starting points. The Wikipedia page on race conditions have references to a few good examples http://en.wikipedia.org/wiki/Race_condition&lt;br /&gt;
&lt;br /&gt;
Couple notable ones:&lt;br /&gt;
&lt;br /&gt;
The Therac-25 x-ray machine which killed a bunch of people http://courses.cs.vt.edu/~cs3604/lib/Therac_25/Side_bar_1.html&lt;br /&gt;
&lt;br /&gt;
A blackout in 2003 was caused by a race condition in one of the power company&#039;s alarm systems http://www.securityfocus.com/news/8412 (really awful block of text)&lt;br /&gt;
&lt;br /&gt;
--Andrew&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Alright, so the things that the prof mentioned in our last lecture proved to be super helpful. Basically, what he means by &amp;quot;systems&amp;quot;, is any device based operating system. It doesn&#039;t necessarily has to be a PC-based operating system (Windows, Linux, etc.). So the Therac-25 story mentioned by Andrew in the above post is a prime example of the type of things we might be looking for.&lt;br /&gt;
&lt;br /&gt;
Other notable examples:&lt;br /&gt;
&lt;br /&gt;
1. The Opportunity Mars-Rover 1116 incident. (A rover is basically a space exploration vehicle designed to navigate the surface of a planet in order to gather images, samples or any possible information about that particular surface.). The rover experienced a rare unexpected error due to a race-conditions fault. For some reason, this seems to be a fairly common problem for those Mars-Rovers, since the same kind of error was experienced on the Spirit Mars-Rover as well. &lt;br /&gt;
&lt;br /&gt;
Heres an overview of the Opportunity 1116 incident from MarsToday : http://www.marstoday.com/news/viewsr.html?pid=23772&lt;br /&gt;
&lt;br /&gt;
Heres a paper that examines the race conditions experienced on those rovers, discuses the Spirit Rover incident and even goes to &lt;br /&gt;
explain the underlying architecture of the rover hardware: http://trs-new.jpl.nasa.gov/dspace/bitstream/2014/39897/1/06-0922.pdf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. A file-system based type of race condition involves an older version of the Unix operating system, in which the user-mode can actually be bypassed, allowing the user to access the entire system. I can see this being considered an error or a case of failure as well. This actually may be a bit more approachable, as far as understanding the Unix kernel and stuff like that, I&#039;m sure we can find a lot of resources for this.&lt;br /&gt;
&lt;br /&gt;
A small article exploring the issue: http://www.osdata.com/holistic/security/attacks/racecond.html&lt;br /&gt;
&lt;br /&gt;
- - - - - - - - - - -&lt;br /&gt;
&lt;br /&gt;
Heres also a paper that examines Race Conditions in depth, talks about the importance of mutual exclusion and provides a number of solutions :&lt;br /&gt;
http://www.google.ca/url?sa=t&amp;amp;source=web&amp;amp;cd=4&amp;amp;ved=0CCoQFjAD&amp;amp;url=http%3A%2F%2Fciteseerx.ist.psu.edu%2Fviewdoc%2Fdownload%3Fdoi%3D10.1.1.1.5897%26rep%3Drep1%26type%3Dpdf&amp;amp;rct=j&amp;amp;q=race%20conditions%20case%20study%20steve%20carr%2010.1.1.1&amp;amp;ei=FTCtTOzRN8mVnAeL-OThDA&amp;amp;usg=AFQjCNHdyHdeFSpES0nMjzb7lPkFxKwC2g&amp;amp;sig2=u2Qo9kdemxdCWAlH10GNeQ&lt;br /&gt;
&lt;br /&gt;
Heres another paper from the ACM Portal: http://portal.acm.org/citation.cfm?id=130616.130623&amp;amp;coll=Portal&amp;amp;dl=GUIDE&amp;amp;CFID=104720795&amp;amp;CFTOKEN=13393160&lt;br /&gt;
&lt;br /&gt;
If anyone can&#039;t access the pdf files on the ACM Portal or even CiteSeer for that matter, you need to log in to the netwrk using your Carleton library account. Go to the following: http://portal.acm.org.proxy.library.carleton.ca&lt;br /&gt;
You will be prompted to enter your Student ID card barcode number, thats the number below your name on your student ID. And the password is your CarletonCentral password.&lt;br /&gt;
&lt;br /&gt;
I think so far we have managed to gather a handful amount of cases. In the next couple of days, we should probably delve deeper into some of those cases.&lt;br /&gt;
&lt;br /&gt;
PS: If you wanna contact me, go to my profile in the history tab. Click on Hesperus.&lt;br /&gt;
&lt;br /&gt;
-- Munther&lt;br /&gt;
&lt;br /&gt;
--------------------&lt;br /&gt;
&lt;br /&gt;
Hey guys, I am Daniel. I am also in group 6 (Am i the final group member?). I&#039;m ready to help get this show on the road! I am going to set up a basic essay structure on the other page so that we know what to aim for. You guys look like you&#039;ve rounded up quite a bit of info on the subject already, great job!&lt;br /&gt;
&lt;br /&gt;
 Introduction Paragraph: Introduces the question and gives some general background etc.&lt;br /&gt;
 Paragraph 1: Gives first example in detail&lt;br /&gt;
 Paragraph 2: Gives second example in detail&lt;br /&gt;
 Paragraph 3: Gives third example in detail&lt;br /&gt;
 Conclusion: Relates it all back together or something (never been good with conclusions) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I think each example paragraph should be broken down like this:&lt;br /&gt;
&lt;br /&gt;
 1. Introduction to the example&lt;br /&gt;
 2. What they tried to use the Multi-Threading to do (or something like that)&lt;br /&gt;
 3. Story of the system failing&lt;br /&gt;
 4. The significance/involvement of race condition and mutual exclusion in the failure&lt;br /&gt;
 5. Conclusion (how it was solved and stuff like that can go here too)&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hey guys, I&#039;m Fangchen. I am also in group 6. (So I might be the last member lol) &lt;br /&gt;
I found a chapter of a book from sun, which name of the chapter is Race Conditions and&lt;br /&gt;
Mutual Exclusion.There are some examples on race condition in Java programming which i think we could study for sure.&lt;br /&gt;
&lt;br /&gt;
The link of the book chapter is here.&lt;br /&gt;
&lt;br /&gt;
http://java.sun.com/developer/Books/performance2/chap3.pdf&lt;br /&gt;
&lt;br /&gt;
On page 2 of the pdf file, there is a first example of race condition. I think this might be useful in our essay as a case study.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--Fangchen&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
My name is Julie and I believe that I am the last group member. Our professor said that every group has 5 to 6 members.&lt;br /&gt;
It appears that we have quite the list of resources. Are we planning to use them all? It might be a good idea to list the resources we believe are the most relevant. &lt;br /&gt;
&lt;br /&gt;
Note:  This link, http://www.osdata.com/holistic/security/attacks/racecond.html, is broken. &lt;br /&gt;
&lt;br /&gt;
I only have one resource to add. I found a paper that summarizes information about Therac-25 and the blackout of 2003: http://x4.6times7.org/downloads/software_catastrophes.pdf.&lt;br /&gt;
&lt;br /&gt;
4.1 Blackout (pg. 5 – 6)&lt;br /&gt;
&lt;br /&gt;
4.3 Therac-25 (pg. 7 – 8)&lt;br /&gt;
&lt;br /&gt;
I think we should agree on a thesis soon. Currently the examples in our essay are not connected by a central argument. If we have time, I think we should try to find another example (assuming we have agreed to write about Therac-25, the blackout of 2003 and the Mars rovers). Prof. Anil said that he was expecting four to five examples. Three examples is a minimum. I have been trying to search for one that is not as well known (as encouraged in class) but I have not had any luck.&lt;br /&gt;
&lt;br /&gt;
Are the series of Mars rovers (Opportunity and Spirit from 2004-2005) the most recent examples? I have not found any that are more recent so far. I wonder if systems programmers have learned from these past failures. I noticed, while searching for resources, that researchers have developed/are now developing tools and strategies to detect race conditions. &lt;br /&gt;
&lt;br /&gt;
Lastly, what is our plan on how divide the work for this essay?  Also do we want to meet in person someday?&lt;br /&gt;
&lt;br /&gt;
--[[User:J powers|J powers]] 16:08, 9 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
One suggestion I have for dividing the work is for everyone to write a paragraph of the essay or about a specific disaster.&lt;br /&gt;
--[[User:J powers|J powers]] 16:50, 9 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
Cool, its good to have the other members of the group on board. I will handle the editing and the introductory paragraph. I will try to make it as academic as possible. &lt;br /&gt;
&lt;br /&gt;
What Julie mentioned is right. The prof said that 3 examples are alright. But he&#039;s really looking for 4-5 cases. We need to impress him a little bit here. The other case he mentioned was the Blue-Screens-Of-Death incidents. I believe a mail man was killed because of that. I will try to find some information on that later on today. &lt;br /&gt;
&lt;br /&gt;
Also, if you guys wanna meet up a couple of days before the due date, thats ok by me. We can meet up in the Herzberg labs in the 4th floor, not the undergrad ones, the ones at the end of the hall. Or I can reserve a room for us in the library. Or if you just want to continue doing this online, I know that each one of us has probably a different schedule and everything.&lt;br /&gt;
&lt;br /&gt;
-- Munther&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Alright, Seems we needed more than i originally thought :p so i tweaked the other page to have 5 of them instead of 3.  I would absolutely like to meet up :D. Doing this online thing makes me feel wierd for some reason...&lt;br /&gt;
&lt;br /&gt;
But if we do meet up lets put all our discussion and decisions on the page here so it can get reviewed etc.&lt;br /&gt;
&lt;br /&gt;
If we are gonna meet up I would prefer Herzberg (not that it really matters, its just where i hang out anyways)&lt;br /&gt;
&lt;br /&gt;
Also is this due on tuesday or thursday?&lt;br /&gt;
&lt;br /&gt;
-- Daniel&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
Ok everyone write in here when you are available before the 14th&lt;br /&gt;
&lt;br /&gt;
 Daniel: all day Monday, Tuesday, and Thursday&lt;br /&gt;
 Munther: --&lt;br /&gt;
 Fangchen: --&lt;br /&gt;
 Andrew: After 12:30 Tues-Wed-Thurs&lt;br /&gt;
 Julie: Tuesday after 2:30, Wednesday after 1:00, and Thursday after 1:00 [[User:J powers|J powers]] 19:32, 10 October 2010 (UTC)&lt;/div&gt;</summary>
		<author><name>Atubman</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_1_2010_Question_6&amp;diff=2324</id>
		<title>Talk:COMP 3000 Essay 1 2010 Question 6</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_1_2010_Question_6&amp;diff=2324"/>
		<updated>2010-10-04T20:04:06Z</updated>

		<summary type="html">&lt;p&gt;Atubman: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hey guys, this is Munther. I&#039;m one of the members of the group assigned to this question. Before we start, let me just say that since this is a collective piece of work thats supposed to include contributions from each member of the group, let us all assume the role of the editor. So we will all contribute and help edit the final version of the article.&lt;br /&gt;
&lt;br /&gt;
Regarding our question. As a starting point, I figured it would be appropriate to start defining what mutual exclusion (mutex) and race conditions mean. Lets start with race conditions, since mutual exclusion basically came to life because of the need to control race conditions.&lt;br /&gt;
&lt;br /&gt;
Race conditions: situations where one or more processes are trying to write, read or access the same piece of data, and the final result depends on who runs precisely when. Look at the text book in pages 117-118 for a detailed example of that.&lt;br /&gt;
&lt;br /&gt;
Mutual exclusion (mutex): the idea of making sure that processes access data in a serialized way. Meaning that, if process A for instance, happens to be executing or using a particular data structure (called a critical section), then no other process like B would be allowed to execute or use that very same data structure (critical section) until process A finishes executing or decides to leave the data structure. Common algorithms and techniques used in mutual exclusion include: locks, semaphores and monitors.&lt;br /&gt;
&lt;br /&gt;
Our question asks for examples of systems that have failed due to flawed efforts. For starters, this is a wiki-programming page (Rosetta code) that examines race conditions and offers an example from the Unix/Linux operating systems, whether the example mentioned here is considered a &amp;quot;failure&amp;quot; we should check with the prof. Anyways, its a good starting point.&lt;br /&gt;
http://rosettacode.org/wiki/Race_condition&lt;br /&gt;
&lt;br /&gt;
Heres also a paper that goes back to 1992, which basically examines the excessive amount of expenses and resources used in older versions of the Unix system when implementing mutual exclusion. The paper goes to explain the problem and offers a better solution. Its pretty easy to follow and understand, worth reading as well.&lt;br /&gt;
http://www.usenix.org/publications/library/proceedings/sa92/moran.pdf&lt;br /&gt;
&lt;br /&gt;
-- Munther&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hey Andrew here another member of this group. Those are some good starting points. The Wikipedia page on race conditions have references to a few good examples http://en.wikipedia.org/wiki/Race_condition&lt;br /&gt;
&lt;br /&gt;
Couple notable ones:&lt;br /&gt;
&lt;br /&gt;
The Therac-25 x-ray machine which killed a bunch of people http://courses.cs.vt.edu/~cs3604/lib/Therac_25/Side_bar_1.html&lt;br /&gt;
&lt;br /&gt;
A blackout in 2003 was caused by a race condition in one of the power company&#039;s alarm systems http://www.securityfocus.com/news/8412 (really awful block of text)&lt;br /&gt;
&lt;br /&gt;
--Andrew&lt;/div&gt;</summary>
		<author><name>Atubman</name></author>
	</entry>
</feed>