Processes and Threads: Difference between revisions

From OSDev.wiki
Jump to navigation Jump to search
[unchecked revision][unchecked revision]
Content added Content deleted
No edit summary
m (Changed the broken link "Sleeping and Waiting Processes" to the actual "Blocking Processes")
Line 17: Line 17:
* [[Scheduling Algorithms]]
* [[Scheduling Algorithms]]
* [[Multiprocessor Scheduling]]
* [[Multiprocessor Scheduling]]
* [[Sleeping and Waiting Processes]]
* [[Blocking Processes]]


==See Also==
==See Also==

Revision as of 07:37, 29 September 2008

This page is a work in progress.
This page may thus be incomplete. Its content may be changed in the near future.

Processes

Processes are running programs, including code, data, heap, and stack. In most implementations (but not always), each process has its own virtual address space (i.e. its own logical address-to-physical memory mapping) and its own set of system resources (files, environment variable, etc.)

Threads

A thread is a control flow in an executable image. Threads can be "user level" (i.e., the process handles multiple threads within itself) or "kernel level" (i.e., the OS scheduler handles multiple threads within a single process). Two threads from the same process naturally share the same code and global data but are given different stacks so that they do not interfere with each other's local variable and may have their own call chain.

Task Models

Scheduling

See Also