SlideShare une entreprise Scribd logo
1  sur  13
www.oeclib.in
Submitted By:
Odisha Electronic Control Library
Seminar
On
Futex
CONTENTS
 INTRODUCTION
 WHAT IS FUTEX?
 HISTORY
 OPERATIONS
 CONCURRENCY IN LINUX OS
 PROBLEMS AND REQUIREMENTS
 LINUX FAST USER LEVEL LOCKING
 FUTURE DIRECTIONS
 CONCLUSION
 REFERRENCE
INTRODUCTION
 In recent years, that is in past 5 years Linux has seen significant
growth as a server operating system and has been successfully
deployed as an enterprise for Web, file and print servicing.
 With the advent of Kernel Version 2.4, Linux has seen a
tremendous boost in scalability and robustness which further
makes it feasible to deploy even more demanding enterprise
applications such as high end database, business intelligence
software ,application servers, etc.
WHAT IS FUTEX?
 In computing, a futex (short for "fast userspace mutex") is a
Linux kernel system call that programmers can use to
implement basic locking, or as a building block for higher-level
locking abstractions such as semaphores and POSIX mutexes
or condition variables.
HISTORY
 On Linux, Hubertus Franke (IBM Thomas J. Watson Research
Center), Matthew Kirkwood, Ingo Molnár (Red Hat) and Rusty
Russell (IBM Linux Technology Center) originated the futex
mechanism.
 Futexes appeared for the first time in version 2.5.7 of the Linux
kernel development series; the semantics stabilized as of
version 2.5.40, and futexes have been part of the Linux kernel
mainline since the December 2003 release of 2.6.x stable
kernel series.
 In 2002 discussions took place on a proposal to make futexes
accessible via the file system by creating a special node in /dev
or /proc. However, Linus Torvalds strongly opposed this idea
and rejected any related patches.
OPERATIONS
The basic operations of futexes are based on only two central
operations—​WAIT and WAKE—​though some futex
implementations (depending on the exact version of the Linux
kernel) have a few more operations for more specialized cases.
 WAIT (addr, val)
Checks if the value stored at the address addr is val, and if it is
puts the current thread to sleep. WAKE (addr, val)
 Wakes up val number of threads waiting on the address addr.
CONCURRENCY IN LINUX OS
 As different processes interact with each other they may often
need to access and modify shared section of code, memory
locations and data.
 The section of code belonging to a process or thread which
manipulates a variable which is also being manipulated by
another process or thread is commonly called critical section.
 Proper synchronization problems usually serialize the access
over critical section.
PROBLEMS AND REQUIREMENTS IN IMPLEMENTATION
 There are various behavioral requirements that need to be
considered.
 Most center around the fairness of the locking scheme and the
lock release policy.
 In a fair locking scheme the lock is granted in the order it was
requested, i.e., it is handed over to the longest waiting task.
 This can have negative impact on throughput due to the
increased number of context switches.
 At the same time it can lead to the so called convoy problem.
PREVIOUS IMPLEMENTATIONS
 One early design suggested was the explicit allocation of a
kernel object and the export of the kernel object address as the
handle.
 The kernel object was comprised of a wait queue and a unique
security signature.
 On every wait or wakeup call, the signature would be verified
to ensure that the handle passed indeed was referring to a valid
kernel object.
 The disadvantages of this approach have been mentioned in
section 2, namely that a handle needs to be stored in ulock_t
and that explicit allocation and deallocation of the kernel object
are required.
FUTURE DIRECTIONS
 A lot of time is being wasted between a process releasing the
lock and another process acquiring the lock.
 Inorder to avoid that, an asynchronous wait extension will be
added to consume less time.
 Currently, in the uncontended case, only the system calls are
avoided.
 It would be much more good if the kernel interactions are also
removed.
CONCLUSION
 In this paper I’ve described a fast userlevel locking mechanism,
called futexes, that were integrated into the Linux 2.5
development kernel and also in the kernel version 2.6 of Linux.
 Also the various requirements for such a package,previous
various solutions and the current futex package were outlined.
 In the performance futexes can provide significant performance
advantages over standard System V IPC semaphores in all case
studies.
REFERENCES
 www.google.com
 www.wikipedia.com
 www.oeclib.in
Thanks

Contenu connexe

Tendances (20)

iMouse
iMouseiMouse
iMouse
 
5G technology
5G technology5G technology
5G technology
 
