<?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=Tmalone</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=Tmalone"/>
	<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php/Special:Contributions/Tmalone"/>
	<updated>2026-05-01T19:32:27Z</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_8&amp;diff=5938</id>
		<title>Talk:COMP 3000 Essay 2 2010 Question 8</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_8&amp;diff=5938"/>
		<updated>2010-12-01T16:22:57Z</updated>

		<summary type="html">&lt;p&gt;Tmalone: /* Other Information */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Group Members&lt;br /&gt;
&lt;br /&gt;
Trevor Bonesaw Malone - tmalone@connect.carleton.ca //FIRST POST!&lt;br /&gt;
&lt;br /&gt;
Qi Zhang   - qzhang13@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
Gregory Bint - gbint@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
Gautam Akiwate - gakiwate@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
Corey Ling - cling@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
Sarah Liske&lt;br /&gt;
&lt;br /&gt;
==Relevant Sources==&lt;br /&gt;
*NEWSOME,J.,AND SONG,D.Dynamic Taint Analysis for Automatic Detection, Analysis, and Signature Generation of Exploits on Commodity Software.      [http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.83.2141&amp;amp;rep=rep1&amp;amp;type=pdf Dynamic Taint Analysis for Automatic Detection]&lt;br /&gt;
&amp;lt;u&amp;gt;Seems to be THE Dynamic Taint Analysis Paper.Talks about implementation on TaintCheck. Could be also useful for critique section&amp;lt;/u&amp;gt; -[Gautam]&lt;br /&gt;
&lt;br /&gt;
== Work Plan ==&lt;br /&gt;
&lt;br /&gt;
As Trevor intimated, we should have clear division of work going forward.  This is sort of the break down as I see it.  Please edit as you think of new ideas!&lt;br /&gt;
&lt;br /&gt;
* Background Concepts&lt;br /&gt;
** Information Flow Theory. (Implicit and Explicit Flows.) --Done[--[[User:Gautam|Gautam]] 03:54, 28 November 2010 (UTC)]&lt;br /&gt;
** What is dynamic taint analysis --Done[--[[User:Gautam|Gautam]] 05:07, 28 November 2010 (UTC)]&lt;br /&gt;
** What is the difference between dynamic and static analysis - it&#039;s there, who added it?&lt;br /&gt;
* Research Problem&lt;br /&gt;
** How do we build a DTA engine for a phone? - done, but by who?&lt;br /&gt;
** Why do we want to?  (information misuse) - done, but by who?&lt;br /&gt;
* Contribution&lt;br /&gt;
** How did they implement their DTA engine (Done: --[[User:Cling|Cling]] 04:50, 26 November 2010 (UTC))&lt;br /&gt;
** What did they find about information misuse (Done: --[[User:Cling|Cling]] 04:50, 26 November 2010 (UTC))&lt;br /&gt;
** Compared to the existing taint tracking approaches. [[User:Zhangqi|Zhangqi]] 07:11, 27 November 2010 (UTC) (Added something. Still looking for other examples,in progress)&lt;br /&gt;
** (What else should be in the contributions? Anything need fleshing out?) (Working on that now :) sliske&lt;br /&gt;
* Critique&lt;br /&gt;
**Added two paragraphs at the end of the present critique. Please incorporate it into your content as you deem fit.--[[User:Gautam|Gautam]] 09:07, 30 November 2010 (UTC) &lt;br /&gt;
**^ done. fleshed out critique, and added a bit about how taintdroid doesn&#039;t track implicit flow. Also reworded (the entire essay) for clarity where necessary/checked spelling. It would be a good idea for everyone to read it over once for spelling/clarity before thursday, just in case something doesn&#039;t make sense - sliske&lt;br /&gt;
* References&lt;br /&gt;
** The article has 61 references!  We can probably use some of them&lt;br /&gt;
**whee! reading papers and sticking in information as need be. Also working out how to cite properly, as there are two citations used currently sliske&lt;br /&gt;
&lt;br /&gt;
List of information we need to find external sources for:&lt;br /&gt;
* History of taint analysis&lt;br /&gt;
* History of privacy research relating to smart phones&lt;br /&gt;
&lt;br /&gt;
== Work In Progress ==&lt;br /&gt;
&lt;br /&gt;
Log what you are working on *right now* so that other people don&#039;t try to do the same thing.  Make sure to clear your name from here when you are done.&lt;br /&gt;
&lt;br /&gt;
* Gregory Bint:  Research Problem&lt;br /&gt;
** Need to find some history on smart phone security research for the second part.&lt;br /&gt;
&lt;br /&gt;
* Gautam Akiwate:  Background Concepts&lt;br /&gt;
** Any resources on Dynamic taint Analysis would be appreciated!&lt;br /&gt;
&lt;br /&gt;
* Corey Ling: Contributions (Qi Zhang) &lt;br /&gt;
&lt;br /&gt;
* Trevor Malone: Critique&lt;br /&gt;
&lt;br /&gt;
* Sarah Liske: References and Questions, Clarity/Spelling.&lt;br /&gt;
&lt;br /&gt;
== Some Notes from the Video ==&lt;br /&gt;
&lt;br /&gt;
Tracking of privacy sensitive data through Dynamic Taint Analysis (aka. Taint Tracking).  The trick is to mark private data as it sourced, and then follow those marks until (unless) they leave the phone.&lt;br /&gt;
	&lt;br /&gt;
