Processes Threads Handles

Processes

  • An instance of an executable

  • Think of it as a container

  • An application can have many processes i.e. your web browser

    • each tab you open will spawn a new processes

  • A Process typically isnt aware of other processes on the machine

    • It believes it is the only process on the machine

  • Each processes is started with a single thread, often called primary thread but can create additional threads from any of its threads

Three Types of Processes

  • Application Processes

    • i.e chrome is an application process

    • Can be terminated by the user

  • Background processes

    • Get started automatically

    • updating software

    • anti viruses

  • Windows Processes

    • system level processes

    • automatically get launched at start up

      • device drivers

      • windows memory management

Process Priority

  • determines the amount of CPU time each processes will be allocated

  • there are 6 different levels

    • Realtime

    • High

    • Above normal

    • Normal

    • Below normal

    • Low

Low

  • only be given cpu time when there are no other higher priority processes running on the system

Normal

  • by default normal is used for the creation of a processes

    • NORMAL_PRIORITY_CLASS

Realtime

  • full access to the cpu

  • very dangerous as this is higher than disk cache, mouse, keyboard

  • will leave no cycles for anything else

Threads

  • a thread is the entity within a processes that can be scheduled for execution

  • All threads of a process share its virtual address space and system resources

  • Process can have many threads

    • also called multi threading

Differences Processes and Threads

  • processes use much more resources

  • threads are lightweight

  • processes are a team trying to complete a project

  • thread is a single member of the team working on a part of a project

  • processes are independent of each other

  • threads are dependent on each other

Handle

  • Generic unit of identification

  • pointer to our object

  • many different types of handles

    • the most common one is handles to processes and handles to modules

  • handles are system wide

Last updated