WiFi 6 - Usher in the Era of Next-Generation Connectivity
WiFi 6 - Usher in the Era of Next-Generation ConnectivityWiFi 6 - Usher in the Era of Next-Generation Connectivity
WiFi 6 - Usher in the Era of Next-Generation Connectivity
 
Clockless chips
Clockless chipsClockless chips
Clockless chips
 
5 g technology ppt
5 g technology ppt5 g technology ppt
5 g technology ppt
 
Blue Eyes ppt
Blue Eyes pptBlue Eyes ppt
Blue Eyes ppt
 
Nano computing
Nano computingNano computing
Nano computing
 
Hyper threading technology
Hyper threading technologyHyper threading technology
Hyper threading technology
 
Zigbee Presentation
Zigbee PresentationZigbee Presentation
Zigbee Presentation
 
Haptic Technology ppt
Haptic Technology pptHaptic Technology ppt
Haptic Technology ppt
 
Bluetooth Technology
Bluetooth TechnologyBluetooth Technology
Bluetooth Technology
 
SMART NOTE TAKER
SMART NOTE TAKERSMART NOTE TAKER
SMART NOTE TAKER
 
Jini technology ppt
Jini technology pptJini technology ppt
Jini technology ppt
 
Internet of things using Raspberry Pi
Internet of things using Raspberry PiInternet of things using Raspberry Pi
Internet of things using Raspberry Pi
 
Sky x technology
Sky x technologySky x technology
Sky x technology
 
6g wireless communication systems
6g wireless communication systems6g wireless communication systems
6g wireless communication systems
 
Touchless technology Seminar Presentation
Touchless technology Seminar PresentationTouchless technology Seminar Presentation
Touchless technology Seminar Presentation
 
Touchless touch screen
Touchless touch screenTouchless touch screen
Touchless touch screen
 
Java Ring
Java RingJava Ring
Java Ring
 
Wireless LAN security
Wireless LAN securityWireless LAN security
Wireless LAN security
 

Similaire à Futex ppt

Linux26 New Features
Linux26 New FeaturesLinux26 New Features
Linux26 New Featuresguest491c69
 
Linux kernel Architecture and Properties
Linux kernel Architecture and PropertiesLinux kernel Architecture and Properties
Linux kernel Architecture and PropertiesSaadi Rahman
 
The Why and How of HPC-Cloud Hybrids with OpenStack - Lev Lafayette, Universi...
The Why and How of HPC-Cloud Hybrids with OpenStack - Lev Lafayette, Universi...The Why and How of HPC-Cloud Hybrids with OpenStack - Lev Lafayette, Universi...
The Why and How of HPC-Cloud Hybrids with OpenStack - Lev Lafayette, Universi...OpenStack
 
Performance improvement by
Performance improvement byPerformance improvement by
Performance improvement byIJCNCJournal
 
Linux and Java - Understanding and Troubleshooting
Linux and Java - Understanding and TroubleshootingLinux and Java - Understanding and Troubleshooting
Linux and Java - Understanding and TroubleshootingJérôme Kehrli
 
The building blocks of docker.
The building blocks of docker.The building blocks of docker.
The building blocks of docker.Chafik Belhaoues
 
LCNA14: Why Use Xen for Large Scale Enterprise Deployments? - Konrad Rzeszute...
LCNA14: Why Use Xen for Large Scale Enterprise Deployments? - Konrad Rzeszute...LCNA14: Why Use Xen for Large Scale Enterprise Deployments? - Konrad Rzeszute...
LCNA14: Why Use Xen for Large Scale Enterprise Deployments? - Konrad Rzeszute...The Linux Foundation
 
Linux@assignment ppt
Linux@assignment pptLinux@assignment ppt
Linux@assignment pptRama .
 
Open comrtos formally_developed _rtos_for_heterogeneous_systems
Open comrtos formally_developed _rtos_for_heterogeneous_systemsOpen comrtos formally_developed _rtos_for_heterogeneous_systems
Open comrtos formally_developed _rtos_for_heterogeneous_systemsEric Verhulst
 
Pivotal : Moments in Container History
Pivotal : Moments in Container History Pivotal : Moments in Container History
Pivotal : Moments in Container History EMC
 
