COMP 3000 Essay 1 2010 Question 8
Question
What is the history of POSIX Threads (pthreads)? Consider - does this history explain why UNIX was so late to implement support for multithreaded processes?
Essay
(Final Copy goes here)
Answer
Hey guys, i'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!
http://en.wikipedia.org/wiki/POSIX_Threads https://computing.llnl.gov/tutorials/pthreads/ http://sourceware.org/pthreads-win32/
I found this, might not help, but it might:--Rannath 02:09, 6 October 2010 (UTC)
I'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
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.
http://www.faqs.org/faqs/os-research/part1/section-10.html
Might be of some use as well --Lmundt 14:48, 7 October 2010 (UTC) https://computing.llnl.gov/tutorials/pthreads/
Edited version from what -tmalone has written.
POSIX Threads is also called pthreads. It’s a Portable Operating System interface is mainly for Unix but it’s also distributed to some Microsoft Windows OS. A Thread is a unit of process that resigns 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.
-Npatel1
Just a reorganized version of the above, with more history edited into the middle. See the discussion page for organization notes:
POSIX Threads is also called pthreads. It’s a Portable Operating System interface is mainly for Unix but it’s also distributed to some Microsoft Windows OS. A Thread is a unit of process that resigns 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. UNIX traditionally had a system running only a single thread under a process. These processes could not share memory and interacted using 'pipes'. 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.
POSIX.1 lays out the interfaces for OS services; thier syntax, and how they should act. It however does not define the 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.
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. -afranco2