Android phones run Java apps, which are compiled into DEX, and then run on top of the Dalvik VM.  It is this VM that we modify so that we can support the storage and tracking of taint tags.&lt;br /&gt;
&lt;br /&gt;
Taint sources&lt;br /&gt;
* low -bandwidth sensors&lt;br /&gt;
** Location&lt;br /&gt;
** Accelerometer&lt;br /&gt;
* High-bandwidth sensors&lt;br /&gt;
** Mic&lt;br /&gt;
** Camera&lt;br /&gt;
* Information DB&lt;br /&gt;
** Address book&lt;br /&gt;
** SMS storage&lt;br /&gt;
* Device ID&lt;br /&gt;
** IMEI&lt;br /&gt;
** IMSI   (don&#039;t actually track this one because of false positives)&lt;br /&gt;
** ICC_ID&lt;br /&gt;
** Phone Number&lt;br /&gt;
&lt;br /&gt;
Taint sink  (where marked data can leave the phone)&lt;br /&gt;
* Network Taint Sink&lt;br /&gt;
&lt;br /&gt;
Taint propagation&lt;br /&gt;
* ???&lt;br /&gt;
&lt;br /&gt;
Taint tags are stored in memory interleaved with the variables they are tracking&lt;br /&gt;
&lt;br /&gt;
Some standard Data Flow technique is used to propagate these tags, especially as one variable that is marked may be assigned to another, so now that variable needs to be tracked as well.&lt;br /&gt;
&lt;br /&gt;
Tracks explicit flows of data, not implicit&lt;br /&gt;
	To fully capture implicit flows, you need to do static analysis, which is hard with closed-source apps, and cannot be done real-time&lt;br /&gt;
	&lt;br /&gt;
Implicit flows are not tracked&lt;br /&gt;
* Implicit flows can involve &amp;quot;taint-scope&amp;quot;, tracking based on conditionals in code&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
=== Performance ===&lt;br /&gt;
&lt;br /&gt;
The goal is to create a real time tracking system, so the TaintDroid&#039;s performance impact is of some importance&lt;br /&gt;
&lt;br /&gt;
14% CPU overhead&lt;br /&gt;
4.4% memory overhead&lt;br /&gt;
&lt;br /&gt;
Macro benchmarks  (to get a feel for what the phone&#039;s usability is like with TD running)&lt;br /&gt;
* App load:  3%  (2ms) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Findings ===&lt;br /&gt;
&lt;br /&gt;
20 out of 30 tested applications share data in a way that is not expected.&lt;br /&gt;
&lt;br /&gt;
67 of 105 flagged pieces of data leaving the device had no obviously legitimate purpose (verified by the authors).&lt;br /&gt;
&lt;br /&gt;
Many apps sent location data and other unique identifiers to advertising servers.&lt;br /&gt;
&lt;br /&gt;
Most apps do not mention anything to the user.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Limitations ===&lt;br /&gt;
&lt;br /&gt;
Tracks only explicit data flows.&lt;br /&gt;
&lt;br /&gt;
An application *could* launder the tags off of the data, if they really wanted to hide this sort of thing from TaintDroid.&lt;br /&gt;
&lt;br /&gt;
There are methods that could be used to protect against this, but they go against the goal of a light-weight, real-time tracking system.  TD is not necessarily about catching truly malicious programs, but rather just those that leak information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Why do apps take this information?&lt;br /&gt;
* Lazy;  in the demo video, the wallpaper app seems to use the IMEI just as a ready made unique ID&lt;br /&gt;
* Overzealous;  the developer might thing they *need* the data for something, but actually &lt;br /&gt;
* Ads;  advertises do seem a little presumptuous in their data collection&lt;br /&gt;
* Spying;  bosses or spouses&lt;br /&gt;
* Malicious;  &lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
=== QA Period ===&lt;br /&gt;
&lt;br /&gt;
Q:  how do we prevent a malicious app from removing a taint attribute on a file&lt;br /&gt;
&lt;br /&gt;
A:  TD operates a too low a level for this to be a problem;  TD assumes that the native code is trusted&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Q:  It seems like you had a lot of false positives&lt;br /&gt;
&lt;br /&gt;
A:  The point of this tool was to identify privacy sensitive information as having left the phone, not whether or not a privacy violation has taken place.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Q: Now that TD is released; couldn&#039;t malicious apps use some of the methods described in the paper to get around it?    &lt;br /&gt;
&lt;br /&gt;
A: Well, yes, but it is not just about maliciousness, it could just laziness or over-zealous ad stuff.&lt;br /&gt;
&lt;br /&gt;
==Other Information==&lt;br /&gt;
&lt;br /&gt;
Hey guys, thought I would just post a generalized paragraph about our essay.&lt;br /&gt;
&lt;br /&gt;
In today’s society, Smartphones are the new big thing. To me that’s what makes this paper so interesting. This paper focuses on private information in android phones and the misuse of this information. The misuse of information includes the SIM card, the ID of the device, or the phone number. TaintDroid is used on smart phones with an efficient taint tracking and analysis system. It has the ability to track sensitive data from multiple sources and examines the misuse of such data. In their study, out of 80 popular third-party applications, TaintDroid monitored that 68 applications had potential misuse of user’s private data. This tool is great for knowing with applications are safe and which are not, so your private data can remained private.&lt;br /&gt;
&lt;br /&gt;
Also, we should really think of splitting up the work in some way. If some people have specific sections they would like to do lets figure that out now so we can divide the workload and get it done over the next couple of days. I don&#039;t personally care what part I&#039;m going to have to do, so lets get this going. Any other information people wanna post feel free the more the better, even if we don&#039;t end up using it.&lt;br /&gt;
&lt;br /&gt;
[[user:Tmalone|Trevor Malone]]&lt;br /&gt;
&lt;br /&gt;
Hey guys! Anything else we need to get done? Let me know and I can help in anyway possible.&lt;br /&gt;
&lt;br /&gt;
[[user:Tmalone|Trevor Malone]]&lt;/div&gt;</summary>
		<author><name>Tmalone</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_2_2010_Question_8&amp;diff=5694</id>
		<title>COMP 3000 Essay 2 2010 Question 8</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_2_2010_Question_8&amp;diff=5694"/>
		<updated>2010-11-29T18:12:28Z</updated>

		<summary type="html">&lt;p&gt;Tmalone: /* Critique */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Paper=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;&amp;lt;big&amp;gt;TaintDroid: An Information-Flow Tracking System for Realtime Privacy Monitoring on Smartphones&amp;lt;/big&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Authors:&lt;br /&gt;
* William Enck, &#039;&#039;The Pennsylvania State University&#039;&#039;&lt;br /&gt;
* Peter Gilbert, &#039;&#039;Duke University&#039;&#039;&lt;br /&gt;
* Byung-Gon Chun, &#039;&#039;Intel Labs&#039;&#039;&lt;br /&gt;
* Landon P. Cox, &#039;&#039;Duke University&#039;&#039;&lt;br /&gt;
* Jaeyeon Jung, &#039;&#039;Intel Labs&#039;&#039;&lt;br /&gt;
* Patrick McDaniel, &#039;&#039;The Pennsylvania State University&#039;&#039;&lt;br /&gt;
* Anmol N. Sheth, &#039;&#039;Intel Labs&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Official Website: http://www.appanalysis.org/&lt;br /&gt;
&lt;br /&gt;
Direct Link to Paper: http://appanalysis.org/tdroid10.pdf&lt;br /&gt;
&lt;br /&gt;
Video demonstration of TaintDroid in action: http://www.youtube.com/watch?v=qnLujX1Dw4Y&lt;br /&gt;
&lt;br /&gt;
=Background Concepts=&lt;br /&gt;
As a brief glance through the paper might suggest the paper has much to do with &amp;quot;Information Flow Tracking&amp;quot; and &amp;quot;Dynamic Taint Analysis&amp;quot;.It is evident that to follow these ideas in this paper the ideas which form the basis of this theory have to be understood. All in all, the following two concepts can be said to be central to understanding this paper.&amp;lt;br&amp;gt;&lt;br /&gt;
*Information Flow&lt;br /&gt;
*Taint Analysis&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;Information Flow&amp;lt;/big&amp;gt;&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Information flow as the name suggests is essentially transfer of information. This transfer of information can be between two processes or withing a given process from let&#039;s say a variable x to a variable y. Information Flow Theory tries to quantify this &#039;&#039;&#039;flow&#039;&#039;&#039; of information into a mathematical model.&amp;lt;br&amp;gt; &lt;br /&gt;
In a security model the Information Flow can be categorized into:&amp;lt;br&amp;gt; &lt;br /&gt;
&#039;&#039;&#039;Explicit Flow&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Explicit Flow is when information subject to &#039;security classifications&#039; is transfered to a variable(or process) which is not subject to the same or higher level of &#039;security&#039; causing a security breach. To put simply explicit flow is when &#039;secure&#039; information is transferred so that it is publicly observable.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;i&amp;gt;A Pseudo Code Example:&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;PRIVATE VAR &amp;lt;big&amp;gt;secure&amp;lt;/big&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
PUBLIC VAR &amp;lt;big&amp;gt;notsecure&amp;lt;br&amp;gt;&lt;br /&gt;
notsecure=secure&amp;lt;/big&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
In the information in &amp;lt;i&amp;gt;&#039;secure&#039;&amp;lt;/i&amp;gt; which is PRIVATE is transferred to &amp;lt;i&amp;gt;&#039;notsecure&#039;&amp;lt;/i&amp;gt; which is PUBLIC which is an &#039;Information Leak&#039;. &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Implicit Flow&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Implicit Flow is when the information subject to &#039;security classifications&#039; is deduced indirectly. In this the leakage of information is through the program control flow. Depending on the flow of the program the secure information is compromised.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;i&amp;gt;A Pseudo Code Example:&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;PRIVATE VAR &amp;lt;big&amp;gt;secure&amp;lt;/big&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
PUBLIC VAR &amp;lt;big&amp;gt;notsecure&amp;lt;br&amp;gt;&lt;br /&gt;
if secure=&amp;quot;blah blah&amp;quot; then:&amp;lt;br&amp;gt;&lt;br /&gt;
insecure=1&amp;lt;br&amp;gt;&lt;br /&gt;
else:&amp;lt;br&amp;gt;&lt;br /&gt;
insecure=0&amp;lt;/big&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
We can deduce if information in &amp;lt;i&amp;gt;&#039;secure&#039;&amp;lt;/i&amp;gt; is &amp;lt;i&amp;gt;&amp;quot;blah blah&amp;quot;&amp;lt;/i&amp;gt; by checking the value of &#039;insecure&#039;. Information leakage due to implicit flows are much harder to detect and protect from.&lt;br /&gt;
  &lt;br /&gt;
&amp;lt;i&amp;gt;For more on Information Flow and its Math Model refer &amp;quot;A Lattice Model of Secure Information Flow&amp;quot;&amp;lt;/i&amp;gt; [1]&lt;br /&gt;
&amp;lt;br&amp;gt;&#039;&#039;&#039;&amp;lt;big&amp;gt;Taint Analysis&amp;lt;/big&amp;gt;&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The main idea behind taint analysis is that any variable that can be modified directly or indirectly by the user and can become a security vulnerability is &amp;quot;tainted&amp;quot;. The basic idea is that through various operations the &amp;quot;taint&amp;quot; can be passed from variable to variable and when a tainted variable is used to execute dangerous commands a security breach may occur. The basic premise of taint analysis is to identify these &amp;quot;tainted&amp;quot; variables and ensure that they do not create a security breach.&amp;lt;br&amp;gt;&lt;br /&gt;
Taint Analysis done at run-time is called as Dynamic Taint Analysis. The approach used in dynamic taint analysis is to label the data originating from untrusted sources as tainted. The analysis keeps track of all the tainted data in the memory and when such data is used in a dangerous situation, a possible bug is detected. This approach offers the capabilities to detect most of the input validation vulnerabilities with a very low false positive rate. However there are some disadvantages when using dynamic taint analysis. The execution of the program is slower because of the necessary additional checks.&amp;lt;br&amp;gt;&lt;br /&gt;
Static taint analysis is the technique used for detecting the overapproximation of the set of instructions that are influenced by user input. This set of tainted instructions is computed statically only by analyzing the sources of the program. The main advantage for static taint analysis is that it takes into account all the possible execution paths of the program. On the other hand the analysis may not be so accurate as the one performed dynamically because the static analyzer does not have access to the additional runtime information of the program. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;A Math Model:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
There are two types of variables&lt;br /&gt;
*Tainted&lt;br /&gt;
*Untainted&lt;br /&gt;
Thus V = {T,U} , T denotes &amp;quot;Tainted&amp;quot;, U denotes &amp;quot;Untainted&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
Binary Operator &amp;lt;big&amp;gt;⊕&amp;lt;/big&amp;gt;: V x V -&amp;gt; V &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;big&amp;gt;&lt;br /&gt;
x&amp;lt;big&amp;gt;⊕&amp;lt;/big&amp;gt;y=T, if x = T OR y = T &amp;lt;br&amp;gt;&lt;br /&gt;
x&amp;lt;big&amp;gt;⊕&amp;lt;/big&amp;gt;y=U, if x = y = U&lt;br /&gt;
&amp;lt;/big&amp;gt;&amp;lt;/code&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
It is now intuitively easy to see that whenever a tainted variable is used it makes that variable tainted and thus the taint is propagated. Taking this further we can see that, if needed, we can tag variables as tainted by attaching to them a tainted tag, lets say &amp;quot;T&#039;&amp;quot; which can then be tracked or used as wanted. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;i&amp;gt;Note: The paper talks about Dynamic Taint Analysis. TaintDroid makes ingenious use of &amp;quot;taint&amp;quot; to taint variables that are of value and tracks their progress. Though in the actual context of Taint Analysis &amp;quot;taint&amp;quot; is used for untrusted information however in this case the &amp;quot;taint&amp;quot; variables are infact important private data. (Just in case if it confused someone :D)&amp;lt;br&amp;gt; For more detailed information on Taint Analysis refer &amp;quot;Detecting Software Vulnerabilities Static Taint Analysis&amp;quot;[2]&amp;lt;/i&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Explain briefly the background concepts and ideas that your fellow classmates will need to know first in order to understand your assigned paper.&lt;br /&gt;
* Background on the taint data tracking method, how it has been used in other systems (i.e. not phones)&lt;br /&gt;
* A reader&#039;s digest version of any new articles about this kind of security vulnerability on phones, on apps that collect more personal data than users would expect.&lt;br /&gt;
&lt;br /&gt;
=Research problem=&lt;br /&gt;
&lt;br /&gt;
In today’s society, smartphones are the new big thing.   Smartphones, by their nature, are linked into many private details of our lives, including not only classic data like our contact list, but new kinds of data unique to smartphones, such as location data.  Except for the odd tunnel or elevator, these phones are constantly connected to the internet.   Smartphones also have the ability to download and run third party applications;  indeed, this is why we call them &amp;quot;smart&amp;quot;.  When you combine third party applications with an internet connection, you suddenly find yourself unsure of how your data is being used, that is, what is to stop a third party application from disseminating our private information?   As it turns out, very little.&lt;br /&gt;
&lt;br /&gt;
A telling example of this is a wallpaper application that sends your phone number back to the developer.  Once the app is running on your phone, it can typically access any of the information on your phone, and it is not necessarily clear when it has done so, or what it is doing with it.&lt;br /&gt;
&lt;br /&gt;
The authors of this paper set out to try to understand what kind of information is being collected and where that information is being sent, and in order to do that, they first needed to build a means of tracking that information.&lt;br /&gt;
&lt;br /&gt;
The strategy they chose is called Dynamic Taint Analysis, sometimes called Taint Tracking.  The basic idea being to mark (&#039;&#039;taint&#039;&#039;) sensitive information at its source, and to then follow that mark as it moves through a system.  In the context of this paper, if ever we should see marked data leave the network interface of the phone, then we know that some sensitive information has been disseminated.&lt;br /&gt;
&lt;br /&gt;
There are many difficulties associated with implementing such a system on a smartphone.  Their design goals were to create a light-weight, minimal overhead, real-time tracking system that runs directly on a real phone, with real applications.  To be really useful, the tracking system must not impact the user experience too heavily.&lt;br /&gt;
&lt;br /&gt;
Some of the difficulties include&lt;br /&gt;
* Smart phones are resource constrained.   Processing power and memory are limited, and any processing that we do perform will consume battery power.  If the tracking system is to be real-time, and for the phone to be considered &amp;quot;usable&amp;quot; by the end user, the system must be truly light weight.&lt;br /&gt;
* Third party applications arrive in a compiled format;  we cannot analyze their source code.&lt;br /&gt;
* Applications may do complex things with the sensitive data.  It is unlikely that the application will simply read a location from the GPS and dump it straight out over the network.  More likely is that the application will use that data in someway, or combine it with other data, before it is sent.  We need to be able to track sensitive data throughout this entire process if we hope to perform any useful analysis.&lt;br /&gt;
* Applications can share information with other applications, meaning that our tracking has to work across multiple processes.&lt;br /&gt;
* The tracking must operate on a real phone, not a simulated one.  With a simulated system, where we control the virtual hardware and memory, we can be certain that we can see everything that an application might do.  On a real device, how can we get &amp;quot;low enough&amp;quot; to see everything the applications do?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;How does this problem relate to past related work?&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Contribution=&lt;br /&gt;
The contributions of the TaintDroid: An Information-Flow Tracking System for Realtime Privacy Monitoring on Smartphones paper is not that they achieved Information flow tracking but that they achieved it efficient enough to run in real time on real constrained hardware devices with minimal overheads. As stated &amp;quot;TaintDroid only incurs an approximate 14% CPU overhead and an approximate 4.4% memory overhead for simultaneously tracking 32 taint markings per data unit.&amp;quot; It should also be noted that the 14% CPU over-head is only in regards to a &amp;quot;CPU-bound micro-benchmark and imposes negligible overhead on interactive third-party applications.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This is achieved by modifying the code directly at the VM layer of the Android system to provide variable-level tracking. This allows direct control over how and what private information, such as location details from the GPS, are stored and accessed. Next they modify the JNI layer to provide message-level tracking which allows them to monitor inter-process a.k.a. inter-application communications. This also allows them to &amp;quot;patch the taint propagation on return.&amp;quot; so they can keep track of information transfer via native code. Finally modifying the network interface and secondary storage interfaces they are able to provide file-level taint tracking which enables them to ensure &amp;quot;persistent information conservatively retains its taint markings.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
By combining these three levels (variable, message and file) of taint tracking, TaintDroid was able to effectively track 30 randomly selected popular 3rd party android applications. In doing so it correctly flagged 105 instances of tainted information transmission. Of these 105, only 35 were legitimate transfers. It also determined that 50% off the applications submitted the users location to advertising servers and 5 of the applications transmitted the users device ID, phone number and SIM card serial number.&lt;br /&gt;
&lt;br /&gt;
The other contribution of TaintDorid is accuracy of tracking sensitive data. Unlike existing solutions that rely on heavy-weight whole-system emulation, the virtualized architecture of Android integrated four granularities of taint propagation:variable-level, method-level, message-level, and file-level. There are many factors influence the performance and accuracy of TaintDoroid. Taint tracking granularity and flow semantics are two of them. In the variable-level, TaintDorid treats the values at level. And the variables provide flow semantics for taint progagation to distinguish the different data pointers at different level to ensure the accuracy. Existing taint tracking approaches,like Panorama Taint System,rely on instruction-level dynamic taint analysis using whole system&lt;br /&gt;
emulation. This method leads to 2-20 times slowdown of system. Actually  it&#039;s not suitable for the trend of realtime analysis. Moreover,instruction-level tracking faces a serious problem,taint explosion. When we use some complex instructions such as CMPXCHG, REP MOV,the stack pointer may become falsely tainted or taint loss. However,TaintDorid solved this problem with the combination of 4 levels.&lt;br /&gt;
&lt;br /&gt;
From these outstanding numbers you can see that more effective higher granular permission systems are needed and TaintDroid is providing a step in the right direction, by providing a highly efficient real time tracking system.&lt;br /&gt;
&lt;br /&gt;
=Critique=&lt;br /&gt;
What is good and not-so-good about this paper? You may discuss both the style and content; be sure to ground your discussion with specific references. Simple assertions that something is good or bad is not enough - you must explain why.&lt;br /&gt;
&lt;br /&gt;
This paper has quite a bit of information and has a very strong structure in explaining what TaintDroid is and what it does. The sections begin as a high-level overview of TaintDroid, then explains the history followed by an explanation of sources that are tracked by TaintDroid and its design. It continues with test results and the strengths and weaknesses of TaintDroid, with references to related work. A proposed structure to improve the readability of the paper might be to explain what the background information of the Android phone is first before explaining the overview process of the TaintDroid. That way, the concepts of the paper would be easier to understand.&lt;br /&gt;
&lt;br /&gt;
Did a good job in explaining the challenges in monitoring network disclosure of privacy sensitive information and how TaintDroid is successful despite these challenges&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Smartphones are resource constrained&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Third-party applications are entrusted with several types of privacy sensitive information&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Context-based privacy sensitive information is dynamic and can be difficult to identify even when sent in the clear&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Applications can share information&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TaintDroid uses dynamic taint analysis to find a way around these challenges, using a taint source as the targeted sensitive information, and a taint marking to identify the information type. This paper discusses the strengths and weaknesses of the TaintDroid very effectively. The TaintDroid only tracks data flows and does not track control flows to minimize overhead. There are also other overhead issues due to the Taint Tag Storage, which is well explained due to the fact that most string objects all have the same tag. For this reason, it is possible for false positives to occur. By the test results and statistics of smartphones using TaintDroid, it is very obvious that personal information is often misused and that TaintDroid effectively identifies at a high percentage, the occurrence of this misuse. A possible improvement for this paper is the prediction of future smartphone security measures. This paper does a great job in explaining the TaintDroid, as well as related work in the security of personal information. Where this paper lacks is what changes could be made, or what possible updates to current programs can be implemented to further improve the results of tracking misuse of information, and even prevent it from occurring.&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
[1] DENNING, D. E. [http://www.cs.georgetown.edu/~denning/infosec/lattice76.pdf A Lattice Model of Secure Information Flow].&lt;br /&gt;
Communications of the ACM 19, 5 (May 1976), 236–243.&amp;lt;br&amp;gt;&lt;br /&gt;
[2]D CEARA, ML POTET et.al [http://tanalysis.googlecode.com/files/DumitruCeara_BSc.pdf Detecting Software Vulnerabilities Static Taint Analysis] GINP ENSIMAG GoogleCode(2009)&amp;lt;br&amp;gt;&lt;br /&gt;
[3] NEWSOME,J.,AND SONG,D. [http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.83.2141&amp;amp;rep=rep1&amp;amp;type=pdf Dynamic Taint Analysis for Automatic Detection, Analysis, and Signature Generation of Exploits on Commodity Software] Proceedings of the Network and Distributed System Security Symposium (NDSS 2005)&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tmalone</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_8&amp;diff=5495</id>
		<title>Talk:COMP 3000 Essay 2 2010 Question 8</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_8&amp;diff=5495"/>
		<updated>2010-11-24T16:39:28Z</updated>

		<summary type="html">&lt;p&gt;Tmalone: /* Work In Progress */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Group Members&lt;br /&gt;
&lt;br /&gt;
Trevor Bonesaw Malone - tmalone@connect.carleton.ca //FIRST POST!&lt;br /&gt;
&lt;br /&gt;
Qi Zhang   - qzhang13@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
Gregory Bint - gbint@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
Gautam Akiwate - gakiwate@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
==Relevant Sources==&lt;br /&gt;
*NEWSOME,J.,AND SONG,D.Dynamic Taint Analysis for Automatic Detection, Analysis, and Signature Generation of Exploits on Commodity Software.      [http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.83.2141&amp;amp;rep=rep1&amp;amp;type=pdf Dynamic Taint Analysis for Automatic Detection]&lt;br /&gt;
&amp;lt;u&amp;gt;Seems to be THE Dynamic Taint Analysis Paper.Talks about implementation on TaintCheck. Could be also useful for critique section&amp;lt;/u&amp;gt; -[Gautam]&lt;br /&gt;
&lt;br /&gt;
== Work Plan ==&lt;br /&gt;
&lt;br /&gt;
As Trevor intimated, we should have clear division of work going forward.  This is sort of the break down as I see it.  Please edit as you think of new ideas!&lt;br /&gt;
&lt;br /&gt;
* Background Concepts&lt;br /&gt;
** Information Flow Theory. (Implicit and Explicit Flows.)&lt;br /&gt;
** What is dynamic taint analysis&lt;br /&gt;
** What is the difference between dynamic and static analysis&lt;br /&gt;
* Research Problem&lt;br /&gt;
** How do we build a DTA engine for a phone?&lt;br /&gt;
** Why do we want to?  (information misuse)&lt;br /&gt;
* Contribution&lt;br /&gt;
** How did they implement their DTA engine&lt;br /&gt;
** What did they find about information misuse&lt;br /&gt;
* Critique&lt;br /&gt;
* References&lt;br /&gt;
** The article has 61 references!  We can probably use some of them&lt;br /&gt;
&lt;br /&gt;
List of information we need to find external sources for:&lt;br /&gt;
* History of taint analysis&lt;br /&gt;
* History of privacy research relating to smart phones&lt;br /&gt;
&lt;br /&gt;
== Work In Progress ==&lt;br /&gt;
&lt;br /&gt;
Log what you are working on *right now* so that other people don&#039;t try to do the same thing.  Make sure to clear your name from here when you are done.&lt;br /&gt;
&lt;br /&gt;
* Gregory Bint:  Research Problem&lt;br /&gt;
** I&#039;ve got what you will hopefully find to be a reasonable introduction to the problem.  I&#039;ve tried to ask mostly questions here, expecting the details to be covered in Background Concepts and in Contributions.&lt;br /&gt;
** I&#039;m going to try to find some history on smart phone security research for the second part.&lt;br /&gt;
** Should we move the Research Problem *above* Background Concepts?  It might serve as a better lead in that way.&lt;br /&gt;
&lt;br /&gt;
* Gautam Akiwate:  Background Concepts&lt;br /&gt;
** Any resources on Dynamic taint Analysis would be appreciated!&lt;br /&gt;
&lt;br /&gt;
* Qi Zhang: Contributions&lt;br /&gt;
&lt;br /&gt;
* Trevor Malone: Critique&lt;br /&gt;
&lt;br /&gt;
== Some Notes from the Video ==&lt;br /&gt;
&lt;br /&gt;
Tracking of privacy sensitive data through Dynamic Taint Analysis (aka. Taint Tracking).  The trick is to mark private data as it sourced, and then follow those marks until (unless) they leave the phone.&lt;br /&gt;
	&lt;br /&gt;
Android phones run Java apps, which are compiled into DEX, and then run on top of the Dalvik VM.  It is this VM that we modify so that we can support the storage and tracking of taint tags.&lt;br /&gt;
&lt;br /&gt;
Taint sources&lt;br /&gt;
* low -bandwidth sensors&lt;br /&gt;
** Location&lt;br /&gt;
** Accelerometer&lt;br /&gt;
* High-bandwidth sensors&lt;br /&gt;
** Mic&lt;br /&gt;
** Camera&lt;br /&gt;
* Information DB&lt;br /&gt;
** Address book&lt;br /&gt;
** SMS storage&lt;br /&gt;
* Device ID&lt;br /&gt;
** IMEI&lt;br /&gt;
** IMSI   (don&#039;t actually track this one because of false positives)&lt;br /&gt;
** ICC_ID&lt;br /&gt;
** Phone Number&lt;br /&gt;
&lt;br /&gt;
Taint sink  (where marked data can leave the phone)&lt;br /&gt;
* Network Taint Sink&lt;br /&gt;
&lt;br /&gt;
Taint propagation&lt;br /&gt;
* ???&lt;br /&gt;
&lt;br /&gt;
Taint tags are stored in memory interleaved with the variables they are tracking&lt;br /&gt;
&lt;br /&gt;
Some standard Data Flow technique is used to propagate these tags, especially as one variable that is marked may be assigned to another, so now that variable needs to be tracked as well.&lt;br /&gt;
&lt;br /&gt;
Tracks explicit flows of data, not implicit&lt;br /&gt;
	To fully capture implicit flows, you need to do static analysis, which is hard with closed-source apps, and cannot be done real-time&lt;br /&gt;
	&lt;br /&gt;
Implicit flows are not tracked&lt;br /&gt;
* Implicit flows can involve &amp;quot;taint-scope&amp;quot;, tracking based on conditionals in code&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
=== Performance ===&lt;br /&gt;
&lt;br /&gt;
The goal is to create a real time tracking system, so the TaintDroid&#039;s performance impact is of some importance&lt;br /&gt;
&lt;br /&gt;
14% CPU overhead&lt;br /&gt;
4.4% memory overhead&lt;br /&gt;
&lt;br /&gt;
Macro benchmarks  (to get a feel for what the phone&#039;s usability is like with TD running)&lt;br /&gt;
* App load:  3%  (2ms) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Findings ===&lt;br /&gt;
&lt;br /&gt;
20 out of 30 tested applications share data in a way that is not expected.&lt;br /&gt;
&lt;br /&gt;
67 of 105 flagged pieces of data leaving the device had no obviously legitimate purpose (verified by the authors).&lt;br /&gt;
&lt;br /&gt;
Many apps sent location data and other unique identifiers to advertising servers.&lt;br /&gt;
&lt;br /&gt;
Most apps do not mention anything to the user.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Limitations ===&lt;br /&gt;
&lt;br /&gt;
Tracks only explicit data flows.&lt;br /&gt;
&lt;br /&gt;
An application *could* launder the tags off of the data, if they really wanted to hide this sort of thing from TaintDroid.&lt;br /&gt;
&lt;br /&gt;
There are methods that could be used to protect against this, but they go against the goal of a light-weight, real-time tracking system.  TD is not necessarily about catching truly malicious programs, but rather just those that leak information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Why do apps take this information?&lt;br /&gt;
* Lazy;  in the demo video, the wallpaper app seems to use the IMEI just as a ready made unique ID&lt;br /&gt;
* Overzealous;  the developer might thing they *need* the data for something, but actually &lt;br /&gt;
* Ads;  advertises do seem a little presumptuous in their data collection&lt;br /&gt;
* Spying;  bosses or spouses&lt;br /&gt;
* Malicious;  &lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
=== QA Period ===&lt;br /&gt;
&lt;br /&gt;
Q:  how do we prevent a malicious app from removing a taint attribute on a file&lt;br /&gt;
&lt;br /&gt;
A:  TD operates a too low a level for this to be a problem;  TD assumes that the native code is trusted&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Q:  It seems like you had a lot of false positives&lt;br /&gt;
&lt;br /&gt;
A:  The point of this tool was to identify privacy sensitive information as having left the phone, not whether or not a privacy violation has taken place.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Q: Now that TD is released; couldn&#039;t malicious apps use some of the methods described in the paper to get around it?    &lt;br /&gt;
&lt;br /&gt;
A: Well, yes, but it is not just about maliciousness, it could just laziness or over-zealous ad stuff.&lt;br /&gt;
&lt;br /&gt;
==Other Information==&lt;br /&gt;
&lt;br /&gt;
Hey guys, thought I would just post a generalized paragraph about our essay.&lt;br /&gt;
&lt;br /&gt;
In today’s society, Smartphones are the new big thing. To me that’s what makes this paper so interesting. This paper focuses on private information in android phones and the misuse of this information. The misuse of information includes the SIM card, the ID of the device, or the phone number. TaintDroid is used on smart phones with an efficient taint tracking and analysis system. It has the ability to track sensitive data from multiple sources and examines the misuse of such data. In their study, out of 80 popular third-party applications, TaintDroid monitored that 68 applications had potential misuse of user’s private data. This tool is great for knowing with applications are safe and which are not, so your private data can remained private.&lt;br /&gt;
&lt;br /&gt;
Also, we should really think of splitting up the work in some way. If some people have specific sections they would like to do lets figure that out now so we can divide the workload and get it done over the next couple of days. I don&#039;t personally care what part I&#039;m going to have to do, so lets get this going. Any other information people wanna post feel free the more the better, even if we don&#039;t end up using it.&lt;br /&gt;
&lt;br /&gt;
[[user:Tmalone|Trevor Malone]]&lt;/div&gt;</summary>
		<author><name>Tmalone</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_8&amp;diff=5335</id>
		<title>Talk:COMP 3000 Essay 2 2010 Question 8</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_8&amp;diff=5335"/>
		<updated>2010-11-22T15:34:25Z</updated>

		<summary type="html">&lt;p&gt;Tmalone: /* Other Information */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Group Members&lt;br /&gt;
&lt;br /&gt;
Trevor Bonesaw Malone - tmalone@connect.carleton.ca //FIRST POST!&lt;br /&gt;
&lt;br /&gt;
Qi Zhang   - qzhang13@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
Gregory Bint - gbint@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
Gautam Akiwate - gakiwate@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Some Notes from the Video ==&lt;br /&gt;
&lt;br /&gt;
Tracking of privacy sensitive data through Dynamic Taint Analysis (aka. Taint Tracking).  The trick is to mark private data as it sourced, and then follow those marks until (unless) they leave the phone.&lt;br /&gt;
	&lt;br /&gt;
Android phones run Java apps, which are compiled into DEX, and then run on top of the Dalvik VM.  It is this VM that we modify so that we can support the storage and tracking of taint tags.&lt;br /&gt;
&lt;br /&gt;
Taint sources&lt;br /&gt;
* low -bandwidth sensors&lt;br /&gt;
** Location&lt;br /&gt;
** Accelerometer&lt;br /&gt;
* High-bandwidth sensors&lt;br /&gt;
** Mic&lt;br /&gt;
** Camera&lt;br /&gt;
* Information DB&lt;br /&gt;
** Address book&lt;br /&gt;
** SMS storage&lt;br /&gt;
* Device ID&lt;br /&gt;
** IMEI&lt;br /&gt;
** IMSI   (don&#039;t actually track this one because of false positives)&lt;br /&gt;
** ICC_ID&lt;br /&gt;
** Phone Number&lt;br /&gt;
&lt;br /&gt;
Taint sink  (where marked data can leave the phone)&lt;br /&gt;
* Network Taint Sink&lt;br /&gt;
&lt;br /&gt;
Taint propagation&lt;br /&gt;
* ???&lt;br /&gt;
&lt;br /&gt;
Taint tags are stored in memory interleaved with the variables they are tracking&lt;br /&gt;
&lt;br /&gt;
Some standard Data Flow technique is used to propagate these tags, especially as one variable that is marked may be assigned to another, so now that variable needs to be tracked as well.&lt;br /&gt;
&lt;br /&gt;
Tracks explicit flows of data, not implicit&lt;br /&gt;
	To fully capture implicit flows, you need to do static analysis, which is hard with closed-source apps, and cannot be done real-time&lt;br /&gt;
	&lt;br /&gt;
Implicit flows are not tracked&lt;br /&gt;
* Implicit flows can involve &amp;quot;taint-scope&amp;quot;, tracking based on conditionals in code&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
=== Performance ===&lt;br /&gt;
&lt;br /&gt;
The goal is to create a real time tracking system, so the TaintDroid&#039;s performance impact is of some importance&lt;br /&gt;
&lt;br /&gt;
14% CPU overhead&lt;br /&gt;
4.4% memory overhead&lt;br /&gt;
&lt;br /&gt;
Macro benchmarks  (to get a feel for what the phone&#039;s usability is like with TD running)&lt;br /&gt;
* App load:  3%  (2ms) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Findings ===&lt;br /&gt;
&lt;br /&gt;
20 out of 30 tested applications share data in a way that is not expected.&lt;br /&gt;
&lt;br /&gt;
67 of 105 flagged pieces of data leaving the device had no obviously legitimate purpose (verified by the authors).&lt;br /&gt;
&lt;br /&gt;
Many apps sent location data and other unique identifiers to advertising servers.&lt;br /&gt;
&lt;br /&gt;
Most apps do not mention anything to the user.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Limitations ===&lt;br /&gt;
&lt;br /&gt;
Tracks only explicit data flows.&lt;br /&gt;
&lt;br /&gt;
An application *could* launder the tags off of the data, if they really wanted to hide this sort of thing from TaintDroid.&lt;br /&gt;
&lt;br /&gt;
There are methods that could be used to protect against this, but they go against the goal of a light-weight, real-time tracking system.  TD is not necessarily about catching truly malicious programs, but rather just those that leak information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Why do apps take this information?&lt;br /&gt;
* Lazy;  in the demo video, the wallpaper app seems to use the IMEI just as a ready made unique ID&lt;br /&gt;
* Overzealous;  the developer might thing they *need* the data for something, but actually &lt;br /&gt;
* Ads;  advertises do seem a little presumptuous in their data collection&lt;br /&gt;
* Spying;  bosses or spouses&lt;br /&gt;
* Malicious;  &lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
=== QA Period ===&lt;br /&gt;
&lt;br /&gt;
Q:  how do we prevent a malicious app from removing a taint attribute on a file&lt;br /&gt;
&lt;br /&gt;
A:  TD operates a too low a level for this to be a problem;  TD assumes that the native code is trusted&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Q:  It seems like you had a lot of false positives&lt;br /&gt;
&lt;br /&gt;
A:  The point of this tool was to identify privacy sensitive information as having left the phone, not whether or not a privacy violation has taken place.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Q: Now that TD is released; couldn&#039;t malicious apps use some of the methods described in the paper to get around it?    &lt;br /&gt;
&lt;br /&gt;
A: Well, yes, but it is not just about maliciousness, it could just laziness or over-zealous ad stuff.&lt;br /&gt;
&lt;br /&gt;
===Other Information===&lt;br /&gt;
&lt;br /&gt;
Hey guys, thought I would just post a generalized paragraph about our essay.&lt;br /&gt;
&lt;br /&gt;
In today’s society, Smartphones are the new big thing. To me that’s what makes this paper so interesting. This paper focuses on private information in android phones and the misuse of this information. The misuse of information includes the SIM card, the ID of the device, or the phone number. TaintDroid is used on smart phones with an efficient taint tracking and analysis system. It has the ability to track sensitive data from multiple sources and examines the misuse of such data. In their study, out of 80 popular third-party applications, TaintDroid monitored that 68 applications had potential misuse of user’s private data. This tool is great for knowing with applications are safe and which are not, so your private data can remained private.&lt;br /&gt;
&lt;br /&gt;
Also, we should really think of splitting up the work in some way. If some people have specific sections they would like to do lets figure that out now so we can divide the workload and get it done over the next couple of days. I don&#039;t personally care what part I&#039;m going to have to do, so lets get this going. Any other information people wanna post feel free the more the better, even if we don&#039;t end up using it.&lt;br /&gt;
&lt;br /&gt;
[[user:Tmalone|Trevor Malone]]&lt;/div&gt;</summary>
		<author><name>Tmalone</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_8&amp;diff=5334</id>
		<title>Talk:COMP 3000 Essay 2 2010 Question 8</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_8&amp;diff=5334"/>
		<updated>2010-11-22T15:33:43Z</updated>

		<summary type="html">&lt;p&gt;Tmalone: /* Some Notes from the Video */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Group Members&lt;br /&gt;
&lt;br /&gt;
Trevor Bonesaw Malone - tmalone@connect.carleton.ca //FIRST POST!&lt;br /&gt;
&lt;br /&gt;
Qi Zhang   - qzhang13@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
Gregory Bint - gbint@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
Gautam Akiwate - gakiwate@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Some Notes from the Video ==&lt;br /&gt;
&lt;br /&gt;
Tracking of privacy sensitive data through Dynamic Taint Analysis (aka. Taint Tracking).  The trick is to mark private data as it sourced, and then follow those marks until (unless) they leave the phone.&lt;br /&gt;
	&lt;br /&gt;
Android phones run Java apps, which are compiled into DEX, and then run on top of the Dalvik VM.  It is this VM that we modify so that we can support the storage and tracking of taint tags.&lt;br /&gt;
&lt;br /&gt;
Taint sources&lt;br /&gt;
* low -bandwidth sensors&lt;br /&gt;
** Location&lt;br /&gt;
** Accelerometer&lt;br /&gt;
* High-bandwidth sensors&lt;br /&gt;
** Mic&lt;br /&gt;
** Camera&lt;br /&gt;
* Information DB&lt;br /&gt;
** Address book&lt;br /&gt;
** SMS storage&lt;br /&gt;
* Device ID&lt;br /&gt;
** IMEI&lt;br /&gt;
** IMSI   (don&#039;t actually track this one because of false positives)&lt;br /&gt;
** ICC_ID&lt;br /&gt;
** Phone Number&lt;br /&gt;
&lt;br /&gt;
Taint sink  (where marked data can leave the phone)&lt;br /&gt;
* Network Taint Sink&lt;br /&gt;
&lt;br /&gt;
Taint propagation&lt;br /&gt;
* ???&lt;br /&gt;
&lt;br /&gt;
Taint tags are stored in memory interleaved with the variables they are tracking&lt;br /&gt;
&lt;br /&gt;
Some standard Data Flow technique is used to propagate these tags, especially as one variable that is marked may be assigned to another, so now that variable needs to be tracked as well.&lt;br /&gt;
&lt;br /&gt;
Tracks explicit flows of data, not implicit&lt;br /&gt;
	To fully capture implicit flows, you need to do static analysis, which is hard with closed-source apps, and cannot be done real-time&lt;br /&gt;
	&lt;br /&gt;
Implicit flows are not tracked&lt;br /&gt;
* Implicit flows can involve &amp;quot;taint-scope&amp;quot;, tracking based on conditionals in code&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
=== Performance ===&lt;br /&gt;
&lt;br /&gt;
The goal is to create a real time tracking system, so the TaintDroid&#039;s performance impact is of some importance&lt;br /&gt;
&lt;br /&gt;
14% CPU overhead&lt;br /&gt;
4.4% memory overhead&lt;br /&gt;
&lt;br /&gt;
Macro benchmarks  (to get a feel for what the phone&#039;s usability is like with TD running)&lt;br /&gt;
* App load:  3%  (2ms) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Findings ===&lt;br /&gt;
&lt;br /&gt;
20 out of 30 tested applications share data in a way that is not expected.&lt;br /&gt;
&lt;br /&gt;
67 of 105 flagged pieces of data leaving the device had no obviously legitimate purpose (verified by the authors).&lt;br /&gt;
&lt;br /&gt;
Many apps sent location data and other unique identifiers to advertising servers.&lt;br /&gt;
&lt;br /&gt;
Most apps do not mention anything to the user.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Limitations ===&lt;br /&gt;
&lt;br /&gt;
Tracks only explicit data flows.&lt;br /&gt;
&lt;br /&gt;
An application *could* launder the tags off of the data, if they really wanted to hide this sort of thing from TaintDroid.&lt;br /&gt;
&lt;br /&gt;
There are methods that could be used to protect against this, but they go against the goal of a light-weight, real-time tracking system.  TD is not necessarily about catching truly malicious programs, but rather just those that leak information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Why do apps take this information?&lt;br /&gt;
* Lazy;  in the demo video, the wallpaper app seems to use the IMEI just as a ready made unique ID&lt;br /&gt;
* Overzealous;  the developer might thing they *need* the data for something, but actually &lt;br /&gt;
* Ads;  advertises do seem a little presumptuous in their data collection&lt;br /&gt;
* Spying;  bosses or spouses&lt;br /&gt;
* Malicious;  &lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
=== QA Period ===&lt;br /&gt;
&lt;br /&gt;
Q:  how do we prevent a malicious app from removing a taint attribute on a file&lt;br /&gt;
&lt;br /&gt;
A:  TD operates a too low a level for this to be a problem;  TD assumes that the native code is trusted&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Q:  It seems like you had a lot of false positives&lt;br /&gt;
&lt;br /&gt;
A:  The point of this tool was to identify privacy sensitive information as having left the phone, not whether or not a privacy violation has taken place.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Q: Now that TD is released; couldn&#039;t malicious apps use some of the methods described in the paper to get around it?    &lt;br /&gt;
&lt;br /&gt;
A: Well, yes, but it is not just about maliciousness, it could just laziness or over-zealous ad stuff.&lt;br /&gt;
&lt;br /&gt;
===Other Information===&lt;br /&gt;
&lt;br /&gt;
Hey guys, thought I would just post a generalized paragraph about our essay.&lt;br /&gt;
&lt;br /&gt;
In today’s society, Smartphones are the new big thing. To me that’s what makes this paper so interesting. This paper focuses on private information in android phones and the misuse of this information. The misuse of information includes the SIM card, the ID of the device, or the phone number. TaintDroid is used on smart phones with an efficient taint tracking and analysis system. It has the ability to track sensitive data from multiple sources and examines the misuse of such data. In their study, out of 80 popular third-party applications, TaintDroid monitored that 68 applications had potential misuse of user’s private data. This tool is great for knowing with applications are safe and which are not, so your private data can remained private.&lt;br /&gt;
&lt;br /&gt;
Also, we should really think of splitting up the work in some way. If some people have specific sections they would like to do lets figure that out now so we can divide the workload and get it done over the next couple of days. I don&#039;t personally care what part I&#039;m going to have to do, so lets get this going. Any other information people wanna post feel free the more the better, even if we don&#039;t end up using it.&lt;/div&gt;</summary>
		<author><name>Tmalone</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=User:Tmalone&amp;diff=5053</id>
		<title>User:Tmalone</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=User:Tmalone&amp;diff=5053"/>
		<updated>2010-11-16T15:22:14Z</updated>

		<summary type="html">&lt;p&gt;Tmalone: Blanked the page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Tmalone</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_8&amp;diff=5042</id>
		<title>Talk:COMP 3000 Essay 2 2010 Question 8</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_8&amp;diff=5042"/>
		<updated>2010-11-16T15:11:18Z</updated>

		<summary type="html">&lt;p&gt;Tmalone: Created page with &amp;quot;Group Members  Trevor Bonesaw Malone - tmalone@connect.carleton.ca //FIRST POST!&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Group Members&lt;br /&gt;
&lt;br /&gt;
Trevor Bonesaw Malone - tmalone@connect.carleton.ca //FIRST POST!&lt;/div&gt;</summary>
		<author><name>Tmalone</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_1_2010_Question_8&amp;diff=4247</id>
		<title>Talk:COMP 3000 Essay 1 2010 Question 8</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_1_2010_Question_8&amp;diff=4247"/>
		<updated>2010-10-15T00:10:39Z</updated>

		<summary type="html">&lt;p&gt;Tmalone: /* Discussion */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Group 8 ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;GROUP NAMES:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Niravkumar Patel (Npatel1)&lt;br /&gt;
&lt;br /&gt;
Trevor Malone (Tmalone)&lt;br /&gt;
&lt;br /&gt;
Mark Walts (Rift)&lt;br /&gt;
&lt;br /&gt;
John Vanden Heuvel (jvheuvel)&lt;br /&gt;
&lt;br /&gt;
Jeff Francom (Afranco2)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Question clarification==&lt;br /&gt;
&lt;br /&gt;
To answer this question properly you need to discuss where pthreads came from.  The UNIX process model came out in the early 1970&#039;s, pthreads was only really proposed in the late 1980&#039;s.  That&#039;s 10-15 years of  history, what was happening?  What about the general development of threads in CS?  Alternative pthread implementations (who had the first one?  what was the first kernel-based one?).  I know that the history of pthreads on linux is kind of complicated - see the [http://en.wikipedia.org/wiki/Native_POSIX_Thread_Library NPTL].  You don&#039;t need to talk about all of this - but you do need to go beyond just what happened with the pthread standard.  --[[User:Soma|Anil]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Thank you prof. Anil, we&#039;ll look into those questions in depth and edit our essay.&lt;br /&gt;
--[[User: Npatel1|Npatel1]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
- UNIX was born in 1969&lt;br /&gt;
&lt;br /&gt;
- Began on a PDP-11/20 machine with a text formatting program called roff and a text editor&lt;br /&gt;
&lt;br /&gt;
- Was rewritten in C in 1972 -&amp;gt; brought forth more portable software&lt;br /&gt;
&lt;br /&gt;
- Became available to Universities and commercial firms as well as the US Government&lt;br /&gt;
&lt;br /&gt;
- Many editions of UNIX came out, by 1975 Versions 4, 5, and 6 were released&lt;br /&gt;
&lt;br /&gt;
- The new versions added the concept of pipes -&amp;gt; led to more modular code-base and faster development cycle&lt;br /&gt;
&lt;br /&gt;
- Pipeline is a chain of processes together by streams, so that the output of one process is the input of the next&lt;br /&gt;
&lt;br /&gt;
- Became more and more portable&lt;br /&gt;
&lt;br /&gt;
- In 1979, UNIX Version 7 was released&lt;br /&gt;
&lt;br /&gt;
- Several more Versions 8, 9, and 10 released the in 80&#039;s&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Early UNIX had a &#039;process&#039;, which was essentially a thread of control, with a virtual address space&lt;br /&gt;
&lt;br /&gt;
- Interacted through pipes because they could not share&lt;br /&gt;
&lt;br /&gt;
- After a while, UNIX wanted processes that shared memory, bringing the invention of the thread&lt;br /&gt;
&lt;br /&gt;
- Also called lightweight in contrast to the heavyweight processes before it&lt;br /&gt;
&lt;br /&gt;
- This is dated around the late 1970&#039;s and the early 80&#039;s, and example is the microkernel&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Alternative Pthread implementation in the 4.0 Digital UNIX, known as DEC OSF/1&lt;br /&gt;
- It was a part of the Mach OS&lt;br /&gt;
&lt;br /&gt;
- Pthread library schedules threads at a one-to-one relationship, all threads fight other threads, not threads of the same process.&lt;br /&gt;
&lt;br /&gt;
- Good for priority, if priority is increased, so is the function of the specific process&lt;br /&gt;
&lt;br /&gt;
- Doesn&#039;t limit a program to a single executing thread, many threads in a program can run on different CPU&#039;s&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- NPTL (Native POSIX Thread Library) is software that enables the Linux kernel to run programs using POSIX threads efficiently&lt;br /&gt;
&lt;br /&gt;
- Has become a part of the Linux kernel since Version 2.6 (Version 1 began around 1996)&lt;br /&gt;
&lt;br /&gt;
- Was a massive improvement from LinuxThreads, which had no real support for threads&lt;br /&gt;
&lt;br /&gt;
- NPTL was first released in Red Hat Linux 9&lt;br /&gt;
&lt;br /&gt;
- Threads are still created with clone() system call and futex primitive is used to implement locking&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
http://en.wikipedia.org/wiki/Pipeline_%28Unix%29&lt;br /&gt;
&lt;br /&gt;
http://en.wikipedia.org/wiki/Unix#1970s&lt;br /&gt;
&lt;br /&gt;
http://books.google.ca/books?id=EZfElJsWCqgC&amp;amp;pg=PA198&amp;amp;lpg=PA198&amp;amp;dq=kernel+based+pthreads&amp;amp;source=bl&amp;amp;ots=3HFKw_0nqq&amp;amp;sig=P0L9feIb88xJRzQfLd7maKtVnTU&amp;amp;hl=en&amp;amp;ei=Oky3TM-_OaO0nAf1-YiwCA&amp;amp;sa=X&amp;amp;oi=book_result&amp;amp;ct=result&amp;amp;resnum=6&amp;amp;ved=0CCsQ6AEwBQ#v=onepage&amp;amp;q=kernel%20based%20pthreads&amp;amp;f=false&lt;br /&gt;
&lt;br /&gt;
http://en.wikipedia.org/wiki/Native_POSIX_Thread_Library&lt;br /&gt;
&lt;br /&gt;
http://www.faqs.org/faqs/os-research/part1/section-10.html&lt;br /&gt;
&lt;br /&gt;
- Tmalone&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
That&#039;s great! Nice work Trevor, I&#039;ll get started on the paragraph that answers Prof&#039;s questions with the help of your notes. Hopefully have it done before 12! So you guys can check the essay again. (also if anyone wishes to give me a hand in with this portion of the essay, please do so under &amp;quot;Unsorted&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hey, Rift...upon finishing the prof&#039;s requirement, can you please add footnotes? I&#039;m unaware of how it&#039;s done. Thanks.&lt;br /&gt;
&lt;br /&gt;
--[[User: Npatel1|Npatel1]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
yea i can add the footnote/reference stuff to the paragraphs you post. [[User:Rift|Rift]] 21:55, 14 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
thanks Mark, I&#039;ll hopefully have the requirements done by 12ish. --[[User:Npatel1|Npatel1]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Unsorted==&lt;br /&gt;
(unsorted essay)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-[[User:Npatel1|Npatel1]] ; here is the first paragraph. you can edit/add more to the paragraph if needed!&lt;br /&gt;
&lt;br /&gt;
-Afranco2; I put in the history section/strung in tmalone&#039;s stuff as well. Again, feel free to edit/add content&lt;br /&gt;
&lt;br /&gt;
-Tmalone; Edited and corrected the information thus far. I will post a conclusion sometime tomorrow.&lt;br /&gt;
&lt;br /&gt;
-[[User:Npatel1|Npatel1]] ; Trevor, last lines should get us started on the conclusion. Afranco2; i went to class today and prof. was talking about plagiarism, can you please check your paragraph and see if there is any signs of plagiarism. since i don&#039;t know where you gathered your information from. upon you completion please post on wiki; need to make some modification to the body paragraph. &lt;br /&gt;
&lt;br /&gt;
-http://delivery.acm.org/10.1145/220000/210315/p11-walli.pdf?key1=210315&amp;amp;key2=6626986821&amp;amp;coll=GUIDE&amp;amp;dl=GUIDE&amp;amp;CFID=108396689&amp;amp;CFTOKEN=35895091 That is one of the sources which I used for my information. I don&#039;t believe that I am plagiarizing, but I know that it is easy to do accidentally. If somebody wants to check it over for me to make sure, that would be great. My information comes from the first and second page. I also used POSIX Threads and the Linux Kernel and a little bit from IEEE POSIX Testing Policy General Information&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-[[User:Npatel1|Npatel1]] ; oh i just wanted to make sure since the prof. emphasized on it a lot last class! thanks Afranco2.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
POSIX (Portable Operating System Interface) threads, are high performance threads mainly distributed in UNIX but also to some Microsoft Windows OSes. Threads are used in parallel programming; when a system call executes, the thread runs on an independent stream to finish its task with minimal interruptions or slowdowns. Pthreads (from POSIX threads) are ideal for massive modifications to programs because the threads share one single memory space to alter a data structure, allowing constant high performance and efficiency. Pthreads have become a commonly used way of adding concurrency to an application. They are widely used in UNIX; a powerful operating system written in the C language, which is continuously enhanced. Developers came across various obstacles with POSIX threads; during the beginnings of Pthreads, many technical issues had surfaced which were resolved throughout the history of POSIX threads.&lt;br /&gt;
&lt;br /&gt;
The history of POSIX Threads is that many hardware sellers executed their own versions of threads. These developments differed from one another, creating difficulties for programmers to implement portable thread applications. UNIX traditionally had a system running only a single thread under a process. These processes could not share memory and interacted using &#039;pipes&#039;. Once developers started wanting to be able to run multiple threads under one process, IEEE began to form together the POSIX standards. In 1988 POSIX.1 (created to support application portability) was ratified and was accepted as the international standard in 1990. From there the POSIX standards grew to more than 20 individual standards, encapsulating a large area of different groups.&lt;br /&gt;
&lt;br /&gt;
POSIX.1 lays out the interfaces for OS services; their syntax, and how they should act. It however does not define how the interface should be implemented on the OS. This is made to allow many different operating systems to conform to standards in their own specific design and application. POSIX.2 was created for much the same reason as POSIX.1 (portable shell programming, portable program development) but describes a programmable shell and its common utilities.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
POSIX threading has always been an issue on Linux. UNIX was so late to implement support for multithreaded process because it does not map that well onto Linux; this is due to the significant differences in relationship between POSIX and UNIX.&lt;br /&gt;
&lt;br /&gt;
^^^ this statement sounds a bit off.  why does UNIX care what Linux can handle? - John v.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I&#039;ll look into that tomorrow; working on 3005 Assignment. John, if you have a suggestion or an add-on that you wish to provide, please do so under collaboration. &lt;br /&gt;
&lt;br /&gt;
-[[User:Npatel1|Npatel1]]&lt;br /&gt;
&lt;br /&gt;
Hey guys, before end of tomorrow if there is anything missing or if anyone wishes to contribute more towards the essay please do so asap.&lt;br /&gt;
&lt;br /&gt;
-[[User:Npatel1|Npatel1]]&lt;br /&gt;
&lt;br /&gt;
UNIX cares about what Linux can handle because POSIX threads are mainly used in Linux systems. It is a very big deal if a  certain type of thread is generating countless errors on the main system type the thread is created for. And regardless of just the fact that its widely used on Linux, UNIX would care because compatibility is one of the most important things to have. For a POSIX thread to not be compatible with Linux just because UNIX didn&#039;t care, then the progress of multi-threading and POSIX threads would not be able to be used in Linux. Then Linux would not be as widely used as it would not be enhanced like other systems. It is important for systems to have that compatibility, so that they don&#039;t end up left in the dust of technology.&lt;br /&gt;
&lt;br /&gt;
-[[User:Tmalone|Tmalone]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
One of the major reasons why UNIX was so late to implement support for the POSIX threads is the way the two define &amp;quot;multi-threaded&amp;quot; process.&lt;br /&gt;
Traditionally UNIX defined a process to be an instance of a running program.With POSIX this came to be defined more precisely. The &#039;process&#039; &lt;br /&gt;
was defined to be &amp;quot;an address-space and a group of resources dedicated to running the program&amp;quot;. &amp;lt;br&amp;gt;&lt;br /&gt;
POSIX defines a &#039;thread&#039; as the resources neccessary for a single thread of execution ie. a single execution path. Thus according to POSIX the basic unit of execution is a thread. On the other hand UNIX traditionally defined a &#039;task&#039; as the basic unit of execution which is essentially same as the POSIX definition of a &#039;process&#039;.&amp;lt;br&amp;gt;&lt;br /&gt;
Now the conflict between the POSIX Threads and UNIX implementation of tasks came when a task used a clone() system call to create another task in order to implement multi-threading. The program then becomes a co-operating set of tasks which share &#039;some&#039; resources. It is due to this halfway implementation of sharing of resources that lies the major conflict.&amp;lt;br&amp;gt;In a nutshell the fundamental difference between the two is that in POSIX a process can be addressed as a single entity, while in Linux it is a collection of independent tasks. In the POSIX thread implementation all actions affect the entire process. In Linux, however, each of these actions will only affect one task.&lt;br /&gt;
&lt;br /&gt;
Not from your group. But I think your essay should incorporate this too. --[[User:Gautam|Gautam]] 19:35, 14 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Appreciate your contribution towards the essay even though your not in our group; if its possible, can you please give us the link to which you got the information from. --[[User:Npatel1|Npatel1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Discussion ==&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[http://www.kernel.org/doc/ols/2002/ols2002-pages-330-337.pdf POSIX Threads and the Linux Kernel] --[[User:Gautam|Gautam]] 23:52, 5 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Not from your group. However I found a webpage which you might find useful. &lt;br /&gt;
[http://www.drdobbs.com/open-source/184406204;jsessionid=3MRSO5YMO1QVRQE1GHRSKHWATMY32JVN The New Implementation of Threads for Linux]&lt;br /&gt;
--[[User:Gautam|Gautam]] 22:56, 5 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Not extremely helpful but: [http://www.unix.com/unix-dummies-questions-answers/7-short-history-unix-l-madden-ic-ac-uk.html A short history of unix] [[User:Rift|Rift]] 18:30, 7 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
http://standards.ieee.org/regauth/posix/POSIX-A.FM5.pdf IEEE POSIX Testing Policy General Information&lt;br /&gt;
The POSIX family of standards, Stephen R. Walli&lt;br /&gt;
-afranco2&lt;br /&gt;
&lt;br /&gt;
I&#039;m not sure how we are planning on structuring this essay, but I will just write a bit on the history of Posix part for now. Does somebody want to handle writing an intro? - afranco2&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Hey guys, sorry for the late reply...&lt;br /&gt;
i just wanted everyone to finish their assignment portion. we would have our own set of explanation for question 8. &lt;br /&gt;
&lt;br /&gt;
AFRANCO2; Here is a suggestion.&lt;br /&gt;
&lt;br /&gt;
1st paragraph;&lt;br /&gt;
should consist defining UNIX and POSIX/Threads &lt;br /&gt;
&lt;br /&gt;
2nd paragrah;&lt;br /&gt;
consisting the history behind POSIX and why UNIX was so late to implement the support of multithreaded processes. &lt;br /&gt;
&lt;br /&gt;
3rd paragraph;&lt;br /&gt;
should conclude it all.&lt;br /&gt;
&lt;br /&gt;
I agree, but I don&#039;t think that we should limit it to specifically &#039;paragraphs&#039; but rather sections. -afranco2&lt;br /&gt;
&lt;br /&gt;
Here is a site that would take care of paragraph 1:&lt;br /&gt;
https://computing.llnl.gov/tutorials/pthreads/&lt;br /&gt;
&lt;br /&gt;
GAUTHAM provided us with very useful pdf. that talks about the history of POSIX.&lt;br /&gt;
&lt;br /&gt;
-[[User:Npatel1|Npatel1]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This may be a stupid question, buy does anybody know what we have to do for citation? Are we using footnotes like a regular wiki? Or is there another conformation we need to follow? -afranco2&lt;br /&gt;
&lt;br /&gt;
                 --footnotes are probably easiest, John v.&lt;br /&gt;
&lt;br /&gt;
I&#039;ll  take care of the first paragraph if you guys are comfortable with the structure of the essay (post it by the end of today). since we already have AFRANCO2 who did the history portion of the essay.&lt;br /&gt;
&lt;br /&gt;
I made a new tab for &amp;quot;ESSAY&amp;quot; final copy*&lt;br /&gt;
&lt;br /&gt;
-[[User:Npatel1|Npatel1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I&#039;m not sure about the citations; just keep the links you used to gather the information, we&#039;ll ask him on Tuesday.&lt;br /&gt;
(i was just wondering, is this is the kind of structure you were looking for? or should we change the structure?)&lt;br /&gt;
&lt;br /&gt;
-[[User:Npatel1|Npatel1]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
So what all do we need left? Sorry I am out of town trying to keep up as much as possible. Ive posted my research content on the primary page. And I&#039;ve noticed we are getting pretty organized with our essay format. Just as an update process what has been completed and what is left to do? Because i don&#039;t wanna type up a bunch of information we may not need anymore. So Whatever else we need I can type up with all our info and then we can out the together the essay in the next couple days.&lt;br /&gt;
&lt;br /&gt;
- Tmalone&lt;br /&gt;
&lt;br /&gt;
And I think the structure is a good idea. We have enough information to turn it all into a good essay. If you have another suggestion on the structure though by all means tell us what you think.&lt;br /&gt;
&lt;br /&gt;
- Tmalone&lt;br /&gt;
&lt;br /&gt;
sounds good! I&#039;m sorry i was unable to post the Intro today...&lt;br /&gt;
I&#039;ll make sure to have it by tomorrow!&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Tmalone, i think we have good portion for History; i will get us started with a good intro then link in the history as our second paragraph which afranco2 has provided. then we&#039;ll talk about why UNIX was soo late; finally conclude it all with a last paragraph.&lt;br /&gt;
&lt;br /&gt;
-[[User:Npatel1|Npatel1]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Alright, I&#039;ll get started on a possible conclusion format. Then we can post it all and edit and add/delete whatever we want. So then hopefully by Tuesdays class we will have a good make-up of the essay we want.&lt;br /&gt;
&lt;br /&gt;
- Tmalone&lt;br /&gt;
&lt;br /&gt;
I read the current essay format posted. It was really well done good job guys. I read over it and corrected some minor grammar errors. So by sometime tomorrow I&#039;ll have a possible conclusion paragraph posted. If anyone else wants to type anything up for a conclusion they can feel free to as well! The more the better.&lt;br /&gt;
&lt;br /&gt;
- Tmalone&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
It&#039;s looking good. Sorry if i&#039;m a bit late to the party. I threw a paragraph down in the answer part. I know it doesn&#039;t really fit well.. but it really nees to get worked in.. -Rift&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
little late here too, got sidetracked with 3004 and 3008.  I do have a concern in that 3 paragraphs really isn&#039;t an essay, he seemed to want more than that JOhn v.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
anyone remember what was cited where in the essay?  we&#039;re still missing references -- John&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
yeah, Tmalone decided that he was going to do the citation suitable to the essay. Feel free to help; upon finishing, we&#039;ll post it on the &amp;quot;page&amp;quot;. Nothing fancy, Prof. Anil mentioned that he just wanted the basic format. John, the information that was cited is in discussion and also in collaboration.  -&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
I cited a few things and added a small paragraph. It&#039;s really hard to find things/events relating to it.. [[User:Rift|Rift]] 15:12, 14 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Hey guys I created the citations for all of our resources, Its all posted in the references tab on the main page. If i missed something feel gfree to add it using the same format as I did, im pretty sure i covered it all though&lt;br /&gt;
&lt;br /&gt;
- [[User:Tmalone|Tmalone]]&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
&lt;br /&gt;
Everyone please post any extra links here;&lt;br /&gt;
we&#039;ll organize it after everyone posts their links.&lt;br /&gt;
&lt;br /&gt;
posted the ones that are provided on our discussion.&lt;br /&gt;
&lt;br /&gt;
-[[User:Npatel1|Npatel1]]&lt;br /&gt;
&lt;br /&gt;
http://www.unix.org/whitepapers/shdiffs.html&lt;br /&gt;
&lt;br /&gt;
http://en.wikipedia.org/wiki/POSIX_Threads&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://sourceware.org/pthreads-win32/ &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://computing.llnl.gov/tutorials/pthreads/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://www.kernel.org/doc/ols/2002/ols2002-pages-330-337.pdf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://www.drdobbs.com/open-source/184406204;jsessionid=GKSVKT3EOMUBDQE1GHRSKHWATMY32JVN&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://standards.ieee.org/regauth/posix/POSIX-A.FM5.pdf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://delivery.acm.org/10.1145/220000/210315/p11-walli.pdf?key1=210315&amp;amp;key2=6626986821&amp;amp;coll=GUIDE&amp;amp;dl=GUIDE&amp;amp;CFID=108396689&amp;amp;CFTOKEN=35895091&lt;br /&gt;
&lt;br /&gt;
Journal article &amp;quot;Achieving Efficiency and Portability in Systems Software: A Case Study on POSIX-Compliant Multithreaded Programs&amp;quot; http://dx.doi.org.proxy.library.carleton.ca/10.1109/TSE.2005.98&lt;/div&gt;</summary>
		<author><name>Tmalone</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_1_2010_Question_8&amp;diff=4246</id>
		<title>Talk:COMP 3000 Essay 1 2010 Question 8</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_1_2010_Question_8&amp;diff=4246"/>
		<updated>2010-10-15T00:10:15Z</updated>

		<summary type="html">&lt;p&gt;Tmalone: /* Discussion */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Group 8 ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;GROUP NAMES:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Niravkumar Patel (Npatel1)&lt;br /&gt;
&lt;br /&gt;
Trevor Malone (Tmalone)&lt;br /&gt;
&lt;br /&gt;
Mark Walts (Rift)&lt;br /&gt;
&lt;br /&gt;
John Vanden Heuvel (jvheuvel)&lt;br /&gt;
&lt;br /&gt;
Jeff Francom (Afranco2)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Question clarification==&lt;br /&gt;
&lt;br /&gt;
To answer this question properly you need to discuss where pthreads came from.  The UNIX process model came out in the early 1970&#039;s, pthreads was only really proposed in the late 1980&#039;s.  That&#039;s 10-15 years of  history, what was happening?  What about the general development of threads in CS?  Alternative pthread implementations (who had the first one?  what was the first kernel-based one?).  I know that the history of pthreads on linux is kind of complicated - see the [http://en.wikipedia.org/wiki/Native_POSIX_Thread_Library NPTL].  You don&#039;t need to talk about all of this - but you do need to go beyond just what happened with the pthread standard.  --[[User:Soma|Anil]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Thank you prof. Anil, we&#039;ll look into those questions in depth and edit our essay.&lt;br /&gt;
--[[User: Npatel1|Npatel1]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
- UNIX was born in 1969&lt;br /&gt;
&lt;br /&gt;
- Began on a PDP-11/20 machine with a text formatting program called roff and a text editor&lt;br /&gt;
&lt;br /&gt;
- Was rewritten in C in 1972 -&amp;gt; brought forth more portable software&lt;br /&gt;
&lt;br /&gt;
- Became available to Universities and commercial firms as well as the US Government&lt;br /&gt;
&lt;br /&gt;
- Many editions of UNIX came out, by 1975 Versions 4, 5, and 6 were released&lt;br /&gt;
&lt;br /&gt;
- The new versions added the concept of pipes -&amp;gt; led to more modular code-base and faster development cycle&lt;br /&gt;
&lt;br /&gt;
- Pipeline is a chain of processes together by streams, so that the output of one process is the input of the next&lt;br /&gt;
&lt;br /&gt;
- Became more and more portable&lt;br /&gt;
&lt;br /&gt;
- In 1979, UNIX Version 7 was released&lt;br /&gt;
&lt;br /&gt;
- Several more Versions 8, 9, and 10 released the in 80&#039;s&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Early UNIX had a &#039;process&#039;, which was essentially a thread of control, with a virtual address space&lt;br /&gt;
&lt;br /&gt;
- Interacted through pipes because they could not share&lt;br /&gt;
&lt;br /&gt;
- After a while, UNIX wanted processes that shared memory, bringing the invention of the thread&lt;br /&gt;
&lt;br /&gt;
- Also called lightweight in contrast to the heavyweight processes before it&lt;br /&gt;
&lt;br /&gt;
- This is dated around the late 1970&#039;s and the early 80&#039;s, and example is the microkernel&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Alternative Pthread implementation in the 4.0 Digital UNIX, known as DEC OSF/1&lt;br /&gt;
- It was a part of the Mach OS&lt;br /&gt;
&lt;br /&gt;
- Pthread library schedules threads at a one-to-one relationship, all threads fight other threads, not threads of the same process.&lt;br /&gt;
&lt;br /&gt;
- Good for priority, if priority is increased, so is the function of the specific process&lt;br /&gt;
&lt;br /&gt;
- Doesn&#039;t limit a program to a single executing thread, many threads in a program can run on different CPU&#039;s&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- NPTL (Native POSIX Thread Library) is software that enables the Linux kernel to run programs using POSIX threads efficiently&lt;br /&gt;
&lt;br /&gt;
- Has become a part of the Linux kernel since Version 2.6 (Version 1 began around 1996)&lt;br /&gt;
&lt;br /&gt;
- Was a massive improvement from LinuxThreads, which had no real support for threads&lt;br /&gt;
&lt;br /&gt;
- NPTL was first released in Red Hat Linux 9&lt;br /&gt;
&lt;br /&gt;
- Threads are still created with clone() system call and futex primitive is used to implement locking&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
http://en.wikipedia.org/wiki/Pipeline_%28Unix%29&lt;br /&gt;
&lt;br /&gt;
http://en.wikipedia.org/wiki/Unix#1970s&lt;br /&gt;
&lt;br /&gt;
http://books.google.ca/books?id=EZfElJsWCqgC&amp;amp;pg=PA198&amp;amp;lpg=PA198&amp;amp;dq=kernel+based+pthreads&amp;amp;source=bl&amp;amp;ots=3HFKw_0nqq&amp;amp;sig=P0L9feIb88xJRzQfLd7maKtVnTU&amp;amp;hl=en&amp;amp;ei=Oky3TM-_OaO0nAf1-YiwCA&amp;amp;sa=X&amp;amp;oi=book_result&amp;amp;ct=result&amp;amp;resnum=6&amp;amp;ved=0CCsQ6AEwBQ#v=onepage&amp;amp;q=kernel%20based%20pthreads&amp;amp;f=false&lt;br /&gt;
&lt;br /&gt;
http://en.wikipedia.org/wiki/Native_POSIX_Thread_Library&lt;br /&gt;
&lt;br /&gt;
http://www.faqs.org/faqs/os-research/part1/section-10.html&lt;br /&gt;
&lt;br /&gt;
- Tmalone&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
That&#039;s great! Nice work Trevor, I&#039;ll get started on the paragraph that answers Prof&#039;s questions with the help of your notes. Hopefully have it done before 12! So you guys can check the essay again. (also if anyone wishes to give me a hand in with this portion of the essay, please do so under &amp;quot;Unsorted&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hey, Rift...upon finishing the prof&#039;s requirement, can you please add footnotes? I&#039;m unaware of how it&#039;s done. Thanks.&lt;br /&gt;
&lt;br /&gt;
--[[User: Npatel1|Npatel1]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
yea i can add the footnote/reference stuff to the paragraphs you post. [[User:Rift|Rift]] 21:55, 14 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
thanks Mark, I&#039;ll hopefully have the requirements done by 12ish. --[[User:Npatel1|Npatel1]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Unsorted==&lt;br /&gt;
(unsorted essay)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-[[User:Npatel1|Npatel1]] ; here is the first paragraph. you can edit/add more to the paragraph if needed!&lt;br /&gt;
&lt;br /&gt;
-Afranco2; I put in the history section/strung in tmalone&#039;s stuff as well. Again, feel free to edit/add content&lt;br /&gt;
&lt;br /&gt;
-Tmalone; Edited and corrected the information thus far. I will post a conclusion sometime tomorrow.&lt;br /&gt;
&lt;br /&gt;
-[[User:Npatel1|Npatel1]] ; Trevor, last lines should get us started on the conclusion. Afranco2; i went to class today and prof. was talking about plagiarism, can you please check your paragraph and see if there is any signs of plagiarism. since i don&#039;t know where you gathered your information from. upon you completion please post on wiki; need to make some modification to the body paragraph. &lt;br /&gt;
&lt;br /&gt;
-http://delivery.acm.org/10.1145/220000/210315/p11-walli.pdf?key1=210315&amp;amp;key2=6626986821&amp;amp;coll=GUIDE&amp;amp;dl=GUIDE&amp;amp;CFID=108396689&amp;amp;CFTOKEN=35895091 That is one of the sources which I used for my information. I don&#039;t believe that I am plagiarizing, but I know that it is easy to do accidentally. If somebody wants to check it over for me to make sure, that would be great. My information comes from the first and second page. I also used POSIX Threads and the Linux Kernel and a little bit from IEEE POSIX Testing Policy General Information&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-[[User:Npatel1|Npatel1]] ; oh i just wanted to make sure since the prof. emphasized on it a lot last class! thanks Afranco2.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
POSIX (Portable Operating System Interface) threads, are high performance threads mainly distributed in UNIX but also to some Microsoft Windows OSes. Threads are used in parallel programming; when a system call executes, the thread runs on an independent stream to finish its task with minimal interruptions or slowdowns. Pthreads (from POSIX threads) are ideal for massive modifications to programs because the threads share one single memory space to alter a data structure, allowing constant high performance and efficiency. Pthreads have become a commonly used way of adding concurrency to an application. They are widely used in UNIX; a powerful operating system written in the C language, which is continuously enhanced. Developers came across various obstacles with POSIX threads; during the beginnings of Pthreads, many technical issues had surfaced which were resolved throughout the history of POSIX threads.&lt;br /&gt;
&lt;br /&gt;
The history of POSIX Threads is that many hardware sellers executed their own versions of threads. These developments differed from one another, creating difficulties for programmers to implement portable thread applications. UNIX traditionally had a system running only a single thread under a process. These processes could not share memory and interacted using &#039;pipes&#039;. Once developers started wanting to be able to run multiple threads under one process, IEEE began to form together the POSIX standards. In 1988 POSIX.1 (created to support application portability) was ratified and was accepted as the international standard in 1990. From there the POSIX standards grew to more than 20 individual standards, encapsulating a large area of different groups.&lt;br /&gt;
&lt;br /&gt;
POSIX.1 lays out the interfaces for OS services; their syntax, and how they should act. It however does not define how the interface should be implemented on the OS. This is made to allow many different operating systems to conform to standards in their own specific design and application. POSIX.2 was created for much the same reason as POSIX.1 (portable shell programming, portable program development) but describes a programmable shell and its common utilities.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
POSIX threading has always been an issue on Linux. UNIX was so late to implement support for multithreaded process because it does not map that well onto Linux; this is due to the significant differences in relationship between POSIX and UNIX.&lt;br /&gt;
&lt;br /&gt;
^^^ this statement sounds a bit off.  why does UNIX care what Linux can handle? - John v.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I&#039;ll look into that tomorrow; working on 3005 Assignment. John, if you have a suggestion or an add-on that you wish to provide, please do so under collaboration. &lt;br /&gt;
&lt;br /&gt;
-[[User:Npatel1|Npatel1]]&lt;br /&gt;
&lt;br /&gt;
Hey guys, before end of tomorrow if there is anything missing or if anyone wishes to contribute more towards the essay please do so asap.&lt;br /&gt;
&lt;br /&gt;
-[[User:Npatel1|Npatel1]]&lt;br /&gt;
&lt;br /&gt;
UNIX cares about what Linux can handle because POSIX threads are mainly used in Linux systems. It is a very big deal if a  certain type of thread is generating countless errors on the main system type the thread is created for. And regardless of just the fact that its widely used on Linux, UNIX would care because compatibility is one of the most important things to have. For a POSIX thread to not be compatible with Linux just because UNIX didn&#039;t care, then the progress of multi-threading and POSIX threads would not be able to be used in Linux. Then Linux would not be as widely used as it would not be enhanced like other systems. It is important for systems to have that compatibility, so that they don&#039;t end up left in the dust of technology.&lt;br /&gt;
&lt;br /&gt;
-[[User:Tmalone|Tmalone]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
One of the major reasons why UNIX was so late to implement support for the POSIX threads is the way the two define &amp;quot;multi-threaded&amp;quot; process.&lt;br /&gt;
Traditionally UNIX defined a process to be an instance of a running program.With POSIX this came to be defined more precisely. The &#039;process&#039; &lt;br /&gt;
was defined to be &amp;quot;an address-space and a group of resources dedicated to running the program&amp;quot;. &amp;lt;br&amp;gt;&lt;br /&gt;
POSIX defines a &#039;thread&#039; as the resources neccessary for a single thread of execution ie. a single execution path. Thus according to POSIX the basic unit of execution is a thread. On the other hand UNIX traditionally defined a &#039;task&#039; as the basic unit of execution which is essentially same as the POSIX definition of a &#039;process&#039;.&amp;lt;br&amp;gt;&lt;br /&gt;
Now the conflict between the POSIX Threads and UNIX implementation of tasks came when a task used a clone() system call to create another task in order to implement multi-threading. The program then becomes a co-operating set of tasks which share &#039;some&#039; resources. It is due to this halfway implementation of sharing of resources that lies the major conflict.&amp;lt;br&amp;gt;In a nutshell the fundamental difference between the two is that in POSIX a process can be addressed as a single entity, while in Linux it is a collection of independent tasks. In the POSIX thread implementation all actions affect the entire process. In Linux, however, each of these actions will only affect one task.&lt;br /&gt;
&lt;br /&gt;
Not from your group. But I think your essay should incorporate this too. --[[User:Gautam|Gautam]] 19:35, 14 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Appreciate your contribution towards the essay even though your not in our group; if its possible, can you please give us the link to which you got the information from. --[[User:Npatel1|Npatel1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Discussion ==&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[http://www.kernel.org/doc/ols/2002/ols2002-pages-330-337.pdf POSIX Threads and the Linux Kernel] --[[User:Gautam|Gautam]] 23:52, 5 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Not from your group. However I found a webpage which you might find useful. &lt;br /&gt;
[http://www.drdobbs.com/open-source/184406204;jsessionid=3MRSO5YMO1QVRQE1GHRSKHWATMY32JVN The New Implementation of Threads for Linux]&lt;br /&gt;
--[[User:Gautam|Gautam]] 22:56, 5 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Not extremely helpful but: [http://www.unix.com/unix-dummies-questions-answers/7-short-history-unix-l-madden-ic-ac-uk.html A short history of unix] [[User:Rift|Rift]] 18:30, 7 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
http://standards.ieee.org/regauth/posix/POSIX-A.FM5.pdf IEEE POSIX Testing Policy General Information&lt;br /&gt;
The POSIX family of standards, Stephen R. Walli&lt;br /&gt;
-afranco2&lt;br /&gt;
&lt;br /&gt;
I&#039;m not sure how we are planning on structuring this essay, but I will just write a bit on the history of Posix part for now. Does somebody want to handle writing an intro? - afranco2&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Hey guys, sorry for the late reply...&lt;br /&gt;
i just wanted everyone to finish their assignment portion. we would have our own set of explanation for question 8. &lt;br /&gt;
&lt;br /&gt;
AFRANCO2; Here is a suggestion.&lt;br /&gt;
&lt;br /&gt;
1st paragraph;&lt;br /&gt;
should consist defining UNIX and POSIX/Threads &lt;br /&gt;
&lt;br /&gt;
2nd paragrah;&lt;br /&gt;
consisting the history behind POSIX and why UNIX was so late to implement the support of multithreaded processes. &lt;br /&gt;
&lt;br /&gt;
3rd paragraph;&lt;br /&gt;
should conclude it all.&lt;br /&gt;
&lt;br /&gt;
I agree, but I don&#039;t think that we should limit it to specifically &#039;paragraphs&#039; but rather sections. -afranco2&lt;br /&gt;
&lt;br /&gt;
Here is a site that would take care of paragraph 1:&lt;br /&gt;
https://computing.llnl.gov/tutorials/pthreads/&lt;br /&gt;
&lt;br /&gt;
GAUTHAM provided us with very useful pdf. that talks about the history of POSIX.&lt;br /&gt;
&lt;br /&gt;
-[[User:Npatel1|Npatel1]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This may be a stupid question, buy does anybody know what we have to do for citation? Are we using footnotes like a regular wiki? Or is there another conformation we need to follow? -afranco2&lt;br /&gt;
&lt;br /&gt;
                 --footnotes are probably easiest, John v.&lt;br /&gt;
&lt;br /&gt;
I&#039;ll  take care of the first paragraph if you guys are comfortable with the structure of the essay (post it by the end of today). since we already have AFRANCO2 who did the history portion of the essay.&lt;br /&gt;
&lt;br /&gt;
I made a new tab for &amp;quot;ESSAY&amp;quot; final copy*&lt;br /&gt;
&lt;br /&gt;
-[[User:Npatel1|Npatel1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I&#039;m not sure about the citations; just keep the links you used to gather the information, we&#039;ll ask him on Tuesday.&lt;br /&gt;
(i was just wondering, is this is the kind of structure you were looking for? or should we change the structure?)&lt;br /&gt;
&lt;br /&gt;
-[[User:Npatel1|Npatel1]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
So what all do we need left? Sorry I am out of town trying to keep up as much as possible. Ive posted my research content on the primary page. And I&#039;ve noticed we are getting pretty organized with our essay format. Just as an update process what has been completed and what is left to do? Because i don&#039;t wanna type up a bunch of information we may not need anymore. So Whatever else we need I can type up with all our info and then we can out the together the essay in the next couple days.&lt;br /&gt;
&lt;br /&gt;
- Tmalone&lt;br /&gt;
&lt;br /&gt;
And I think the structure is a good idea. We have enough information to turn it all into a good essay. If you have another suggestion on the structure though by all means tell us what you think.&lt;br /&gt;
&lt;br /&gt;
- Tmalone&lt;br /&gt;
&lt;br /&gt;
sounds good! I&#039;m sorry i was unable to post the Intro today...&lt;br /&gt;
I&#039;ll make sure to have it by tomorrow!&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Tmalone, i think we have good portion for History; i will get us started with a good intro then link in the history as our second paragraph which afranco2 has provided. then we&#039;ll talk about why UNIX was soo late; finally conclude it all with a last paragraph.&lt;br /&gt;
&lt;br /&gt;
-[[User:Npatel1|Npatel1]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Alright, I&#039;ll get started on a possible conclusion format. Then we can post it all and edit and add/delete whatever we want. So then hopefully by Tuesdays class we will have a good make-up of the essay we want.&lt;br /&gt;
&lt;br /&gt;
- Tmalone&lt;br /&gt;
&lt;br /&gt;
I read the current essay format posted. It was really well done good job guys. I read over it and corrected some minor grammar errors. So by sometime tomorrow I&#039;ll have a possible conclusion paragraph posted. If anyone else wants to type anything up for a conclusion they can feel free to as well! The more the better.&lt;br /&gt;
&lt;br /&gt;
- Tmalone&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
It&#039;s looking good. Sorry if i&#039;m a bit late to the party. I threw a paragraph down in the answer part. I know it doesn&#039;t really fit well.. but it really nees to get worked in.. -Rift&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
little late here too, got sidetracked with 3004 and 3008.  I do have a concern in that 3 paragraphs really isn&#039;t an essay, he seemed to want more than that JOhn v.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
anyone remember what was cited where in the essay?  we&#039;re still missing references -- John&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
yeah, Tmalone decided that he was going to do the citation suitable to the essay. Feel free to help; upon finishing, we&#039;ll post it on the &amp;quot;page&amp;quot;. Nothing fancy, Prof. Anil mentioned that he just wanted the basic format. John, the information that was cited is in discussion and also in collaboration.  -[[User:Npatel1|Npatel1]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
I cited a few things and added a small paragraph. It&#039;s really hard to find things/events relating to it.. [[User:Rift|Rift]] 15:12, 14 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Hey guys I created the citations for all of our resources, Its all posted in the references tab on the main page. If i missed something feel gfree to add it using the same format as I did, im pretty sure i covered it all though&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
&lt;br /&gt;
Everyone please post any extra links here;&lt;br /&gt;
we&#039;ll organize it after everyone posts their links.&lt;br /&gt;
&lt;br /&gt;
posted the ones that are provided on our discussion.&lt;br /&gt;
&lt;br /&gt;
-[[User:Npatel1|Npatel1]]&lt;br /&gt;
&lt;br /&gt;
http://www.unix.org/whitepapers/shdiffs.html&lt;br /&gt;
&lt;br /&gt;
http://en.wikipedia.org/wiki/POSIX_Threads&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://sourceware.org/pthreads-win32/ &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://computing.llnl.gov/tutorials/pthreads/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://www.kernel.org/doc/ols/2002/ols2002-pages-330-337.pdf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://www.drdobbs.com/open-source/184406204;jsessionid=GKSVKT3EOMUBDQE1GHRSKHWATMY32JVN&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://standards.ieee.org/regauth/posix/POSIX-A.FM5.pdf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://delivery.acm.org/10.1145/220000/210315/p11-walli.pdf?key1=210315&amp;amp;key2=6626986821&amp;amp;coll=GUIDE&amp;amp;dl=GUIDE&amp;amp;CFID=108396689&amp;amp;CFTOKEN=35895091&lt;br /&gt;
&lt;br /&gt;
Journal article &amp;quot;Achieving Efficiency and Portability in Systems Software: A Case Study on POSIX-Compliant Multithreaded Programs&amp;quot; http://dx.doi.org.proxy.library.carleton.ca/10.1109/TSE.2005.98&lt;/div&gt;</summary>
		<author><name>Tmalone</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_8&amp;diff=4241</id>
		<title>COMP 3000 Essay 1 2010 Question 8</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_8&amp;diff=4241"/>
		<updated>2010-10-15T00:08:55Z</updated>

		<summary type="html">&lt;p&gt;Tmalone: /* References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Question=&lt;br /&gt;
&lt;br /&gt;
What is the history of POSIX Threads (pthreads)? Consider - does this history explain why UNIX was so late to implement support for multithreaded processes?&lt;br /&gt;
&lt;br /&gt;
=Essay=&lt;br /&gt;
&lt;br /&gt;
-[[User:Npatel1|Npatel1]] ; here is the final copy guys, feel free to edit the essay under &amp;quot;Unsorted&amp;quot;. if it requires major changes please post a note in discussion board, cheers.&lt;br /&gt;
&lt;br /&gt;
-Started throwing in some citation links. Some are duplicates because I&#039;m not sure how to really do them correctly (kind of a wiki noob) -Afranco2&lt;br /&gt;
&lt;br /&gt;
-[[User:Npatel1|Npatel1]] ; working on UNIX, Treads/Pthreads. (adding the answers to addition questions) will be done around 12-1AM.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;POSIX threads, also known as Portable Operating System Interface, are high performance threads mainly distributed in UNIX but also to some Microsoft Windows OS. Threads are used in parallel programming; when a system call executes, the thread runs on an independent stream to finish its task with minimal interruptions or slowdowns. Pthreads are ideal for massive modifications to programs because the threads share one single memory space to alter a data structure, allowing constant high performance and efficiency. Pthread has become commonly used a way of adding concurrency to an application. They are widely used in UNIX; a powerful operating system written in the C language, which is continuously enhanced. Developers came across various obstacles with POSIX threads; during the beginnings of Pthreads, many technical issues had surfaced which were resolved throughout the history of POSIX threads.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
&lt;br /&gt;
===UNIX===&lt;br /&gt;
(working on it)&lt;br /&gt;
&lt;br /&gt;
===Threads/Pthreads===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The notion of threads developed naturally out of the desire for processes to communicate with each other. Threads are at a basic level multiple threads of control that share memory, and sharing memory is a relatively instantaneous method of communication.  In UNIX where processes were seen as needed on a 1:1 per-terminal basis, and more about time-sharing then working together, at first this seemed relatively unnecessary[http://tinf2.vub.ac.be/~dvermeir/manuals/KDE20Development-html/ch13lev1sec2.html]. Retrieved on October 14 2010&amp;lt;/ref&amp;gt;. There were after all, mechanisms in place to communicate between processes such as pipes and temporary files as well as a few &amp;quot;just changed&amp;quot; messages. The first UNIX implementation of shared memory came about in 1983 with the System V UNIX flavor, which shared memory was merely one of several upgrades to passing messages between processes.[http://fscked.org/writings/SHM/shm-5.html]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Complications===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The beginning of POSIX Threads starts off with hardware sellers executing their own versions of threads[https://computing.llnl.gov/tutorials/pthreads/]. These developments varied from one another, creating difficulties for programmers to implement portable thread applications[https://computing.llnl.gov/tutorials/pthreads/].  With UNIX starting to develop shared memory as a viable Inter-process communication tool developers started to create a high demand for the ability to run multiple threads under one process. Consequently, IEEE began to form together the POSIX standards. In 1988, POSIX.1 - created to support application portability – was ratified and accepted as the international standard in 1990[http://www.opengroup.org/austin/papers/posix_faq.html][http://delivery.acm.org/10.1145/220000/210315/p11-walli.pdf?key1=210315&amp;amp;key2=0607607821&amp;amp;coll=GUIDE&amp;amp;dl=GUIDE&amp;amp;CFID=108396689&amp;amp;CFTOKEN=35895091]. After the approval, the POSIX standard grew to more than 20 individual standards, encapsulating a large area of different groups[http://delivery.acm.org/10.1145/220000/210315/p11-walli.pdf?key1=210315&amp;amp;key2=0607607821&amp;amp;coll=GUIDE&amp;amp;dl=GUIDE&amp;amp;CFID=108396689&amp;amp;CFTOKEN=35895091].&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;POSIX.1 lays out the interfaces for OS services; their syntax, and how they should act. However, it does not define how the interface should be implemented on the OS, allowing many different operating systems to conform to standards in their own specific design and application[http://delivery.acm.org/10.1145/220000/210315/p11-walli.pdf?key1=210315&amp;amp;key2=0607607821&amp;amp;coll=GUIDE&amp;amp;dl=GUIDE&amp;amp;CFID=108396689&amp;amp;CFTOKEN=35895091]. POSIX.2 was created for much of the same reason as POSIX.1; portable shell programming and portable program development, but describes a programmable shell and its common utilities[https://computing.llnl.gov/tutorials/pthreads/]. Although POSIX.2 improved on the original, POSIX threading has always been an issue on Linux. UNIX was so late to implement support for multithreaded process because it does not map that well onto Linux; this is due to the significant differences in relationship between POSIX and UNIX. These differences include: naming conventions (identifiers, operators, etc...), parameters and variables.[http://www.unix.org/whitepapers/shdiffs.html]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Conclusion==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;In the last twenty years, several advancements took place; there was a huge leap from the basic performance and function of a standard thread to a multi-threading, high performance POSIX thread. However, before it was given recognition as being efficient with high performance, a POSIX thread had numerous setbacks and high-priority challenges. Although the basic principle of a POSIX thread within UNIX was already executed by hardware sellers, it was under different names with minor structural variations, prohibiting developers to create portable thread applications. Fortunately, these issues were resolved and POSIX threads were enhanced, with continuous improvements on the way. Developers made an extraordinary breakthrough in concurrent programming by enabling efficiency and high performance, especially during immense modifications to data structure. Even with a rough past, POSIX threads have improved to become one of the most widely-known and commonly used method of adding concurrency to an application.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=Unsorted=&lt;br /&gt;
(unsorted essay)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-[[User:Npatel1|Npatel1]] ; here is the first paragraph. you can edit/add more to the paragraph if needed!&lt;br /&gt;
&lt;br /&gt;
-Afranco2; I put in the history section/strung in tmalone&#039;s stuff as well. Again, feel free to edit/add content&lt;br /&gt;
&lt;br /&gt;
-Tmalone; Edited and corrected the information thus far. I will post a conclusion sometime tomorrow.&lt;br /&gt;
&lt;br /&gt;
-[[User:Npatel1|Npatel1]] ; Trevor, last lines should get us started on the conclusion. Afranco2; i went to class today and prof. was talking about plagiarism, can you please check your paragraph and see if there is any signs of plagiarism. since i don&#039;t know where you gathered your information from. upon you completion please post on wiki; need to make some modification to the body paragraph. &lt;br /&gt;
&lt;br /&gt;
-http://delivery.acm.org/10.1145/220000/210315/p11-walli.pdf?key1=210315&amp;amp;key2=6626986821&amp;amp;coll=GUIDE&amp;amp;dl=GUIDE&amp;amp;CFID=108396689&amp;amp;CFTOKEN=35895091 That is one of the sources which I used for my information. I don&#039;t believe that I am plagiarizing, but I know that it is easy to do accidentally. If somebody wants to check it over for me to make sure, that would be great. My information comes from the first and second page. I also used POSIX Threads and the Linux Kernel and a little bit from IEEE POSIX Testing Policy General Information&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-[[User:Npatel1|Npatel1]] ; oh i just wanted to make sure since the prof. emphasized on it a lot last class! thanks Afranco2.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
POSIX (Portable Operating System Interface) threads, are high performance threads mainly distributed in UNIX but also to some Microsoft Windows OSes. Threads are used in parallel programming; when a system call executes, the thread runs on an independent stream to finish its task with minimal interruptions or slowdowns. Pthreads (from POSIX threads) are ideal for massive modifications to programs because the threads share one single memory space to alter a data structure, allowing constant high performance and efficiency. Pthreads have become a commonly used way of adding concurrency to an application. They are widely used in UNIX; a powerful operating system written in the C language, which is continuously enhanced. Developers came across various obstacles with POSIX threads; during the beginnings of Pthreads, many technical issues had surfaced which were resolved throughout the history of POSIX threads.&lt;br /&gt;
&lt;br /&gt;
The history of POSIX Threads is that many hardware sellers executed their own versions of threads. These developments differed from one another, creating difficulties for programmers to implement portable thread applications. UNIX traditionally had a system running only a single thread under a process. These processes could not share memory and interacted using &#039;pipes&#039;. Once developers started wanting to be able to run multiple threads under one process, IEEE began to form together the POSIX standards. In 1988 POSIX.1 (created to support application portability) was ratified and was accepted as the international standard in 1990. From there the POSIX standards grew to more than 20 individual standards, encapsulating a large area of different groups.&lt;br /&gt;
&lt;br /&gt;
POSIX.1 lays out the interfaces for OS services; their syntax, and how they should act. It however does not define how the interface should be implemented on the OS. This is made to allow many different operating systems to conform to standards in their own specific design and application. POSIX.2 was created for much the same reason as POSIX.1 (portable shell programming, portable program development) but describes a programmable shell and its common utilities.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
POSIX threading has always been an issue on Linux. UNIX was so late to implement support for multithreaded process because it does not map that well onto Linux; this is due to the significant differences in relationship between POSIX and UNIX.&lt;br /&gt;
&lt;br /&gt;
^^^ this statement sounds a bit off.  why does UNIX care what Linux can handle? - John v.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I&#039;ll look into that tomorrow; working on 3005 Assignment. John, if you have a suggestion or an add-on that you wish to provide, please do so under collaboration. &lt;br /&gt;
&lt;br /&gt;
-[[User:Npatel1|Npatel1]]&lt;br /&gt;
&lt;br /&gt;
Hey guys, before end of tomorrow if there is anything missing or if anyone wishes to contribute more towards the essay please do so asap.&lt;br /&gt;
&lt;br /&gt;
-[[User:Npatel1|Npatel1]]&lt;br /&gt;
&lt;br /&gt;
UNIX cares about what Linux can handle because POSIX threads are mainly used in Linux systems. It is a very big deal if a  certain type of thread is generating countless errors on the main system type the thread is created for. And regardless of just the fact that its widely used on Linux, UNIX would care because compatibility is one of the most important things to have. For a POSIX thread to not be compatible with Linux just because UNIX didn&#039;t care, then the progress of multi-threading and POSIX threads would not be able to be used in Linux. Then Linux would not be as widely used as it would not be enhanced like other systems. It is important for systems to have that compatibility, so that they don&#039;t end up left in the dust of technology.&lt;br /&gt;
&lt;br /&gt;
-[[User:Tmalone|Tmalone]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
One of the major reasons why UNIX was so late to implement support for the POSIX threads is the way the two define &amp;quot;multi-threaded&amp;quot; process.&lt;br /&gt;
Traditionally UNIX defined a process to be an instance of a running program.With POSIX this came to be defined more precisely. The &#039;process&#039; &lt;br /&gt;
was defined to be &amp;quot;an address-space and a group of resources dedicated to running the program&amp;quot;. &amp;lt;br&amp;gt;&lt;br /&gt;
POSIX defines a &#039;thread&#039; as the resources neccessary for a single thread of execution ie. a single execution path. Thus according to POSIX the basic unit of execution is a thread. On the other hand UNIX traditionally defined a &#039;task&#039; as the basic unit of execution which is essentially same as the POSIX definition of a &#039;process&#039;.&amp;lt;br&amp;gt;&lt;br /&gt;
Now the conflict between the POSIX Threads and UNIX implementation of tasks came when a task used a clone() system call to create another task in order to implement multi-threading. The program then becomes a co-operating set of tasks which share &#039;some&#039; resources. It is due to this halfway implementation of sharing of resources that lies the major conflict.&amp;lt;br&amp;gt;In a nutshell the fundamental difference between the two is that in POSIX a process can be addressed as a single entity, while in Linux it is a collection of independent tasks. In the POSIX thread implementation all actions affect the entire process. In Linux, however, each of these actions will only affect one task.&lt;br /&gt;
&lt;br /&gt;
Not from your group. But I think your essay should incorporate this too. --[[User:Gautam|Gautam]] 19:35, 14 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Appreciate your contribution towards the essay even though your not in our group; if its possible, can you please give us the link to which you got the information from. --[[User:Npatel1|Npatel1]]&lt;br /&gt;
&lt;br /&gt;
=Collaboration=&lt;br /&gt;
&lt;br /&gt;
Hey guys, i&#039;m just gunna get this started by posting a few links for everyone to get going.  This will help explain a general idea of what they are and the history of them. Please add some more links or anything else you think would be helpful!&lt;br /&gt;
&lt;br /&gt;
http://en.wikipedia.org/wiki/POSIX_Threads&lt;br /&gt;
https://computing.llnl.gov/tutorials/pthreads/&lt;br /&gt;
http://sourceware.org/pthreads-win32/&lt;br /&gt;
 &lt;br /&gt;
-[[User:tmalone|tmalone]]&lt;br /&gt;
&lt;br /&gt;
I found this, might not help, but it might:--[[User:Rannath|Rannath]] 02:09, 6 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
I&#039;m not sure about the rest of you, but most of what I am able to find has to do with information on things that fall under POSIX, not actually about POSIX-afranco2&lt;br /&gt;
&lt;br /&gt;
POSIX Threads, or pthreads, is a thread that is commonly used in UNIX systems but it also seen in some Microsoft Windows systems. A thread is a unit of process that executes segments of code within applications. When a process gets called from the system, the thread will execute the code for the process. POSIX stands for Portable Operating System Interface (for UNIX) and has been used by many independent sellers of hardware. There has always been issues such that developers could not create a reliable protable pthread application. For the use of multi-threading, its implementation arrived fairly late because the systems could not support it. Data mapping onto Linux gave birth to several problems due to the fact that POSIX and UNIX were implemented so differently.&lt;br /&gt;
&lt;br /&gt;
-[[User:tmalone|tmalone]]&lt;br /&gt;
&lt;br /&gt;
http://www.faqs.org/faqs/os-research/part1/section-10.html&lt;br /&gt;
&lt;br /&gt;
Might be of some use as well --[[User:Lmundt|Lmundt]] 14:48, 7 October 2010 (UTC)&lt;br /&gt;
https://computing.llnl.gov/tutorials/pthreads/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Edited version from what -tmalone has written.&lt;br /&gt;
&lt;br /&gt;
POSIX Threads is also called pthreads. Portable Operating System interface; mainly for Unix but it’s also distributed to some Microsoft Windows OS. A Thread is a unit of process that resides inside a process and executes when a system call has been executed. Threads have same global and all the threads share memory, threads also contain their personal private data. Pthread has become commonly used a way of adding concurrency to an application. The history of POSIX Threads is that many hardware sellers executed their own versions of threads. These developments differed from one another, creating difficulties for programmers to implement portable thread applications. POSIX threading has always been an issue on Linux. UNIX was so late to implement support for multithreaded process because it does not map that well onto linux; this is due to the significant differences in relationship between POSIX and UNIX.&lt;br /&gt;
&lt;br /&gt;
-Npatel1&lt;br /&gt;
&lt;br /&gt;
A bit different of a explanation of the history of threads in Unix: &lt;br /&gt;
&lt;br /&gt;
Originally in UNIX things similar to threads existed, they were however, called processes. The “processes” shared memory and used semaphores and thus “threads” have been around from the start. However, they disappeared when UNIX took the multics definition of process to mean they should not share memory, and all of sudden the ability to have threads disappeared. As people clamored to have the good old processes back, they created a new thing called “threads” that was actually what they had previously. So while it seemed they were late to support multithreaded processes, in reality they merely had a brief period where they didn’t have multi-threadedness.&lt;br /&gt;
&lt;br /&gt;
-[[User:Rift|Rift]] 23:42, 10 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Here is a possible simple conclusion I&#039;ve typed up. I used the first chunk of Rifts paragraph then just threw in some extra info. Go easy on me lol&lt;br /&gt;
&lt;br /&gt;
Originally in UNIX things similar to threads existed, they were however, called processes. The “processes” shared memory and used semaphores and thus “threads” have been around from the start. However, they disappeared when UNIX took the multics definition of process to mean they should not share memory, and all of sudden the ability to have threads disappeared. What are now considered POSIX threads have just been aliased for many years. The late implementation of these threads was because of the fact that so many developers had the basic principle of a POSIX thread in use, it was simply under a different name with minor structural differences. It is quite evident how POSIX threads came to be over the years especially within the UNIX system. From the basic performance and function of a standard thread to the multi-threading abilities of the POSIX thread, the development became more and more concrete. Though problems arose, such as creating portable thread applications between developers, solutions were found. POSIX.1 and POSIX.2 were created to display interfaces with specific syntax and to describe programming shells for many operating systems. Given the last 20 years when the leap was taken between a standard thread and a POSIX thread, and the speed in which the POSIX thread has been implemented, it can be said that given another 20 years the POSIX thread will have turned into something even more worth the wait.&lt;br /&gt;
&lt;br /&gt;
Okay guys this is a conclusion I&#039;ve typed up. I have absolutely no idea if this is good enough, I find it pretty tough to write conclusions. Nonetheless, feel free to make changes and add/delete whatever you want. I&#039;m not sure how formal he wants it to be, but I hope this is at least decent. If you want me to make some changes let me know what to change and I&#039;ll do it asap.&lt;br /&gt;
&lt;br /&gt;
(I constantly make changes myself :p)&lt;br /&gt;
&lt;br /&gt;
- Tmalone&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
[1] The Open Group, 1997 - 1999. What is UNIX?  online at: &amp;lt;http://www.unix.org/whitepapers/shdiffs.html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[2] Ross Johnson. POSIX Threads for Win32. online at: &amp;lt;http://sourceware.org/pthreads-win32/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[3] Blaise Barney, 2010. Lawrence Livermore National Laboratory. POSIX Threads Programming. online at: &amp;lt;https://computing.llnl.gov/tutorials/pthreads/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[4] Dave McCracken, 2002. IBM Linux Technology Center. POSIX Threads and the Linux Kernel. online at: &amp;lt;//www.kernel.org/doc/ols/2002/ols2002-pages-330-337.pdf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[5] L. Blunt Jackson, 2005. NPTL: The New Implementation of Threads for Linux. online at: &amp;lt;http://www.drdobbs.com/open-source/184406204&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[6] Institute of Electrical and Electronics Engineers, Inc, 1998. IEEE POSIX Testing Policy - General Information. online at: &amp;lt;http://standards.ieee.org/regauth/posix/POSIX-A.FM5.pdf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[7] A Short History of UNIX, 2006. online at: &amp;lt;http://www.unix.com/unix-dummies-questions-answers/7-short-history-unix-l-madden-ic-ac-uk.html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[8] Bradford Nichols, Dick Buttlar, and Jacqueline Proulx Farrell, O&#039;Reilly &amp;amp; Associates, Inc, 1996. Pthreads Programming. online at: &amp;lt;http://books.google.ca/books?id=EZfElJsWCqgC&amp;amp;pg=PA198&amp;amp;lpg=PA198&amp;amp;dq=kernel+based+pthreads&amp;amp;source=bl&amp;amp;ots=3HFKw_0nqq&amp;amp;sig=P0L9feIb88xJRzQfLd7maKtVnTU&amp;amp;hl=en&amp;amp;ei=Oky3TM-_OaO0nAf1-YiwCA&amp;amp;sa=X&amp;amp;oi=book_result&amp;amp;ct=result&amp;amp;resnum=6&amp;amp;ved=0CCsQ6AEwBQ#v=onepage&amp;amp;q=kernel%20based%20pthreads&amp;amp;f=false&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[9] Bryan O&#039;Sullivan, 1993 - 1996. The History of Threads. online at: &amp;lt;http://www.faqs.org/faqs/os-research/part1/section-10.html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[10] Lucent Technologies, 2002. The Famous PDP-7 Comes to the Rescue (And Continuous Pages). online at: &amp;lt;http://www.bell-labs.com/history/unix/pdp7.html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[12] Robert Love, 2003. Introducing the 2.6 Kernel. online at: &amp;lt;http://www.linuxjournal.com/article/6530&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[13] Janice J. Heiss, 2003. Oracle. Red Hat Linux 9 and Java 2 Platform, Standard Edition 1.4.2: A Winning Combination. online at: &amp;lt;http://java.sun.com/developer/technicalArticles/JavaTechandLinux/RedHat/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[14] Dennis M. Ritchie, 1996. Bell Laboratoeries, The Evolution of the UNIX Time-Sharing System. online at: &amp;lt;http://cm.bell-labs.com/cm/cs/who/dmr/hist.html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[15] The Linux Information Project, 2004. Pipes: A Brief Introduction. online at: &amp;lt;http://www.linfo.org/pipe.html&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tmalone</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_8&amp;diff=4181</id>
		<title>COMP 3000 Essay 1 2010 Question 8</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_8&amp;diff=4181"/>
		<updated>2010-10-14T23:41:05Z</updated>

		<summary type="html">&lt;p&gt;Tmalone: /* References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Question=&lt;br /&gt;
&lt;br /&gt;
What is the history of POSIX Threads (pthreads)? Consider - does this history explain why UNIX was so late to implement support for multithreaded processes?&lt;br /&gt;
&lt;br /&gt;
=Essay=&lt;br /&gt;
&lt;br /&gt;
-[[User:Npatel1|Npatel1]] ; here is the final copy guys, feel free to edit the essay under &amp;quot;Unsorted&amp;quot;. if it requires major changes please post a note in discussion board, cheers.&lt;br /&gt;
&lt;br /&gt;
-Started throwing in some citation links. Some are duplicates because I&#039;m not sure how to really do them correctly (kind of a wiki noob) -Afranco2&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;POSIX threads, also known as Portable Operating System Interface, are high performance threads mainly distributed in UNIX but also to some Microsoft Windows OS. Threads are used in parallel programming; when a system call executes, the thread runs on an independent stream to finish its task with minimal interruptions or slowdowns. Pthreads are ideal for massive modifications to programs because the threads share one single memory space to alter a data structure, allowing constant high performance and efficiency. Pthread has become commonly used a way of adding concurrency to an application. They are widely used in UNIX; a powerful operating system written in the C language, which is continuously enhanced. Developers came across various obstacles with POSIX threads; during the beginnings of Pthreads, many technical issues had surfaced which were resolved throughout the history of POSIX threads.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The notion of threads developed naturally out of the desire for processes to communicate with each other. Threads are at a basic level multiple threads of control that share memory, and sharing memory is a relatively instantaneous method of communication.  In UNIX where processes were seen as needed on a 1:1 per-terminal basis, and more about time-sharing then working together, at first this seemed relatively unnecessary[http://tinf2.vub.ac.be/~dvermeir/manuals/KDE20Development-html/ch13lev1sec2.html]. Retrieved on October 14 2010&amp;lt;/ref&amp;gt;. There were after all, mechanisms in place to communicate between processes such as pipes and temporary files as well as a few &amp;quot;just changed&amp;quot; messages. The first UNIX implementation of shared memory came about in 1983 with the System V UNIX flavor, which shared memory was merely one of several upgrades to passing messages between processes.[http://fscked.org/writings/SHM/shm-5.html]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The beginning of POSIX Threads starts off with hardware sellers executing their own versions of threads[https://computing.llnl.gov/tutorials/pthreads/]. These developments varied from one another, creating difficulties for programmers to implement portable thread applications[https://computing.llnl.gov/tutorials/pthreads/].  With UNIX starting to develop shared memory as a viable Inter-process communication tool developers started to create a high demand for the ability to run multiple threads under one process. Consequently, IEEE began to form together the POSIX standards. In 1988, POSIX.1 - created to support application portability – was ratified and accepted as the international standard in 1990[http://www.opengroup.org/austin/papers/posix_faq.html][http://delivery.acm.org/10.1145/220000/210315/p11-walli.pdf?key1=210315&amp;amp;key2=0607607821&amp;amp;coll=GUIDE&amp;amp;dl=GUIDE&amp;amp;CFID=108396689&amp;amp;CFTOKEN=35895091]. After the approval, the POSIX standard grew to more than 20 individual standards, encapsulating a large area of different groups[http://delivery.acm.org/10.1145/220000/210315/p11-walli.pdf?key1=210315&amp;amp;key2=0607607821&amp;amp;coll=GUIDE&amp;amp;dl=GUIDE&amp;amp;CFID=108396689&amp;amp;CFTOKEN=35895091].&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;POSIX.1 lays out the interfaces for OS services; their syntax, and how they should act. However, it does not define how the interface should be implemented on the OS, allowing many different operating systems to conform to standards in their own specific design and application[http://delivery.acm.org/10.1145/220000/210315/p11-walli.pdf?key1=210315&amp;amp;key2=0607607821&amp;amp;coll=GUIDE&amp;amp;dl=GUIDE&amp;amp;CFID=108396689&amp;amp;CFTOKEN=35895091]. POSIX.2 was created for much of the same reason as POSIX.1; portable shell programming and portable program development, but describes a programmable shell and its common utilities[https://computing.llnl.gov/tutorials/pthreads/]. Although POSIX.2 improved on the original, POSIX threading has always been an issue on Linux. UNIX was so late to implement support for multithreaded process because it does not map that well onto Linux; this is due to the significant differences in relationship between POSIX and UNIX. These differences include: naming conventions (identifiers, operators, etc...), parameters and variables.[http://www.unix.org/whitepapers/shdiffs.html]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;In the last twenty years, several advancements took place; there was a huge leap from the basic performance and function of a standard thread to a multi-threading, high performance POSIX thread. However, before it was given recognition as being efficient with high performance, a POSIX thread had numerous setbacks and high-priority challenges. Although the basic principle of a POSIX thread within UNIX was already executed by hardware sellers, it was under different names with minor structural variations, prohibiting developers to create portable thread applications. Fortunately, these issues were resolved and POSIX threads were enhanced, with continuous improvements on the way. Developers made an extraordinary breakthrough in concurrent programming by enabling efficiency and high performance, especially during immense modifications to data structure. Even with a rough past, POSIX threads have improved to become one of the most widely-known and commonly used method of adding concurrency to an application.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=Unsorted=&lt;br /&gt;
(unsorted essay)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-[[User:Npatel1|Npatel1]] ; here is the first paragraph. you can edit/add more to the paragraph if needed!&lt;br /&gt;
&lt;br /&gt;
-Afranco2; I put in the history section/strung in tmalone&#039;s stuff as well. Again, feel free to edit/add content&lt;br /&gt;
&lt;br /&gt;
-Tmalone; Edited and corrected the information thus far. I will post a conclusion sometime tomorrow.&lt;br /&gt;
&lt;br /&gt;
-[[User:Npatel1|Npatel1]] ; Trevor, last lines should get us started on the conclusion. Afranco2; i went to class today and prof. was talking about plagiarism, can you please check your paragraph and see if there is any signs of plagiarism. since i don&#039;t know where you gathered your information from. upon you completion please post on wiki; need to make some modification to the body paragraph. &lt;br /&gt;
&lt;br /&gt;
-http://delivery.acm.org/10.1145/220000/210315/p11-walli.pdf?key1=210315&amp;amp;key2=6626986821&amp;amp;coll=GUIDE&amp;amp;dl=GUIDE&amp;amp;CFID=108396689&amp;amp;CFTOKEN=35895091 That is one of the sources which I used for my information. I don&#039;t believe that I am plagiarizing, but I know that it is easy to do accidentally. If somebody wants to check it over for me to make sure, that would be great. My information comes from the first and second page. I also used POSIX Threads and the Linux Kernel and a little bit from IEEE POSIX Testing Policy General Information&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-[[User:Npatel1|Npatel1]] ; oh i just wanted to make sure since the prof. emphasized on it a lot last class! thanks Afranco2.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
POSIX (Portable Operating System Interface) threads, are high performance threads mainly distributed in UNIX but also to some Microsoft Windows OSes. Threads are used in parallel programming; when a system call executes, the thread runs on an independent stream to finish its task with minimal interruptions or slowdowns. Pthreads (from POSIX threads) are ideal for massive modifications to programs because the threads share one single memory space to alter a data structure, allowing constant high performance and efficiency. Pthreads have become a commonly used way of adding concurrency to an application. They are widely used in UNIX; a powerful operating system written in the C language, which is continuously enhanced. Developers came across various obstacles with POSIX threads; during the beginnings of Pthreads, many technical issues had surfaced which were resolved throughout the history of POSIX threads.&lt;br /&gt;
&lt;br /&gt;
The history of POSIX Threads is that many hardware sellers executed their own versions of threads. These developments differed from one another, creating difficulties for programmers to implement portable thread applications. UNIX traditionally had a system running only a single thread under a process. These processes could not share memory and interacted using &#039;pipes&#039;. Once developers started wanting to be able to run multiple threads under one process, IEEE began to form together the POSIX standards. In 1988 POSIX.1 (created to support application portability) was ratified and was accepted as the international standard in 1990. From there the POSIX standards grew to more than 20 individual standards, encapsulating a large area of different groups.&lt;br /&gt;
&lt;br /&gt;
POSIX.1 lays out the interfaces for OS services; their syntax, and how they should act. It however does not define how the interface should be implemented on the OS. This is made to allow many different operating systems to conform to standards in their own specific design and application. POSIX.2 was created for much the same reason as POSIX.1 (portable shell programming, portable program development) but describes a programmable shell and its common utilities.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
POSIX threading has always been an issue on Linux. UNIX was so late to implement support for multithreaded process because it does not map that well onto Linux; this is due to the significant differences in relationship between POSIX and UNIX.&lt;br /&gt;
&lt;br /&gt;
^^^ this statement sounds a bit off.  why does UNIX care what Linux can handle? - John v.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I&#039;ll look into that tomorrow; working on 3005 Assignment. John, if you have a suggestion or an add-on that you wish to provide, please do so under collaboration. &lt;br /&gt;
&lt;br /&gt;
-[[User:Npatel1|Npatel1]]&lt;br /&gt;
&lt;br /&gt;
Hey guys, before end of tomorrow if there is anything missing or if anyone wishes to contribute more towards the essay please do so asap.&lt;br /&gt;
&lt;br /&gt;
-[[User:Npatel1|Npatel1]]&lt;br /&gt;
&lt;br /&gt;
UNIX cares about what Linux can handle because POSIX threads are mainly used in Linux systems. It is a very big deal if a  certain type of thread is generating countless errors on the main system type the thread is created for. And regardless of just the fact that its widely used on Linux, UNIX would care because compatibility is one of the most important things to have. For a POSIX thread to not be compatible with Linux just because UNIX didn&#039;t care, then the progress of multi-threading and POSIX threads would not be able to be used in Linux. Then Linux would not be as widely used as it would not be enhanced like other systems. It is important for systems to have that compatibility, so that they don&#039;t end up left in the dust of technology.&lt;br /&gt;
&lt;br /&gt;
-[[User:Tmalone|Tmalone]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
One of the major reasons why UNIX was so late to implement support for the POSIX threads is the way the two define &amp;quot;multi-threaded&amp;quot; process.&lt;br /&gt;
Traditionally UNIX defined a process to be an instance of a running program.With POSIX this came to be defined more precisely. The &#039;process&#039; &lt;br /&gt;
was defined to be &amp;quot;an address-space and a group of resources dedicated to running the program&amp;quot;. &amp;lt;br&amp;gt;&lt;br /&gt;
POSIX defines a &#039;thread&#039; as the resources neccessary for a single thread of execution ie. a single execution path. Thus according to POSIX the basic unit of execution is a thread. On the other hand UNIX traditionally defined a &#039;task&#039; as the basic unit of execution which is essentially same as the POSIX definition of a &#039;process&#039;.&amp;lt;br&amp;gt;&lt;br /&gt;
Now the conflict between the POSIX Threads and UNIX implementation of tasks came when a task used a clone() system call to create another task in order to implement multi-threading. The program then becomes a co-operating set of tasks which share &#039;some&#039; resources. It is due to this halfway implementation of sharing of resources that lies the major conflict.&amp;lt;br&amp;gt;In a nutshell the fundamental difference between the two is that in POSIX a process can be addressed as a single entity, while in Linux it is a collection of independent tasks. In the POSIX thread implementation all actions affect the entire process. In Linux, however, each of these actions will only affect one task.&lt;br /&gt;
&lt;br /&gt;
Not from your group. But I think your essay should incorporate this too. --[[User:Gautam|Gautam]] 19:35, 14 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Appreciate your contribution towards the essay even though your not in our group; if its possible, can you please give us the link to which you got the information from. --[[User:Npatel1|Npatel1]]&lt;br /&gt;
&lt;br /&gt;
=Collaboration=&lt;br /&gt;
&lt;br /&gt;
Hey guys, i&#039;m just gunna get this started by posting a few links for everyone to get going.  This will help explain a general idea of what they are and the history of them. Please add some more links or anything else you think would be helpful!&lt;br /&gt;
&lt;br /&gt;
http://en.wikipedia.org/wiki/POSIX_Threads&lt;br /&gt;
https://computing.llnl.gov/tutorials/pthreads/&lt;br /&gt;
http://sourceware.org/pthreads-win32/&lt;br /&gt;
 &lt;br /&gt;
-[[User:tmalone|tmalone]]&lt;br /&gt;
&lt;br /&gt;
I found this, might not help, but it might:--[[User:Rannath|Rannath]] 02:09, 6 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
I&#039;m not sure about the rest of you, but most of what I am able to find has to do with information on things that fall under POSIX, not actually about POSIX-afranco2&lt;br /&gt;
&lt;br /&gt;
POSIX Threads, or pthreads, is a thread that is commonly used in UNIX systems but it also seen in some Microsoft Windows systems. A thread is a unit of process that executes segments of code within applications. When a process gets called from the system, the thread will execute the code for the process. POSIX stands for Portable Operating System Interface (for UNIX) and has been used by many independent sellers of hardware. There has always been issues such that developers could not create a reliable protable pthread application. For the use of multi-threading, its implementation arrived fairly late because the systems could not support it. Data mapping onto Linux gave birth to several problems due to the fact that POSIX and UNIX were implemented so differently.&lt;br /&gt;
&lt;br /&gt;
-[[User:tmalone|tmalone]]&lt;br /&gt;
&lt;br /&gt;
http://www.faqs.org/faqs/os-research/part1/section-10.html&lt;br /&gt;
&lt;br /&gt;
Might be of some use as well --[[User:Lmundt|Lmundt]] 14:48, 7 October 2010 (UTC)&lt;br /&gt;
https://computing.llnl.gov/tutorials/pthreads/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Edited version from what -tmalone has written.&lt;br /&gt;
&lt;br /&gt;
POSIX Threads is also called pthreads. Portable Operating System interface; mainly for Unix but it’s also distributed to some Microsoft Windows OS. A Thread is a unit of process that resides inside a process and executes when a system call has been executed. Threads have same global and all the threads share memory, threads also contain their personal private data. Pthread has become commonly used a way of adding concurrency to an application. The history of POSIX Threads is that many hardware sellers executed their own versions of threads. These developments differed from one another, creating difficulties for programmers to implement portable thread applications. POSIX threading has always been an issue on Linux. UNIX was so late to implement support for multithreaded process because it does not map that well onto linux; this is due to the significant differences in relationship between POSIX and UNIX.&lt;br /&gt;
&lt;br /&gt;
-Npatel1&lt;br /&gt;
&lt;br /&gt;
A bit different of a explanation of the history of threads in Unix: &lt;br /&gt;
&lt;br /&gt;
Originally in UNIX things similar to threads existed, they were however, called processes. The “processes” shared memory and used semaphores and thus “threads” have been around from the start. However, they disappeared when UNIX took the multics definition of process to mean they should not share memory, and all of sudden the ability to have threads disappeared. As people clamored to have the good old processes back, they created a new thing called “threads” that was actually what they had previously. So while it seemed they were late to support multithreaded processes, in reality they merely had a brief period where they didn’t have multi-threadedness.&lt;br /&gt;
&lt;br /&gt;
-[[User:Rift|Rift]] 23:42, 10 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Here is a possible simple conclusion I&#039;ve typed up. I used the first chunk of Rifts paragraph then just threw in some extra info. Go easy on me lol&lt;br /&gt;
&lt;br /&gt;
Originally in UNIX things similar to threads existed, they were however, called processes. The “processes” shared memory and used semaphores and thus “threads” have been around from the start. However, they disappeared when UNIX took the multics definition of process to mean they should not share memory, and all of sudden the ability to have threads disappeared. What are now considered POSIX threads have just been aliased for many years. The late implementation of these threads was because of the fact that so many developers had the basic principle of a POSIX thread in use, it was simply under a different name with minor structural differences. It is quite evident how POSIX threads came to be over the years especially within the UNIX system. From the basic performance and function of a standard thread to the multi-threading abilities of the POSIX thread, the development became more and more concrete. Though problems arose, such as creating portable thread applications between developers, solutions were found. POSIX.1 and POSIX.2 were created to display interfaces with specific syntax and to describe programming shells for many operating systems. Given the last 20 years when the leap was taken between a standard thread and a POSIX thread, and the speed in which the POSIX thread has been implemented, it can be said that given another 20 years the POSIX thread will have turned into something even more worth the wait.&lt;br /&gt;
&lt;br /&gt;
Okay guys this is a conclusion I&#039;ve typed up. I have absolutely no idea if this is good enough, I find it pretty tough to write conclusions. Nonetheless, feel free to make changes and add/delete whatever you want. I&#039;m not sure how formal he wants it to be, but I hope this is at least decent. If you want me to make some changes let me know what to change and I&#039;ll do it asap.&lt;br /&gt;
&lt;br /&gt;
(I constantly make changes myself :p)&lt;br /&gt;
&lt;br /&gt;
- Tmalone&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
[1] The Open Group, 1997 - 1999. What is UNIX?  online at: &amp;lt;http://www.unix.org/whitepapers/shdiffs.html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[2] Ross Johnson. POSIX Threads for Win32. online at: &amp;lt;http://sourceware.org/pthreads-win32/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[3] Blaise Barney, 2010. Lawrence Livermore National Laboratory. POSIX Threads Programming. online at: &amp;lt;https://computing.llnl.gov/tutorials/pthreads/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[4] Dave McCracken, 2002. IBM Linux Technology Center. POSIX Threads and the Linux Kernel. online at: &amp;lt;//www.kernel.org/doc/ols/2002/ols2002-pages-330-337.pdf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[5] L. Blunt Jackson, 2005. NPTL: The New Implementation of Threads for Linux. online at: &amp;lt;http://www.drdobbs.com/open-source/184406204&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[6] Institute of Electrical and Electronics Engineers, Inc, 1998. IEEE POSIX Testing Policy - General Information. online at: &amp;lt;http://standards.ieee.org/regauth/posix/POSIX-A.FM5.pdf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[7] A Short History of UNIX, 2006. online at: &amp;lt;http://www.unix.com/unix-dummies-questions-answers/7-short-history-unix-l-madden-ic-ac-uk.html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[8] Bradford Nichols, Dick Buttlar, and Jacqueline Proulx Farrell, O&#039;Reilly &amp;amp; Associates, Inc, 1996. Pthreads Programming. online at: &amp;lt;http://books.google.ca/books?id=EZfElJsWCqgC&amp;amp;pg=PA198&amp;amp;lpg=PA198&amp;amp;dq=kernel+based+pthreads&amp;amp;source=bl&amp;amp;ots=3HFKw_0nqq&amp;amp;sig=P0L9feIb88xJRzQfLd7maKtVnTU&amp;amp;hl=en&amp;amp;ei=Oky3TM-_OaO0nAf1-YiwCA&amp;amp;sa=X&amp;amp;oi=book_result&amp;amp;ct=result&amp;amp;resnum=6&amp;amp;ved=0CCsQ6AEwBQ#v=onepage&amp;amp;q=kernel%20based%20pthreads&amp;amp;f=false&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[9] Bryan O&#039;Sullivan, 1993 - 1996. The History of Threads. online at: &amp;lt;http://www.faqs.org/faqs/os-research/part1/section-10.html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[10] http://en.wikipedia.org/wiki/Pipeline_%28Unix%29&lt;br /&gt;
&lt;br /&gt;
[11] http://en.wikipedia.org/wiki/Unix#1970s&lt;br /&gt;
&lt;br /&gt;
[12] http://en.wikipedia.org/wiki/Native_POSIX_Thread_Library&lt;/div&gt;</summary>
		<author><name>Tmalone</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_8&amp;diff=4169</id>
		<title>COMP 3000 Essay 1 2010 Question 8</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_8&amp;diff=4169"/>
		<updated>2010-10-14T23:25:09Z</updated>

		<summary type="html">&lt;p&gt;Tmalone: /* References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Question=&lt;br /&gt;
&lt;br /&gt;
What is the history of POSIX Threads (pthreads)? Consider - does this history explain why UNIX was so late to implement support for multithreaded processes?&lt;br /&gt;
&lt;br /&gt;
=Essay=&lt;br /&gt;
&lt;br /&gt;
-[[User:Npatel1|Npatel1]] ; here is the final copy guys, feel free to edit the essay under &amp;quot;Unsorted&amp;quot;. if it requires major changes please post a note in discussion board, cheers.&lt;br /&gt;
&lt;br /&gt;
-Started throwing in some citation links. Some are duplicates because I&#039;m not sure how to really do them correctly (kind of a wiki noob) -Afranco2&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;POSIX threads, also known as Portable Operating System Interface, are high performance threads mainly distributed in UNIX but also to some Microsoft Windows OS. Threads are used in parallel programming; when a system call executes, the thread runs on an independent stream to finish its task with minimal interruptions or slowdowns. Pthreads are ideal for massive modifications to programs because the threads share one single memory space to alter a data structure, allowing constant high performance and efficiency. Pthread has become commonly used a way of adding concurrency to an application. They are widely used in UNIX; a powerful operating system written in the C language, which is continuously enhanced. Developers came across various obstacles with POSIX threads; during the beginnings of Pthreads, many technical issues had surfaced which were resolved throughout the history of POSIX threads.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The notion of threads developed naturally out of the desire for processes to communicate with each other. Threads are at a basic level multiple threads of control that share memory, and sharing memory is a relatively instantaneous method of communication.  In UNIX where processes were seen as needed on a 1:1 per-terminal basis, and more about time-sharing then working together, at first this seemed relatively unnecessary[http://tinf2.vub.ac.be/~dvermeir/manuals/KDE20Development-html/ch13lev1sec2.html]. Retrieved on October 14 2010&amp;lt;/ref&amp;gt;. There were after all, mechanisms in place to communicate between processes such as pipes and temporary files as well as a few &amp;quot;just changed&amp;quot; messages. The first UNIX implementation of shared memory came about in 1983 with the System V UNIX flavor, which shared memory was merely one of several upgrades to passing messages between processes.[http://fscked.org/writings/SHM/shm-5.html]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The beginning of POSIX Threads starts off with hardware sellers executing their own versions of threads[https://computing.llnl.gov/tutorials/pthreads/]. These developments varied from one another, creating difficulties for programmers to implement portable thread applications[https://computing.llnl.gov/tutorials/pthreads/].  With UNIX starting to develop shared memory as a viable Inter-process communication tool developers started to create a high demand for the ability to run multiple threads under one process. Consequently, IEEE began to form together the POSIX standards. In 1988, POSIX.1 - created to support application portability – was ratified and accepted as the international standard in 1990[http://www.opengroup.org/austin/papers/posix_faq.html][http://delivery.acm.org/10.1145/220000/210315/p11-walli.pdf?key1=210315&amp;amp;key2=0607607821&amp;amp;coll=GUIDE&amp;amp;dl=GUIDE&amp;amp;CFID=108396689&amp;amp;CFTOKEN=35895091]. After the approval, the POSIX standard grew to more than 20 individual standards, encapsulating a large area of different groups[http://delivery.acm.org/10.1145/220000/210315/p11-walli.pdf?key1=210315&amp;amp;key2=0607607821&amp;amp;coll=GUIDE&amp;amp;dl=GUIDE&amp;amp;CFID=108396689&amp;amp;CFTOKEN=35895091].&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;POSIX.1 lays out the interfaces for OS services; their syntax, and how they should act. However, it does not define how the interface should be implemented on the OS, allowing many different operating systems to conform to standards in their own specific design and application[http://delivery.acm.org/10.1145/220000/210315/p11-walli.pdf?key1=210315&amp;amp;key2=0607607821&amp;amp;coll=GUIDE&amp;amp;dl=GUIDE&amp;amp;CFID=108396689&amp;amp;CFTOKEN=35895091]. POSIX.2 was created for much of the same reason as POSIX.1; portable shell programming and portable program development, but describes a programmable shell and its common utilities[https://computing.llnl.gov/tutorials/pthreads/]. Although POSIX.2 improved on the original, POSIX threading has always been an issue on Linux. UNIX was so late to implement support for multithreaded process because it does not map that well onto Linux; this is due to the significant differences in relationship between POSIX and UNIX. These differences include: naming conventions (identifiers, operators, etc...), parameters and variables.[http://www.unix.org/whitepapers/shdiffs.html]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;In the last twenty years, several advancements took place; there was a huge leap from the basic performance and function of a standard thread to a multi-threading, high performance POSIX thread. However, before it was given recognition as being efficient with high performance, a POSIX thread had numerous setbacks and high-priority challenges. Although the basic principle of a POSIX thread within UNIX was already executed by hardware sellers, it was under different names with minor structural variations, prohibiting developers to create portable thread applications. Fortunately, these issues were resolved and POSIX threads were enhanced, with continuous improvements on the way. Developers made an extraordinary breakthrough in concurrent programming by enabling efficiency and high performance, especially during immense modifications to data structure. Even with a rough past, POSIX threads have improved to become one of the most widely-known and commonly used method of adding concurrency to an application.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=Unsorted=&lt;br /&gt;
(unsorted essay)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-[[User:Npatel1|Npatel1]] ; here is the first paragraph. you can edit/add more to the paragraph if needed!&lt;br /&gt;
&lt;br /&gt;
-Afranco2; I put in the history section/strung in tmalone&#039;s stuff as well. Again, feel free to edit/add content&lt;br /&gt;
&lt;br /&gt;
-Tmalone; Edited and corrected the information thus far. I will post a conclusion sometime tomorrow.&lt;br /&gt;
&lt;br /&gt;
-[[User:Npatel1|Npatel1]] ; Trevor, last lines should get us started on the conclusion. Afranco2; i went to class today and prof. was talking about plagiarism, can you please check your paragraph and see if there is any signs of plagiarism. since i don&#039;t know where you gathered your information from. upon you completion please post on wiki; need to make some modification to the body paragraph. &lt;br /&gt;
&lt;br /&gt;
-http://delivery.acm.org/10.1145/220000/210315/p11-walli.pdf?key1=210315&amp;amp;key2=6626986821&amp;amp;coll=GUIDE&amp;amp;dl=GUIDE&amp;amp;CFID=108396689&amp;amp;CFTOKEN=35895091 That is one of the sources which I used for my information. I don&#039;t believe that I am plagiarizing, but I know that it is easy to do accidentally. If somebody wants to check it over for me to make sure, that would be great. My information comes from the first and second page. I also used POSIX Threads and the Linux Kernel and a little bit from IEEE POSIX Testing Policy General Information&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-[[User:Npatel1|Npatel1]] ; oh i just wanted to make sure since the prof. emphasized on it a lot last class! thanks Afranco2.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
POSIX (Portable Operating System Interface) threads, are high performance threads mainly distributed in UNIX but also to some Microsoft Windows OSes. Threads are used in parallel programming; when a system call executes, the thread runs on an independent stream to finish its task with minimal interruptions or slowdowns. Pthreads (from POSIX threads) are ideal for massive modifications to programs because the threads share one single memory space to alter a data structure, allowing constant high performance and efficiency. Pthreads have become a commonly used way of adding concurrency to an application. They are widely used in UNIX; a powerful operating system written in the C language, which is continuously enhanced. Developers came across various obstacles with POSIX threads; during the beginnings of Pthreads, many technical issues had surfaced which were resolved throughout the history of POSIX threads.&lt;br /&gt;
&lt;br /&gt;
The history of POSIX Threads is that many hardware sellers executed their own versions of threads. These developments differed from one another, creating difficulties for programmers to implement portable thread applications. UNIX traditionally had a system running only a single thread under a process. These processes could not share memory and interacted using &#039;pipes&#039;. Once developers started wanting to be able to run multiple threads under one process, IEEE began to form together the POSIX standards. In 1988 POSIX.1 (created to support application portability) was ratified and was accepted as the international standard in 1990. From there the POSIX standards grew to more than 20 individual standards, encapsulating a large area of different groups.&lt;br /&gt;
&lt;br /&gt;
POSIX.1 lays out the interfaces for OS services; their syntax, and how they should act. It however does not define how the interface should be implemented on the OS. This is made to allow many different operating systems to conform to standards in their own specific design and application. POSIX.2 was created for much the same reason as POSIX.1 (portable shell programming, portable program development) but describes a programmable shell and its common utilities.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
POSIX threading has always been an issue on Linux. UNIX was so late to implement support for multithreaded process because it does not map that well onto Linux; this is due to the significant differences in relationship between POSIX and UNIX.&lt;br /&gt;
&lt;br /&gt;
^^^ this statement sounds a bit off.  why does UNIX care what Linux can handle? - John v.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I&#039;ll look into that tomorrow; working on 3005 Assignment. John, if you have a suggestion or an add-on that you wish to provide, please do so under collaboration. &lt;br /&gt;
&lt;br /&gt;
-[[User:Npatel1|Npatel1]]&lt;br /&gt;
&lt;br /&gt;
Hey guys, before end of tomorrow if there is anything missing or if anyone wishes to contribute more towards the essay please do so asap.&lt;br /&gt;
&lt;br /&gt;
-[[User:Npatel1|Npatel1]]&lt;br /&gt;
&lt;br /&gt;
UNIX cares about what Linux can handle because POSIX threads are mainly used in Linux systems. It is a very big deal if a  certain type of thread is generating countless errors on the main system type the thread is created for. And regardless of just the fact that its widely used on Linux, UNIX would care because compatibility is one of the most important things to have. For a POSIX thread to not be compatible with Linux just because UNIX didn&#039;t care, then the progress of multi-threading and POSIX threads would not be able to be used in Linux. Then Linux would not be as widely used as it would not be enhanced like other systems. It is important for systems to have that compatibility, so that they don&#039;t end up left in the dust of technology.&lt;br /&gt;
&lt;br /&gt;
-[[User:Tmalone|Tmalone]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
One of the major reasons why UNIX was so late to implement support for the POSIX threads is the way the two define &amp;quot;multi-threaded&amp;quot; process.&lt;br /&gt;
Traditionally UNIX defined a process to be an instance of a running program.With POSIX this came to be defined more precisely. The &#039;process&#039; &lt;br /&gt;
was defined to be &amp;quot;an address-space and a group of resources dedicated to running the program&amp;quot;. &amp;lt;br&amp;gt;&lt;br /&gt;
POSIX defines a &#039;thread&#039; as the resources neccessary for a single thread of execution ie. a single execution path. Thus according to POSIX the basic unit of execution is a thread. On the other hand UNIX traditionally defined a &#039;task&#039; as the basic unit of execution which is essentially same as the POSIX definition of a &#039;process&#039;.&amp;lt;br&amp;gt;&lt;br /&gt;
Now the conflict between the POSIX Threads and UNIX implementation of tasks came when a task used a clone() system call to create another task in order to implement multi-threading. The program then becomes a co-operating set of tasks which share &#039;some&#039; resources. It is due to this halfway implementation of sharing of resources that lies the major conflict.&amp;lt;br&amp;gt;In a nutshell the fundamental difference between the two is that in POSIX a process can be addressed as a single entity, while in Linux it is a collection of independent tasks. In the POSIX thread implementation all actions affect the entire process. In Linux, however, each of these actions will only affect one task.&lt;br /&gt;
&lt;br /&gt;
Not from your group. But I think your essay should incorporate this too. --[[User:Gautam|Gautam]] 19:35, 14 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Appreciate your contribution towards the essay even though your not in our group; if its possible, can you please give us the link to which you got the information from. --[[User:Npatel1|Npatel1]]&lt;br /&gt;
&lt;br /&gt;
=Collaboration=&lt;br /&gt;
&lt;br /&gt;
Hey guys, i&#039;m just gunna get this started by posting a few links for everyone to get going.  This will help explain a general idea of what they are and the history of them. Please add some more links or anything else you think would be helpful!&lt;br /&gt;
&lt;br /&gt;
http://en.wikipedia.org/wiki/POSIX_Threads&lt;br /&gt;
https://computing.llnl.gov/tutorials/pthreads/&lt;br /&gt;
http://sourceware.org/pthreads-win32/&lt;br /&gt;
 &lt;br /&gt;
-[[User:tmalone|tmalone]]&lt;br /&gt;
&lt;br /&gt;
I found this, might not help, but it might:--[[User:Rannath|Rannath]] 02:09, 6 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
I&#039;m not sure about the rest of you, but most of what I am able to find has to do with information on things that fall under POSIX, not actually about POSIX-afranco2&lt;br /&gt;
&lt;br /&gt;
POSIX Threads, or pthreads, is a thread that is commonly used in UNIX systems but it also seen in some Microsoft Windows systems. A thread is a unit of process that executes segments of code within applications. When a process gets called from the system, the thread will execute the code for the process. POSIX stands for Portable Operating System Interface (for UNIX) and has been used by many independent sellers of hardware. There has always been issues such that developers could not create a reliable protable pthread application. For the use of multi-threading, its implementation arrived fairly late because the systems could not support it. Data mapping onto Linux gave birth to several problems due to the fact that POSIX and UNIX were implemented so differently.&lt;br /&gt;
&lt;br /&gt;
-[[User:tmalone|tmalone]]&lt;br /&gt;
&lt;br /&gt;
http://www.faqs.org/faqs/os-research/part1/section-10.html&lt;br /&gt;
&lt;br /&gt;
Might be of some use as well --[[User:Lmundt|Lmundt]] 14:48, 7 October 2010 (UTC)&lt;br /&gt;
https://computing.llnl.gov/tutorials/pthreads/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Edited version from what -tmalone has written.&lt;br /&gt;
&lt;br /&gt;
POSIX Threads is also called pthreads. Portable Operating System interface; mainly for Unix but it’s also distributed to some Microsoft Windows OS. A Thread is a unit of process that resides inside a process and executes when a system call has been executed. Threads have same global and all the threads share memory, threads also contain their personal private data. Pthread has become commonly used a way of adding concurrency to an application. The history of POSIX Threads is that many hardware sellers executed their own versions of threads. These developments differed from one another, creating difficulties for programmers to implement portable thread applications. POSIX threading has always been an issue on Linux. UNIX was so late to implement support for multithreaded process because it does not map that well onto linux; this is due to the significant differences in relationship between POSIX and UNIX.&lt;br /&gt;
&lt;br /&gt;
-Npatel1&lt;br /&gt;
&lt;br /&gt;
A bit different of a explanation of the history of threads in Unix: &lt;br /&gt;
&lt;br /&gt;
Originally in UNIX things similar to threads existed, they were however, called processes. The “processes” shared memory and used semaphores and thus “threads” have been around from the start. However, they disappeared when UNIX took the multics definition of process to mean they should not share memory, and all of sudden the ability to have threads disappeared. As people clamored to have the good old processes back, they created a new thing called “threads” that was actually what they had previously. So while it seemed they were late to support multithreaded processes, in reality they merely had a brief period where they didn’t have multi-threadedness.&lt;br /&gt;
&lt;br /&gt;
-[[User:Rift|Rift]] 23:42, 10 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Here is a possible simple conclusion I&#039;ve typed up. I used the first chunk of Rifts paragraph then just threw in some extra info. Go easy on me lol&lt;br /&gt;
&lt;br /&gt;
Originally in UNIX things similar to threads existed, they were however, called processes. The “processes” shared memory and used semaphores and thus “threads” have been around from the start. However, they disappeared when UNIX took the multics definition of process to mean they should not share memory, and all of sudden the ability to have threads disappeared. What are now considered POSIX threads have just been aliased for many years. The late implementation of these threads was because of the fact that so many developers had the basic principle of a POSIX thread in use, it was simply under a different name with minor structural differences. It is quite evident how POSIX threads came to be over the years especially within the UNIX system. From the basic performance and function of a standard thread to the multi-threading abilities of the POSIX thread, the development became more and more concrete. Though problems arose, such as creating portable thread applications between developers, solutions were found. POSIX.1 and POSIX.2 were created to display interfaces with specific syntax and to describe programming shells for many operating systems. Given the last 20 years when the leap was taken between a standard thread and a POSIX thread, and the speed in which the POSIX thread has been implemented, it can be said that given another 20 years the POSIX thread will have turned into something even more worth the wait.&lt;br /&gt;
&lt;br /&gt;
Okay guys this is a conclusion I&#039;ve typed up. I have absolutely no idea if this is good enough, I find it pretty tough to write conclusions. Nonetheless, feel free to make changes and add/delete whatever you want. I&#039;m not sure how formal he wants it to be, but I hope this is at least decent. If you want me to make some changes let me know what to change and I&#039;ll do it asap.&lt;br /&gt;
&lt;br /&gt;
(I constantly make changes myself :p)&lt;br /&gt;
&lt;br /&gt;
- Tmalone&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
[1] The Open Group, 1997 - 1999. What is UNIX?  online at: &amp;lt;http://www.unix.org/whitepapers/shdiffs.html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[2] Ross Johnson. POSIX Threads for Win32. online at: &amp;lt;http://sourceware.org/pthreads-win32/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[3] Blaise Barney. Lawrence Livermore National Laboratory. online at: &amp;lt;https://computing.llnl.gov/tutorials/pthreads/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[4] http://www.kernel.org/doc/ols/2002/ols2002-pages-330-337.pdf&lt;br /&gt;
&lt;br /&gt;
[5] http://www.drdobbs.com/open-source/184406204;jsessionid=GKSVKT3EOMUBDQE1GHRSKHWATMY32JVN&lt;br /&gt;
&lt;br /&gt;
[6] http://standards.ieee.org/regauth/posix/POSIX-A.FM5.pdf&lt;br /&gt;
&lt;br /&gt;
[7] http://www.unix.com/unix-dummies-questions-answers/7-short-history-unix-l-madden-ic-ac-uk.html&lt;br /&gt;
&lt;br /&gt;
[9] http://en.wikipedia.org/wiki/Pipeline_%28Unix%29&lt;br /&gt;
&lt;br /&gt;
[10] http://en.wikipedia.org/wiki/Unix#1970s&lt;br /&gt;
&lt;br /&gt;
[11] http://books.google.ca/books?id=EZfElJsWCqgC&amp;amp;pg=PA198&amp;amp;lpg=PA198&amp;amp;dq=kernel+based+pthreads&amp;amp;source=bl&amp;amp;ots=3HFKw_0nqq&amp;amp;sig=P0L9feIb88xJRzQfLd7maKtVnTU&amp;amp;hl=en&amp;amp;ei=Oky3TM-_OaO0nAf1-YiwCA&amp;amp;sa=X&amp;amp;oi=book_result&amp;amp;ct=result&amp;amp;resnum=6&amp;amp;ved=0CCsQ6AEwBQ#v=onepage&amp;amp;q=kernel%20based%20pthreads&amp;amp;f=false&lt;br /&gt;
&lt;br /&gt;
[12] http://en.wikipedia.org/wiki/Native_POSIX_Thread_Library&lt;br /&gt;
&lt;br /&gt;
[13] http://www.faqs.org/faqs/os-research/part1/section-10.html&lt;/div&gt;</summary>
		<author><name>Tmalone</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_8&amp;diff=4154</id>
		<title>COMP 3000 Essay 1 2010 Question 8</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_8&amp;diff=4154"/>
		<updated>2010-10-14T23:08:44Z</updated>

		<summary type="html">&lt;p&gt;Tmalone: /* References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Question=&lt;br /&gt;
&lt;br /&gt;
What is the history of POSIX Threads (pthreads)? Consider - does this history explain why UNIX was so late to implement support for multithreaded processes?&lt;br /&gt;
&lt;br /&gt;
=Essay=&lt;br /&gt;
&lt;br /&gt;
-[[User:Npatel1|Npatel1]] ; here is the final copy guys, feel free to edit the essay under &amp;quot;Unsorted&amp;quot;. if it requires major changes please post a note in discussion board, cheers.&lt;br /&gt;
&lt;br /&gt;
-Started throwing in some citation links. Some are duplicates because I&#039;m not sure how to really do them correctly (kind of a wiki noob) -Afranco2&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;POSIX threads, also known as Portable Operating System Interface, are high performance threads mainly distributed in UNIX but also to some Microsoft Windows OS. Threads are used in parallel programming; when a system call executes, the thread runs on an independent stream to finish its task with minimal interruptions or slowdowns. Pthreads are ideal for massive modifications to programs because the threads share one single memory space to alter a data structure, allowing constant high performance and efficiency. Pthread has become commonly used a way of adding concurrency to an application. They are widely used in UNIX; a powerful operating system written in the C language, which is continuously enhanced. Developers came across various obstacles with POSIX threads; during the beginnings of Pthreads, many technical issues had surfaced which were resolved throughout the history of POSIX threads.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The notion of threads developed naturally out of the desire for processes to communicate with each other. Threads are at a basic level multiple threads of control that share memory, and sharing memory is a relatively instantaneous method of communication.  In UNIX where processes were seen as needed on a 1:1 per-terminal basis, and more about time-sharing then working together, at first this seemed relatively unnecessary[http://tinf2.vub.ac.be/~dvermeir/manuals/KDE20Development-html/ch13lev1sec2.html]. Retrieved on October 14 2010&amp;lt;/ref&amp;gt;. There were after all, mechanisms in place to communicate between processes such as pipes and temporary files as well as a few &amp;quot;just changed&amp;quot; messages. The first UNIX implementation of shared memory came about in 1983 with the System V UNIX flavor, which shared memory was merely one of several upgrades to passing messages between processes.[http://fscked.org/writings/SHM/shm-5.html]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The beginning of POSIX Threads starts off with hardware sellers executing their own versions of threads[https://computing.llnl.gov/tutorials/pthreads/]. These developments varied from one another, creating difficulties for programmers to implement portable thread applications[https://computing.llnl.gov/tutorials/pthreads/].  With UNIX starting to develop shared memory as a viable Inter-process communication tool developers started to create a high demand for the ability to run multiple threads under one process. Consequently, IEEE began to form together the POSIX standards. In 1988, POSIX.1 - created to support application portability – was ratified and accepted as the international standard in 1990[http://www.opengroup.org/austin/papers/posix_faq.html][http://delivery.acm.org/10.1145/220000/210315/p11-walli.pdf?key1=210315&amp;amp;key2=0607607821&amp;amp;coll=GUIDE&amp;amp;dl=GUIDE&amp;amp;CFID=108396689&amp;amp;CFTOKEN=35895091]. After the approval, the POSIX standard grew to more than 20 individual standards, encapsulating a large area of different groups[http://delivery.acm.org/10.1145/220000/210315/p11-walli.pdf?key1=210315&amp;amp;key2=0607607821&amp;amp;coll=GUIDE&amp;amp;dl=GUIDE&amp;amp;CFID=108396689&amp;amp;CFTOKEN=35895091].&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;POSIX.1 lays out the interfaces for OS services; their syntax, and how they should act. However, it does not define how the interface should be implemented on the OS, allowing many different operating systems to conform to standards in their own specific design and application[http://delivery.acm.org/10.1145/220000/210315/p11-walli.pdf?key1=210315&amp;amp;key2=0607607821&amp;amp;coll=GUIDE&amp;amp;dl=GUIDE&amp;amp;CFID=108396689&amp;amp;CFTOKEN=35895091]. POSIX.2 was created for much of the same reason as POSIX.1; portable shell programming and portable program development, but describes a programmable shell and its common utilities[https://computing.llnl.gov/tutorials/pthreads/]. Although POSIX.2 improved on the original, POSIX threading has always been an issue on Linux. UNIX was so late to implement support for multithreaded process because it does not map that well onto Linux; this is due to the significant differences in relationship between POSIX and UNIX. These differences include: naming conventions (identifiers, operators, etc...), parameters and variables.[http://www.unix.org/whitepapers/shdiffs.html]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;In the last twenty years, several advancements took place; there was a huge leap from the basic performance and function of a standard thread to a multi-threading, high performance POSIX thread. However, before it was given recognition as being efficient with high performance, a POSIX thread had numerous setbacks and high-priority challenges. Although the basic principle of a POSIX thread within UNIX was already executed by hardware sellers, it was under different names with minor structural variations, prohibiting developers to create portable thread applications. Fortunately, these issues were resolved and POSIX threads were enhanced, with continuous improvements on the way. Developers made an extraordinary breakthrough in concurrent programming by enabling efficiency and high performance, especially during immense modifications to data structure. Even with a rough past, POSIX threads have improved to become one of the most widely-known and commonly used method of adding concurrency to an application.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=Unsorted=&lt;br /&gt;
(unsorted essay)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-[[User:Npatel1|Npatel1]] ; here is the first paragraph. you can edit/add more to the paragraph if needed!&lt;br /&gt;
&lt;br /&gt;
-Afranco2; I put in the history section/strung in tmalone&#039;s stuff as well. Again, feel free to edit/add content&lt;br /&gt;
&lt;br /&gt;
-Tmalone; Edited and corrected the information thus far. I will post a conclusion sometime tomorrow.&lt;br /&gt;
&lt;br /&gt;
-[[User:Npatel1|Npatel1]] ; Trevor, last lines should get us started on the conclusion. Afranco2; i went to class today and prof. was talking about plagiarism, can you please check your paragraph and see if there is any signs of plagiarism. since i don&#039;t know where you gathered your information from. upon you completion please post on wiki; need to make some modification to the body paragraph. &lt;br /&gt;
&lt;br /&gt;
-http://delivery.acm.org/10.1145/220000/210315/p11-walli.pdf?key1=210315&amp;amp;key2=6626986821&amp;amp;coll=GUIDE&amp;amp;dl=GUIDE&amp;amp;CFID=108396689&amp;amp;CFTOKEN=35895091 That is one of the sources which I used for my information. I don&#039;t believe that I am plagiarizing, but I know that it is easy to do accidentally. If somebody wants to check it over for me to make sure, that would be great. My information comes from the first and second page. I also used POSIX Threads and the Linux Kernel and a little bit from IEEE POSIX Testing Policy General Information&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-[[User:Npatel1|Npatel1]] ; oh i just wanted to make sure since the prof. emphasized on it a lot last class! thanks Afranco2.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
POSIX (Portable Operating System Interface) threads, are high performance threads mainly distributed in UNIX but also to some Microsoft Windows OSes. Threads are used in parallel programming; when a system call executes, the thread runs on an independent stream to finish its task with minimal interruptions or slowdowns. Pthreads (from POSIX threads) are ideal for massive modifications to programs because the threads share one single memory space to alter a data structure, allowing constant high performance and efficiency. Pthreads have become a commonly used way of adding concurrency to an application. They are widely used in UNIX; a powerful operating system written in the C language, which is continuously enhanced. Developers came across various obstacles with POSIX threads; during the beginnings of Pthreads, many technical issues had surfaced which were resolved throughout the history of POSIX threads.&lt;br /&gt;
&lt;br /&gt;
The history of POSIX Threads is that many hardware sellers executed their own versions of threads. These developments differed from one another, creating difficulties for programmers to implement portable thread applications. UNIX traditionally had a system running only a single thread under a process. These processes could not share memory and interacted using &#039;pipes&#039;. Once developers started wanting to be able to run multiple threads under one process, IEEE began to form together the POSIX standards. In 1988 POSIX.1 (created to support application portability) was ratified and was accepted as the international standard in 1990. From there the POSIX standards grew to more than 20 individual standards, encapsulating a large area of different groups.&lt;br /&gt;
&lt;br /&gt;
POSIX.1 lays out the interfaces for OS services; their syntax, and how they should act. It however does not define how the interface should be implemented on the OS. This is made to allow many different operating systems to conform to standards in their own specific design and application. POSIX.2 was created for much the same reason as POSIX.1 (portable shell programming, portable program development) but describes a programmable shell and its common utilities.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
POSIX threading has always been an issue on Linux. UNIX was so late to implement support for multithreaded process because it does not map that well onto Linux; this is due to the significant differences in relationship between POSIX and UNIX.&lt;br /&gt;
&lt;br /&gt;
^^^ this statement sounds a bit off.  why does UNIX care what Linux can handle? - John v.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I&#039;ll look into that tomorrow; working on 3005 Assignment. John, if you have a suggestion or an add-on that you wish to provide, please do so under collaboration. &lt;br /&gt;
&lt;br /&gt;
-[[User:Npatel1|Npatel1]]&lt;br /&gt;
&lt;br /&gt;
Hey guys, before end of tomorrow if there is anything missing or if anyone wishes to contribute more towards the essay please do so asap.&lt;br /&gt;
&lt;br /&gt;
-[[User:Npatel1|Npatel1]]&lt;br /&gt;
&lt;br /&gt;
UNIX cares about what Linux can handle because POSIX threads are mainly used in Linux systems. It is a very big deal if a  certain type of thread is generating countless errors on the main system type the thread is created for. And regardless of just the fact that its widely used on Linux, UNIX would care because compatibility is one of the most important things to have. For a POSIX thread to not be compatible with Linux just because UNIX didn&#039;t care, then the progress of multi-threading and POSIX threads would not be able to be used in Linux. Then Linux would not be as widely used as it would not be enhanced like other systems. It is important for systems to have that compatibility, so that they don&#039;t end up left in the dust of technology.&lt;br /&gt;
&lt;br /&gt;
-[[User:Tmalone|Tmalone]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
One of the major reasons why UNIX was so late to implement support for the POSIX threads is the way the two define &amp;quot;multi-threaded&amp;quot; process.&lt;br /&gt;
Traditionally UNIX defined a process to be an instance of a running program.With POSIX this came to be defined more precisely. The &#039;process&#039; &lt;br /&gt;
was defined to be &amp;quot;an address-space and a group of resources dedicated to running the program&amp;quot;. &amp;lt;br&amp;gt;&lt;br /&gt;
POSIX defines a &#039;thread&#039; as the resources neccessary for a single thread of execution ie. a single execution path. Thus according to POSIX the basic unit of execution is a thread. On the other hand UNIX traditionally defined a &#039;task&#039; as the basic unit of execution which is essentially same as the POSIX definition of a &#039;process&#039;.&amp;lt;br&amp;gt;&lt;br /&gt;
Now the conflict between the POSIX Threads and UNIX implementation of tasks came when a task used a clone() system call to create another task in order to implement multi-threading. The program then becomes a co-operating set of tasks which share &#039;some&#039; resources. It is due to this halfway implementation of sharing of resources that lies the major conflict.&amp;lt;br&amp;gt;In a nutshell the fundamental difference between the two is that in POSIX a process can be addressed as a single entity, while in Linux it is a collection of independent tasks. In the POSIX thread implementation all actions affect the entire process. In Linux, however, each of these actions will only affect one task.&lt;br /&gt;
&lt;br /&gt;
Not from your group. But I think your essay should incorporate this too. --[[User:Gautam|Gautam]] 19:35, 14 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Appreciate your contribution towards the essay even though your not in our group; if its possible, can you please give us the link to which you got the information from. --[[User:Npatel1|Npatel1]]&lt;br /&gt;
&lt;br /&gt;
=Collaboration=&lt;br /&gt;
&lt;br /&gt;
Hey guys, i&#039;m just gunna get this started by posting a few links for everyone to get going.  This will help explain a general idea of what they are and the history of them. Please add some more links or anything else you think would be helpful!&lt;br /&gt;
&lt;br /&gt;
http://en.wikipedia.org/wiki/POSIX_Threads&lt;br /&gt;
https://computing.llnl.gov/tutorials/pthreads/&lt;br /&gt;
http://sourceware.org/pthreads-win32/&lt;br /&gt;
 &lt;br /&gt;
-[[User:tmalone|tmalone]]&lt;br /&gt;
&lt;br /&gt;
I found this, might not help, but it might:--[[User:Rannath|Rannath]] 02:09, 6 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
I&#039;m not sure about the rest of you, but most of what I am able to find has to do with information on things that fall under POSIX, not actually about POSIX-afranco2&lt;br /&gt;
&lt;br /&gt;
POSIX Threads, or pthreads, is a thread that is commonly used in UNIX systems but it also seen in some Microsoft Windows systems. A thread is a unit of process that executes segments of code within applications. When a process gets called from the system, the thread will execute the code for the process. POSIX stands for Portable Operating System Interface (for UNIX) and has been used by many independent sellers of hardware. There has always been issues such that developers could not create a reliable protable pthread application. For the use of multi-threading, its implementation arrived fairly late because the systems could not support it. Data mapping onto Linux gave birth to several problems due to the fact that POSIX and UNIX were implemented so differently.&lt;br /&gt;
&lt;br /&gt;
-[[User:tmalone|tmalone]]&lt;br /&gt;
&lt;br /&gt;
http://www.faqs.org/faqs/os-research/part1/section-10.html&lt;br /&gt;
&lt;br /&gt;
Might be of some use as well --[[User:Lmundt|Lmundt]] 14:48, 7 October 2010 (UTC)&lt;br /&gt;
https://computing.llnl.gov/tutorials/pthreads/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Edited version from what -tmalone has written.&lt;br /&gt;
&lt;br /&gt;
POSIX Threads is also called pthreads. Portable Operating System interface; mainly for Unix but it’s also distributed to some Microsoft Windows OS. A Thread is a unit of process that resides inside a process and executes when a system call has been executed. Threads have same global and all the threads share memory, threads also contain their personal private data. Pthread has become commonly used a way of adding concurrency to an application. The history of POSIX Threads is that many hardware sellers executed their own versions of threads. These developments differed from one another, creating difficulties for programmers to implement portable thread applications. POSIX threading has always been an issue on Linux. UNIX was so late to implement support for multithreaded process because it does not map that well onto linux; this is due to the significant differences in relationship between POSIX and UNIX.&lt;br /&gt;
&lt;br /&gt;
-Npatel1&lt;br /&gt;
&lt;br /&gt;
A bit different of a explanation of the history of threads in Unix: &lt;br /&gt;
&lt;br /&gt;
Originally in UNIX things similar to threads existed, they were however, called processes. The “processes” shared memory and used semaphores and thus “threads” have been around from the start. However, they disappeared when UNIX took the multics definition of process to mean they should not share memory, and all of sudden the ability to have threads disappeared. As people clamored to have the good old processes back, they created a new thing called “threads” that was actually what they had previously. So while it seemed they were late to support multithreaded processes, in reality they merely had a brief period where they didn’t have multi-threadedness.&lt;br /&gt;
&lt;br /&gt;
-[[User:Rift|Rift]] 23:42, 10 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Here is a possible simple conclusion I&#039;ve typed up. I used the first chunk of Rifts paragraph then just threw in some extra info. Go easy on me lol&lt;br /&gt;
&lt;br /&gt;
Originally in UNIX things similar to threads existed, they were however, called processes. The “processes” shared memory and used semaphores and thus “threads” have been around from the start. However, they disappeared when UNIX took the multics definition of process to mean they should not share memory, and all of sudden the ability to have threads disappeared. What are now considered POSIX threads have just been aliased for many years. The late implementation of these threads was because of the fact that so many developers had the basic principle of a POSIX thread in use, it was simply under a different name with minor structural differences. It is quite evident how POSIX threads came to be over the years especially within the UNIX system. From the basic performance and function of a standard thread to the multi-threading abilities of the POSIX thread, the development became more and more concrete. Though problems arose, such as creating portable thread applications between developers, solutions were found. POSIX.1 and POSIX.2 were created to display interfaces with specific syntax and to describe programming shells for many operating systems. Given the last 20 years when the leap was taken between a standard thread and a POSIX thread, and the speed in which the POSIX thread has been implemented, it can be said that given another 20 years the POSIX thread will have turned into something even more worth the wait.&lt;br /&gt;
&lt;br /&gt;
Okay guys this is a conclusion I&#039;ve typed up. I have absolutely no idea if this is good enough, I find it pretty tough to write conclusions. Nonetheless, feel free to make changes and add/delete whatever you want. I&#039;m not sure how formal he wants it to be, but I hope this is at least decent. If you want me to make some changes let me know what to change and I&#039;ll do it asap.&lt;br /&gt;
&lt;br /&gt;
(I constantly make changes myself :p)&lt;br /&gt;
&lt;br /&gt;
- Tmalone&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://www.unix.org/whitepapers/shdiffs.html&lt;br /&gt;
&lt;br /&gt;
http://en.wikipedia.org/wiki/POSIX_Threads&lt;br /&gt;
&lt;br /&gt;
http://sourceware.org/pthreads-win32/ &lt;br /&gt;
&lt;br /&gt;
https://computing.llnl.gov/tutorials/pthreads/&lt;br /&gt;
&lt;br /&gt;
http://www.kernel.org/doc/ols/2002/ols2002-pages-330-337.pdf&lt;br /&gt;
&lt;br /&gt;
http://www.drdobbs.com/open-source/184406204;jsessionid=GKSVKT3EOMUBDQE1GHRSKHWATMY32JVN&lt;/div&gt;</summary>
		<author><name>Tmalone</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_1_2010_Question_8&amp;diff=3960</id>
		<title>Talk:COMP 3000 Essay 1 2010 Question 8</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_1_2010_Question_8&amp;diff=3960"/>
		<updated>2010-10-14T18:58:44Z</updated>

		<summary type="html">&lt;p&gt;Tmalone: /* Question clarification */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Question clarification==&lt;br /&gt;
&lt;br /&gt;
To answer this question properly you need to discuss where pthreads came from.  The UNIX process model came out in the early 1970&#039;s, pthreads was only really proposed in the late 1980&#039;s.  That&#039;s 10-15 years of  history, what was happening?  What about the general development of threads in CS?  Alternative pthread implementations (who had the first one?  what was the first kernel-based one?).  I know that the history of pthreads on linux is kind of complicated - see the [http://en.wikipedia.org/wiki/Native_POSIX_Thread_Library NPTL].  You don&#039;t need to talk about all of this - but you do need to go beyond just what happened with the pthread standard.  --[[User:Soma|Anil]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- UNIX was born in 1969&lt;br /&gt;
&lt;br /&gt;
- Began on a PDP-11/20 machine with a text formatting program called roff and a text editor&lt;br /&gt;
&lt;br /&gt;
- Was rewritten in C in 1972 -&amp;gt; brought forth more portable software&lt;br /&gt;
&lt;br /&gt;
- Became available to Universities and commercial firms as well as the US Government&lt;br /&gt;
&lt;br /&gt;
- Many editions of UNIX came out, by 1975 Versions 4, 5, and 6 were released&lt;br /&gt;
&lt;br /&gt;
- The new versions added the concept of pipes -&amp;gt; led to more modular code-base and faster development cycle&lt;br /&gt;
&lt;br /&gt;
- Pipeline is a chain of processes together by streams, so that the output of one process is the input of the next&lt;br /&gt;
&lt;br /&gt;
- Became more and more portable&lt;br /&gt;
&lt;br /&gt;
- In 1979, UNIX Version 7 was released&lt;br /&gt;
&lt;br /&gt;
- Several more Versions 8, 9, and 10 released the in 80&#039;s&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Early UNIX had a &#039;process&#039;, which was essentially a thread of control, with a virtual address space&lt;br /&gt;
&lt;br /&gt;
- Interacted through pipes because they could not share&lt;br /&gt;
&lt;br /&gt;
- After a while, UNIX wanted processes that shared memory, bringing the invention of the thread&lt;br /&gt;
&lt;br /&gt;
- Also called lightweight in contrast to the heavyweight processes before it&lt;br /&gt;
&lt;br /&gt;
- This is dated around the late 1970&#039;s and the early 80&#039;s, and example is the microkernel&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Alternative Pthread implementation in the 4.0 Digital UNIX, known as DEC OSF/1&lt;br /&gt;
- It was a part of the Mach OS&lt;br /&gt;
&lt;br /&gt;
- Pthread library schedules threads at a one-to-one relationship, all threads fight other threads, not threads of the same process.&lt;br /&gt;
&lt;br /&gt;
- Good for priority, if priority is increased, so is the function of the specific process&lt;br /&gt;
&lt;br /&gt;
- Doesn&#039;t limit a program to a single executing thread, many threads in a program can run on different CPU&#039;s&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- NPTL (Native POSIX Thread Library) is software that enables the Linux kernel to run programs using POSIX threads efficiently&lt;br /&gt;
&lt;br /&gt;
- Has become a part of the Linux kernel since Version 2.6 (Version 1 began around 1996)&lt;br /&gt;
&lt;br /&gt;
- Was a massive improvement from LinuxThreads, which had no real support for threads&lt;br /&gt;
&lt;br /&gt;
- NPTL was first released in Red Hat Linux 9&lt;br /&gt;
&lt;br /&gt;
- Threads are still created with clone() system call and futex primitive is used to implement locking&lt;br /&gt;
&lt;br /&gt;
http://en.wikipedia.org/wiki/Pipeline_%28Unix%29&lt;br /&gt;
&lt;br /&gt;
http://en.wikipedia.org/wiki/Unix#1970s&lt;br /&gt;
&lt;br /&gt;
http://books.google.ca/books?id=EZfElJsWCqgC&amp;amp;pg=PA198&amp;amp;lpg=PA198&amp;amp;dq=kernel+based+pthreads&amp;amp;source=bl&amp;amp;ots=3HFKw_0nqq&amp;amp;sig=P0L9feIb88xJRzQfLd7maKtVnTU&amp;amp;hl=en&amp;amp;ei=Oky3TM-_OaO0nAf1-YiwCA&amp;amp;sa=X&amp;amp;oi=book_result&amp;amp;ct=result&amp;amp;resnum=6&amp;amp;ved=0CCsQ6AEwBQ#v=onepage&amp;amp;q=kernel%20based%20pthreads&amp;amp;f=false&lt;br /&gt;
&lt;br /&gt;
http://en.wikipedia.org/wiki/Native_POSIX_Thread_Library&lt;br /&gt;
&lt;br /&gt;
http://www.faqs.org/faqs/os-research/part1/section-10.html&lt;br /&gt;
&lt;br /&gt;
- Tmalone&lt;br /&gt;
&lt;br /&gt;
== Group 8 ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;GROUP NAMES:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Niravkumar Patel (Npatel1)&lt;br /&gt;
&lt;br /&gt;
Trevor Malone (Tmalone)&lt;br /&gt;
&lt;br /&gt;
Mark Walts (Rift)&lt;br /&gt;
&lt;br /&gt;
John Vanden Heuvel (jvheuvel)&lt;br /&gt;
&lt;br /&gt;
Jeff Francom (Afranco2)&lt;br /&gt;
&lt;br /&gt;
== Discussion ==&lt;br /&gt;
&lt;br /&gt;
[http://www.kernel.org/doc/ols/2002/ols2002-pages-330-337.pdf POSIX Threads and the Linux Kernel] --[[User:Gautam|Gautam]] 23:52, 5 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Not from your group. However I found a webpage which you might find useful. &lt;br /&gt;
[http://www.drdobbs.com/open-source/184406204;jsessionid=3MRSO5YMO1QVRQE1GHRSKHWATMY32JVN The New Implementation of Threads for Linux]&lt;br /&gt;
--[[User:Gautam|Gautam]] 22:56, 5 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Not extremely helpful but: [http://www.unix.com/unix-dummies-questions-answers/7-short-history-unix-l-madden-ic-ac-uk.html A short history of unix] [[User:Rift|Rift]] 18:30, 7 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
http://standards.ieee.org/regauth/posix/POSIX-A.FM5.pdf IEEE POSIX Testing Policy General Information&lt;br /&gt;
The POSIX family of standards, Stephen R. Walli&lt;br /&gt;
-afranco2&lt;br /&gt;
&lt;br /&gt;
I&#039;m not sure how we are planning on structuring this essay, but I will just write a bit on the history of Posix part for now. Does somebody want to handle writing an intro? - afranco2&lt;br /&gt;
&lt;br /&gt;
Hey guys, sorry for the late reply...&lt;br /&gt;
i just wanted everyone to finish their assignment portion. we would have our own set of explanation for question 8. &lt;br /&gt;
&lt;br /&gt;
AFRANCO2; Here is a suggestion.&lt;br /&gt;
&lt;br /&gt;
1st paragraph;&lt;br /&gt;
should consist defining UNIX and POSIX/Threads &lt;br /&gt;
&lt;br /&gt;
2nd paragrah;&lt;br /&gt;
consisting the history behind POSIX and why UNIX was so late to implement the support of multithreaded processes. &lt;br /&gt;
&lt;br /&gt;
3rd paragraph;&lt;br /&gt;
should conclude it all.&lt;br /&gt;
&lt;br /&gt;
I agree, but I don&#039;t think that we should limit it to specifically &#039;paragraphs&#039; but rather sections. -afranco2&lt;br /&gt;
&lt;br /&gt;
Here is a site that would take care of paragraph 1:&lt;br /&gt;
https://computing.llnl.gov/tutorials/pthreads/&lt;br /&gt;
&lt;br /&gt;
GAUTHAM provided us with very useful pdf. that talks about the history of POSIX.&lt;br /&gt;
&lt;br /&gt;
-[[User:Npatel1|Npatel1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This may be a stupid question, buy does anybody know what we have to do for citation? Are we using footnotes like a regular wiki? Or is there another conformation we need to follow? -afranco2&lt;br /&gt;
&lt;br /&gt;
                 --footnotes are probably easiest, John v.&lt;br /&gt;
&lt;br /&gt;
I&#039;ll  take care of the first paragraph if you guys are comfortable with the structure of the essay (post it by the end of today). since we already have AFRANCO2 who did the history portion of the essay.&lt;br /&gt;
&lt;br /&gt;
I made a new tab for &amp;quot;ESSAY&amp;quot; final copy*&lt;br /&gt;
&lt;br /&gt;
-[[User:Npatel1|Npatel1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I&#039;m not sure about the citations; just keep the links you used to gather the information, we&#039;ll ask him on Tuesday.&lt;br /&gt;
(i was just wondering, is this is the kind of structure you were looking for? or should we change the structure?)&lt;br /&gt;
&lt;br /&gt;
-[[User:Npatel1|Npatel1]]&lt;br /&gt;
&lt;br /&gt;
So what all do we need left? Sorry I am out of town trying to keep up as much as possible. Ive posted my research content on the primary page. And I&#039;ve noticed we are getting pretty organized with our essay format. Just as an update process what has been completed and what is left to do? Because i don&#039;t wanna type up a bunch of information we may not need anymore. So Whatever else we need I can type up with all our info and then we can out the together the essay in the next couple days.&lt;br /&gt;
&lt;br /&gt;
- Tmalone&lt;br /&gt;
&lt;br /&gt;
And I think the structure is a good idea. We have enough information to turn it all into a good essay. If you have another suggestion on the structure though by all means tell us what you think.&lt;br /&gt;
&lt;br /&gt;
- Tmalone&lt;br /&gt;
&lt;br /&gt;
sounds good! I&#039;m sorry i was unable to post the Intro today...&lt;br /&gt;
I&#039;ll make sure to have it by tomorrow!&lt;br /&gt;
&lt;br /&gt;
Tmalone, i think we have good portion for History; i will get us started with a good intro then link in the history as our second paragraph which afranco2 has provided. then we&#039;ll talk about why UNIX was soo late; finally conclude it all with a last paragraph.&lt;br /&gt;
&lt;br /&gt;
-[[User:Npatel1|Npatel1]]&lt;br /&gt;
&lt;br /&gt;
Alright, I&#039;ll get started on a possible conclusion format. Then we can post it all and edit and add/delete whatever we want. So then hopefully by Tuesdays class we will have a good make-up of the essay we want.&lt;br /&gt;
&lt;br /&gt;
- Tmalone&lt;br /&gt;
&lt;br /&gt;
I read the current essay format posted. It was really well done good job guys. I read over it and corrected some minor grammar errors. So by sometime tomorrow I&#039;ll have a possible conclusion paragraph posted. If anyone else wants to type anything up for a conclusion they can feel free to as well! The more the better.&lt;br /&gt;
&lt;br /&gt;
- Tmalone&lt;br /&gt;
&lt;br /&gt;
It&#039;s looking good. Sorry if i&#039;m a bit late to the party. I threw a paragraph down in the answer part. I know it doesn&#039;t really fit well.. but it really nees to get worked in.. -Rift&lt;br /&gt;
&lt;br /&gt;
little late here too, got sidetracked with 3004 and 3008.  I do have a concern in that 3 paragraphs really isn&#039;t an essay, he seemed to want more than that JOhn v.&lt;br /&gt;
&lt;br /&gt;
anyone remember what was cited where in the essay?  we&#039;re still missing references -- John&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
yeah, Tmalone decided that he was going to do the citation suitable to the essay. Feel free to help; upon finishing, we&#039;ll post it on the &amp;quot;page&amp;quot;. Nothing fancy, Prof. Anil mentioned that he just wanted the basic format. John, the information that was cited is in discussion and also in collaboration.  -[[User:Npatel1|Npatel1]]&lt;br /&gt;
&lt;br /&gt;
I cited a few things and added a small paragraph. It&#039;s really hard to find things/events relating to it.. [[User:Rift|Rift]] 15:12, 14 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
&lt;br /&gt;
Everyone please post any extra links here;&lt;br /&gt;
we&#039;ll organize it after everyone posts their links.&lt;br /&gt;
&lt;br /&gt;
posted the ones that are provided on our discussion.&lt;br /&gt;
&lt;br /&gt;
-[[User:Npatel1|Npatel1]]&lt;br /&gt;
&lt;br /&gt;
http://www.unix.org/whitepapers/shdiffs.html&lt;br /&gt;
&lt;br /&gt;
http://en.wikipedia.org/wiki/POSIX_Threads&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://sourceware.org/pthreads-win32/ &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://computing.llnl.gov/tutorials/pthreads/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://www.kernel.org/doc/ols/2002/ols2002-pages-330-337.pdf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://www.drdobbs.com/open-source/184406204;jsessionid=GKSVKT3EOMUBDQE1GHRSKHWATMY32JVN&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://standards.ieee.org/regauth/posix/POSIX-A.FM5.pdf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://delivery.acm.org/10.1145/220000/210315/p11-walli.pdf?key1=210315&amp;amp;key2=6626986821&amp;amp;coll=GUIDE&amp;amp;dl=GUIDE&amp;amp;CFID=108396689&amp;amp;CFTOKEN=35895091&lt;br /&gt;
&lt;br /&gt;
Journal article &amp;quot;Achieving Efficiency and Portability in Systems Software: A Case Study on POSIX-Compliant Multithreaded Programs&amp;quot; http://dx.doi.org.proxy.library.carleton.ca/10.1109/TSE.2005.98&lt;/div&gt;</summary>
		<author><name>Tmalone</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_1_2010_Question_8&amp;diff=3958</id>
		<title>Talk:COMP 3000 Essay 1 2010 Question 8</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_1_2010_Question_8&amp;diff=3958"/>
		<updated>2010-10-14T18:58:30Z</updated>

		<summary type="html">&lt;p&gt;Tmalone: /* Question clarification */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Question clarification==&lt;br /&gt;
&lt;br /&gt;
To answer this question properly you need to discuss where pthreads came from.  The UNIX process model came out in the early 1970&#039;s, pthreads was only really proposed in the late 1980&#039;s.  That&#039;s 10-15 years of  history, what was happening?  What about the general development of threads in CS?  Alternative pthread implementations (who had the first one?  what was the first kernel-based one?).  I know that the history of pthreads on linux is kind of complicated - see the [http://en.wikipedia.org/wiki/Native_POSIX_Thread_Library NPTL].  You don&#039;t need to talk about all of this - but you do need to go beyond just what happened with the pthread standard.  --[[User:Soma|Anil]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- UNIX was born in 1969&lt;br /&gt;
&lt;br /&gt;
- Began on a PDP-11/20 machine with a text formatting program called roff and a text editor&lt;br /&gt;
&lt;br /&gt;
- Was rewritten in C in 1972 -&amp;gt; brought forth more portable software&lt;br /&gt;
&lt;br /&gt;
- Became available to Universities and commercial firms as well as the US Government&lt;br /&gt;
&lt;br /&gt;
- Many editions of UNIX came out, by 1975 Versions 4, 5, and 6 were released&lt;br /&gt;
&lt;br /&gt;
- The new versions added the concept of pipes -&amp;gt; led to more modular code-base and faster development cycle&lt;br /&gt;
&lt;br /&gt;
- Pipeline is a chain of processes together by streams, so that the output of one process is the input of the next&lt;br /&gt;
&lt;br /&gt;
- Became more and more portable&lt;br /&gt;
&lt;br /&gt;
- In 1979, UNIX Version 7 was released&lt;br /&gt;
&lt;br /&gt;
- Several more Versions 8, 9, and 10 released the in 80&#039;s&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Early UNIX had a &#039;process&#039;, which was essentially a thread of control, with a virtual address space&lt;br /&gt;
&lt;br /&gt;
- Interacted through pipes because they could not share&lt;br /&gt;
&lt;br /&gt;
- After a while, UNIX wanted processes that shared memory, bringing the invention of the thread&lt;br /&gt;
&lt;br /&gt;
- Also called lightweight in contrast to the heavyweight processes before it&lt;br /&gt;
&lt;br /&gt;
- This is dated around the late 1970&#039;s and the early 80&#039;s, and example is the microkernel&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Alternative Pthread implementation in the 4.0 Digital UNIX, known as DEC OSF/1&lt;br /&gt;
- It was a part of the Mach OS&lt;br /&gt;
&lt;br /&gt;
- Pthread library schedules threads at a one-to-one relationship, all threads fight other threads, not threads of the same process.&lt;br /&gt;
&lt;br /&gt;
- Good for priority, if priority is increased, so is the function of the specific process&lt;br /&gt;
&lt;br /&gt;
- Doesn&#039;t limit a program to a single executing thread, many threads in a program can run on different CPU&#039;s&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- NPTL (Native POSIX Thread Library) is software that enables the Linux kernel to run programs using POSIX threads efficiently&lt;br /&gt;
&lt;br /&gt;
- Has become a part of the Linux kernel since Version 2.6 (Version 1 began around 1996)&lt;br /&gt;
&lt;br /&gt;
- Was a massive improvement from LinuxThreads, which had no real support for threads&lt;br /&gt;
&lt;br /&gt;
- NPTL was first released in Red Hat Linux 9&lt;br /&gt;
&lt;br /&gt;
- Threads are still created with clone() system call and futex primitive is used to implement locking&lt;br /&gt;
&lt;br /&gt;
http://en.wikipedia.org/wiki/Pipeline_%28Unix%29&lt;br /&gt;
http://en.wikipedia.org/wiki/Unix#1970s&lt;br /&gt;
http://books.google.ca/books?id=EZfElJsWCqgC&amp;amp;pg=PA198&amp;amp;lpg=PA198&amp;amp;dq=kernel+based+pthreads&amp;amp;source=bl&amp;amp;ots=3HFKw_0nqq&amp;amp;sig=P0L9feIb88xJRzQfLd7maKtVnTU&amp;amp;hl=en&amp;amp;ei=Oky3TM-_OaO0nAf1-YiwCA&amp;amp;sa=X&amp;amp;oi=book_result&amp;amp;ct=result&amp;amp;resnum=6&amp;amp;ved=0CCsQ6AEwBQ#v=onepage&amp;amp;q=kernel%20based%20pthreads&amp;amp;f=false&lt;br /&gt;
http://en.wikipedia.org/wiki/Native_POSIX_Thread_Library&lt;br /&gt;
http://www.faqs.org/faqs/os-research/part1/section-10.html&lt;br /&gt;
&lt;br /&gt;
- Tmalone&lt;br /&gt;
&lt;br /&gt;
== Group 8 ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;GROUP NAMES:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Niravkumar Patel (Npatel1)&lt;br /&gt;
&lt;br /&gt;
Trevor Malone (Tmalone)&lt;br /&gt;
&lt;br /&gt;
Mark Walts (Rift)&lt;br /&gt;
&lt;br /&gt;
John Vanden Heuvel (jvheuvel)&lt;br /&gt;
&lt;br /&gt;
Jeff Francom (Afranco2)&lt;br /&gt;
&lt;br /&gt;
== Discussion ==&lt;br /&gt;
&lt;br /&gt;
[http://www.kernel.org/doc/ols/2002/ols2002-pages-330-337.pdf POSIX Threads and the Linux Kernel] --[[User:Gautam|Gautam]] 23:52, 5 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Not from your group. However I found a webpage which you might find useful. &lt;br /&gt;
[http://www.drdobbs.com/open-source/184406204;jsessionid=3MRSO5YMO1QVRQE1GHRSKHWATMY32JVN The New Implementation of Threads for Linux]&lt;br /&gt;
--[[User:Gautam|Gautam]] 22:56, 5 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Not extremely helpful but: [http://www.unix.com/unix-dummies-questions-answers/7-short-history-unix-l-madden-ic-ac-uk.html A short history of unix] [[User:Rift|Rift]] 18:30, 7 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
http://standards.ieee.org/regauth/posix/POSIX-A.FM5.pdf IEEE POSIX Testing Policy General Information&lt;br /&gt;
The POSIX family of standards, Stephen R. Walli&lt;br /&gt;
-afranco2&lt;br /&gt;
&lt;br /&gt;
I&#039;m not sure how we are planning on structuring this essay, but I will just write a bit on the history of Posix part for now. Does somebody want to handle writing an intro? - afranco2&lt;br /&gt;
&lt;br /&gt;
Hey guys, sorry for the late reply...&lt;br /&gt;
i just wanted everyone to finish their assignment portion. we would have our own set of explanation for question 8. &lt;br /&gt;
&lt;br /&gt;
AFRANCO2; Here is a suggestion.&lt;br /&gt;
&lt;br /&gt;
1st paragraph;&lt;br /&gt;
should consist defining UNIX and POSIX/Threads &lt;br /&gt;
&lt;br /&gt;
2nd paragrah;&lt;br /&gt;
consisting the history behind POSIX and why UNIX was so late to implement the support of multithreaded processes. &lt;br /&gt;
&lt;br /&gt;
3rd paragraph;&lt;br /&gt;
should conclude it all.&lt;br /&gt;
&lt;br /&gt;
I agree, but I don&#039;t think that we should limit it to specifically &#039;paragraphs&#039; but rather sections. -afranco2&lt;br /&gt;
&lt;br /&gt;
Here is a site that would take care of paragraph 1:&lt;br /&gt;
https://computing.llnl.gov/tutorials/pthreads/&lt;br /&gt;
&lt;br /&gt;
GAUTHAM provided us with very useful pdf. that talks about the history of POSIX.&lt;br /&gt;
&lt;br /&gt;
-[[User:Npatel1|Npatel1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This may be a stupid question, buy does anybody know what we have to do for citation? Are we using footnotes like a regular wiki? Or is there another conformation we need to follow? -afranco2&lt;br /&gt;
&lt;br /&gt;
                 --footnotes are probably easiest, John v.&lt;br /&gt;
&lt;br /&gt;
I&#039;ll  take care of the first paragraph if you guys are comfortable with the structure of the essay (post it by the end of today). since we already have AFRANCO2 who did the history portion of the essay.&lt;br /&gt;
&lt;br /&gt;
I made a new tab for &amp;quot;ESSAY&amp;quot; final copy*&lt;br /&gt;
&lt;br /&gt;
-[[User:Npatel1|Npatel1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I&#039;m not sure about the citations; just keep the links you used to gather the information, we&#039;ll ask him on Tuesday.&lt;br /&gt;
(i was just wondering, is this is the kind of structure you were looking for? or should we change the structure?)&lt;br /&gt;
&lt;br /&gt;
-[[User:Npatel1|Npatel1]]&lt;br /&gt;
&lt;br /&gt;
So what all do we need left? Sorry I am out of town trying to keep up as much as possible. Ive posted my research content on the primary page. And I&#039;ve noticed we are getting pretty organized with our essay format. Just as an update process what has been completed and what is left to do? Because i don&#039;t wanna type up a bunch of information we may not need anymore. So Whatever else we need I can type up with all our info and then we can out the together the essay in the next couple days.&lt;br /&gt;
&lt;br /&gt;
- Tmalone&lt;br /&gt;
&lt;br /&gt;
And I think the structure is a good idea. We have enough information to turn it all into a good essay. If you have another suggestion on the structure though by all means tell us what you think.&lt;br /&gt;
&lt;br /&gt;
- Tmalone&lt;br /&gt;
&lt;br /&gt;
sounds good! I&#039;m sorry i was unable to post the Intro today...&lt;br /&gt;
I&#039;ll make sure to have it by tomorrow!&lt;br /&gt;
&lt;br /&gt;
Tmalone, i think we have good portion for History; i will get us started with a good intro then link in the history as our second paragraph which afranco2 has provided. then we&#039;ll talk about why UNIX was soo late; finally conclude it all with a last paragraph.&lt;br /&gt;
&lt;br /&gt;
-[[User:Npatel1|Npatel1]]&lt;br /&gt;
&lt;br /&gt;
Alright, I&#039;ll get started on a possible conclusion format. Then we can post it all and edit and add/delete whatever we want. So then hopefully by Tuesdays class we will have a good make-up of the essay we want.&lt;br /&gt;
&lt;br /&gt;
- Tmalone&lt;br /&gt;
&lt;br /&gt;
I read the current essay format posted. It was really well done good job guys. I read over it and corrected some minor grammar errors. So by sometime tomorrow I&#039;ll have a possible conclusion paragraph posted. If anyone else wants to type anything up for a conclusion they can feel free to as well! The more the better.&lt;br /&gt;
&lt;br /&gt;
- Tmalone&lt;br /&gt;
&lt;br /&gt;
It&#039;s looking good. Sorry if i&#039;m a bit late to the party. I threw a paragraph down in the answer part. I know it doesn&#039;t really fit well.. but it really nees to get worked in.. -Rift&lt;br /&gt;
&lt;br /&gt;
little late here too, got sidetracked with 3004 and 3008.  I do have a concern in that 3 paragraphs really isn&#039;t an essay, he seemed to want more than that JOhn v.&lt;br /&gt;
&lt;br /&gt;
anyone remember what was cited where in the essay?  we&#039;re still missing references -- John&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
yeah, Tmalone decided that he was going to do the citation suitable to the essay. Feel free to help; upon finishing, we&#039;ll post it on the &amp;quot;page&amp;quot;. Nothing fancy, Prof. Anil mentioned that he just wanted the basic format. John, the information that was cited is in discussion and also in collaboration.  -[[User:Npatel1|Npatel1]]&lt;br /&gt;
&lt;br /&gt;
I cited a few things and added a small paragraph. It&#039;s really hard to find things/events relating to it.. [[User:Rift|Rift]] 15:12, 14 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
&lt;br /&gt;
Everyone please post any extra links here;&lt;br /&gt;
we&#039;ll organize it after everyone posts their links.&lt;br /&gt;
&lt;br /&gt;
posted the ones that are provided on our discussion.&lt;br /&gt;
&lt;br /&gt;
-[[User:Npatel1|Npatel1]]&lt;br /&gt;
&lt;br /&gt;
http://www.unix.org/whitepapers/shdiffs.html&lt;br /&gt;
&lt;br /&gt;
http://en.wikipedia.org/wiki/POSIX_Threads&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://sourceware.org/pthreads-win32/ &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://computing.llnl.gov/tutorials/pthreads/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://www.kernel.org/doc/ols/2002/ols2002-pages-330-337.pdf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://www.drdobbs.com/open-source/184406204;jsessionid=GKSVKT3EOMUBDQE1GHRSKHWATMY32JVN&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://standards.ieee.org/regauth/posix/POSIX-A.FM5.pdf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://delivery.acm.org/10.1145/220000/210315/p11-walli.pdf?key1=210315&amp;amp;key2=6626986821&amp;amp;coll=GUIDE&amp;amp;dl=GUIDE&amp;amp;CFID=108396689&amp;amp;CFTOKEN=35895091&lt;br /&gt;
&lt;br /&gt;
Journal article &amp;quot;Achieving Efficiency and Portability in Systems Software: A Case Study on POSIX-Compliant Multithreaded Programs&amp;quot; http://dx.doi.org.proxy.library.carleton.ca/10.1109/TSE.2005.98&lt;/div&gt;</summary>
		<author><name>Tmalone</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_1_2010_Question_8&amp;diff=3954</id>
		<title>Talk:COMP 3000 Essay 1 2010 Question 8</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_1_2010_Question_8&amp;diff=3954"/>
		<updated>2010-10-14T18:57:14Z</updated>

		<summary type="html">&lt;p&gt;Tmalone: /* Answers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Question clarification==&lt;br /&gt;
&lt;br /&gt;
To answer this question properly you need to discuss where pthreads came from.  The UNIX process model came out in the early 1970&#039;s, pthreads was only really proposed in the late 1980&#039;s.  That&#039;s 10-15 years of  history, what was happening?  What about the general development of threads in CS?  Alternative pthread implementations (who had the first one?  what was the first kernel-based one?).  I know that the history of pthreads on linux is kind of complicated - see the [http://en.wikipedia.org/wiki/Native_POSIX_Thread_Library NPTL].  You don&#039;t need to talk about all of this - but you do need to go beyond just what happened with the pthread standard.  --[[User:Soma|Anil]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- UNIX was born in 1969&lt;br /&gt;
- Began on a PDP-11/20 machine with a text formatting program called roff and a text editor&lt;br /&gt;
- Was rewritten in C in 1972 -&amp;gt; brought forth more portable software&lt;br /&gt;
- Became available to Universities and commercial firms as well as the US Government&lt;br /&gt;
- Many editions of UNIX came out, by 1975 Versions 4, 5, and 6 were released&lt;br /&gt;
- The new versions added the concept of pipes -&amp;gt; led to more modular code-base and faster development cycle&lt;br /&gt;
- Pipeline is a chain of processes together by streams, so that the output of one process is the input of the next&lt;br /&gt;
- Became more and more portable&lt;br /&gt;
- In 1979, UNIX Version 7 was released&lt;br /&gt;
- Several more Versions 8, 9, and 10 released the in 80&#039;s&lt;br /&gt;
&lt;br /&gt;
- Early UNIX had a &#039;process&#039;, which was essentially a thread of control, with a virtual address space&lt;br /&gt;
- Interacted through pipes because they could not share&lt;br /&gt;
- After a while, UNIX wanted processes that shared memory, bringing the invention of the thread&lt;br /&gt;
- Also called lightweight in contrast to the heavyweight processes before it&lt;br /&gt;
- This is dated around the late 1970&#039;s and the early 80&#039;s, and example is the microkernel&lt;br /&gt;
&lt;br /&gt;
- Alternative Pthread implementation in the 4.0 Digital UNIX, known as DEC OSF/1&lt;br /&gt;
- It was a part of the Mach OS&lt;br /&gt;
- Pthread library schedules threads at a one-to-one relationship, all threads fight other threads, not threads of the same process.&lt;br /&gt;
- Good for priority, if priority is increased, so is the function of the specific process&lt;br /&gt;
- Doesn&#039;t limit a program to a single executing thread, many threads in a program can run on different CPU&#039;s&lt;br /&gt;
&lt;br /&gt;
- NPTL (Native POSIX Thread Library) is software that enables the Linux kernel to run programs using POSIX threads efficiently&lt;br /&gt;
- Has become a part of the Linux kernel since Version 2.6 (Version 1 began around 1996)&lt;br /&gt;
- Was a massive improvement from LinuxThreads, which had no real support for threads&lt;br /&gt;
- NPTL was first released in Red Hat Linux 9&lt;br /&gt;
- Threads are still created with clone() system call and futex primitive is used to implement locking&lt;br /&gt;
&lt;br /&gt;
http://en.wikipedia.org/wiki/Pipeline_%28Unix%29&lt;br /&gt;
http://en.wikipedia.org/wiki/Unix#1970s&lt;br /&gt;
http://books.google.ca/books?id=EZfElJsWCqgC&amp;amp;pg=PA198&amp;amp;lpg=PA198&amp;amp;dq=kernel+based+pthreads&amp;amp;source=bl&amp;amp;ots=3HFKw_0nqq&amp;amp;sig=P0L9feIb88xJRzQfLd7maKtVnTU&amp;amp;hl=en&amp;amp;ei=Oky3TM-_OaO0nAf1-YiwCA&amp;amp;sa=X&amp;amp;oi=book_result&amp;amp;ct=result&amp;amp;resnum=6&amp;amp;ved=0CCsQ6AEwBQ#v=onepage&amp;amp;q=kernel%20based%20pthreads&amp;amp;f=false&lt;br /&gt;
http://en.wikipedia.org/wiki/Native_POSIX_Thread_Library&lt;br /&gt;
http://www.faqs.org/faqs/os-research/part1/section-10.html&lt;br /&gt;
&lt;br /&gt;
- Tmalone&lt;br /&gt;
&lt;br /&gt;
== Group 8 ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;GROUP NAMES:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Niravkumar Patel (Npatel1)&lt;br /&gt;
&lt;br /&gt;
Trevor Malone (Tmalone)&lt;br /&gt;
&lt;br /&gt;
Mark Walts (Rift)&lt;br /&gt;
&lt;br /&gt;
John Vanden Heuvel (jvheuvel)&lt;br /&gt;
&lt;br /&gt;
Jeff Francom (Afranco2)&lt;br /&gt;
&lt;br /&gt;
== Discussion ==&lt;br /&gt;
&lt;br /&gt;
[http://www.kernel.org/doc/ols/2002/ols2002-pages-330-337.pdf POSIX Threads and the Linux Kernel] --[[User:Gautam|Gautam]] 23:52, 5 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Not from your group. However I found a webpage which you might find useful. &lt;br /&gt;
[http://www.drdobbs.com/open-source/184406204;jsessionid=3MRSO5YMO1QVRQE1GHRSKHWATMY32JVN The New Implementation of Threads for Linux]&lt;br /&gt;
--[[User:Gautam|Gautam]] 22:56, 5 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Not extremely helpful but: [http://www.unix.com/unix-dummies-questions-answers/7-short-history-unix-l-madden-ic-ac-uk.html A short history of unix] [[User:Rift|Rift]] 18:30, 7 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
http://standards.ieee.org/regauth/posix/POSIX-A.FM5.pdf IEEE POSIX Testing Policy General Information&lt;br /&gt;
The POSIX family of standards, Stephen R. Walli&lt;br /&gt;
-afranco2&lt;br /&gt;
&lt;br /&gt;
I&#039;m not sure how we are planning on structuring this essay, but I will just write a bit on the history of Posix part for now. Does somebody want to handle writing an intro? - afranco2&lt;br /&gt;
&lt;br /&gt;
Hey guys, sorry for the late reply...&lt;br /&gt;
i just wanted everyone to finish their assignment portion. we would have our own set of explanation for question 8. &lt;br /&gt;
&lt;br /&gt;
AFRANCO2; Here is a suggestion.&lt;br /&gt;
&lt;br /&gt;
1st paragraph;&lt;br /&gt;
should consist defining UNIX and POSIX/Threads &lt;br /&gt;
&lt;br /&gt;
2nd paragrah;&lt;br /&gt;
consisting the history behind POSIX and why UNIX was so late to implement the support of multithreaded processes. &lt;br /&gt;
&lt;br /&gt;
3rd paragraph;&lt;br /&gt;
should conclude it all.&lt;br /&gt;
&lt;br /&gt;
I agree, but I don&#039;t think that we should limit it to specifically &#039;paragraphs&#039; but rather sections. -afranco2&lt;br /&gt;
&lt;br /&gt;
Here is a site that would take care of paragraph 1:&lt;br /&gt;
https://computing.llnl.gov/tutorials/pthreads/&lt;br /&gt;
&lt;br /&gt;
GAUTHAM provided us with very useful pdf. that talks about the history of POSIX.&lt;br /&gt;
&lt;br /&gt;
-[[User:Npatel1|Npatel1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This may be a stupid question, buy does anybody know what we have to do for citation? Are we using footnotes like a regular wiki? Or is there another conformation we need to follow? -afranco2&lt;br /&gt;
&lt;br /&gt;
                 --footnotes are probably easiest, John v.&lt;br /&gt;
&lt;br /&gt;
I&#039;ll  take care of the first paragraph if you guys are comfortable with the structure of the essay (post it by the end of today). since we already have AFRANCO2 who did the history portion of the essay.&lt;br /&gt;
&lt;br /&gt;
I made a new tab for &amp;quot;ESSAY&amp;quot; final copy*&lt;br /&gt;
&lt;br /&gt;
-[[User:Npatel1|Npatel1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I&#039;m not sure about the citations; just keep the links you used to gather the information, we&#039;ll ask him on Tuesday.&lt;br /&gt;
(i was just wondering, is this is the kind of structure you were looking for? or should we change the structure?)&lt;br /&gt;
&lt;br /&gt;
-[[User:Npatel1|Npatel1]]&lt;br /&gt;
&lt;br /&gt;
So what all do we need left? Sorry I am out of town trying to keep up as much as possible. Ive posted my research content on the primary page. And I&#039;ve noticed we are getting pretty organized with our essay format. Just as an update process what has been completed and what is left to do? Because i don&#039;t wanna type up a bunch of information we may not need anymore. So Whatever else we need I can type up with all our info and then we can out the together the essay in the next couple days.&lt;br /&gt;
&lt;br /&gt;
- Tmalone&lt;br /&gt;
&lt;br /&gt;
And I think the structure is a good idea. We have enough information to turn it all into a good essay. If you have another suggestion on the structure though by all means tell us what you think.&lt;br /&gt;
&lt;br /&gt;
- Tmalone&lt;br /&gt;
&lt;br /&gt;
sounds good! I&#039;m sorry i was unable to post the Intro today...&lt;br /&gt;
I&#039;ll make sure to have it by tomorrow!&lt;br /&gt;
&lt;br /&gt;
Tmalone, i think we have good portion for History; i will get us started with a good intro then link in the history as our second paragraph which afranco2 has provided. then we&#039;ll talk about why UNIX was soo late; finally conclude it all with a last paragraph.&lt;br /&gt;
&lt;br /&gt;
-[[User:Npatel1|Npatel1]]&lt;br /&gt;
&lt;br /&gt;
Alright, I&#039;ll get started on a possible conclusion format. Then we can post it all and edit and add/delete whatever we want. So then hopefully by Tuesdays class we will have a good make-up of the essay we want.&lt;br /&gt;
&lt;br /&gt;
- Tmalone&lt;br /&gt;
&lt;br /&gt;
I read the current essay format posted. It was really well done good job guys. I read over it and corrected some minor grammar errors. So by sometime tomorrow I&#039;ll have a possible conclusion paragraph posted. If anyone else wants to type anything up for a conclusion they can feel free to as well! The more the better.&lt;br /&gt;
&lt;br /&gt;
- Tmalone&lt;br /&gt;
&lt;br /&gt;
It&#039;s looking good. Sorry if i&#039;m a bit late to the party. I threw a paragraph down in the answer part. I know it doesn&#039;t really fit well.. but it really nees to get worked in.. -Rift&lt;br /&gt;
&lt;br /&gt;
little late here too, got sidetracked with 3004 and 3008.  I do have a concern in that 3 paragraphs really isn&#039;t an essay, he seemed to want more than that JOhn v.&lt;br /&gt;
&lt;br /&gt;
anyone remember what was cited where in the essay?  we&#039;re still missing references -- John&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
yeah, Tmalone decided that he was going to do the citation suitable to the essay. Feel free to help; upon finishing, we&#039;ll post it on the &amp;quot;page&amp;quot;. Nothing fancy, Prof. Anil mentioned that he just wanted the basic format. John, the information that was cited is in discussion and also in collaboration.  -[[User:Npatel1|Npatel1]]&lt;br /&gt;
&lt;br /&gt;
I cited a few things and added a small paragraph. It&#039;s really hard to find things/events relating to it.. [[User:Rift|Rift]] 15:12, 14 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
&lt;br /&gt;
Everyone please post any extra links here;&lt;br /&gt;
we&#039;ll organize it after everyone posts their links.&lt;br /&gt;
&lt;br /&gt;
posted the ones that are provided on our discussion.&lt;br /&gt;
&lt;br /&gt;
-[[User:Npatel1|Npatel1]]&lt;br /&gt;
&lt;br /&gt;
http://www.unix.org/whitepapers/shdiffs.html&lt;br /&gt;
&lt;br /&gt;
http://en.wikipedia.org/wiki/POSIX_Threads&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://sourceware.org/pthreads-win32/ &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://computing.llnl.gov/tutorials/pthreads/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://www.kernel.org/doc/ols/2002/ols2002-pages-330-337.pdf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://www.drdobbs.com/open-source/184406204;jsessionid=GKSVKT3EOMUBDQE1GHRSKHWATMY32JVN&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://standards.ieee.org/regauth/posix/POSIX-A.FM5.pdf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://delivery.acm.org/10.1145/220000/210315/p11-walli.pdf?key1=210315&amp;amp;key2=6626986821&amp;amp;coll=GUIDE&amp;amp;dl=GUIDE&amp;amp;CFID=108396689&amp;amp;CFTOKEN=35895091&lt;br /&gt;
&lt;br /&gt;
Journal article &amp;quot;Achieving Efficiency and Portability in Systems Software: A Case Study on POSIX-Compliant Multithreaded Programs&amp;quot; http://dx.doi.org.proxy.library.carleton.ca/10.1109/TSE.2005.98&lt;/div&gt;</summary>
		<author><name>Tmalone</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_1_2010_Question_8&amp;diff=3953</id>
		<title>Talk:COMP 3000 Essay 1 2010 Question 8</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_1_2010_Question_8&amp;diff=3953"/>
		<updated>2010-10-14T18:57:01Z</updated>

		<summary type="html">&lt;p&gt;Tmalone: /* Question clarification */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Question clarification==&lt;br /&gt;
&lt;br /&gt;
To answer this question properly you need to discuss where pthreads came from.  The UNIX process model came out in the early 1970&#039;s, pthreads was only really proposed in the late 1980&#039;s.  That&#039;s 10-15 years of  history, what was happening?  What about the general development of threads in CS?  Alternative pthread implementations (who had the first one?  what was the first kernel-based one?).  I know that the history of pthreads on linux is kind of complicated - see the [http://en.wikipedia.org/wiki/Native_POSIX_Thread_Library NPTL].  You don&#039;t need to talk about all of this - but you do need to go beyond just what happened with the pthread standard.  --[[User:Soma|Anil]]&lt;br /&gt;
&lt;br /&gt;
==Answers==&lt;br /&gt;
&lt;br /&gt;
- UNIX was born in 1969&lt;br /&gt;
- Began on a PDP-11/20 machine with a text formatting program called roff and a text editor&lt;br /&gt;
- Was rewritten in C in 1972 -&amp;gt; brought forth more portable software&lt;br /&gt;
- Became available to Universities and commercial firms as well as the US Government&lt;br /&gt;
- Many editions of UNIX came out, by 1975 Versions 4, 5, and 6 were released&lt;br /&gt;
- The new versions added the concept of pipes -&amp;gt; led to more modular code-base and faster development cycle&lt;br /&gt;
- Pipeline is a chain of processes together by streams, so that the output of one process is the input of the next&lt;br /&gt;
- Became more and more portable&lt;br /&gt;
- In 1979, UNIX Version 7 was released&lt;br /&gt;
- Several more Versions 8, 9, and 10 released the in 80&#039;s&lt;br /&gt;
&lt;br /&gt;
- Early UNIX had a &#039;process&#039;, which was essentially a thread of control, with a virtual address space&lt;br /&gt;
- Interacted through pipes because they could not share&lt;br /&gt;
- After a while, UNIX wanted processes that shared memory, bringing the invention of the thread&lt;br /&gt;
- Also called lightweight in contrast to the heavyweight processes before it&lt;br /&gt;
- This is dated around the late 1970&#039;s and the early 80&#039;s, and example is the microkernel&lt;br /&gt;
&lt;br /&gt;
- Alternative Pthread implementation in the 4.0 Digital UNIX, known as DEC OSF/1&lt;br /&gt;
- It was a part of the Mach OS&lt;br /&gt;
- Pthread library schedules threads at a one-to-one relationship, all threads fight other threads, not threads of the same process.&lt;br /&gt;
- Good for priority, if priority is increased, so is the function of the specific process&lt;br /&gt;
- Doesn&#039;t limit a program to a single executing thread, many threads in a program can run on different CPU&#039;s&lt;br /&gt;
&lt;br /&gt;
- NPTL (Native POSIX Thread Library) is software that enables the Linux kernel to run programs using POSIX threads efficiently&lt;br /&gt;
- Has become a part of the Linux kernel since Version 2.6 (Version 1 began around 1996)&lt;br /&gt;
- Was a massive improvement from LinuxThreads, which had no real support for threads&lt;br /&gt;
- NPTL was first released in Red Hat Linux 9&lt;br /&gt;
- Threads are still created with clone() system call and futex primitive is used to implement locking&lt;br /&gt;
&lt;br /&gt;
http://en.wikipedia.org/wiki/Pipeline_%28Unix%29&lt;br /&gt;
http://en.wikipedia.org/wiki/Unix#1970s&lt;br /&gt;
http://books.google.ca/books?id=EZfElJsWCqgC&amp;amp;pg=PA198&amp;amp;lpg=PA198&amp;amp;dq=kernel+based+pthreads&amp;amp;source=bl&amp;amp;ots=3HFKw_0nqq&amp;amp;sig=P0L9feIb88xJRzQfLd7maKtVnTU&amp;amp;hl=en&amp;amp;ei=Oky3TM-_OaO0nAf1-YiwCA&amp;amp;sa=X&amp;amp;oi=book_result&amp;amp;ct=result&amp;amp;resnum=6&amp;amp;ved=0CCsQ6AEwBQ#v=onepage&amp;amp;q=kernel%20based%20pthreads&amp;amp;f=false&lt;br /&gt;
http://en.wikipedia.org/wiki/Native_POSIX_Thread_Library&lt;br /&gt;
http://www.faqs.org/faqs/os-research/part1/section-10.html&lt;br /&gt;
&lt;br /&gt;
- Tmalone&lt;br /&gt;
&lt;br /&gt;
== Group 8 ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;GROUP NAMES:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Niravkumar Patel (Npatel1)&lt;br /&gt;
&lt;br /&gt;
Trevor Malone (Tmalone)&lt;br /&gt;
&lt;br /&gt;
Mark Walts (Rift)&lt;br /&gt;
&lt;br /&gt;
John Vanden Heuvel (jvheuvel)&lt;br /&gt;
&lt;br /&gt;
Jeff Francom (Afranco2)&lt;br /&gt;
&lt;br /&gt;
== Discussion ==&lt;br /&gt;
&lt;br /&gt;
[http://www.kernel.org/doc/ols/2002/ols2002-pages-330-337.pdf POSIX Threads and the Linux Kernel] --[[User:Gautam|Gautam]] 23:52, 5 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Not from your group. However I found a webpage which you might find useful. &lt;br /&gt;
[http://www.drdobbs.com/open-source/184406204;jsessionid=3MRSO5YMO1QVRQE1GHRSKHWATMY32JVN The New Implementation of Threads for Linux]&lt;br /&gt;
--[[User:Gautam|Gautam]] 22:56, 5 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Not extremely helpful but: [http://www.unix.com/unix-dummies-questions-answers/7-short-history-unix-l-madden-ic-ac-uk.html A short history of unix] [[User:Rift|Rift]] 18:30, 7 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
http://standards.ieee.org/regauth/posix/POSIX-A.FM5.pdf IEEE POSIX Testing Policy General Information&lt;br /&gt;
The POSIX family of standards, Stephen R. Walli&lt;br /&gt;
-afranco2&lt;br /&gt;
&lt;br /&gt;
I&#039;m not sure how we are planning on structuring this essay, but I will just write a bit on the history of Posix part for now. Does somebody want to handle writing an intro? - afranco2&lt;br /&gt;
&lt;br /&gt;
Hey guys, sorry for the late reply...&lt;br /&gt;
i just wanted everyone to finish their assignment portion. we would have our own set of explanation for question 8. &lt;br /&gt;
&lt;br /&gt;
AFRANCO2; Here is a suggestion.&lt;br /&gt;
&lt;br /&gt;
1st paragraph;&lt;br /&gt;
should consist defining UNIX and POSIX/Threads &lt;br /&gt;
&lt;br /&gt;
2nd paragrah;&lt;br /&gt;
consisting the history behind POSIX and why UNIX was so late to implement the support of multithreaded processes. &lt;br /&gt;
&lt;br /&gt;
3rd paragraph;&lt;br /&gt;
should conclude it all.&lt;br /&gt;
&lt;br /&gt;
I agree, but I don&#039;t think that we should limit it to specifically &#039;paragraphs&#039; but rather sections. -afranco2&lt;br /&gt;
&lt;br /&gt;
Here is a site that would take care of paragraph 1:&lt;br /&gt;
https://computing.llnl.gov/tutorials/pthreads/&lt;br /&gt;
&lt;br /&gt;
GAUTHAM provided us with very useful pdf. that talks about the history of POSIX.&lt;br /&gt;
&lt;br /&gt;
-[[User:Npatel1|Npatel1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This may be a stupid question, buy does anybody know what we have to do for citation? Are we using footnotes like a regular wiki? Or is there another conformation we need to follow? -afranco2&lt;br /&gt;
&lt;br /&gt;
                 --footnotes are probably easiest, John v.&lt;br /&gt;
&lt;br /&gt;
I&#039;ll  take care of the first paragraph if you guys are comfortable with the structure of the essay (post it by the end of today). since we already have AFRANCO2 who did the history portion of the essay.&lt;br /&gt;
&lt;br /&gt;
I made a new tab for &amp;quot;ESSAY&amp;quot; final copy*&lt;br /&gt;
&lt;br /&gt;
-[[User:Npatel1|Npatel1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I&#039;m not sure about the citations; just keep the links you used to gather the information, we&#039;ll ask him on Tuesday.&lt;br /&gt;
(i was just wondering, is this is the kind of structure you were looking for? or should we change the structure?)&lt;br /&gt;
&lt;br /&gt;
-[[User:Npatel1|Npatel1]]&lt;br /&gt;
&lt;br /&gt;
So what all do we need left? Sorry I am out of town trying to keep up as much as possible. Ive posted my research content on the primary page. And I&#039;ve noticed we are getting pretty organized with our essay format. Just as an update process what has been completed and what is left to do? Because i don&#039;t wanna type up a bunch of information we may not need anymore. So Whatever else we need I can type up with all our info and then we can out the together the essay in the next couple days.&lt;br /&gt;
&lt;br /&gt;
- Tmalone&lt;br /&gt;
&lt;br /&gt;
And I think the structure is a good idea. We have enough information to turn it all into a good essay. If you have another suggestion on the structure though by all means tell us what you think.&lt;br /&gt;
&lt;br /&gt;
- Tmalone&lt;br /&gt;
&lt;br /&gt;
sounds good! I&#039;m sorry i was unable to post the Intro today...&lt;br /&gt;
I&#039;ll make sure to have it by tomorrow!&lt;br /&gt;
&lt;br /&gt;
Tmalone, i think we have good portion for History; i will get us started with a good intro then link in the history as our second paragraph which afranco2 has provided. then we&#039;ll talk about why UNIX was soo late; finally conclude it all with a last paragraph.&lt;br /&gt;
&lt;br /&gt;
-[[User:Npatel1|Npatel1]]&lt;br /&gt;
&lt;br /&gt;
Alright, I&#039;ll get started on a possible conclusion format. Then we can post it all and edit and add/delete whatever we want. So then hopefully by Tuesdays class we will have a good make-up of the essay we want.&lt;br /&gt;
&lt;br /&gt;
- Tmalone&lt;br /&gt;
&lt;br /&gt;
I read the current essay format posted. It was really well done good job guys. I read over it and corrected some minor grammar errors. So by sometime tomorrow I&#039;ll have a possible conclusion paragraph posted. If anyone else wants to type anything up for a conclusion they can feel free to as well! The more the better.&lt;br /&gt;
&lt;br /&gt;
- Tmalone&lt;br /&gt;
&lt;br /&gt;
It&#039;s looking good. Sorry if i&#039;m a bit late to the party. I threw a paragraph down in the answer part. I know it doesn&#039;t really fit well.. but it really nees to get worked in.. -Rift&lt;br /&gt;
&lt;br /&gt;
little late here too, got sidetracked with 3004 and 3008.  I do have a concern in that 3 paragraphs really isn&#039;t an essay, he seemed to want more than that JOhn v.&lt;br /&gt;
&lt;br /&gt;
anyone remember what was cited where in the essay?  we&#039;re still missing references -- John&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
yeah, Tmalone decided that he was going to do the citation suitable to the essay. Feel free to help; upon finishing, we&#039;ll post it on the &amp;quot;page&amp;quot;. Nothing fancy, Prof. Anil mentioned that he just wanted the basic format. John, the information that was cited is in discussion and also in collaboration.  -[[User:Npatel1|Npatel1]]&lt;br /&gt;
&lt;br /&gt;
I cited a few things and added a small paragraph. It&#039;s really hard to find things/events relating to it.. [[User:Rift|Rift]] 15:12, 14 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
&lt;br /&gt;
Everyone please post any extra links here;&lt;br /&gt;
we&#039;ll organize it after everyone posts their links.&lt;br /&gt;
&lt;br /&gt;
posted the ones that are provided on our discussion.&lt;br /&gt;
&lt;br /&gt;
-[[User:Npatel1|Npatel1]]&lt;br /&gt;
&lt;br /&gt;
http://www.unix.org/whitepapers/shdiffs.html&lt;br /&gt;
&lt;br /&gt;
http://en.wikipedia.org/wiki/POSIX_Threads&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://sourceware.org/pthreads-win32/ &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://computing.llnl.gov/tutorials/pthreads/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://www.kernel.org/doc/ols/2002/ols2002-pages-330-337.pdf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://www.drdobbs.com/open-source/184406204;jsessionid=GKSVKT3EOMUBDQE1GHRSKHWATMY32JVN&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://standards.ieee.org/regauth/posix/POSIX-A.FM5.pdf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://delivery.acm.org/10.1145/220000/210315/p11-walli.pdf?key1=210315&amp;amp;key2=6626986821&amp;amp;coll=GUIDE&amp;amp;dl=GUIDE&amp;amp;CFID=108396689&amp;amp;CFTOKEN=35895091&lt;br /&gt;
&lt;br /&gt;
Journal article &amp;quot;Achieving Efficiency and Portability in Systems Software: A Case Study on POSIX-Compliant Multithreaded Programs&amp;quot; http://dx.doi.org.proxy.library.carleton.ca/10.1109/TSE.2005.98&lt;/div&gt;</summary>
		<author><name>Tmalone</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_1_2010_Question_8&amp;diff=3712</id>
		<title>Talk:COMP 3000 Essay 1 2010 Question 8</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_1_2010_Question_8&amp;diff=3712"/>
		<updated>2010-10-14T13:24:57Z</updated>

		<summary type="html">&lt;p&gt;Tmalone: /* Sources */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Group 8 ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;GROUP NAMES:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Niravkumar Patel (Npatel1)&lt;br /&gt;
&lt;br /&gt;
Trevor Malone (Tmalone)&lt;br /&gt;
&lt;br /&gt;
Mark Walts (Rift)&lt;br /&gt;
&lt;br /&gt;
John Vanden Heuvel (jvheuvel)&lt;br /&gt;
&lt;br /&gt;
Jeff Francom (Afranco2)&lt;br /&gt;
&lt;br /&gt;
== Discussion ==&lt;br /&gt;
&lt;br /&gt;
[http://www.kernel.org/doc/ols/2002/ols2002-pages-330-337.pdf POSIX Threads and the Linux Kernel] --[[User:Gautam|Gautam]] 23:52, 5 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Not from your group. However I found a webpage which you might find useful. &lt;br /&gt;
[http://www.drdobbs.com/open-source/184406204;jsessionid=3MRSO5YMO1QVRQE1GHRSKHWATMY32JVN The New Implementation of Threads for Linux]&lt;br /&gt;
--[[User:Gautam|Gautam]] 22:56, 5 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Not extremely helpful but: [http://www.unix.com/unix-dummies-questions-answers/7-short-history-unix-l-madden-ic-ac-uk.html A short history of unix] [[User:Rift|Rift]] 18:30, 7 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
http://standards.ieee.org/regauth/posix/POSIX-A.FM5.pdf IEEE POSIX Testing Policy General Information&lt;br /&gt;
The POSIX family of standards, Stephen R. Walli&lt;br /&gt;
-afranco2&lt;br /&gt;
&lt;br /&gt;
I&#039;m not sure how we are planning on structuring this essay, but I will just write a bit on the history of Posix part for now. Does somebody want to handle writing an intro? - afranco2&lt;br /&gt;
&lt;br /&gt;
Hey guys, sorry for the late reply...&lt;br /&gt;
i just wanted everyone to finish their assignment portion. we would have our own set of explanation for question 8. &lt;br /&gt;
&lt;br /&gt;
AFRANCO2; Here is a suggestion.&lt;br /&gt;
&lt;br /&gt;
1st paragraph;&lt;br /&gt;
should consist defining UNIX and POSIX/Threads &lt;br /&gt;
&lt;br /&gt;
2nd paragrah;&lt;br /&gt;
consisting the history behind POSIX and why UNIX was so late to implement the support of multithreaded processes. &lt;br /&gt;
&lt;br /&gt;
3rd paragraph;&lt;br /&gt;
should conclude it all.&lt;br /&gt;
&lt;br /&gt;
I agree, but I don&#039;t think that we should limit it to specifically &#039;paragraphs&#039; but rather sections. -afranco2&lt;br /&gt;
&lt;br /&gt;
Here is a site that would take care of paragraph 1:&lt;br /&gt;
https://computing.llnl.gov/tutorials/pthreads/&lt;br /&gt;
&lt;br /&gt;
GAUTHAM provided us with very useful pdf. that talks about the history of POSIX.&lt;br /&gt;
&lt;br /&gt;
-[[User:Npatel1|Npatel1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This may be a stupid question, buy does anybody know what we have to do for citation? Are we using footnotes like a regular wiki? Or is there another conformation we need to follow? -afranco2&lt;br /&gt;
&lt;br /&gt;
                 --footnotes are probably easiest, John v.&lt;br /&gt;
&lt;br /&gt;
I&#039;ll  take care of the first paragraph if you guys are comfortable with the structure of the essay (post it by the end of today). since we already have AFRANCO2 who did the history portion of the essay.&lt;br /&gt;
&lt;br /&gt;
I made a new tab for &amp;quot;ESSAY&amp;quot; final copy*&lt;br /&gt;
&lt;br /&gt;
-[[User:Npatel1|Npatel1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I&#039;m not sure about the citations; just keep the links you used to gather the information, we&#039;ll ask him on Tuesday.&lt;br /&gt;
(i was just wondering, is this is the kind of structure you were looking for? or should we change the structure?)&lt;br /&gt;
&lt;br /&gt;
-[[User:Npatel1|Npatel1]]&lt;br /&gt;
&lt;br /&gt;
So what all do we need left? Sorry I am out of town trying to keep up as much as possible. Ive posted my research content on the primary page. And I&#039;ve noticed we are getting pretty organized with our essay format. Just as an update process what has been completed and what is left to do? Because i don&#039;t wanna type up a bunch of information we may not need anymore. So Whatever else we need I can type up with all our info and then we can out the together the essay in the next couple days.&lt;br /&gt;
&lt;br /&gt;
- Tmalone&lt;br /&gt;
&lt;br /&gt;
And I think the structure is a good idea. We have enough information to turn it all into a good essay. If you have another suggestion on the structure though by all means tell us what you think.&lt;br /&gt;
&lt;br /&gt;
- Tmalone&lt;br /&gt;
&lt;br /&gt;
sounds good! I&#039;m sorry i was unable to post the Intro today...&lt;br /&gt;
I&#039;ll make sure to have it by tomorrow!&lt;br /&gt;
&lt;br /&gt;
Tmalone, i think we have good portion for History; i will get us started with a good intro then link in the history as our second paragraph which afranco2 has provided. then we&#039;ll talk about why UNIX was soo late; finally conclude it all with a last paragraph.&lt;br /&gt;
&lt;br /&gt;
-[[User:Npatel1|Npatel1]]&lt;br /&gt;
&lt;br /&gt;
Alright, I&#039;ll get started on a possible conclusion format. Then we can post it all and edit and add/delete whatever we want. So then hopefully by Tuesdays class we will have a good make-up of the essay we want.&lt;br /&gt;
&lt;br /&gt;
- Tmalone&lt;br /&gt;
&lt;br /&gt;
I read the current essay format posted. It was really well done good job guys. I read over it and corrected some minor grammar errors. So by sometime tomorrow I&#039;ll have a possible conclusion paragraph posted. If anyone else wants to type anything up for a conclusion they can feel free to as well! The more the better.&lt;br /&gt;
&lt;br /&gt;
- Tmalone&lt;br /&gt;
&lt;br /&gt;
It&#039;s looking good. Sorry if i&#039;m a bit late to the party. I threw a paragraph down in the answer part. I know it doesn&#039;t really fit well.. but it really nees to get worked in.. -Rift&lt;br /&gt;
&lt;br /&gt;
little late here too, got sidetracked with 3004 and 3008.  I do have a concern in that 3 paragraphs really isn&#039;t an essay, he seemed to want more than that JOhn v.&lt;br /&gt;
&lt;br /&gt;
anyone remember what was cited where in the essay?  we&#039;re still missing references -- John&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
yeah, Tmalone decided that he was going to do the citation suitable to the essay. Feel free to help; upon finishing, we&#039;ll post it on the &amp;quot;page&amp;quot;. Nothing fancy, Prof. Anil mentioned that he just wanted the basic format. John, the information that was cited is in discussion and also in collaboration.  -[[User:Npatel1|Npatel1]]&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
&lt;br /&gt;
Everyone please post any extra links here;&lt;br /&gt;
we&#039;ll organize it after everyone posts their links.&lt;br /&gt;
&lt;br /&gt;
posted the ones that are provided on our discussion.&lt;br /&gt;
&lt;br /&gt;
-[[User:Npatel1|Npatel1]]&lt;br /&gt;
&lt;br /&gt;
http://en.wikipedia.org/wiki/POSIX_Threads&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://sourceware.org/pthreads-win32/ &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://computing.llnl.gov/tutorials/pthreads/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://www.kernel.org/doc/ols/2002/ols2002-pages-330-337.pdf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://www.drdobbs.com/open-source/184406204;jsessionid=GKSVKT3EOMUBDQE1GHRSKHWATMY32JVN&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://standards.ieee.org/regauth/posix/POSIX-A.FM5.pdf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://delivery.acm.org/10.1145/220000/210315/p11-walli.pdf?key1=210315&amp;amp;key2=6626986821&amp;amp;coll=GUIDE&amp;amp;dl=GUIDE&amp;amp;CFID=108396689&amp;amp;CFTOKEN=35895091&lt;br /&gt;
&lt;br /&gt;
Journal article &amp;quot;Achieving Efficiency and Portability in Systems Software: A Case Study on POSIX-Compliant Multithreaded Programs&amp;quot; http://dx.doi.org.proxy.library.carleton.ca/10.1109/TSE.2005.98&lt;/div&gt;</summary>
		<author><name>Tmalone</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_8&amp;diff=3710</id>
		<title>COMP 3000 Essay 1 2010 Question 8</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_8&amp;diff=3710"/>
		<updated>2010-10-14T13:17:25Z</updated>

		<summary type="html">&lt;p&gt;Tmalone: /* Unsorted */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Question=&lt;br /&gt;
&lt;br /&gt;
What is the history of POSIX Threads (pthreads)? Consider - does this history explain why UNIX was so late to implement support for multithreaded processes?&lt;br /&gt;
&lt;br /&gt;
=Essay=&lt;br /&gt;
&lt;br /&gt;
-[[User:Npatel1|Npatel1]] ; here is the final copy guys, feel free to edit the essay under &amp;quot;Unsorted&amp;quot;. if it requires major changes please post a note in discussion board, cheers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;POSIX threads, also known as Portable Operating System Interface, are high performance threads mainly distributed in UNIX but also to some Microsoft Windows OS. Threads are used in parallel programming; when a system call executes, the thread runs on an independent stream to finish its task with minimal interruptions or slowdowns. Pthreads are ideal for massive modifications to programs because the threads share one single memory space to alter a data structure, allowing constant high performance and efficiency. Pthread has become commonly used a way of adding concurrency to an application. They are widely used in UNIX; a powerful operating system written in the C language, which is continuously enhanced. Developers came across various obstacles with POSIX threads; during the beginnings of Pthreads, many technical issues had surfaced which were resolved throughout the history of POSIX threads.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The beginning of POSIX Threads starts off with hardware sellers executing their own versions of threads. These developments varied from one another, creating difficulties for programmers to implement portable thread applications. Traditionally, UNIX had a system, running only a single thread under a process. These processes could not share memory and interacted using &#039;pipes&#039;. Soon after, developers created high demand for the ability to run multiple threads under one process and consequently, IEEE began to form together the POSIX standards. In 1988, POSIX.1 - created to support application portability – was ratified and accepted as the international standard in 1990. After the approval, the POSIX standard grew to more than 20 individual standards, encapsulating a large area of different groups. &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;POSIX.1 lays out the interfaces for OS services; their syntax, and how they should act. However, it does not define how the interface should be implemented on the OS, allowing many different operating systems to conform to standards in their own specific design and application. POSIX.2 was created for much of the same reason as POSIX.1; portable shell programming and portable program development, but describes a programmable shell and its common utilities. Although POSIX.2 improved on the original, POSIX threading has always been an issue on Linux. UNIX was so late to implement support for multithreaded process because it does not map that well onto Linux; this is due to the significant differences in relationship between POSIX and UNIX.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;In the last twenty years, several advancements took place; there was a huge leap from the basic performance and function of a standard thread to a multi-threading, high performance POSIX thread. However, before it was given recognition as being efficient with high performance, a POSIX thread had numerous setbacks and high-priority challenges. Although the basic principle of a POSIX thread within UNIX was already executed by hardware sellers, it was under different names with minor structural variations, prohibiting developers to create portable thread applications. Fortunately, these issues were resolved and POSIX threads were enhanced, with continuous improvements on the way. Developers made an extraordinary breakthrough in concurrent programming by enabling efficiency and high performance, especially during immense modifications to data structure. Even with a rough past, POSIX threads have improved to become one of the most widely-known and commonly used method of adding concurrency to an application.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=Unsorted=&lt;br /&gt;
(unsorted essay)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-[[User:Npatel1|Npatel1]] ; here is the first paragraph. you can edit/add more to the paragraph if needed!&lt;br /&gt;
&lt;br /&gt;
-Afranco2; I put in the history section/strung in tmalone&#039;s stuff as well. Again, feel free to edit/add content&lt;br /&gt;
&lt;br /&gt;
-Tmalone; Edited and corrected the information thus far. I will post a conclusion sometime tomorrow.&lt;br /&gt;
&lt;br /&gt;
-[[User:Npatel1|Npatel1]] ; Trevor, last lines should get us started on the conclusion. Afranco2; i went to class today and prof. was talking about plagiarism, can you please check your paragraph and see if there is any signs of plagiarism. since i don&#039;t know where you gathered your information from. upon you completion please post on wiki; need to make some modification to the body paragraph. &lt;br /&gt;
&lt;br /&gt;
-http://delivery.acm.org/10.1145/220000/210315/p11-walli.pdf?key1=210315&amp;amp;key2=6626986821&amp;amp;coll=GUIDE&amp;amp;dl=GUIDE&amp;amp;CFID=108396689&amp;amp;CFTOKEN=35895091 That is one of the sources which I used for my information. I don&#039;t believe that I am plagiarizing, but I know that it is easy to do accidentally. If somebody wants to check it over for me to make sure, that would be great. My information comes from the first and second page. I also used POSIX Threads and the Linux Kernel and a little bit from IEEE POSIX Testing Policy General Information&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-[[User:Npatel1|Npatel1]] ; oh i just wanted to make sure since the prof. emphasized on it a lot last class! thanks Afranco2.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
POSIX (Portable Operating System Interface) threads, are high performance threads mainly distributed in UNIX but also to some Microsoft Windows OSes. Threads are used in parallel programming; when a system call executes, the thread runs on an independent stream to finish its task with minimal interruptions or slowdowns. Pthreads (from POSIX threads) are ideal for massive modifications to programs because the threads share one single memory space to alter a data structure, allowing constant high performance and efficiency. Pthreads have become a commonly used way of adding concurrency to an application. They are widely used in UNIX; a powerful operating system written in the C language, which is continuously enhanced. Developers came across various obstacles with POSIX threads; during the beginnings of Pthreads, many technical issues had surfaced which were resolved throughout the history of POSIX threads.&lt;br /&gt;
&lt;br /&gt;
The history of POSIX Threads is that many hardware sellers executed their own versions of threads. These developments differed from one another, creating difficulties for programmers to implement portable thread applications. UNIX traditionally had a system running only a single thread under a process. These processes could not share memory and interacted using &#039;pipes&#039;. Once developers started wanting to be able to run multiple threads under one process, IEEE began to form together the POSIX standards. In 1988 POSIX.1 (created to support application portability) was ratified and was accepted as the international standard in 1990. From there the POSIX standards grew to more than 20 individual standards, encapsulating a large area of different groups.&lt;br /&gt;
&lt;br /&gt;
POSIX.1 lays out the interfaces for OS services; their syntax, and how they should act. It however does not define how the interface should be implemented on the OS. This is made to allow many different operating systems to conform to standards in their own specific design and application. POSIX.2 was created for much the same reason as POSIX.1 (portable shell programming, portable program development) but describes a programmable shell and its common utilities.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
POSIX threading has always been an issue on Linux. UNIX was so late to implement support for multithreaded process because it does not map that well onto Linux; this is due to the significant differences in relationship between POSIX and UNIX.&lt;br /&gt;
&lt;br /&gt;
^^^ this statement sounds a bit off.  why does UNIX care what Linux can handle? - John v.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I&#039;ll look into that tomorrow; working on 3005 Assignment. John, if you have a suggestion or an add-on that you wish to provide, please do so under collaboration. &lt;br /&gt;
&lt;br /&gt;
-[[User:Npatel1|Npatel1]]&lt;br /&gt;
&lt;br /&gt;
Hey guys, before end of tomorrow if there is anything missing or if anyone wishes to contribute more towards the essay please do so asap.&lt;br /&gt;
&lt;br /&gt;
-[[User:Npatel1|Npatel1]]&lt;br /&gt;
&lt;br /&gt;
UNIX cares about what Linux can handle because POSIX threads are mainly used in Linux systems. It is a very big deal if a  certain type of thread is generating countless errors on the main system type the thread is created for. And regardless of just the fact that its widely used on Linux, UNIX would care because compatibility is one of the most important things to have. For a POSIX thread to not be compatible with Linux just because UNIX didn&#039;t care, then the progress of multi-threading and POSIX threads would not be able to be used in Linux. Then Linux would not be as widely used as it would not be enhanced like other systems. It is important for systems to have that compatibility, so that they don&#039;t end up left in the dust of technology.&lt;br /&gt;
&lt;br /&gt;
-[[User:Tmalone|Tmalone]]&lt;br /&gt;
&lt;br /&gt;
=Collaboration=&lt;br /&gt;
&lt;br /&gt;
Hey guys, i&#039;m just gunna get this started by posting a few links for everyone to get going.  This will help explain a general idea of what they are and the history of them. Please add some more links or anything else you think would be helpful!&lt;br /&gt;
&lt;br /&gt;
http://en.wikipedia.org/wiki/POSIX_Threads&lt;br /&gt;
https://computing.llnl.gov/tutorials/pthreads/&lt;br /&gt;
http://sourceware.org/pthreads-win32/&lt;br /&gt;
 &lt;br /&gt;
-[[User:tmalone|tmalone]]&lt;br /&gt;
&lt;br /&gt;
I found this, might not help, but it might:--[[User:Rannath|Rannath]] 02:09, 6 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
I&#039;m not sure about the rest of you, but most of what I am able to find has to do with information on things that fall under POSIX, not actually about POSIX-afranco2&lt;br /&gt;
&lt;br /&gt;
POSIX Threads, or pthreads, is a thread that is commonly used in UNIX systems but it also seen in some Microsoft Windows systems. A thread is a unit of process that executes segments of code within applications. When a process gets called from the system, the thread will execute the code for the process. POSIX stands for Portable Operating System Interface (for UNIX) and has been used by many independent sellers of hardware. There has always been issues such that developers could not create a reliable protable pthread application. For the use of multi-threading, its implementation arrived fairly late because the systems could not support it. Data mapping onto Linux gave birth to several problems due to the fact that POSIX and UNIX were implemented so differently.&lt;br /&gt;
&lt;br /&gt;
-[[User:tmalone|tmalone]]&lt;br /&gt;
&lt;br /&gt;
http://www.faqs.org/faqs/os-research/part1/section-10.html&lt;br /&gt;
&lt;br /&gt;
Might be of some use as well --[[User:Lmundt|Lmundt]] 14:48, 7 October 2010 (UTC)&lt;br /&gt;
https://computing.llnl.gov/tutorials/pthreads/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Edited version from what -tmalone has written.&lt;br /&gt;
&lt;br /&gt;
POSIX Threads is also called pthreads. Portable Operating System interface; mainly for Unix but it’s also distributed to some Microsoft Windows OS. A Thread is a unit of process that resides inside a process and executes when a system call has been executed. Threads have same global and all the threads share memory, threads also contain their personal private data. Pthread has become commonly used a way of adding concurrency to an application. The history of POSIX Threads is that many hardware sellers executed their own versions of threads. These developments differed from one another, creating difficulties for programmers to implement portable thread applications. POSIX threading has always been an issue on Linux. UNIX was so late to implement support for multithreaded process because it does not map that well onto linux; this is due to the significant differences in relationship between POSIX and UNIX.&lt;br /&gt;
&lt;br /&gt;
-Npatel1&lt;br /&gt;
&lt;br /&gt;
A bit different of a explanation of the history of threads in Unix: &lt;br /&gt;
&lt;br /&gt;
Originally in UNIX things similar to threads existed, they were however, called processes. The “processes” shared memory and used semaphores and thus “threads” have been around from the start. However, they disappeared when UNIX took the multics definition of process to mean they should not share memory, and all of sudden the ability to have threads disappeared. As people clamored to have the good old processes back, they created a new thing called “threads” that was actually what they had previously. So while it seemed they were late to support multithreaded processes, in reality they merely had a brief period where they didn’t have multi-threadedness.&lt;br /&gt;
&lt;br /&gt;
-[[User:Rift|Rift]] 23:42, 10 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Here is a possible simple conclusion I&#039;ve typed up. I used the first chunk of Rifts paragraph then just threw in some extra info. Go easy on me lol&lt;br /&gt;
&lt;br /&gt;
Originally in UNIX things similar to threads existed, they were however, called processes. The “processes” shared memory and used semaphores and thus “threads” have been around from the start. However, they disappeared when UNIX took the multics definition of process to mean they should not share memory, and all of sudden the ability to have threads disappeared. What are now considered POSIX threads have just been aliased for many years. The late implementation of these threads was because of the fact that so many developers had the basic principle of a POSIX thread in use, it was simply under a different name with minor structural differences. It is quite evident how POSIX threads came to be over the years especially within the UNIX system. From the basic performance and function of a standard thread to the multi-threading abilities of the POSIX thread, the development became more and more concrete. Though problems arose, such as creating portable thread applications between developers, solutions were found. POSIX.1 and POSIX.2 were created to display interfaces with specific syntax and to describe programming shells for many operating systems. Given the last 20 years when the leap was taken between a standard thread and a POSIX thread, and the speed in which the POSIX thread has been implemented, it can be said that given another 20 years the POSIX thread will have turned into something even more worth the wait.&lt;br /&gt;
&lt;br /&gt;
Okay guys this is a conclusion I&#039;ve typed up. I have absolutely no idea if this is good enough, I find it pretty tough to write conclusions. Nonetheless, feel free to make changes and add/delete whatever you want. I&#039;m not sure how formal he wants it to be, but I hope this is at least decent. If you want me to make some changes let me know what to change and I&#039;ll do it asap.&lt;br /&gt;
&lt;br /&gt;
(I constantly make changes myself :p)&lt;br /&gt;
&lt;br /&gt;
- Tmalone&lt;/div&gt;</summary>
		<author><name>Tmalone</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_8&amp;diff=3064</id>
		<title>COMP 3000 Essay 1 2010 Question 8</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_8&amp;diff=3064"/>
		<updated>2010-10-12T17:55:09Z</updated>

		<summary type="html">&lt;p&gt;Tmalone: /* Answer */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Question=&lt;br /&gt;
&lt;br /&gt;
What is the history of POSIX Threads (pthreads)? Consider - does this history explain why UNIX was so late to implement support for multithreaded processes?&lt;br /&gt;
&lt;br /&gt;
=Essay=&lt;br /&gt;
(Final Copy goes here)&lt;br /&gt;
&lt;br /&gt;
-Npatel1; here is the first paragraph. you can edit/add more to the paragraph if needed!&lt;br /&gt;
&lt;br /&gt;
-Afranco2; I put in the history section/strung in tmalone&#039;s stuff as well. Again, feel free to edit/add content&lt;br /&gt;
&lt;br /&gt;
-Tmalone; Edited and corrected the information thus far. I will post a conclusion sometime tomorrow.&lt;br /&gt;
&lt;br /&gt;
-Npatel1; Trevor, last lines should get us started on the conclusion. Afranco2; i went to class today and prof. was talking about plagiarism, can you please check your paragraph and see if there is any signs of plagiarism. since i don&#039;t know where you gathered your information from. upon you completion please post on wiki; need to make some modification to the body paragraph. &lt;br /&gt;
&lt;br /&gt;
-http://delivery.acm.org/10.1145/220000/210315/p11-walli.pdf?key1=210315&amp;amp;key2=6626986821&amp;amp;coll=GUIDE&amp;amp;dl=GUIDE&amp;amp;CFID=108396689&amp;amp;CFTOKEN=35895091 That is one of the sources which I used for my information. I don&#039;t believe that I am plagiarizing, but I know that it is easy to do accidentally. If somebody wants to check it over for me to make sure, that would be great. My information comes from the first and second page. I also used POSIX Threads and the Linux Kernel and a little bit from IEEE POSIX Testing Policy General Information&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;POSIX threads, also known as Portable Operating System Interface, are high performance threads mainly distributed in UNIX but also to some Microsoft Windows OS. Threads are used in parallel programming; when a system call executes, the thread runs on an independent stream to finish its task with minimal interruptions or slowdowns. Pthreads are ideal for massive modifications to programs because the threads share one single memory space to alter a data structure, allowing constant high performance and efficiency. Pthread has become commonly used a way of adding concurrency to an application. They are widely used in UNIX; a powerful operating system written in the C language, which is continuously enhanced. Developers came across various obstacles with POSIX threads; during the beginnings of Pthreads, many technical issues had surfaced which were resolved throughout the history of POSIX threads.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The history of POSIX Threads is that many hardware sellers executed their own versions of threads. These developments differed from one another, creating difficulties for programmers to implement portable thread applications. UNIX traditionally had a system running only a single thread under a process. These processes could not share memory and interacted using &#039;pipes&#039;. Once developers started wanting to be able to run multiple threads under one process, IEEE began to form together the POSIX standards. In 1988 POSIX.1 (created to support application portability) was ratified and was accepted as the international standard in 1990. From there the POSIX standards grew to more than 20 individual standards, encapsulating a large area of different groups.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;POSIX.1 lays out the interfaces for OS services; thier syntax, and how they should act. It however does not define how the interface should be implemented on the OS. This is made to allow many different operating systems to conform to standards in thier own specific design and application. POSIX.2 was created for much the same reason as POSIX.1 (portable shell programming, portable program development) but describes a programmable shell and its common utilities.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;POSIX threading has always been an issue on Linux. UNIX was so late to implement support for multithreaded process because it does not map that well onto Linux; this is due to the significant differences in relationship between POSIX and UNIX.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Answer=&lt;br /&gt;
&lt;br /&gt;
Hey guys, i&#039;m just gunna get this started by posting a few links for everyone to get going.  This will help explain a general idea of what they are and the history of them. Please add some more links or anything else you think would be helpful!&lt;br /&gt;
&lt;br /&gt;
http://en.wikipedia.org/wiki/POSIX_Threads&lt;br /&gt;
https://computing.llnl.gov/tutorials/pthreads/&lt;br /&gt;
http://sourceware.org/pthreads-win32/&lt;br /&gt;
 &lt;br /&gt;
-[[User:tmalone|tmalone]]&lt;br /&gt;
&lt;br /&gt;
I found this, might not help, but it might:--[[User:Rannath|Rannath]] 02:09, 6 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
I&#039;m not sure about the rest of you, but most of what I am able to find has to do with information on things that fall under POSIX, not actually about POSIX-afranco2&lt;br /&gt;
&lt;br /&gt;
POSIX Threads, or pthreads, is a thread that is commonly used in UNIX systems but it also seen in some Microsoft Windows systems. A thread is a unit of process that executes segments of code within applications. When a process gets called from the system, the thread will execute the code for the process. POSIX stands for Portable Operating System Interface (for UNIX) and has been used by many independent sellers of hardware. There has always been issues such that developers could not create a reliable protable pthread application. For the use of multi-threading, its implementation arrived fairly late because the systems could not support it. Data mapping onto Linux gave birth to several problems due to the fact that POSIX and UNIX were implemented so differently.&lt;br /&gt;
&lt;br /&gt;
-[[User:tmalone|tmalone]]&lt;br /&gt;
&lt;br /&gt;
http://www.faqs.org/faqs/os-research/part1/section-10.html&lt;br /&gt;
&lt;br /&gt;
Might be of some use as well --[[User:Lmundt|Lmundt]] 14:48, 7 October 2010 (UTC)&lt;br /&gt;
https://computing.llnl.gov/tutorials/pthreads/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Edited version from what -tmalone has written.&lt;br /&gt;
&lt;br /&gt;
POSIX Threads is also called pthreads. Portable Operating System interface; mainly for Unix but it’s also distributed to some Microsoft Windows OS. A Thread is a unit of process that resides inside a process and executes when a system call has been executed. Threads have same global and all the threads share memory, threads also contain their personal private data. Pthread has become commonly used a way of adding concurrency to an application. The history of POSIX Threads is that many hardware sellers executed their own versions of threads. These developments differed from one another, creating difficulties for programmers to implement portable thread applications. POSIX threading has always been an issue on Linux. UNIX was so late to implement support for multithreaded process because it does not map that well onto linux; this is due to the significant differences in relationship between POSIX and UNIX.&lt;br /&gt;
&lt;br /&gt;
-Npatel1&lt;br /&gt;
&lt;br /&gt;
A bit different of a explanation of the history of threads in Unix: &lt;br /&gt;
&lt;br /&gt;
Originally in UNIX things similar to threads existed, they were however, called processes. The “processes” shared memory and used semaphores and thus “threads” have been around from the start. However, they disappeared when UNIX took the multics definition of process to mean they should not share memory, and all of sudden the ability to have threads disappeared. As people clamored to have the good old processes back, they created a new thing called “threads” that was actually what they had previously. So while it seemed they were late to support multithreaded processes, in reality they merely had a brief period where they didn’t have multi-threadedness.&lt;br /&gt;
&lt;br /&gt;
-[[User:Rift|Rift]] 23:42, 10 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Here is a possible simple conclusion I&#039;ve typed up. I used the first chunk of Rifts paragraph then just threw in some extra info. Go easy on me lol&lt;br /&gt;
&lt;br /&gt;
Originally in UNIX things similar to threads existed, they were however, called processes. The “processes” shared memory and used semaphores and thus “threads” have been around from the start. However, they disappeared when UNIX took the multics definition of process to mean they should not share memory, and all of sudden the ability to have threads disappeared. What are now considered POSIX threads have just been aliased for many years. The late implementation of these threads was because of the fact that so many developers had the basic principle of a POSIX thread in use, it was simply under a different name with minor structural differences. It is quite evident how POSIX threads came to be over the years especially within the UNIX system. From the basic performance and function of a standard thread to the multi-threading abilities of the POSIX thread, the development became more and more concrete. Though problems arose, such as creating portable thread applications between developers, solutions were found. POSIX.1 and POSIX.2 were created to display interfaces with specific syntax and to describe programming shells for many operating systems. Given the last 20 years when the leap was taken between a standard thread and a POSIX thread, and the speed in which the POSIX thread has been implemented, it can be said that given another 20 years the POSIX thread will have turned into something even more worth the wait.&lt;br /&gt;
&lt;br /&gt;
Okay guys this is a conclusion I&#039;ve typed up. I have absolutely no idea if this is good enough, I find it pretty tough to write conclusions. Nonetheless, feel free to make changes and add/delete whatever you want. I&#039;m not sure how formal he wants it to be, but I hope this is at least decent. If you want me to make some changes let me know what to change and I&#039;ll do it asap.&lt;br /&gt;
&lt;br /&gt;
(I constantly make changes myself :p)&lt;br /&gt;
&lt;br /&gt;
- Tmalone&lt;/div&gt;</summary>
		<author><name>Tmalone</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_8&amp;diff=3061</id>
		<title>COMP 3000 Essay 1 2010 Question 8</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_8&amp;diff=3061"/>
		<updated>2010-10-12T17:48:12Z</updated>

		<summary type="html">&lt;p&gt;Tmalone: /* Answer */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Question=&lt;br /&gt;
&lt;br /&gt;
What is the history of POSIX Threads (pthreads)? Consider - does this history explain why UNIX was so late to implement support for multithreaded processes?&lt;br /&gt;
&lt;br /&gt;
=Essay=&lt;br /&gt;
(Final Copy goes here)&lt;br /&gt;
&lt;br /&gt;
-Npatel1; here is the first paragraph. you can edit/add more to the paragraph if needed!&lt;br /&gt;
&lt;br /&gt;
-Afranco2; I put in the history section/strung in tmalone&#039;s stuff as well. Again, feel free to edit/add content&lt;br /&gt;
&lt;br /&gt;
-Tmalone; Edited and corrected the information thus far. I will post a conclusion sometime tomorrow.&lt;br /&gt;
&lt;br /&gt;
-Npatel1; Trevor, last lines should get us started on the conclusion. Afranco2; i went to class today and prof. was talking about plagiarism, can you please check your paragraph and see if there is any signs of plagiarism. since i don&#039;t know where you gathered your information from. upon you completion please post on wiki; need to make some modification to the body paragraph. &lt;br /&gt;
&lt;br /&gt;
-http://delivery.acm.org/10.1145/220000/210315/p11-walli.pdf?key1=210315&amp;amp;key2=6626986821&amp;amp;coll=GUIDE&amp;amp;dl=GUIDE&amp;amp;CFID=108396689&amp;amp;CFTOKEN=35895091 That is one of the sources which I used for my information. I don&#039;t believe that I am plagiarizing, but I know that it is easy to do accidentally. If somebody wants to check it over for me to make sure, that would be great. My information comes from the first and second page. I also used POSIX Threads and the Linux Kernel and a little bit from IEEE POSIX Testing Policy General Information&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;POSIX threads, also known as Portable Operating System Interface, are high performance threads mainly distributed in UNIX but also to some Microsoft Windows OS. Threads are used in parallel programming; when a system call executes, the thread runs on an independent stream to finish its task with minimal interruptions or slowdowns. Pthreads are ideal for massive modifications to programs because the threads share one single memory space to alter a data structure, allowing constant high performance and efficiency. Pthread has become commonly used a way of adding concurrency to an application. They are widely used in UNIX; a powerful operating system written in the C language, which is continuously enhanced. Developers came across various obstacles with POSIX threads; during the beginnings of Pthreads, many technical issues had surfaced which were resolved throughout the history of POSIX threads.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The history of POSIX Threads is that many hardware sellers executed their own versions of threads. These developments differed from one another, creating difficulties for programmers to implement portable thread applications. UNIX traditionally had a system running only a single thread under a process. These processes could not share memory and interacted using &#039;pipes&#039;. Once developers started wanting to be able to run multiple threads under one process, IEEE began to form together the POSIX standards. In 1988 POSIX.1 (created to support application portability) was ratified and was accepted as the international standard in 1990. From there the POSIX standards grew to more than 20 individual standards, encapsulating a large area of different groups.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;POSIX.1 lays out the interfaces for OS services; thier syntax, and how they should act. It however does not define how the interface should be implemented on the OS. This is made to allow many different operating systems to conform to standards in thier own specific design and application. POSIX.2 was created for much the same reason as POSIX.1 (portable shell programming, portable program development) but describes a programmable shell and its common utilities.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;POSIX threading has always been an issue on Linux. UNIX was so late to implement support for multithreaded process because it does not map that well onto Linux; this is due to the significant differences in relationship between POSIX and UNIX.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Answer=&lt;br /&gt;
&lt;br /&gt;
Hey guys, i&#039;m just gunna get this started by posting a few links for everyone to get going.  This will help explain a general idea of what they are and the history of them. Please add some more links or anything else you think would be helpful!&lt;br /&gt;
&lt;br /&gt;
http://en.wikipedia.org/wiki/POSIX_Threads&lt;br /&gt;
https://computing.llnl.gov/tutorials/pthreads/&lt;br /&gt;
http://sourceware.org/pthreads-win32/&lt;br /&gt;
 &lt;br /&gt;
-[[User:tmalone|tmalone]]&lt;br /&gt;
&lt;br /&gt;
I found this, might not help, but it might:--[[User:Rannath|Rannath]] 02:09, 6 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
I&#039;m not sure about the rest of you, but most of what I am able to find has to do with information on things that fall under POSIX, not actually about POSIX-afranco2&lt;br /&gt;
&lt;br /&gt;
POSIX Threads, or pthreads, is a thread that is commonly used in UNIX systems but it also seen in some Microsoft Windows systems. A thread is a unit of process that executes segments of code within applications. When a process gets called from the system, the thread will execute the code for the process. POSIX stands for Portable Operating System Interface (for UNIX) and has been used by many independent sellers of hardware. There has always been issues such that developers could not create a reliable protable pthread application. For the use of multi-threading, its implementation arrived fairly late because the systems could not support it. Data mapping onto Linux gave birth to several problems due to the fact that POSIX and UNIX were implemented so differently.&lt;br /&gt;
&lt;br /&gt;
-[[User:tmalone|tmalone]]&lt;br /&gt;
&lt;br /&gt;
http://www.faqs.org/faqs/os-research/part1/section-10.html&lt;br /&gt;
&lt;br /&gt;
Might be of some use as well --[[User:Lmundt|Lmundt]] 14:48, 7 October 2010 (UTC)&lt;br /&gt;
https://computing.llnl.gov/tutorials/pthreads/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Edited version from what -tmalone has written.&lt;br /&gt;
&lt;br /&gt;
POSIX Threads is also called pthreads. Portable Operating System interface; mainly for Unix but it’s also distributed to some Microsoft Windows OS. A Thread is a unit of process that resides inside a process and executes when a system call has been executed. Threads have same global and all the threads share memory, threads also contain their personal private data. Pthread has become commonly used a way of adding concurrency to an application. The history of POSIX Threads is that many hardware sellers executed their own versions of threads. These developments differed from one another, creating difficulties for programmers to implement portable thread applications. POSIX threading has always been an issue on Linux. UNIX was so late to implement support for multithreaded process because it does not map that well onto linux; this is due to the significant differences in relationship between POSIX and UNIX.&lt;br /&gt;
&lt;br /&gt;
-Npatel1&lt;br /&gt;
&lt;br /&gt;
A bit different of a explanation of the history of threads in Unix: &lt;br /&gt;
&lt;br /&gt;
Originally in UNIX things similar to threads existed, they were however, called processes. The “processes” shared memory and used semaphores and thus “threads” have been around from the start. However, they disappeared when UNIX took the multics definition of process to mean they should not share memory, and all of sudden the ability to have threads disappeared. As people clamored to have the good old processes back, they created a new thing called “threads” that was actually what they had previously. So while it seemed they were late to support multithreaded processes, in reality they merely had a brief period where they didn’t have multi-threadedness.&lt;br /&gt;
&lt;br /&gt;
-[[User:Rift|Rift]] 23:42, 10 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Here is a possible simple conclusion I&#039;ve typed up. Go easy on me lol&lt;br /&gt;
&lt;br /&gt;
What are now considered POSIX threads have been aliased for many years. The late implementation of these threads was because of the fact that so many developers had the basic principle of a POSIX thread in use, it was simply under a different name with minor structural differences. It is quite evident how POSIX threads came to be over the years especially within the UNIX system. From the basic performance and function of a standard thread to the multi-threading abilities of the POSIX thread, the development became more and more concrete. Though problems arose, such as creating portable thread applications between developers, solutions were found. POSIX.1 and POSIX.2 were created to display interfaces with specific syntax and to describe programming shells for many operating systems. Given the last 20 years when the leap was taken between a standard thread and a POSIX thread, and the speed in which the POSIX thread has been implemented, it can be said that given another 20 years the POSIX thread will have turned into something even more worth the wait.&lt;br /&gt;
&lt;br /&gt;
Okay guys this is a conclusion I&#039;ve typed up. I have absolutely no idea if this is good enough, I find it pretty tough to write conclusions. Nonetheless, feel free to make changes and add/delete whatever you want. I&#039;m not sure how formal he wants it to be, but I hope this is at least decent. If you want me to make some changes let me know what to change and I&#039;ll do it asap.&lt;br /&gt;
&lt;br /&gt;
- Tmalone&lt;/div&gt;</summary>
		<author><name>Tmalone</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_8&amp;diff=2839</id>
		<title>COMP 3000 Essay 1 2010 Question 8</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_8&amp;diff=2839"/>
		<updated>2010-10-10T19:07:25Z</updated>

		<summary type="html">&lt;p&gt;Tmalone: /* Essay */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Question=&lt;br /&gt;
&lt;br /&gt;
What is the history of POSIX Threads (pthreads)? Consider - does this history explain why UNIX was so late to implement support for multithreaded processes?&lt;br /&gt;
&lt;br /&gt;
=Essay=&lt;br /&gt;
(Final Copy goes here)&lt;br /&gt;
&lt;br /&gt;
-Npatel1; here is the first paragraph. you can edit/add more to the paragraph if needed!&lt;br /&gt;
&lt;br /&gt;
-Afranco2; I put in the history section/strung in tmalone&#039;s stuff as well. Again, feel free to edit/add content&lt;br /&gt;
&lt;br /&gt;
-Tmalone; Edited and corrected the information thus far. I will post a conclusion sometime tomorrow.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;POSIX threads, also known as Portable Operating System Interface, are high performance threads mainly distributed in UNIX but also to some Microsoft Windows OS. Threads are used in parallel programming; when a system call executes, the thread runs on an independent stream to finish its task with minimal interruptions or slowdowns. Pthreads are ideal for massive modifications to programs because the threads share one single memory space to alter a data structure, allowing constant high performance and efficiency. Pthread has become commonly used a way of adding concurrency to an application. They are widely used in UNIX; a powerful operating system written in the C language, which is continuously enhanced. Developers came across various obstacles with POSIX threads; during the beginnings of Pthreads, many technical issues had surfaced which were resolved throughout the history of POSIX threads.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The history of POSIX Threads is that many hardware sellers executed their own versions of threads. These developments differed from one another, creating difficulties for programmers to implement portable thread applications. UNIX traditionally had a system running only a single thread under a process. These processes could not share memory and interacted using &#039;pipes&#039;. Once developers started wanting to be able to run multiple threads under one process, IEEE began to form together the POSIX standards. In 1988 POSIX.1 (created to support application portability) was ratified and was accepted as the international standard in 1990. From there the POSIX standards grew to more than 20 individual standards, encapsulating a large area of different groups.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;POSIX.1 lays out the interfaces for OS services; thier syntax, and how they should act. It however does not define how the interface should be implemented on the OS. This is made to allow many different operating systems to conform to standards in thier own specific design and application. POSIX.2 was created for much the same reason as POSIX.1 (portable shell programming, portable program development) but describes a programmable shell and its common utilities.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;POSIX threading has always been an issue on Linux. UNIX was so late to implement support for multithreaded process because it does not map that well onto Linux; this is due to the significant differences in relationship between POSIX and UNIX.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Answer=&lt;br /&gt;
&lt;br /&gt;
Hey guys, i&#039;m just gunna get this started by posting a few links for everyone to get going.  This will help explain a general idea of what they are and the history of them. Please add some more links or anything else you think would be helpful!&lt;br /&gt;
&lt;br /&gt;
http://en.wikipedia.org/wiki/POSIX_Threads&lt;br /&gt;
https://computing.llnl.gov/tutorials/pthreads/&lt;br /&gt;
http://sourceware.org/pthreads-win32/&lt;br /&gt;
 &lt;br /&gt;
-[[User:tmalone|tmalone]]&lt;br /&gt;
&lt;br /&gt;
I found this, might not help, but it might:--[[User:Rannath|Rannath]] 02:09, 6 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
I&#039;m not sure about the rest of you, but most of what I am able to find has to do with information on things that fall under POSIX, not actually about POSIX-afranco2&lt;br /&gt;
&lt;br /&gt;
POSIX Threads, or pthreads, is a thread that is commonly used in UNIX systems but it also seen in some Microsoft Windows systems. A thread is a unit of process that executes segments of code within applications. When a process gets called from the system, the thread will execute the code for the process. POSIX stands for Portable Operating System Interface (for UNIX) and has been used by many independent sellers of hardware. There has always been issues such that developers could not create a reliable protable pthread application. For the use of multi-threading, its implementation arrived fairly late because the systems could not support it. Data mapping onto Linux gave birth to several problems due to the fact that POSIX and UNIX were implemented so differently.&lt;br /&gt;
&lt;br /&gt;
-[[User:tmalone|tmalone]]&lt;br /&gt;
&lt;br /&gt;
http://www.faqs.org/faqs/os-research/part1/section-10.html&lt;br /&gt;
&lt;br /&gt;
Might be of some use as well --[[User:Lmundt|Lmundt]] 14:48, 7 October 2010 (UTC)&lt;br /&gt;
https://computing.llnl.gov/tutorials/pthreads/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Edited version from what -tmalone has written.&lt;br /&gt;
&lt;br /&gt;
POSIX Threads is also called pthreads. Portable Operating System interface; mainly for Unix but it’s also distributed to some Microsoft Windows OS. A Thread is a unit of process that resides inside a process and executes when a system call has been executed. Threads have same global and all the threads share memory, threads also contain their personal private data. Pthread has become commonly used a way of adding concurrency to an application. The history of POSIX Threads is that many hardware sellers executed their own versions of threads. These developments differed from one another, creating difficulties for programmers to implement portable thread applications. POSIX threading has always been an issue on Linux. UNIX was so late to implement support for multithreaded process because it does not map that well onto linux; this is due to the significant differences in relationship between POSIX and UNIX.&lt;br /&gt;
&lt;br /&gt;
-Npatel1&lt;/div&gt;</summary>
		<author><name>Tmalone</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_1_2010_Question_8&amp;diff=2838</id>
		<title>Talk:COMP 3000 Essay 1 2010 Question 8</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_1_2010_Question_8&amp;diff=2838"/>
		<updated>2010-10-10T19:05:53Z</updated>

		<summary type="html">&lt;p&gt;Tmalone: /* Discussion */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Group 8 ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;GROUP NAMES:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Niravkumar Patel (Npatel1)&lt;br /&gt;
&lt;br /&gt;
Trevor Malone (Tmalone)&lt;br /&gt;
&lt;br /&gt;
== Discussion ==&lt;br /&gt;
&lt;br /&gt;
[http://www.kernel.org/doc/ols/2002/ols2002-pages-330-337.pdf POSIX Threads and the Linux Kernel] --[[User:Gautam|Gautam]] 23:52, 5 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Not from your group. However I found a webpage which you might find useful. &lt;br /&gt;
[http://www.drdobbs.com/open-source/184406204;jsessionid=3MRSO5YMO1QVRQE1GHRSKHWATMY32JVN The New Implementation of Threads for Linux]&lt;br /&gt;
--[[User:Gautam|Gautam]] 22:56, 5 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Not extremely helpful but: [http://www.unix.com/unix-dummies-questions-answers/7-short-history-unix-l-madden-ic-ac-uk.html A short history of unix] [[User:Rift|Rift]] 18:30, 7 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
http://standards.ieee.org/regauth/posix/POSIX-A.FM5.pdf IEEE POSIX Testing Policy General Information&lt;br /&gt;
The POSIX family of standards, Stephen R. Walli&lt;br /&gt;
-afranco2&lt;br /&gt;
&lt;br /&gt;
I&#039;m not sure how we are planning on structuring this essay, but I will just write a bit on the history of Posix part for now. Does somebody want to handle writing an intro? - afranco2&lt;br /&gt;
&lt;br /&gt;
Hey guys, sorry for the late reply...&lt;br /&gt;
i just wanted everyone to finish their assignment portion. we would have our own set of explanation for question 8. &lt;br /&gt;
&lt;br /&gt;
AFRANCO2; Here is a suggestion.&lt;br /&gt;
&lt;br /&gt;
1st paragraph;&lt;br /&gt;
should consist defining UNIX and POSIX/Threads &lt;br /&gt;
&lt;br /&gt;
2nd paragrah;&lt;br /&gt;
consisting the history behind POSIX and why UNIX was so late to implement the support of multithreaded processes. &lt;br /&gt;
&lt;br /&gt;
3rd paragraph;&lt;br /&gt;
should conclude it all.&lt;br /&gt;
&lt;br /&gt;
I agree, but I don&#039;t think that we should limit it to specifically &#039;paragraphs&#039; but rather sections. -afranco2&lt;br /&gt;
&lt;br /&gt;
Here is a site that would take care of paragraph 1:&lt;br /&gt;
https://computing.llnl.gov/tutorials/pthreads/&lt;br /&gt;
&lt;br /&gt;
GAUTHAM provided us with very useful pdf. that talks about the history of POSIX.&lt;br /&gt;
- Npatel1&lt;br /&gt;
&lt;br /&gt;
This may be a stupid question, buy does anybody know what we have to do for citation? Are we using footnotes like a regular wiki? Or is there another conformation we need to follow? -afranco2&lt;br /&gt;
&lt;br /&gt;
I&#039;ll  take care of the first paragraph if you guys are comfortable with the structure of the essay (post it by the end of today). since we already have AFRANCO2 who did the history portion of the essay.&lt;br /&gt;
&lt;br /&gt;
I made a new tab for &amp;quot;ESSAY&amp;quot; final copy*&lt;br /&gt;
&lt;br /&gt;
- Npatel1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I&#039;m not sure about the citations; just keep the links you used to gather the information, we&#039;ll ask him on Tuesday.&lt;br /&gt;
(i was just wondering, is this is the kind of structure you were looking for? or should we change the structure?)&lt;br /&gt;
&lt;br /&gt;
-Npatel1&lt;br /&gt;
&lt;br /&gt;
So what all do we need left? Sorry I am out of town trying to keep up as much as possible. Ive posted my research content on the primary page. And I&#039;ve noticed we are getting pretty organized with our essay format. Just as an update process what has been completed and what is left to do? Because i don&#039;t wanna type up a bunch of information we may not need anymore. So Whatever else we need I can type up with all our info and then we can out the together the essay in the next couple days.&lt;br /&gt;
&lt;br /&gt;
- Tmalone&lt;br /&gt;
&lt;br /&gt;
And I think the structure is a good idea. We have enough information to turn it all into a good essay. If you have another suggestion on the structure though by all means tell us what you think.&lt;br /&gt;
&lt;br /&gt;
- Tmalone&lt;br /&gt;
&lt;br /&gt;
sounds good! I&#039;m sorry i was unable to post the Intro today...&lt;br /&gt;
I&#039;ll make sure to have it by tomorrow!&lt;br /&gt;
&lt;br /&gt;
Tmalone, i think we have good portion for History; i will get us started with a good intro then link in the history as our second paragraph which afranco2 has provided. then we&#039;ll talk about why UNIX was soo late; finally conclude it all with a last paragraph.&lt;br /&gt;
&lt;br /&gt;
-Npatel1&lt;br /&gt;
&lt;br /&gt;
Alright, I&#039;ll get started on a possible conclusion format. Then we can post it all and edit and add/delete whatever we want. So then hopefully by Tuesdays class we will have a good make-up of the essay we want.&lt;br /&gt;
&lt;br /&gt;
- Tmalone&lt;br /&gt;
&lt;br /&gt;
I read the current essay format posted. It was really well done good job guys. I read over it and corrected some minor grammar errors. So by sometime tomorrow I&#039;ll have a possible conclusion paragraph posted. If anyone else wants to type anything up for a conclusion they can feel free to as well! The more the better.&lt;br /&gt;
&lt;br /&gt;
- Tmalone&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;/div&gt;</summary>
		<author><name>Tmalone</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_8&amp;diff=2837</id>
		<title>COMP 3000 Essay 1 2010 Question 8</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_8&amp;diff=2837"/>
		<updated>2010-10-10T19:03:43Z</updated>

		<summary type="html">&lt;p&gt;Tmalone: /* Essay */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Question=&lt;br /&gt;
&lt;br /&gt;
What is the history of POSIX Threads (pthreads)? Consider - does this history explain why UNIX was so late to implement support for multithreaded processes?&lt;br /&gt;
&lt;br /&gt;
=Essay=&lt;br /&gt;
(Final Copy goes here)&lt;br /&gt;
&lt;br /&gt;
-Npatel1; here is the first paragraph. you can edit/add more to the paragraph if needed!&lt;br /&gt;
&lt;br /&gt;
-Afranco2; I put in the history section/strung in tmalone&#039;s stuff as well. Again, feel free to edit/add content&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;POSIX threads, also known as Portable Operating System Interface, are high performance threads mainly distributed in UNIX but also to some Microsoft Windows OS. Threads are used in parallel programming; when a system call executes, the thread runs on an independent stream to finish its task with minimal interruptions or slowdowns. Pthreads are ideal for massive modifications to programs because the threads share one single memory space to alter a data structure, allowing constant high performance and efficiency. Pthread has become commonly used a way of adding concurrency to an application. They are widely used in UNIX; a powerful operating system written in the C language, which is continuously enhanced. Developers came across various obstacles with POSIX threads; during the beginnings of Pthreads, many technical issues had surfaced which were resolved throughout the history of POSIX threads.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The history of POSIX Threads is that many hardware sellers executed their own versions of threads. These developments differed from one another, creating difficulties for programmers to implement portable thread applications. UNIX traditionally had a system running only a single thread under a process. These processes could not share memory and interacted using &#039;pipes&#039;. Once developers started wanting to be able to run multiple threads under one process, IEEE began to form together the POSIX standards. In 1988 POSIX.1 (created to support application portability) was ratified and was accepted as the international standard in 1990. From there the POSIX standards grew to more than 20 individual standards, encapsulating a large area of different groups.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;POSIX.1 lays out the interfaces for OS services; thier syntax, and how they should act. It however does not define how the interface should be implemented on the OS. This is made to allow many different operating systems to conform to standards in thier own specific design and application. POSIX.2 was created for much the same reason as POSIX.1 (portable shell programming, portable program development) but describes a programmable shell and its common utilities.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;POSIX threading has always been an issue on Linux. UNIX was so late to implement support for multithreaded process because it does not map that well onto Linux; this is due to the significant differences in relationship between POSIX and UNIX.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Answer=&lt;br /&gt;
&lt;br /&gt;
Hey guys, i&#039;m just gunna get this started by posting a few links for everyone to get going.  This will help explain a general idea of what they are and the history of them. Please add some more links or anything else you think would be helpful!&lt;br /&gt;
&lt;br /&gt;
http://en.wikipedia.org/wiki/POSIX_Threads&lt;br /&gt;
https://computing.llnl.gov/tutorials/pthreads/&lt;br /&gt;
http://sourceware.org/pthreads-win32/&lt;br /&gt;
 &lt;br /&gt;
-[[User:tmalone|tmalone]]&lt;br /&gt;
&lt;br /&gt;
I found this, might not help, but it might:--[[User:Rannath|Rannath]] 02:09, 6 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
I&#039;m not sure about the rest of you, but most of what I am able to find has to do with information on things that fall under POSIX, not actually about POSIX-afranco2&lt;br /&gt;
&lt;br /&gt;
POSIX Threads, or pthreads, is a thread that is commonly used in UNIX systems but it also seen in some Microsoft Windows systems. A thread is a unit of process that executes segments of code within applications. When a process gets called from the system, the thread will execute the code for the process. POSIX stands for Portable Operating System Interface (for UNIX) and has been used by many independent sellers of hardware. There has always been issues such that developers could not create a reliable protable pthread application. For the use of multi-threading, its implementation arrived fairly late because the systems could not support it. Data mapping onto Linux gave birth to several problems due to the fact that POSIX and UNIX were implemented so differently.&lt;br /&gt;
&lt;br /&gt;
-[[User:tmalone|tmalone]]&lt;br /&gt;
&lt;br /&gt;
http://www.faqs.org/faqs/os-research/part1/section-10.html&lt;br /&gt;
&lt;br /&gt;
Might be of some use as well --[[User:Lmundt|Lmundt]] 14:48, 7 October 2010 (UTC)&lt;br /&gt;
https://computing.llnl.gov/tutorials/pthreads/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Edited version from what -tmalone has written.&lt;br /&gt;
&lt;br /&gt;
POSIX Threads is also called pthreads. Portable Operating System interface; mainly for Unix but it’s also distributed to some Microsoft Windows OS. A Thread is a unit of process that resides inside a process and executes when a system call has been executed. Threads have same global and all the threads share memory, threads also contain their personal private data. Pthread has become commonly used a way of adding concurrency to an application. The history of POSIX Threads is that many hardware sellers executed their own versions of threads. These developments differed from one another, creating difficulties for programmers to implement portable thread applications. POSIX threading has always been an issue on Linux. UNIX was so late to implement support for multithreaded process because it does not map that well onto linux; this is due to the significant differences in relationship between POSIX and UNIX.&lt;br /&gt;
&lt;br /&gt;
-Npatel1&lt;/div&gt;</summary>
		<author><name>Tmalone</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_1_2010_Question_8&amp;diff=2775</id>
		<title>Talk:COMP 3000 Essay 1 2010 Question 8</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_1_2010_Question_8&amp;diff=2775"/>
		<updated>2010-10-10T15:32:26Z</updated>

		<summary type="html">&lt;p&gt;Tmalone: /* Sources */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Sources ==&lt;br /&gt;
&lt;br /&gt;
[http://www.kernel.org/doc/ols/2002/ols2002-pages-330-337.pdf POSIX Threads and the Linux Kernel] --[[User:Gautam|Gautam]] 23:52, 5 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Not from your group. However I found a webpage which you might find useful. &lt;br /&gt;
[http://www.drdobbs.com/open-source/184406204;jsessionid=3MRSO5YMO1QVRQE1GHRSKHWATMY32JVN The New Implementation of Threads for Linux]&lt;br /&gt;
--[[User:Gautam|Gautam]] 22:56, 5 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Not extremely helpful but: [http://www.unix.com/unix-dummies-questions-answers/7-short-history-unix-l-madden-ic-ac-uk.html A short history of unix] [[User:Rift|Rift]] 18:30, 7 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
http://standards.ieee.org/regauth/posix/POSIX-A.FM5.pdf IEEE POSIX Testing Policy General Information&lt;br /&gt;
The POSIX family of standards, Stephen R. Walli&lt;br /&gt;
-afranco2&lt;br /&gt;
&lt;br /&gt;
I&#039;m not sure how we are planning on structuring this essay, but I will just write a bit on the history of Posix part for now. Does somebody want to handle writing an intro? - afranco2&lt;br /&gt;
&lt;br /&gt;
Hey guys, sorry for the late reply...&lt;br /&gt;
i just wanted everyone to finish their assignment portion. we would have our own set of explanation for question 8. &lt;br /&gt;
&lt;br /&gt;
AFRANCO2; Here is a suggestion.&lt;br /&gt;
&lt;br /&gt;
1st paragraph;&lt;br /&gt;
should consist defining UNIX and POSIX/Threads &lt;br /&gt;
&lt;br /&gt;
2nd paragrah;&lt;br /&gt;
consisting the history behind POSIX and why UNIX was so late to implement the support of multithreaded processes. &lt;br /&gt;
&lt;br /&gt;
3rd paragraph;&lt;br /&gt;
should conclude it all.&lt;br /&gt;
&lt;br /&gt;
I agree, but I don&#039;t think that we should limit it to specifically &#039;paragraphs&#039; but rather sections. -afranco2&lt;br /&gt;
&lt;br /&gt;
Here is a site that would take care of paragraph 1:&lt;br /&gt;
https://computing.llnl.gov/tutorials/pthreads/&lt;br /&gt;
&lt;br /&gt;
GAUTHAM provided us with very useful pdf. that talks about the history of POSIX.&lt;br /&gt;
- Npatel1&lt;br /&gt;
&lt;br /&gt;
This may be a stupid question, buy does anybody know what we have to do for citation? Are we using footnotes like a regular wiki? Or is there another conformation we need to follow? -afranco2&lt;br /&gt;
&lt;br /&gt;
I&#039;ll  take care of the first paragraph if you guys are comfortable with the structure of the essay (post it by the end of today). since we already have AFRANCO2 who did the history portion of the essay.&lt;br /&gt;
&lt;br /&gt;
I made a new tab for &amp;quot;ESSAY&amp;quot; final copy*&lt;br /&gt;
&lt;br /&gt;
- Npatel1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I&#039;m not sure about the citations; just keep the links you used to gather the information, we&#039;ll ask him on Tuesday.&lt;br /&gt;
(i was just wondering, is this is the kind of structure you were looking for? or should we change the structure?)&lt;br /&gt;
&lt;br /&gt;
-Npatel1&lt;br /&gt;
&lt;br /&gt;
So what all do we need left? Sorry I am out of town trying to keep up as much as possible. Ive posted my research content on the primary page. And I&#039;ve noticed we are getting pretty organized with our essay format. Just as an update process what has been completed and what is left to do? Because i don&#039;t wanna type up a bunch of information we may not need anymore. So Whatever else we need I can type up with all our info and then we can out the together the essay in the next couple days.&lt;br /&gt;
&lt;br /&gt;
- Tmalone&lt;br /&gt;
&lt;br /&gt;
And I think the structure is a good idea. We have enough information to turn it all into a good essay. If you have another suggestion on the structure though by all means tell us what you think.&lt;br /&gt;
&lt;br /&gt;
- Tmalone&lt;br /&gt;
&lt;br /&gt;
sounds good! I&#039;m sorry i was unable to post the Intro today...&lt;br /&gt;
I&#039;ll make sure to have it by tomorrow!&lt;br /&gt;
&lt;br /&gt;
Tmalone, i think we have good portion for History; i will get us started with a good intro then link in the history as our second paragraph which afranco2 has provided. then we&#039;ll talk about why UNIX was soo late; finally conclude it all with a last paragraph.&lt;br /&gt;
&lt;br /&gt;
-Npatel1&lt;br /&gt;
&lt;br /&gt;
Alright, I&#039;ll get started on a possible conclusion format. Then we can post it all and edit and add/delete whatever we want. So then hopefully by Tuesdays class we will have a good make-up of the essay we want.&lt;br /&gt;
&lt;br /&gt;
- Tmalone&lt;/div&gt;</summary>
		<author><name>Tmalone</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_1_2010_Question_8&amp;diff=2774</id>
		<title>Talk:COMP 3000 Essay 1 2010 Question 8</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_1_2010_Question_8&amp;diff=2774"/>
		<updated>2010-10-10T15:30:56Z</updated>

		<summary type="html">&lt;p&gt;Tmalone: /* Sources */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Sources ==&lt;br /&gt;
&lt;br /&gt;
[http://www.kernel.org/doc/ols/2002/ols2002-pages-330-337.pdf POSIX Threads and the Linux Kernel] --[[User:Gautam|Gautam]] 23:52, 5 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Not from your group. However I found a webpage which you might find useful. &lt;br /&gt;
[http://www.drdobbs.com/open-source/184406204;jsessionid=3MRSO5YMO1QVRQE1GHRSKHWATMY32JVN The New Implementation of Threads for Linux]&lt;br /&gt;
--[[User:Gautam|Gautam]] 22:56, 5 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Not extremely helpful but: [http://www.unix.com/unix-dummies-questions-answers/7-short-history-unix-l-madden-ic-ac-uk.html A short history of unix] [[User:Rift|Rift]] 18:30, 7 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
http://standards.ieee.org/regauth/posix/POSIX-A.FM5.pdf IEEE POSIX Testing Policy General Information&lt;br /&gt;
The POSIX family of standards, Stephen R. Walli&lt;br /&gt;
-afranco2&lt;br /&gt;
&lt;br /&gt;
I&#039;m not sure how we are planning on structuring this essay, but I will just write a bit on the history of Posix part for now. Does somebody want to handle writing an intro? - afranco2&lt;br /&gt;
&lt;br /&gt;
Hey guys, sorry for the late reply...&lt;br /&gt;
i just wanted everyone to finish their assignment portion. we would have our own set of explanation for question 8. &lt;br /&gt;
&lt;br /&gt;
AFRANCO2; Here is a suggestion.&lt;br /&gt;
&lt;br /&gt;
1st paragraph;&lt;br /&gt;
should consist defining UNIX and POSIX/Threads &lt;br /&gt;
&lt;br /&gt;
2nd paragrah;&lt;br /&gt;
consisting the history behind POSIX and why UNIX was so late to implement the support of multithreaded processes. &lt;br /&gt;
&lt;br /&gt;
3rd paragraph;&lt;br /&gt;
should conclude it all.&lt;br /&gt;
&lt;br /&gt;
I agree, but I don&#039;t think that we should limit it to specifically &#039;paragraphs&#039; but rather sections. -afranco2&lt;br /&gt;
&lt;br /&gt;
Here is a site that would take care of paragraph 1:&lt;br /&gt;
https://computing.llnl.gov/tutorials/pthreads/&lt;br /&gt;
&lt;br /&gt;
GAUTHAM provided us with very useful pdf. that talks about the history of POSIX.&lt;br /&gt;
- Npatel1&lt;br /&gt;
&lt;br /&gt;
This may be a stupid question, buy does anybody know what we have to do for citation? Are we using footnotes like a regular wiki? Or is there another conformation we need to follow? -afranco2&lt;br /&gt;
&lt;br /&gt;
I&#039;ll  take care of the first paragraph if you guys are comfortable with the structure of the essay (post it by the end of today). since we already have AFRANCO2 who did the history portion of the essay.&lt;br /&gt;
&lt;br /&gt;
I made a new tab for &amp;quot;ESSAY&amp;quot; final copy*&lt;br /&gt;
&lt;br /&gt;
- Npatel1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I&#039;m not sure about the citations; just keep the links you used to gather the information, we&#039;ll ask him on Tuesday.&lt;br /&gt;
(i was just wondering, is this is the kind of structure you were looking for? or should we change the structure?)&lt;br /&gt;
&lt;br /&gt;
-Npatel1&lt;br /&gt;
&lt;br /&gt;
So what all do we need left? Sorry I am out of town trying to keep up as much as possible. Ive posted my research content on the primary page. And I&#039;ve noticed we are getting pretty organized with our essay format. Just as an update process what has been completed and what is left to do? Because i don&#039;t wanna type up a bunch of information we may not need anymore. So Whatever else we need I can type up with all our info and then we can out the together the essay in the next couple days.&lt;br /&gt;
&lt;br /&gt;
- Tmalone&lt;br /&gt;
&lt;br /&gt;
And I think the structure is a good idea. We have enough information to turn it all into a good essay. If you have another suggestion on the structure though by all means tell us what you think.&lt;br /&gt;
&lt;br /&gt;
- Tmalone&lt;br /&gt;
&lt;br /&gt;
sounds good! I&#039;m sorry i was unable to post the Intro today...&lt;br /&gt;
I&#039;ll make sure to have it by tomorrow!&lt;br /&gt;
&lt;br /&gt;
Tmalone, i think we have good portion for History; i will get us started with a good intro then link in the history as our second paragraph which afranco2 has provided. then we&#039;ll talk about why UNIX was soo late; finally conclude it all with a last paragraph.&lt;br /&gt;
&lt;br /&gt;
-Npatel1&lt;br /&gt;
&lt;br /&gt;
Alright, I&#039;ll get started on a possible conclusion format. Then we can post it all and edit and add/delete whatever we want. So then hopefully by Tuesdays class we will have a good make-up of the essay we want.&lt;/div&gt;</summary>
		<author><name>Tmalone</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_1_2010_Question_8&amp;diff=2722</id>
		<title>Talk:COMP 3000 Essay 1 2010 Question 8</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_1_2010_Question_8&amp;diff=2722"/>
		<updated>2010-10-10T00:13:27Z</updated>

		<summary type="html">&lt;p&gt;Tmalone: /* Sources */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Sources ==&lt;br /&gt;
&lt;br /&gt;
[http://www.kernel.org/doc/ols/2002/ols2002-pages-330-337.pdf POSIX Threads and the Linux Kernel] --[[User:Gautam|Gautam]] 23:52, 5 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Not from your group. However I found a webpage which you might find useful. &lt;br /&gt;
[http://www.drdobbs.com/open-source/184406204;jsessionid=3MRSO5YMO1QVRQE1GHRSKHWATMY32JVN The New Implementation of Threads for Linux]&lt;br /&gt;
--[[User:Gautam|Gautam]] 22:56, 5 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Not extremely helpful but: [http://www.unix.com/unix-dummies-questions-answers/7-short-history-unix-l-madden-ic-ac-uk.html A short history of unix] [[User:Rift|Rift]] 18:30, 7 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
http://standards.ieee.org/regauth/posix/POSIX-A.FM5.pdf IEEE POSIX Testing Policy General Information&lt;br /&gt;
The POSIX family of standards, Stephen R. Walli&lt;br /&gt;
-afranco2&lt;br /&gt;
&lt;br /&gt;
I&#039;m not sure how we are planning on structuring this essay, but I will just write a bit on the history of Posix part for now. Does somebody want to handle writing an intro? - afranco2&lt;br /&gt;
&lt;br /&gt;
Hey guys, sorry for the late reply...&lt;br /&gt;
i just wanted everyone to finish their assignment portion. we would have our own set of explanation for question 8. &lt;br /&gt;
&lt;br /&gt;
AFRANCO2; you mentioned that how are we taking care of the structure of the essay? &lt;br /&gt;
&lt;br /&gt;
here is a suggestion:&lt;br /&gt;
&lt;br /&gt;
1st paragraph;&lt;br /&gt;
should consist defining UNIX and POSIX/Threads &lt;br /&gt;
&lt;br /&gt;
2nd paragrah;&lt;br /&gt;
consisting the history behind POSIX and why UNIX was so late to implement the support of multithreaded processes. &lt;br /&gt;
&lt;br /&gt;
3rd paragraph;&lt;br /&gt;
should conclude it all.&lt;br /&gt;
&lt;br /&gt;
I agree, but I don&#039;t think that we should limit it to specifically &#039;paragraphs&#039; but rather sections. -afranco2&lt;br /&gt;
&lt;br /&gt;
Here is a site that would take care of paragraph 1:&lt;br /&gt;
https://computing.llnl.gov/tutorials/pthreads/&lt;br /&gt;
&lt;br /&gt;
GAUTHAM provided us with very useful pdf. that talks about the history of POSIX.&lt;br /&gt;
- Npatel1&lt;br /&gt;
&lt;br /&gt;
This may be a stupid question, buy does anybody know what we have to do for citation? Are we using footnotes like a regular wiki? Or is there another conformation we need to follow? -afranco2&lt;br /&gt;
&lt;br /&gt;
I&#039;ll  take care of the first paragraph if you guys are comfortable with the structure of the essay (post it by the end of today). since we already have AFRANCO2 who did the history portion of the essay.&lt;br /&gt;
&lt;br /&gt;
I made a new tab for &amp;quot;ESSAY&amp;quot; final copy*&lt;br /&gt;
&lt;br /&gt;
- Npatel1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I&#039;m not sure about the citations; just keep the links you used to gather the information, we&#039;ll ask him on Tuesday.&lt;br /&gt;
(i was just wondering, is this is the kind of structure you were looking for? or should we change the structure?)&lt;br /&gt;
&lt;br /&gt;
-Npatel1&lt;br /&gt;
&lt;br /&gt;
So what all do we need left? Sorry I am out of town trying to keep up as much as possible. Ive posted my research content on the primary page. And I&#039;ve noticed we are getting pretty organized with our essay format. Just as an update process what has been completed and what is left to do? Because i don&#039;t wanna type up a bunch of information we may not need anymore. So Whatever else we need I can type up with all our info and then we can out the together the essay in the next couple days.&lt;br /&gt;
&lt;br /&gt;
- Tmalone&lt;br /&gt;
&lt;br /&gt;
And I think the structure is a good idea. We have enough information to turn it all into a good essay. If you have another suggestion on the structure though by all means tell us what you think.&lt;/div&gt;</summary>
		<author><name>Tmalone</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_1_2010_Question_8&amp;diff=2721</id>
		<title>Talk:COMP 3000 Essay 1 2010 Question 8</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_1_2010_Question_8&amp;diff=2721"/>
		<updated>2010-10-10T00:09:40Z</updated>

		<summary type="html">&lt;p&gt;Tmalone: /* Sources */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Sources ==&lt;br /&gt;
&lt;br /&gt;
[http://www.kernel.org/doc/ols/2002/ols2002-pages-330-337.pdf POSIX Threads and the Linux Kernel] --[[User:Gautam|Gautam]] 23:52, 5 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Not from your group. However I found a webpage which you might find useful. &lt;br /&gt;
[http://www.drdobbs.com/open-source/184406204;jsessionid=3MRSO5YMO1QVRQE1GHRSKHWATMY32JVN The New Implementation of Threads for Linux]&lt;br /&gt;
--[[User:Gautam|Gautam]] 22:56, 5 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Not extremely helpful but: [http://www.unix.com/unix-dummies-questions-answers/7-short-history-unix-l-madden-ic-ac-uk.html A short history of unix] [[User:Rift|Rift]] 18:30, 7 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
http://standards.ieee.org/regauth/posix/POSIX-A.FM5.pdf IEEE POSIX Testing Policy General Information&lt;br /&gt;
The POSIX family of standards, Stephen R. Walli&lt;br /&gt;
-afranco2&lt;br /&gt;
&lt;br /&gt;
I&#039;m not sure how we are planning on structuring this essay, but I will just write a bit on the history of Posix part for now. Does somebody want to handle writing an intro? - afranco2&lt;br /&gt;
&lt;br /&gt;
Hey guys, sorry for the late reply...&lt;br /&gt;
i just wanted everyone to finish their assignment portion. we would have our own set of explanation for question 8. &lt;br /&gt;
&lt;br /&gt;
AFRANCO2; you mentioned that how are we taking care of the structure of the essay? &lt;br /&gt;
&lt;br /&gt;
here is a suggestion:&lt;br /&gt;
&lt;br /&gt;
1st paragraph;&lt;br /&gt;
should consist defining UNIX and POSIX/Threads &lt;br /&gt;
&lt;br /&gt;
2nd paragrah;&lt;br /&gt;
consisting the history behind POSIX and why UNIX was so late to implement the support of multithreaded processes. &lt;br /&gt;
&lt;br /&gt;
3rd paragraph;&lt;br /&gt;
should conclude it all.&lt;br /&gt;
&lt;br /&gt;
I agree, but I don&#039;t think that we should limit it to specifically &#039;paragraphs&#039; but rather sections. -afranco2&lt;br /&gt;
&lt;br /&gt;
Here is a site that would take care of paragraph 1:&lt;br /&gt;
https://computing.llnl.gov/tutorials/pthreads/&lt;br /&gt;
&lt;br /&gt;
GAUTHAM provided us with very useful pdf. that talks about the history of POSIX.&lt;br /&gt;
- Npatel1&lt;br /&gt;
&lt;br /&gt;
This may be a stupid question, buy does anybody know what we have to do for citation? Are we using footnotes like a regular wiki? Or is there another conformation we need to follow? -afranco2&lt;br /&gt;
&lt;br /&gt;
I&#039;ll  take care of the first paragraph if you guys are comfortable with the structure of the essay (post it by the end of today). since we already have AFRANCO2 who did the history portion of the essay.&lt;br /&gt;
&lt;br /&gt;
I made a new tab for &amp;quot;ESSAY&amp;quot; final copy*&lt;br /&gt;
&lt;br /&gt;
- Npatel1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I&#039;m not sure about the citations; just keep the links you used to gather the information, we&#039;ll ask him on Tuesday.&lt;br /&gt;
(i was just wondering, is this is the kind of structure you were looking for? or should we change the structure?)&lt;br /&gt;
&lt;br /&gt;
-Npatel1&lt;br /&gt;
&lt;br /&gt;
So what all do we need left? Sorry I am out of town trying to keep up as much as possible. Ive posted my research content on the primary page. And I&#039;ve noticed we are getting pretty organized with our essay format. Just as an update process what has been completed and what is left to do? Because i don&#039;t wanna type up a bunch of information we may not need anymore. So Whatever else we need I can type up with all our info and then we can out the together the essay in the next couple days.&lt;br /&gt;
&lt;br /&gt;
- Tmalone&lt;/div&gt;</summary>
		<author><name>Tmalone</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_8&amp;diff=2641</id>
		<title>COMP 3000 Essay 1 2010 Question 8</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_8&amp;diff=2641"/>
		<updated>2010-10-09T03:53:45Z</updated>

		<summary type="html">&lt;p&gt;Tmalone: /* Answer */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Question=&lt;br /&gt;
&lt;br /&gt;
What is the history of POSIX Threads (pthreads)? Consider - does this history explain why UNIX was so late to implement support for multithreaded processes?&lt;br /&gt;
&lt;br /&gt;
=Answer=&lt;br /&gt;
&lt;br /&gt;
	Posix threads began in an era when multithreading started becoming a popular idea. UNIX traditionally had a  system running only a single thread under a process. These processes could not share memory and interacted using &#039;pipes&#039;. Once developers started wanting to be able to run multiple threads under one process, IEEE began to form together the POSIX standards. In 1988 POSIX.1 was ratified and was accepted as the international standard in 1990. From there the POSIX standards grew to more than 20 individual standards, encapsulating a large area of different groups.-afranco2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hey guys, i&#039;m just gunna get this started by posting a few links for everyone to get going.  This will help explain a general idea of what they are and the history of them. Please add some more links or anything else you think would be helpful!&lt;br /&gt;
&lt;br /&gt;
http://en.wikipedia.org/wiki/POSIX_Threads&lt;br /&gt;
https://computing.llnl.gov/tutorials/pthreads/&lt;br /&gt;
http://sourceware.org/pthreads-win32/&lt;br /&gt;
 &lt;br /&gt;
-[[User:tmalone|tmalone]]&lt;br /&gt;
&lt;br /&gt;
I found this, might not help, but it might:--[[User:Rannath|Rannath]] 02:09, 6 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
I&#039;m not sure about the rest of you, but most of what I am able to find has to do with information on things that fall under POSIX, not actually about POSIX-afranco2&lt;br /&gt;
&lt;br /&gt;
POSIX Threads, or pthreads, is a thread that is commonly used in UNIX systems but it also seen in some Microsoft Windows systems. A thread is a unit of process that executes segments of code within applications. When a process gets called from the system, the thread will execute the code for the process. POSIX stands for Portable Operating System Interface (for UNIX) and has been used by many independent sellers of hardware. There has always been issues such that developers could not create a reliable protable pthread application. For the use of multi-threading, its implementation arrived fairly late because the systems could not support it. Data mapping onto Linux gave birth to several problems due to the fact that POSIX and UNIX were implemented so differently.&lt;br /&gt;
&lt;br /&gt;
-[[User:tmalone|tmalone]]&lt;br /&gt;
&lt;br /&gt;
http://www.faqs.org/faqs/os-research/part1/section-10.html&lt;br /&gt;
&lt;br /&gt;
Might be of some use as well --[[User:Lmundt|Lmundt]] 14:48, 7 October 2010 (UTC)&lt;br /&gt;
https://computing.llnl.gov/tutorials/pthreads/&lt;/div&gt;</summary>
		<author><name>Tmalone</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_8&amp;diff=2393</id>
		<title>COMP 3000 Essay 1 2010 Question 8</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_8&amp;diff=2393"/>
		<updated>2010-10-06T13:18:06Z</updated>

		<summary type="html">&lt;p&gt;Tmalone: /* Answer */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Question=&lt;br /&gt;
&lt;br /&gt;
What is the history of POSIX Threads (pthreads)? Consider - does this history explain why UNIX was so late to implement support for multithreaded processes?&lt;br /&gt;
&lt;br /&gt;
=Answer=&lt;br /&gt;
Hey guys, i&#039;m just gunna get this started by posting a few links for everyone to get going.  This will help explain a general idea of what they are and the history of them. Please add some more links or anything else you think would be helpful!&lt;br /&gt;
&lt;br /&gt;
http://en.wikipedia.org/wiki/POSIX_Threads&lt;br /&gt;
https://computing.llnl.gov/tutorials/pthreads/&lt;br /&gt;
http://sourceware.org/pthreads-win32/&lt;br /&gt;
 &lt;br /&gt;
-[[User:tmalone|tmalone]]&lt;br /&gt;
&lt;br /&gt;
I found this, might not help, but it might:--[[User:Rannath|Rannath]] 02:09, 6 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
http://www.faqs.org/faqs/os-research/part1/section-10.html&lt;/div&gt;</summary>
		<author><name>Tmalone</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_8&amp;diff=2386</id>
		<title>COMP 3000 Essay 1 2010 Question 8</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_8&amp;diff=2386"/>
		<updated>2010-10-06T00:32:47Z</updated>

		<summary type="html">&lt;p&gt;Tmalone: /* Answer */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Question=&lt;br /&gt;
&lt;br /&gt;
What is the history of POSIX Threads (pthreads)? Consider - does this history explain why UNIX was so late to implement support for multithreaded processes?&lt;br /&gt;
&lt;br /&gt;
=Answer=&lt;br /&gt;
Hey guys, i&#039;m just gunna get this started by posting a few links for everyone to get going.  This will help explain a general idea of what they are and the history of them. Please add some more links or anything else you think would be helpful!&lt;br /&gt;
&lt;br /&gt;
http://en.wikipedia.org/wiki/POSIX_Threads&lt;br /&gt;
https://computing.llnl.gov/tutorials/pthreads/&lt;br /&gt;
http://sourceware.org/pthreads-win32/&lt;br /&gt;
 &lt;br /&gt;
-Trevor&lt;/div&gt;</summary>
		<author><name>Tmalone</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_8&amp;diff=2385</id>
		<title>COMP 3000 Essay 1 2010 Question 8</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_8&amp;diff=2385"/>
		<updated>2010-10-06T00:30:49Z</updated>

		<summary type="html">&lt;p&gt;Tmalone: /* Answer */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Question=&lt;br /&gt;
&lt;br /&gt;
What is the history of POSIX Threads (pthreads)? Consider - does this history explain why UNIX was so late to implement support for multithreaded processes?&lt;br /&gt;
&lt;br /&gt;
=Answer=&lt;br /&gt;
Hey guys, i&#039;m just gunna get this started by posting a few links for everyone to get going.  This will help explain a general idea of what they are and the history of them. Please add some more links or anything else you think would be helpful!&lt;br /&gt;
&lt;br /&gt;
http://en.wikipedia.org/wiki/POSIX_Threads&lt;br /&gt;
https://computing.llnl.gov/tutorials/pthreads/&lt;br /&gt;
http://sourceware.org/pthreads-win32/&lt;/div&gt;</summary>
		<author><name>Tmalone</name></author>
	</entry>
</feed>