ENHANCING PERFORMANCE OF AN HPC CLUSTER BY ADOPTING NONDEDICATED NODES
ENHANCING PERFORMANCE OF AN HPC CLUSTER BY ADOPTING NONDEDICATED NODES ENHANCING PERFORMANCE OF AN HPC CLUSTER BY ADOPTING NONDEDICATED NODES
ENHANCING PERFORMANCE OF AN HPC CLUSTER BY ADOPTING NONDEDICATED NODES csandit
 
Authenticated key exchange protocols for parallel network file systems
Authenticated key exchange protocols for parallel network file systemsAuthenticated key exchange protocols for parallel network file systems
Authenticated key exchange protocols for parallel network file systemsPvrtechnologies Nellore
 
Microx - A Unix like kernel for Embedded Systems written from scratch.
Microx - A Unix like kernel for Embedded Systems written from scratch.Microx - A Unix like kernel for Embedded Systems written from scratch.
Microx - A Unix like kernel for Embedded Systems written from scratch.Waqar Sheikh
 
Infinit: Modern Storage Platform for Container Environments
Infinit: Modern Storage Platform for Container EnvironmentsInfinit: Modern Storage Platform for Container Environments
Infinit: Modern Storage Platform for Container EnvironmentsDocker, Inc.
 

Similaire à Futex ppt (20)

Nanokernel
NanokernelNanokernel
Nanokernel
 
Linux26 New Features
Linux26 New FeaturesLinux26 New Features
Linux26 New Features
 
Linux kernel Architecture and Properties
Linux kernel Architecture and PropertiesLinux kernel Architecture and Properties
Linux kernel Architecture and Properties
 
The Why and How of HPC-Cloud Hybrids with OpenStack - Lev Lafayette, Universi...
The Why and How of HPC-Cloud Hybrids with OpenStack - Lev Lafayette, Universi...The Why and How of HPC-Cloud Hybrids with OpenStack - Lev Lafayette, Universi...
The Why and How of HPC-Cloud Hybrids with OpenStack - Lev Lafayette, Universi...
 
MIcrokernel
MIcrokernelMIcrokernel
MIcrokernel
 
LXC NSAttach
LXC NSAttachLXC NSAttach
LXC NSAttach
 
Performance improvement by
Performance improvement byPerformance improvement by
Performance improvement by
 
Linux and Java - Understanding and Troubleshooting
Linux and Java - Understanding and TroubleshootingLinux and Java - Understanding and Troubleshooting
Linux and Java - Understanding and Troubleshooting
 
The building blocks of docker.
The building blocks of docker.The building blocks of docker.
The building blocks of docker.
 
Vx works RTOS
Vx works RTOSVx works RTOS
Vx works RTOS
 
LCNA14: Why Use Xen for Large Scale Enterprise Deployments? - Konrad Rzeszute...
LCNA14: Why Use Xen for Large Scale Enterprise Deployments? - Konrad Rzeszute...LCNA14: Why Use Xen for Large Scale Enterprise Deployments? - Konrad Rzeszute...
LCNA14: Why Use Xen for Large Scale Enterprise Deployments? - Konrad Rzeszute...
 
Linux@assignment ppt
Linux@assignment pptLinux@assignment ppt
Linux@assignment ppt
 
Lab6 rtos
Lab6 rtosLab6 rtos
Lab6 rtos
 
Open comrtos formally_developed _rtos_for_heterogeneous_systems
Open comrtos formally_developed _rtos_for_heterogeneous_systemsOpen comrtos formally_developed _rtos_for_heterogeneous_systems
Open comrtos formally_developed _rtos_for_heterogeneous_systems
 
Pivotal : Moments in Container History
Pivotal : Moments in Container History Pivotal : Moments in Container History
Pivotal : Moments in Container History
 
Ubuntu
UbuntuUbuntu
Ubuntu
 
ENHANCING PERFORMANCE OF AN HPC CLUSTER BY ADOPTING NONDEDICATED NODES
ENHANCING PERFORMANCE OF AN HPC CLUSTER BY ADOPTING NONDEDICATED NODES ENHANCING PERFORMANCE OF AN HPC CLUSTER BY ADOPTING NONDEDICATED NODES
ENHANCING PERFORMANCE OF AN HPC CLUSTER BY ADOPTING NONDEDICATED NODES
 
Authenticated key exchange protocols for parallel network file systems
Authenticated key exchange protocols for parallel network file systemsAuthenticated key exchange protocols for parallel network file systems
Authenticated key exchange protocols for parallel network file systems
 
