Post new topic Reply to topic  [ 2 posts ] 
Process, thread, block, closure, kernel 
Author Message
Site Admin
User avatar

Joined: Mon Oct 12, 2009 3:11 pm
Posts: 328
Location: Irvine, CA
Post Process, thread, block, closure, kernel
What is a process?

What is a thread?

What is a block (libdispatch C-block)?

What is a closure (C)?

What is a kernel (CUDA/OpenCL)?

I know a lot of us already know the answers, so lets get answering. This will also be a discussion, so feel free to disagree.

_________________
Website: http://www.intercottageindustries.com
Handle: Taenon

Ubuntu/Win7 January 2010:
AMD Phenom II x4 955 BE @ 3.6GHz (from 3.2GHz)
ASUS 790X Mobo @ 2000MHz HT
G.Skill 2x2GiB DDR3 @ 9-9-9-24 1600MHz
BFG GTX 260 core 216 896MiB
Corsair 750tx 750W PSU


Mon Nov 30, 2009 3:24 pm
Profile WWW
User avatar

Joined: Tue Oct 13, 2009 7:43 am
Posts: 143
Post Re: Process, thread, block, closure, kernel
process and thread:
For non-programmers they're basically the same thing, they are ways of getting your computer to do multiple
things/tasks/operations/etc... at the same time, as opposed to the computer doing one thing at a time.
From a deeper view, processes are completely isolated/independent computing entities, each running their
own programs/operations within their own personal space. Whereas threads, they're living within a process and
share a common space/memory with each other, and are generally used to perform very specific tasks within
the process.
For example, applications such as a web-browser and a media-player are 2 separate processes. They can
run at the same on your computer, but are 2 separate entities, that don't need to share anything with the
other in order to run. At the same time, both of the processes have multiple threads running within them,
for example in the web-browser one thread might be downloading a file while another thread will be processing
an html file to-be displayed to the user, but both will share certain web-browser attributes, needed for them
to do their task. A thread runs within a process, it can't run on its own.

So the way I think about it is, processes are like people, they are all independent/individual entities,
that all do their own thing. Whereas threads are what's happening within people, the "multitasking" that happens
within us, our "thoughts". And like a computer with multiple processes running at the same time, and each
process in turn running multiple threads, multiple people live in the world and have their thoughts
running all at the same time.
It becomes clear why concurrency is so important in computing, just imaging a world where only one person's
task could occur at a time... :o


Sat Dec 05, 2009 12:25 am
Profile
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 2 posts ] 


Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Forum style by Vjacheslav Trushkin for Free Forum/DivisionCore.