The document discusses processes and threads in operating systems. It describes how processes contain multiple threads that can run concurrently on multicore systems. Each thread has its own execution state and context stored in a thread control block. When a thread is not actively running, its context is saved so it can resume execution later. The document provides examples of how threads are implemented in Windows and Linux operating systems.
In this presentation, I am explaining about Threads, types of threads, its advantages and disadvantages, difference between Process and Threads, multithreading and its type.
"Like the ppt if you liked the ppt"
LinkedIn - https://in.linkedin.com/in/prakharmaurya
In the given presentation, process overview,process management scheduling typesand some more basic concepts were explained.
Kindly refere the presentation.
This is the twelfth set of slightly updated slides from a Perl programming course that I held some years ago.
I want to share it with everyone looking for intransitive Perl-knowledge.
A table of content for all presentations can be found at i-can.eu.
The source code for the examples and the presentations in ODP format are on https://github.com/kberov/PerlProgrammingCourse
Interfacing With High Level Programming Language
High Level Programming Language
Categories of programming languages
Processing a High-Level Language Program
Advantages of high-level languages
Interface-Based Programming
Interfaces in Object Oriented Programming Languages
Implementing an Interface
Selection Statements
Using if and if...else
Nested if Statements
Using switch Statements
Conditional Operator
Repetition Statements
Looping: while, do, and for
Nested loops
Using break and continue
In this presentation, I am explaining about Threads, types of threads, its advantages and disadvantages, difference between Process and Threads, multithreading and its type.
"Like the ppt if you liked the ppt"
LinkedIn - https://in.linkedin.com/in/prakharmaurya
In the given presentation, process overview,process management scheduling typesand some more basic concepts were explained.
Kindly refere the presentation.
This is the twelfth set of slightly updated slides from a Perl programming course that I held some years ago.
I want to share it with everyone looking for intransitive Perl-knowledge.
A table of content for all presentations can be found at i-can.eu.
The source code for the examples and the presentations in ODP format are on https://github.com/kberov/PerlProgrammingCourse
Interfacing With High Level Programming Language
High Level Programming Language
Categories of programming languages
Processing a High-Level Language Program
Advantages of high-level languages
Interface-Based Programming
Interfaces in Object Oriented Programming Languages
Implementing an Interface
Selection Statements
Using if and if...else
Nested if Statements
Using switch Statements
Conditional Operator
Repetition Statements
Looping: while, do, and for
Nested loops
Using break and continue
Getting started with setting up embedded platform requires audience to understand some of the key aspects of Linux. This presentation deals with basics of Linux as an OS, Linux commands, vi editor, Shell features like redirection, pipes and shell scripting
Gives an overview about Process, PCB, Process States, Process Operations, Scheduling, Schedulers, Interprocess communication, shared memory and message passing systems
a. Concept and Definition
b. Binary Tree
c. Introduction and application
d. Operation
e. Types of Binary Tree
• Complete
• Strictly
• Almost Complete
f. Huffman algorithm
g. Binary Search Tree
• Insertion
• Deletion
• Searching
h. Tree Traversal
• Pre-order traversal
• In-order traversal
• Post-order traversal
Slides at myblog
http://www.ashimlamichhane.com.np/2016/07/tree-slide-for-data-structure-and-algorithm/
Assignments at github
https://github.com/ashim888/dataStructureAndAlgorithm/tree/dev/Assignments/assignment_7
OPERATING SYSTEM SERVICES, OPERATING SYSTEM STRUCTURESpriyasoundar
These slides will help the engineering students for understanding the functionalities of operating system and its structure. Also it will help them for their exam preparation.
Getting started with setting up embedded platform requires audience to understand some of the key aspects of Linux. This presentation deals with basics of Linux as an OS, Linux commands, vi editor, Shell features like redirection, pipes and shell scripting
Gives an overview about Process, PCB, Process States, Process Operations, Scheduling, Schedulers, Interprocess communication, shared memory and message passing systems
a. Concept and Definition
b. Binary Tree
c. Introduction and application
d. Operation
e. Types of Binary Tree
• Complete
• Strictly
• Almost Complete
f. Huffman algorithm
g. Binary Search Tree
• Insertion
• Deletion
• Searching
h. Tree Traversal
• Pre-order traversal
• In-order traversal
• Post-order traversal
Slides at myblog
http://www.ashimlamichhane.com.np/2016/07/tree-slide-for-data-structure-and-algorithm/
Assignments at github
https://github.com/ashim888/dataStructureAndAlgorithm/tree/dev/Assignments/assignment_7
OPERATING SYSTEM SERVICES, OPERATING SYSTEM STRUCTURESpriyasoundar
These slides will help the engineering students for understanding the functionalities of operating system and its structure. Also it will help them for their exam preparation.
For Complete Learning: http://www.thelearnet.com/
Overview
Multithreading Models
Threading Issues
Pthreads
Solaris 2 Threads
Windows 2000 Threads
Linux Threads
Java Threads
University of Virginia
cs4414: Operating Systems
http://rust-class.org
What happened with Apple's SSL implementation
How to make sure this doesn't happen to you!
Sharing data
ARCs in Rust
Scheduling
For embedded notes, see:
Quontra Solutions offers Job oriented Linux online training with updated technologies. For more info about our Linux online training contact us directly. We are providing Linux online training to all students throughout worldwide by real time faculties. Our Linux training strengthens your skills and knowledge which will helps you to gain a competitive advantage in starting your career. Outclasses will help you to gain knowledge on real time scenario. It will be most use full to boost up your career.
Our training sessions are designed in such a way that all the students can be convenient with the training schedules and course timings.
Along with Training, we also conduct several mock interviews along with Job Placement Assistance. Attend Free Demo before joining the class.
Our Features:
• Real world projects to get practical based experience
• Online tests to explore the resource learning
• Experienced certified trainers as instructors
• One to one personalized training with desktop access
• Case studies and state of art library to access study material
• Resume build assistance to win in interviews
Contact us:
Simson Andrew
Email: info@quontrasolutions.com
web: www.quontrasolutions.com
[See a more recent version of this talk here: http://www.slideshare.net/DavidEvansUVa/invent-the-future-operating-systems-in-2029]
http://rust-class.org
How to make Predictions
You Will (but the company that brought it to you wasn't AT&T)
Why is Human Progress Increasing Exponentially
Neil deGrasse Tyson and Science's Endless Golden Age
Malthus
Malthus' Fallacy
What the Future Holds
University of Virginia
cs4414: Operating Systems
Rust Expressions and Higher-Order Procedures
How to Share a Processor
Non-Preemptive and Preemptive Multitasking
Kernel Timer Interrupt
Signals are software interrupts that give us a way to handle asynchronous events.Stuck with your System Programming Assignment. Get 24/7 help from tutors with Phd in the subject. Email us at support@helpwithassignment.com
Reach us at http://www.HelpWithAssignment.com
Thread vs Process
scheduling
synchronization
The thread begins execution with the C/C run-time library startup code.
The startup code calls your main or WinMain and execution continues until the main function returns and the C/C library code calls ExitProcess.
Reflection is the ability of a managed code to read its own metadata for the purpose of finding assemblies, modules and type information at runtime. The classes that give access to the metadata of a running program are in System.Reflection.
System.Reflection namespace defines the following types to analyze the module's metadata of an assembly:
Assembly, Module, Enum, ParameterInfo, MemberInfo, Type, MethodInfo, ConstructorInfo, FieldInfo, EventInfo, and PropertyInfo
System Device Tree and Lopper: Concrete Examples - ELC NA 2022Stefano Stabellini
System Device Tree is an extension to Device Tree to describe all the hardware on an SoC, including heterogeneous CPU clusters and secure resources not typically visible to an Operating System like Linux. This full view allows the System Device Tree to be the "One true source" of the entire hardware description and helps to prevent the common (and hard-to-debug) problem of conflicting resources and system consistency. Lopper is an Open Source framework to parse and manipulate System Device Tree. With Lopper, it is possible to generate multiple traditional Device Trees from a single larger System Device Tree. This presentation will provide an overview of System Device Tree and will discuss the latest updates of the specification and tooling. The talk will illustrate multiple use-cases for System Device Tree with concrete examples, such as Linux running on the more powerful CPU cluster and Zephyr running on a smaller Cortex-R cluster. It will also show how to use Lopper to generate multiple traditional Device Trees targeting different OSes, not just Linux but also Zephyr/other RTOSes. Finally, an end-to-end demo based on Yocto to build a complete heterogeneous system with multiple OSes and RTOSes running on different clusters on a single reference board will be shown.
The objectives of Multithreaded Programming in Operating Systems are:
- To introduce the notion of a thread—a fundamental unit of CPU utilization that forms the basis of multithreaded computer systems.
- To discuss the APIs for the Pthreads, Windows, and Java thread libraries
- To explore several strategies that provide implicit threading.
- To examine issues related to multithreaded programming.
- To cover operating system support for threads in Windows and Linux.
[CB16] COFI break – Breaking exploits with Processor trace and Practical cont...CODE BLUE
One of the most prevalent methods used by attackers to exploit vulnerabilities is ROP - Return Oriented Programming. Many times during the exploitation process, code will run very differently than it does usually - calls will be made to the middle of functions, functions won’t return to their callers, etc. These anomalies in control flow could be detected if a log of all instructions executed by the processor were available.
In the past, tracing the execution of a processor incurred a significant slowdown, rendering such an anti-exploitation method impractical. However, recent Intel processors, such as Broadwell and Skylake, are now able to trace execution with low overhead, via a feature called Processor Trace. A similar feature called CoreSight exists on new ARM processors.
The lecture will discuss an anti-exploitation system we built which scans files and detects control flow violations by using these new processor features.
--- Ron Shina
Ron has been staring at binary code for over the past decade, occasionally running it. Having spent a lot of his time doing mathematics, he enjoys searching for algorithmic opportunities in security research and reverse engineering. He is a graduate of the Israel Defense Forces’ Talpiot program. In his spare time he works on his jump shot.
--- Shlomi Oberman
Shlomi Oberman is an independent security researcher with over a decade of experience in security research. Shlomi spent many years in the attacker’s shoes for different companies and knows too well how hard it is to stop a determined attacker. In the past years his interest has shifted from breaking things to helping stop exploits – while software is written and after it has shipped. Shlomi is a veteran of the IDF Intelligence Corps and used to head the security research efforts at NSO Group and other companies.
Design of Software for Embedded SystemsPeter Tröger
The course covers basic principles of software design and development for embedded systems, with a special emphasis on automotive systems. Topics included in the slide deck are:
- Introduction and basic concepts
- Functional and non-functional requirements on embedded software
- Real-time execution environments and operating systems
- Programming languages and middleware for embedded systems
- Model-driven development for embedded systems
- Latest trends from research and practice
Human users should not be forced to edit XML documents. Sometimes, they may want to read it.
The presentation persists some arguments I stated about this topic again and again in the past. Discussions and opinions are more than welcome.
We all have good and bad thoughts from time to time and situation to situation. We are bombarded daily with spiraling thoughts(both negative and positive) creating all-consuming feel , making us difficult to manage with associated suffering. Good thoughts are like our Mob Signal (Positive thought) amidst noise(negative thought) in the atmosphere. Negative thoughts like noise outweigh positive thoughts. These thoughts often create unwanted confusion, trouble, stress and frustration in our mind as well as chaos in our physical world. Negative thoughts are also known as “distorted thinking”.
How to Create Map Views in the Odoo 17 ERPCeline George
The map views are useful for providing a geographical representation of data. They allow users to visualize and analyze the data in a more intuitive manner.
Operation “Blue Star” is the only event in the history of Independent India where the state went into war with its own people. Even after about 40 years it is not clear if it was culmination of states anger over people of the region, a political game of power or start of dictatorial chapter in the democratic setup.
The people of Punjab felt alienated from main stream due to denial of their just demands during a long democratic struggle since independence. As it happen all over the word, it led to militant struggle with great loss of lives of military, police and civilian personnel. Killing of Indira Gandhi and massacre of innocent Sikhs in Delhi and other India cities was also associated with this movement.
Unit 8 - Information and Communication Technology (Paper I).pdfThiyagu K
This slides describes the basic concepts of ICT, basics of Email, Emerging Technology and Digital Initiatives in Education. This presentations aligns with the UGC Paper I syllabus.
The French Revolution, which began in 1789, was a period of radical social and political upheaval in France. It marked the decline of absolute monarchies, the rise of secular and democratic republics, and the eventual rise of Napoleon Bonaparte. This revolutionary period is crucial in understanding the transition from feudalism to modernity in Europe.
For more information, visit-www.vavaclasses.com
2024.06.01 Introducing a competency framework for languag learning materials ...Sandy Millin
http://sandymillin.wordpress.com/iateflwebinar2024
Published classroom materials form the basis of syllabuses, drive teacher professional development, and have a potentially huge influence on learners, teachers and education systems. All teachers also create their own materials, whether a few sentences on a blackboard, a highly-structured fully-realised online course, or anything in between. Despite this, the knowledge and skills needed to create effective language learning materials are rarely part of teacher training, and are mostly learnt by trial and error.
Knowledge and skills frameworks, generally called competency frameworks, for ELT teachers, trainers and managers have existed for a few years now. However, until I created one for my MA dissertation, there wasn’t one drawing together what we need to know and do to be able to effectively produce language learning materials.
This webinar will introduce you to my framework, highlighting the key competencies I identified from my research. It will also show how anybody involved in language teaching (any language, not just English!), teacher training, managing schools or developing language learning materials can benefit from using the framework.
The Roman Empire A Historical Colossus.pdfkaushalkr1407
The Roman Empire, a vast and enduring power, stands as one of history's most remarkable civilizations, leaving an indelible imprint on the world. It emerged from the Roman Republic, transitioning into an imperial powerhouse under the leadership of Augustus Caesar in 27 BCE. This transformation marked the beginning of an era defined by unprecedented territorial expansion, architectural marvels, and profound cultural influence.
The empire's roots lie in the city of Rome, founded, according to legend, by Romulus in 753 BCE. Over centuries, Rome evolved from a small settlement to a formidable republic, characterized by a complex political system with elected officials and checks on power. However, internal strife, class conflicts, and military ambitions paved the way for the end of the Republic. Julius Caesar’s dictatorship and subsequent assassination in 44 BCE created a power vacuum, leading to a civil war. Octavian, later Augustus, emerged victorious, heralding the Roman Empire’s birth.
Under Augustus, the empire experienced the Pax Romana, a 200-year period of relative peace and stability. Augustus reformed the military, established efficient administrative systems, and initiated grand construction projects. The empire's borders expanded, encompassing territories from Britain to Egypt and from Spain to the Euphrates. Roman legions, renowned for their discipline and engineering prowess, secured and maintained these vast territories, building roads, fortifications, and cities that facilitated control and integration.
The Roman Empire’s society was hierarchical, with a rigid class system. At the top were the patricians, wealthy elites who held significant political power. Below them were the plebeians, free citizens with limited political influence, and the vast numbers of slaves who formed the backbone of the economy. The family unit was central, governed by the paterfamilias, the male head who held absolute authority.
Culturally, the Romans were eclectic, absorbing and adapting elements from the civilizations they encountered, particularly the Greeks. Roman art, literature, and philosophy reflected this synthesis, creating a rich cultural tapestry. Latin, the Roman language, became the lingua franca of the Western world, influencing numerous modern languages.
Roman architecture and engineering achievements were monumental. They perfected the arch, vault, and dome, constructing enduring structures like the Colosseum, Pantheon, and aqueducts. These engineering marvels not only showcased Roman ingenuity but also served practical purposes, from public entertainment to water supply.
Read| The latest issue of The Challenger is here! We are thrilled to announce that our school paper has qualified for the NATIONAL SCHOOLS PRESS CONFERENCE (NSPC) 2024. Thank you for your unwavering support and trust. Dive into the stories that made us stand out!
2. Operating Systems I PT / FF 2014
Process Concept
• Classically, processes are executed programs that have ...
• Resource Ownership
• Process includes a virtual address space to hold the process image
• Operating system prevents unwanted interference between processes
• Scheduling/Execution
• Process follows an execution path that may be interleaved with other processes
• Process has an execution state (Running, Ready, etc.) and a dispatching priority
and is scheduled and dispatched by the operating system
• Today, the unit of dispatching is referred to as a thread or lightweight process
• The unit of resource ownership remains the process or task
2
3. Operating Systems I PT / FF 2014
Single and Multithreaded Processes
3
code% data% files%
registers% stack%
Thread'
code% data% files%
registers%
stack%
Thread'
stack%
registers%
stack%
registers%
Thread' Thread'
4. Operating Systems I PT / FF 2014
Control Blocks
• Information associated with each process: Process Control Block
• Memory management information
• Accounting information
• Information associated with each thread: Thread Control Block
• Program counter
• CPU registers
• CPU scheduling information
• Pending I/O information
4
5. Operating Systems I PT / FF 2014
Control Blocks
5
20
Program'Counter'
Parent'PID'
…'
Handle'Table'
Process'ID'(PID)'
Registers'
Next'Process'Block'
Image'File'Name'
PCB'
List'of'Thread'
Control'Blocks'
List'of'open'files'
…'
Next'TCB'
…'
Thread'Control'Block'(TCB)'
6. Operating Systems I PT / FF 2014
Multithreading
• Each thread has
• An execution state (Running, Ready, etc.)
• Saved thread context when not running
• An execution stack
• Some per-thread static storage for local variables
• Access to the memory and resources of its
process (all threads of a process share this)
• Suspending a process involves suspending
all threads of the process
• Termination of a process terminates all threads
within the process
6
7. Operating Systems I PT / FF 2014
Multithreading
7
• Advantages
• Better responsiveness - dedicated threads for handling user events
• Simpler resource sharing - all threads in a process share same address space
• Utilization of multiple cores
for parallel execution
• Faster creation and
termination of activities
• Disadvantages
• Coordinated termination
• Signal and error handling
• Reentrant vs. non-reentrant system calls
8. Operating Systems I PT / FF 2014
Thread States
• The typical states for a thread are running, ready, blocked
• Typical thread operations associated with a change in thread state are:
• Spawn: a thread within a process may spawn another thread
• Provides instruction pointer and arguments for the new thread
• New thread gets its own register context and stack space
• Block: a thread needs to wait for an event
• Saving its user registers, program counter, and stack pointers
• Unblock: When the event for which a thread is blocked occurs
• Finish: When a thread completes, its register context and stacks are deallocated.
8
10. Operating Systems I PT / FF 2014
Example: Windows
• The Windows kernel dispatches threads for multi-tasking
• Implementation of 1:1 mapping - „processes do not run, threads run“
• In principle, all threads are equal - no consideration of process in scheduling
• Thread context switch always involves the kernel
• Every process starts with one main thread, may create more
• Per-process data:
• Virtual address space, working set („owned“ physical memory), access token,
handle table for kernel objects, environment strings, command line
• Per-thread data:
• User-mode stack (call frames, arguments), kernel-mode stack, thread-local
storage, scheduling state, thread priority, hardware context, optional access token
10
11. Operating Systems I PT / FF 2014
Windows - Thread and Process Creation
11
BOOL CreateProcess(
LPCSTR lpApplicationName,
LPSTR lpCommandLine,
LPSECURITY_ATTRIBUTES lpProcessAttributes,
LPSECURITY_ATTRIBUTES lpThreadAttributes,
BOOL bInheritHandles,
DWORD dwCreationFlags,
LPVOID lpEnvironment,
LPCSTR lpCurrentDirectory,
LPSTARTUPINFO lpStartupInfo,
LPPROCESS_INFORMATION lpProcessInformation)
HANDLE CreateThread (
LPSECURITY_ATTRIBUTES lpsa,
DWORD cbStack,
LPTHREAD_START_ROUTINE lpStartAddr,
LPVOID lpvThreadParm,
DWORD fdwCreate,
LPDWORD lpIDThread)
receives thread ID
DWORD WINAPI
ThreadFunc(LPVOID)
12. Operating Systems I PT / FF 2014
Windows - Identifiers
• Every process and every thread has an identifier
• In general: “client ID” (debugger shows as “CID”)
• A.K.A. process ID and thread ID, respectively
• Process IDs and thread IDs are in the same “number space”
• IDs are unique among all existing processes and threads
• Might be reused as soon as a process or thread is deleted
• Identify the requesting process or thread to its subsystem “server” process
• Relevant for API calls that need the server’s help
• Visible in PerfMon, Task Manager (for processes), Process Explorer
12
13. Operating Systems I PT / FF 2014
Windows - Thread Creation and Termination
• Threads start in the kernel, but have a trap frame to return to user mode
• Threads run until:
• The thread returns to the OS
• ExitThread() is called by the thread
• TerminateThread() is called on the thread
• ExitProcess() is called on the process
• When the last thread in a process terminates, the process itself terminates
• Thread continues to exist until last handle is closed (CloseHandle())
• Each thread has suspend count
• Can only execute if suspend count == 0, can be created in suspended state
13
14. Operating Systems I PT / FF 2014
Windows - Thread Creation
• Flow of CreateThread():
• The thread count in the process object is incremented.
• An executive thread block (ETHREAD) is created and initialized.
• A thread ID is generated for the new thread.
• The TEB is set up in the user-mode address space of the process.
• The user-mode thread start address is stored in the ETHREAD.
• KeInitThread is called to set up the KTHREAD block.
• Initial and current base priorities are set to the process’s base priority
• Affinity and quantum are set to that of the process.
• Allocates kernel stack and initializes machine-dependent hardware context
14
15. Operating Systems I PT / FF 2014
Windows - Thread Termination
• Thread rundown sequence:
• DLL notification, unless TerminateThread() was used
• All handles to Windows User and GDI objects are closed
• Outstanding I/Os are cancelled
• Thread stack is deallocated
• Thread’s exit code changes from STILL_ACTIVE to the specified exit code
• Thread kernel object becomes signaled
• When handle and reference counts == 0, thread object deleted
• If last thread in process, process exits
15
16. Operating Systems I PT / FF 2014
Windows - Thread States
• Init: The thread is being created.
• Ready: The thread is waiting to be assigned to a CPU.
• Running: The thread’s instructions are being executed.
• Waiting: The thread is waiting for some event to occur.
• Terminated: The thread has finished execution.
16
init$
ready$
wai+ng$
running$
terminated$
scheduler$
dispatch$
wai+ng$for$
I/O$or$event$
I/O$or$event$
comple+on$
interrupt$$
quantum$expired$
admi<ed$ exit$
17. Operating Systems I PT / FF 2014
Linux Threads
• No explicit distinguishing between
threads and processes
• User-level threads are mapped to
kernel tasks
• User threads in the same user process
share the same thread group ID
• Enables resource sharing, avoids
context switch on dispatching
• clone() as extended version of fork()
• On cloning, decision about sharing of
memory, file handles, a.s.o. is made
• Thread libraries use this capability
17
CLONE_CLEARID Clear the task ID.
CLONE_DETACHED The parent does not want a SIGCHLD signal sent on exit.
CLONE_FILES Shares the table that identifies the open files.
CLONE_FS Shares the table that identifies the root directory and the current
working directory, as well as the value of the bit mask used to mask the
initial file permissions of a new file.
CLONE_IDLETASK Set PID to zero, which refers to an idle task. The idle task is employed
when all available tasks are blocked waiting for resources.
CLONE_NEWNS Create a new namespace for the child.
CLONE_PARENT Caller and new task share the same parent process.
CLONE_PTRACE If the parent process is being traced, the child process will also be
traced.
CLONE_SETTID Write the TID back to user space.
CLONE_SETTLS Create a new TLS for the child.
CLONE_SIGHAND Shares the table that identifies the signal handlers.
CLONE_SYSVSEM Shares System V SEM_UNDO semantics.
CLONE_THREAD Inserts this process into the same thread group of the parent. If this flag
is true, it implicitly enforces CLONE_PARENT.
CLONE_VFORK If set, the parent does not get scheduled for execution until the child
invokes the execve() system call.
CLONE_VM Shares the address space (memory descriptor and all page tables).
18. Operating Systems I PT / FF 2014
Linux Threads
• Thread group ID (TGID) and thread ID (TID) are stored in task structure of the kernel
• Processes with threads have identical PID and TGID
• Linux has distinct kernel threads
• Only executed in kernel mode, typically needs access to kernel data structures
• Can wait for events to occur, e.g. USB hotplugging
• Example: ps -eLf (watch for square brackets, LWP equals thread in the output)
18
19. Operating Systems I PT / FF 2014
POSIX Threads
• POSIX standardized (IEEE 1003.1c) API for thread creation and synchronization
• API specifies behavior of the thread library, not an implementation
• Thread creation and termination, stack management
• Synchronization between threads
• Scheduling hints
• Thread-local storage
• Implemented on many UNIX operating systems to allow portable concurrent C code
• Windows: Services for Unix (SFU) implement pthreads on Windows
• Linux 2.6: Native POSIX Thread Library (NPTL) implementation of pthreads
19
21. Operating Systems I PT / FF 2014
MacOS X - Grand Central Dispatch (GCD)
• Provides a pool of available threads
• Portions of applications (blocks) can be dispatched independently
• Blocks are lightweigt to create and queue
• Operating system dispatches available blocks on given processors
• GCD provides system queues used by the application,
private queues are possible
• Queues are either concurrent or serial, latter act as lock replacement
• Blocks can be associated with an event source (timer, socket, file descriptor)
• Similar solutions available for other systems
21