Microx - A Unix like kernel for Embedded Systems written from scratch.
Microx - A Unix like kernel for Embedded Systems written from scratch.Microx - A Unix like kernel for Embedded Systems written from scratch.
Microx - A Unix like kernel for Embedded Systems written from scratch.
 
Infinit: Modern Storage Platform for Container Environments
Infinit: Modern Storage Platform for Container EnvironmentsInfinit: Modern Storage Platform for Container Environments
Infinit: Modern Storage Platform for Container Environments
 

Plus de OECLIB Odisha Electronics Control Library

Plus de OECLIB Odisha Electronics Control Library (20)

5G technology-ppt
5G technology-ppt5G technology-ppt
5G technology-ppt
 
Distributed Computing ppt
Distributed Computing pptDistributed Computing ppt
Distributed Computing ppt
 
Autonomic Computing PPT
Autonomic Computing PPTAutonomic Computing PPT
Autonomic Computing PPT
 
Asynchronous Chips ppt
Asynchronous Chips pptAsynchronous Chips ppt
Asynchronous Chips ppt
 
Artificial Eye PPT
Artificial Eye PPTArtificial Eye PPT
Artificial Eye PPT
 
Agent Oriented Programming PPT
Agent Oriented Programming PPTAgent Oriented Programming PPT
Agent Oriented Programming PPT
 
Wireless application protocol ppt
Wireless application protocol  pptWireless application protocol  ppt
Wireless application protocol ppt
 
Wireless Communication ppt
Wireless Communication pptWireless Communication ppt
Wireless Communication ppt
 
4G Wireless Systems ppt
4G Wireless Systems ppt4G Wireless Systems ppt
4G Wireless Systems ppt
 
Steganography ppt
Steganography pptSteganography ppt
Steganography ppt
 
Sixth sense technology ppt
Sixth sense technology pptSixth sense technology ppt
Sixth sense technology ppt
 
Soa ppt
Soa pptSoa ppt
Soa ppt
 
Software developement life cycle ppt
Software developement life cycle pptSoftware developement life cycle ppt
Software developement life cycle ppt
 
Voice-over-Internet Protocol (VoIP) ppt
Voice-over-Internet Protocol (VoIP) pptVoice-over-Internet Protocol (VoIP) ppt
Voice-over-Internet Protocol (VoIP) ppt
 
ZIGBEE TECHNOLOGY ppt
ZIGBEE TECHNOLOGY pptZIGBEE TECHNOLOGY ppt
ZIGBEE TECHNOLOGY ppt
 
Wimax ppt
Wimax pptWimax ppt
Wimax ppt
 
Wibree ppt
Wibree pptWibree ppt
Wibree ppt
 
Wearable Computing
Wearable ComputingWearable Computing
Wearable Computing
 
Virtual Private Networks (VPN) ppt
Virtual Private Networks (VPN) pptVirtual Private Networks (VPN) ppt
Virtual Private Networks (VPN) ppt
 
UNIX Operating System ppt
UNIX Operating System pptUNIX Operating System ppt
UNIX Operating System ppt
 

Dernier

Keeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldKeeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldRoberto Pérez Alcolea
 
eSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolseSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolsosttopstonverter
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identityteam-WIBU
 
Osi security architecture in network.pptx
Osi security architecture in network.pptxOsi security architecture in network.pptx
Osi security architecture in network.pptxVinzoCenzo
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalLionel Briand
 
2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shardsChristopher Curtin
 
Best Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITBest Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITmanoharjgpsolutions
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLionel Briand
 
Patterns for automating API delivery. API conference
Patterns for automating API delivery. API conferencePatterns for automating API delivery. API conference
Patterns for automating API delivery. API conferencessuser9e7c64
 
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full RecordingOpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full RecordingShane Coughlan
 
SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?Alexandre Beguel
 
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4jGraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4jNeo4j
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsSafe Software
 
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonLeveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonApplitools
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxAndreas Kunz
 
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecturerahul_net
 
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfEnhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfRTS corp
 
Ronisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited CatalogueRonisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited Catalogueitservices996
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringHironori Washizaki
 
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdfAndrey Devyatkin
 

Dernier (20)

Keeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldKeeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository world
 
eSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolseSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration tools
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identity
 
Osi security architecture in network.pptx
Osi security architecture in network.pptxOsi security architecture in network.pptx
Osi security architecture in network.pptx
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive Goal
 
2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards
 
Best Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITBest Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh IT
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and Repair
 
