+ All Categories
Home > Documents > Processes and Threads in Windows

Processes and Threads in Windows

Date post: 22-Feb-2016
Category:
Upload: damian
View: 75 times
Download: 0 times
Share this document with a friend
Description:
Processes and Threads in Windows. Borislav Varadinov. Telerik Software Academy. academy.telerik.com. System Administrator. [email protected]. Marian Marinov. CEO of 1H Ltd. [email protected]. Table of Contents. Processes, Threads and Jobs Access Tokens Scheduling Priority. What is a process? - PowerPoint PPT Presentation
Popular Tags:
19
Processes and Threads in Windows Borislav Varadinov Telerik Software Academy academy.telerik.com System Administrator Marian Marinov CEO of 1H Ltd. [email protected] [email protected]
Transcript
Page 1: Processes and Threads  in  Windows

Processes and Threads in Windows

Borislav Varadinov

Telerik Software Academy

academy.telerik.com

System AdministratorMarian

MarinovCEO of 1H [email protected]@itp.bg

Page 2: Processes and Threads  in  Windows

Table of Contents Processes, Threads and Jobs Access Tokens Scheduling Priority

2

Page 3: Processes and Threads  in  Windows

Process, Thread and Jobs

What is a process? Represents an instance of a running program

You create a process to run a program Starting an application creates a process

What is a thread? An execution context within a process All threads in a process share the same per-process address space

What is a job? Allows groups of process to be managed as a single unit

Page 4: Processes and Threads  in  Windows

Process A private 4GB virtual address space (8TB on 64-bit)

Processes cannot corrupt each other’s address space An executable program, which defines initial code and

data and is mapped into the process's virtual address space

A list of open handles to various system resources, such as files, registry objects and communication ports, that are accessible to all threads in the process

A security context called an access token that identifies the user, security groups, and privileges associated with the process

A unique identifier called a process ID At least one thread of execution

Page 5: Processes and Threads  in  Windows

Thread The contents of a set of CPU registers

representing the state of the processor A private storage area called thread-local

storage (TLS) A unique identifier called a thread ID Threads sometimes have their own

security context that is often used by multithreaded server applications that impersonate the security context of the clients that they serve

The registers, the stacks, and the TLS are called the thread's context

Page 6: Processes and Threads  in  Windows

Processes and Threads

Page 7: Processes and Threads  in  Windows

What is an Access Token?

The system creates an access token when a user logs on.

Every process executed on behalf of the user has a copy of the token.

The token identifies the user, the user's groups, and the user's privileges.

The system uses the token to control access to securable objects.

There are two kinds of access token, primary and impersonation.

Access tokens contain the security information for a logon session

Page 8: Processes and Threads  in  Windows

What is Impersonation?

Typically, a thread in a server application impersonates a client

This allows the server thread to act on behalf of that client to access objects on the server or validate access to the client's own objects

Impersonation is the ability of a thread to execute using different security information than the process that owns the thread

Page 9: Processes and Threads  in  Windows

Thread Impersonation Example

Group/User TypeManagers R/WCompany Users RAdministrators F

9

File.docx

SMB Server ProcessThread 1

Thread 2

Thread 3

F

R

R/W

Access TokenBobiCompany UsersAdministratorsAccess TokenSecretaryCompany UsersOffice AssistantsAccess TokenBossCompany UsersManagers

Page 10: Processes and Threads  in  Windows

Multithreading Examples

Web Server supports many clientsat the same time

Performing background work Keeping the GUI responsive Parallelizing a calculationacross multiple processors

Multiple threads are used when there are several tasks to be executed concurrently within a single logical context

Page 11: Processes and Threads  in  Windows

Thread Scheduling Once every quantum, Windows looks at all ready threads (usually 20 or 30 milliseconds) Only one thread is selected Windows performs a switch to the context of this thread (a context switch) Each thread has the illusion it’s the only piece of code running

Page 12: Processes and Threads  in  Windows

Windows Thread Scheduling Scheme

Windows scheduling Priority-driven Preemptive scheduling system The highest-priority ready thread always runs

After the quantum expires, Windows may reschedule the thread Windows may reschedule the thread even if its quantum has not expired

For example, if a higher-priority thread becomes ready to run

Page 13: Processes and Threads  in  Windows

Scheduling Scenarios When does the Windows scheduler schedule? Voluntary switch by thread Preemption Quantum end Thread termination

Page 14: Processes and Threads  in  Windows

Scheduling On A Thread Basis

Scheduling decisions are made strictly on a thread basis

The process that a thread belongs to does not matter

Page 15: Processes and Threads  in  Windows

Thread Priority Levels 32 priority levels (0-31): “Real-time” levels (16-31) “Dynamic” levels (1-15) System level (0), reserved for the zero page thread

Page 16: Processes and Threads  in  Windows

Balance set manager Once per second, the balance set manager looks for threads that haven’t run for longer time period Boosts their priority to 15 and gives them double the normal quantum Once the quantum is up, the execution is immediate There’s a limit on the numbers of threads scanned and boosted at each pass

Page 17: Processes and Threads  in  Windows

User mode threads

Analogous to threading libraries under many Unix systems

A fiber is a unit of execution that must be manually scheduled by the application

User-mode scheduling (UMS) is a lightweight mechanism that applications can use to schedule their own threads. UMS threads differ from fibers in that each UMS thread has its own thread context instead of sharing the thread context of a single thread.

User mode threads allow an application to schedule its own “threads” of execution

Page 18: Processes and Threads  in  Windows

форум програмиране, форум уеб дизайнкурсове и уроци по програмиране, уеб дизайн – безплатно

програмиране за деца – безплатни курсове и уроцибезплатен SEO курс - оптимизация за търсачки

уроци по уеб дизайн, HTML, CSS, JavaScript, Photoshop

уроци по програмиране и уеб дизайн за ученициASP.NET MVC курс – HTML, SQL, C#, .NET, ASP.NET MVC

безплатен курс "Разработка на софтуер в cloud среда"

BG Coder - онлайн състезателна система - online judge

курсове и уроци по програмиране, книги – безплатно от Наков

безплатен курс "Качествен програмен код"

алго академия – състезателно програмиране, състезанияASP.NET курс - уеб програмиране, бази данни, C#, .NET, ASP.NET

курсове и уроци по програмиране – Телерик академия

курс мобилни приложения с iPhone, Android, WP7, PhoneGapfree C# book, безплатна книга C#, книга Java, книга C# Дончо Минков - сайт за програмиране

Николай Костов - блог за програмиранеC# курс, програмиране, безплатно

?? ? ?

??? ?

?

? ?

??

?

?

? ?

Questions?

?

Windows Processes and Threads

http://academy.telerik.com

Page 19: Processes and Threads  in  Windows

Free Trainings @ Telerik Academy

"Web Design with HTML 5, CSS 3 and JavaScript" course @ Telerik Academy html5course.telerik.com

Telerik Software Academy academy.telerik.com

Telerik Academy @ Facebook facebook.com/TelerikAcademy

Telerik Software Academy Forums forums.academy.telerik.com


Recommended