Patterns for automating API delivery. API conference
Patterns for automating API delivery. API conferencePatterns for automating API delivery. API conference
Patterns for automating API delivery. API conference
 
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full RecordingOpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
 
SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?
 
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4jGraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data Streams
 
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonLeveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
 
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecture
 
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfEnhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
 
Ronisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited CatalogueRonisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited Catalogue
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their Engineering
 
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
 

Futex ppt

  • 1. www.oeclib.in Submitted By: Odisha Electronic Control Library Seminar On Futex
  • 2. CONTENTS  INTRODUCTION  WHAT IS FUTEX?  HISTORY  OPERATIONS  CONCURRENCY IN LINUX OS  PROBLEMS AND REQUIREMENTS  LINUX FAST USER LEVEL LOCKING  FUTURE DIRECTIONS  CONCLUSION  REFERRENCE
  • 3. INTRODUCTION  In recent years, that is in past 5 years Linux has seen significant growth as a server operating system and has been successfully deployed as an enterprise for Web, file and print servicing.  With the advent of Kernel Version 2.4, Linux has seen a tremendous boost in scalability and robustness which further makes it feasible to deploy even more demanding enterprise applications such as high end database, business intelligence software ,application servers, etc.
  • 4. WHAT IS FUTEX?  In computing, a futex (short for "fast userspace mutex") is a Linux kernel system call that programmers can use to implement basic locking, or as a building block for higher-level locking abstractions such as semaphores and POSIX mutexes or condition variables.
  • 5. HISTORY  On Linux, Hubertus Franke (IBM Thomas J. Watson Research Center), Matthew Kirkwood, Ingo Molnár (Red Hat) and Rusty Russell (IBM Linux Technology Center) originated the futex mechanism.  Futexes appeared for the first time in version 2.5.7 of the Linux kernel development series; the semantics stabilized as of version 2.5.40, and futexes have been part of the Linux kernel mainline since the December 2003 release of 2.6.x stable kernel series.  In 2002 discussions took place on a proposal to make futexes accessible via the file system by creating a special node in /dev or /proc. However, Linus Torvalds strongly opposed this idea and rejected any related patches.
  • 6. OPERATIONS The basic operations of futexes are based on only two central operations—​WAIT and WAKE—​though some futex implementations (depending on the exact version of the Linux kernel) have a few more operations for more specialized cases.  WAIT (addr, val) Checks if the value stored at the address addr is val, and if it is puts the current thread to sleep. WAKE (addr, val)  Wakes up val number of threads waiting on the address addr.
  • 7. CONCURRENCY IN LINUX OS  As different processes interact with each other they may often need to access and modify shared section of code, memory locations and data.  The section of code belonging to a process or thread which manipulates a variable which is also being manipulated by another process or thread is commonly called critical section.  Proper synchronization problems usually serialize the access over critical section.
  • 8. PROBLEMS AND REQUIREMENTS IN IMPLEMENTATION  There are various behavioral requirements that need to be considered.  Most center around the fairness of the locking scheme and the lock release policy.  In a fair locking scheme the lock is granted in the order it was requested, i.e., it is handed over to the longest waiting task.  This can have negative impact on throughput due to the increased number of context switches.  At the same time it can lead to the so called convoy problem.
  • 9. PREVIOUS IMPLEMENTATIONS  One early design suggested was the explicit allocation of a kernel object and the export of the kernel object address as the handle.  The kernel object was comprised of a wait queue and a unique security signature.  On every wait or wakeup call, the signature would be verified to ensure that the handle passed indeed was referring to a valid kernel object.  The disadvantages of this approach have been mentioned in section 2, namely that a handle needs to be stored in ulock_t and that explicit allocation and deallocation of the kernel object are required.
  • 10. FUTURE DIRECTIONS  A lot of time is being wasted between a process releasing the lock and another process acquiring the lock.  Inorder to avoid that, an asynchronous wait extension will be added to consume less time.  Currently, in the uncontended case, only the system calls are avoided.  It would be much more good if the kernel interactions are also removed.
  • 11. CONCLUSION  In this paper I’ve described a fast userlevel locking mechanism, called futexes, that were integrated into the Linux 2.5 development kernel and also in the kernel version 2.6 of Linux.  Also the various requirements for such a package,previous various solutions and the current futex package were outlined.  In the performance futexes can provide significant performance advantages over standard System V IPC semaphores in all case studies.

Notes de l'éditeur

  1. 1