This document summarizes key concepts related to I/O structure in operating systems, including disk structure, disk scheduling, disk management, and swap-space management. It discusses how disks are logically addressed and mapped to physical sectors. It also describes different disk scheduling algorithms like SSTF, SCAN, C-SCAN and factors that influence algorithm selection. The document outlines the processes involved in low-level formatting, logical formatting, and handling bad blocks. It concludes with an overview of swap-space management in various operating systems.
Enhanced Embedded Linux Board Support Package Field Upgrade – A Cost Effectiv...ijesajournal
Latest technology, new features and kernel bug fixes shows a need to explore a cost-effective and quick
upgradation of Embedded Linux BSP of Embedded Controllers to replace the existing U-Boot, Linux kernel,
Dtb file, and JFFS2 File system. This field upgrade technique is designed to perform an in-the-field flash
upgrade while the Linux is running. On successful build, the current version and platform specific information
will be updated to the script file and further with this technique the file system automates the upgrade
procedure after validating for the version information from the OS-release and if the version is different it will
self-extract and gets installed into the respective partitions. This Embedded Linux BSP field upgrade invention
is more secured and will essentially enable the developers and researchers working in this field to utilize this
method which can prove to be cost-effective on the field and beneficial to the stake holder.
Enhanced Embedded Linux Board Support Package Field Upgrade – A Cost Effectiv...ijesajournal
Latest technology, new features and kernel bug fixes shows a need to explore a cost-effective and quick
upgradation of Embedded Linux BSP of Embedded Controllers to replace the existing U-Boot, Linux kernel,
Dtb file, and JFFS2 File system. This field upgrade technique is designed to perform an in-the-field flash
upgrade while the Linux is running. On successful build, the current version and platform specific information
will be updated to the script file and further with this technique the file system automates the upgrade
procedure after validating for the version information from the OS-release and if the version is different it will
self-extract and gets installed into the respective partitions. This Embedded Linux BSP field upgrade invention
is more secured and will essentially enable the developers and researchers working in this field to utilize this
method which can prove to be cost-effective on the field and beneficial to the stake holder.
The kernel is the central module of an operating system (OS). It is the part of the operating system that loads first, and it remains in main memory. Because it stays in memory, it is important for the kernel to be as small as possible while still providing all the essential services required by other parts of the operating system and applications. The the kernel code is usually loaded into a protected area of memory to prevent it from being overwritten by programs or other parts of the operating system.
Typically, the kernel is responsible for memory management, process and task management, and disk management. The kernel connects the system hardware to the application software. Every operating system has a kernel.
Overview of the architecture of the Linux kernel, based on "Anatomy of the Linux Kernel" by M. Tim Jones (IBM Developerworks), http://www.ibm.com/developerworks/linux/library/l-linux-kernel/
UNIT V CASE STUDY
Linux System – Design Principles, Kernel Modules, Process Management, Scheduling, Memory Management, Input-Output Management, File System, Inter-process Communication; Mobile OS – iOS and Android – Architecture and SDK Framework, Media Layer, Services Layer, Core OS Layer, File System.
Android 6.0.1 "Marshmallow" Android 7.0-7.1 "Nougat" is the seventh major version of the Android operating system. Learning about it is essential to stay ahead of other developers And Google’s still finding ways to enhance and improve the OS.
The kernel is the central module of an operating system (OS). It is the part of the operating system that loads first, and it remains in main memory. Because it stays in memory, it is important for the kernel to be as small as possible while still providing all the essential services required by other parts of the operating system and applications. The the kernel code is usually loaded into a protected area of memory to prevent it from being overwritten by programs or other parts of the operating system.
Typically, the kernel is responsible for memory management, process and task management, and disk management. The kernel connects the system hardware to the application software. Every operating system has a kernel.
Overview of the architecture of the Linux kernel, based on "Anatomy of the Linux Kernel" by M. Tim Jones (IBM Developerworks), http://www.ibm.com/developerworks/linux/library/l-linux-kernel/
UNIT V CASE STUDY
Linux System – Design Principles, Kernel Modules, Process Management, Scheduling, Memory Management, Input-Output Management, File System, Inter-process Communication; Mobile OS – iOS and Android – Architecture and SDK Framework, Media Layer, Services Layer, Core OS Layer, File System.
Android 6.0.1 "Marshmallow" Android 7.0-7.1 "Nougat" is the seventh major version of the Android operating system. Learning about it is essential to stay ahead of other developers And Google’s still finding ways to enhance and improve the OS.
Course 102: Lecture 27: FileSystems in Linux (Part 2)Ahmed El-Arabawy
This lecture goes through the different types of Filesystems and some commands that are used with filesystems. It introduces the filesystems ext2/3/4 , JFFS2, cramfs, ramfs, tmpfs, and NFS.
Video for this lecture on youtube:
http://www.youtube.com/watch?v=XPtPsc6uaKY
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
Ahmed ElArabawy
- https://www.linkedin.com/in/ahmedelarabawy
32-bit preemptive multitasking operating system for Intel microprocessors. Uses a micro-kernel architecture. Uses a micro-kernel architecture. Environmental subsystems emulate different operating systems. Protection subsystems provide security functions
A Distributed File System(DFS) is simply a classical model of a file system distributed across multiple machines.The purpose is to promote sharing of dispersed files.
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
Search and Society: Reimagining Information Access for Radical FuturesBhaskar Mitra
The field of Information retrieval (IR) is currently undergoing a transformative shift, at least partly due to the emerging applications of generative AI to information access. In this talk, we will deliberate on the sociotechnical implications of generative AI for information access. We will argue that there is both a critical necessity and an exciting opportunity for the IR community to re-center our research agendas on societal needs while dismantling the artificial separation between the work on fairness, accountability, transparency, and ethics in IR and the rest of IR research. Instead of adopting a reactionary strategy of trying to mitigate potential social harms from emerging technologies, the community should aim to proactively set the research agenda for the kinds of systems we should build inspired by diverse explicitly stated sociotechnical imaginaries. The sociotechnical imaginaries that underpin the design and development of information access technologies needs to be explicitly articulated, and we need to develop theories of change in context of these diverse perspectives. Our guiding future imaginaries must be informed by other academic fields, such as democratic theory and critical theory, and should be co-developed with social science scholars, legal scholars, civil rights and social justice activists, and artists, among others.
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on the notifications, alerts, and approval requests using Slack for Bonterra Impact Management. The solutions covered in this webinar can also be deployed for Microsoft Teams.
Interested in deploying notification automations for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
Let's dive deeper into the world of ODC! Ricardo Alves (OutSystems) will join us to tell all about the new Data Fabric. After that, Sezen de Bruijn (OutSystems) will get into the details on how to best design a sturdy architecture within ODC.
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
2. Disk Structure
•Disk drives are addressed as large 1-dimensional arrays of logical blocks, where
the logical block is the smallest unit of transfer.
•The 1-dimensional array of logical blocks is mapped into the sectors of the disk
sequentially.
•Sector 0 is the first sector of the first track on the outermost cylinder.
•Mapping proceeds in order through that track, then the rest of the tracks in that
cylinder, and then through the rest of the cylinders from outermost to innermost.
3. Disk Scheduling
• The operating system is responsible for using hardware efficiently — for
the disk drives, this means having a fast access time and disk bandwidth.
• Access time has two major components
• Seek time is the time for the disk are to move the heads to the cylinder
containing the desired sector. Rotational latency is the additional time waiting
for the disk to rotate the desired sector to the disk head.
• Minimize seek time
• Seek time ≈ seek distance
• Disk bandwidth is the total number of bytes transferred, divided by the
total time between the first request for service and the completion of the last
transfer.
• Several algorithms exist to schedule the servicing of disk I/O requests.
• We illustrate them with a request queue
(0-199). 98, 183, 37, 122, 14, 124, 65, 67
Head pointer 53
4. Selecting a Disk-Scheduling Algorithm:
•SSTF is common and has a natural appeal.
•SCAN and C-SCAN perform better for systems that place a heavy load on the
disk.
•Performance depends on the number and types of requests.
•Requests for disk service can be influenced by the fileallocation method.
•The disk-scheduling algorithm should be written as a separate module of the
operating system, allowing it to be replaced with a different algorithm if
necessary.
•Either SSTF or LOOK is a reasonable choice for the default algorithm.
5. Disk Management
*Low-level formatting, or physical formatting — Dividing a disk into sectors
that the disk controller can read and write.
*To use a disk to hold files, the operating system still needs to record its own
data structures on the disk.
*Partition the disk into one or more groups of cylinders.
*Logical formatting or “making a file system”.
*Boot block initializes system.
*The bootstrap is stored in ROM. Bootstrap loader program.
*Methods such as sector sparing used to handle bad blocks.
6. Swap-Space Management:
Swap-space — Virtual memory uses disk space as
an extension of main memory.
Swap-space can be carved out of the normal file
system,or, more commonly, it can be in a separate
disk partition.
Swap-space management
4.3BSD allocates swap space when process starts;
holds text segment (the program) and data segment.
Kernel uses swap maps to track swap-space use.
Solaris 2 allocates swap space only when a page is
forced out of physical memory, not when the virtual
memory page is first created
8. Windows 2000
•32-bit preemptive multitasking operating system for Intel
microprocessors.
•Key goals for the system:
•portability
•security
•POSIX compliance
•multiprocessor support
•extensibility
•international support
•compatibility with MS-DOS and MS-Windows applications.
•Uses a micro-kernel architecture
•. Available in four versions, Professional, Server, Advanced Server,
National Server.
•In 1996, more NT server licenses were sold than UNIX licenses
Operating System Concepts 21.3 Silberschatz, Galvin and Gagne 2002
9. History
•In 1988, Microsoft decided to develop a “new technology” (NT)
portable operating system that supported both the OS/2 and POSIX
APIs.
•Originally, NT was supposed to use the OS/2 API as its native
environment but during development NT was changed to use the Win32
API, reflecting the popularity of Windows 3.0.
10. Design Principles
•Extensibility — layered architecture.
•Executive, which runs in protected mode, provides the basic system
services.
•On top of the executive, several server subsystems operate in user
mode.
•Modular structure allows additional environmental subsystems to be
added without affecting the executive.
•Portability — 2000 can be moved from on hardware architecture to
another with relatively few changes.
•Written in C and C++.
•Processor-dependent code is isolated in a dynamic link library (DLL)
called the “hardware abstraction layer” (HAL)
11. •Reliability — 2000 uses hardware protection for virtual memory, and
software protection mechanisms for operating system resources.
•Compatibility — applications that follow the IEEE 1003.1 (POSIX)
standard can be complied to run on 2000 without changing the source
code.
•Performance — 2000 subsystems can communicate with one another
via high-performance message passing.
•Preemption of low priority threads enables the system to respond
quickly to external events.
•Designed for symmetrical multiprocessing.
•International support — supports different locales via the national
language support (NLS) API. Operating
12. Architecture
•Layered system of modules.
•Protected mode — HAL, kernel, executive.
•User mode — collection of subsystems
•Environmental subsystems emulate different operating systems.
•Protection subsystems provide security functions.
13. System Components — Kernel
•Foundation for the executive and the subsystems.
•Never paged out of memory; execution is never preempted.
•Four main responsibilities:
•thread scheduling
•interrupt and exception handling
•low-level processor synchronization
•recovery after a power failure
•Kernel is object-oriented, uses two sets of objects.
•dispatcher objects control dispatching and synchronization (events,
mutants, mutexes, semaphores, threads and timers).
•control objects (asynchronous procedure calls, interrupts, power notify,
power status, process and profile objects.)
14. Kernel — Process and Threads
•The process has a virtual memory address space, information (such as a
base priority), and an affinity for one or more processors.
•Threads are the unit of execution scheduled by the kernel’s dispatcher.
•Each thread has its own state, including a priority, processor affinity,
and accounting information.
•A thread can be one of six states: ready, standby, running, waiting,
transition, and terminated.
15. Kernel-scheduling
•The dispatcher uses a 32-level priority scheme to determine the order of
thread execution. Priorities are divided into two classes..
•The real-time class contains threads with priorities ranging from 16 to
32.
•The variable class contains threads having priorities from 0 to 15.
•Characteristics of 2000’s priority strategy.
•Trends to give very good response times to interactive threads that are
using the mouse and windows.
•Enables I/O-bound threads to keep the I/O devices busy.
•Complete-bound threads soak up the spare CPU cycles in the
background.
•Scheduling can occur when a thread enters the ready or wait state,
when a thread terminates, or when an application changes a thread’s
priority or processor affinity.
•Real-time threads are given preferential access to the CPU; but 2000
does not guarantee that a real-time thread will start to execute within any
particular time limit.
16. File System
•The fundamental structure of the 2000 file system (NTFS) is a volume.
•Created by the 2000 disk administrator utility.
•Based on a logical disk partition.
•May occupy a portions of a disk, an entire disk, or span across several
disks.
•All metadata, such as information about the volume, is stored in a
regular file.
•NTFS uses clusters as the underlying unit of disk allocation.
•A cluster is a number of disk sectors that is a power of two.
•Because the cluster size is smaller than for the 16-bit FAT file system,
the amount of internal fragmentation is reduced.
17. File System — Internal Layout
•NTFS uses logical cluster numbers (LCNs) as disk addresses.
•A file in NTFS is not a simple byte stream, as in MS-DOS or UNIX,
rather, it is a structured object consisting of attributes.
•Every file in NTFS is described by one or more records in an array
stored in a special file called the Master File Table (MFT).
•Each file on an NTFS volume has a unique ID called a file reference.
•64-bit quantity that consists of a 48-bit file number and a 16- bit
sequence number.
•Can be used to perform internal consistency checks.
•The NTFS name space is organized by a hierarchy of directories; the
index root contains the top level of the B+ tree.
18. File System — Recovery
•All file system data structure updates are performed inside
transactions.
•Before a data structure is altered, the transaction writes a log record
that contains redo and undo information.
•After the data structure has been changed, a commit record is written
to the log to signify that the transaction succeeded.
•After a crash, the file system data structures can be restored to a
consistent state by processing the log records.
•This scheme does not guarantee that all the user file data can be
recovered after a crash, just that the file system data structures (the
metadata files) are undamaged and reflect some consistent state prior to
the crash..
•The log is stored in the third metadata file at the beginning of the
volume.
•The logging functionality is provided by the 2000 log file service.
19. File System — Security
•Security of an NTFS volume is derived from the 2000 object model.
•Each file object has a security descriptor attribute stored in this MFT
record.
•This attribute contains the access token of the owner of the file, and an
access control list that states the access privileges that are granted to
each user that has access to the file.
20. Networking
•2000 supports both peer-to-peer and client/server networking; it also
has facilities for network management.
•To describe networking in 2000, we refer to two of the internal
networking interfaces:
•NDIS (Network Device Interface Specification) — Separates network
adapters from the transport protocols so that either can be changed
without affecting the other.
•TDI (Transport Driver Interface) — Enables any session layer
component to use any available transport mechanism.
•2000 implements transport protocols as drivers that can be loaded and
unloaded from the system dynamically.
21. Networking — Protocols
•The server message block (SMB) protocol is used to send I/O requests
over the network. It has four message types: - Session control - File -
Printer – Message
•The network basic Input/Output system (NetBIOS) is a hardware
abstraction interface for networks. Used to:
•Establish logical names on the network.
•Establish logical connections of sessions between two logical names on
the network.
•Support reliable data transfer for a session via NetBIOS requests or
SMBs
•NetBEUI (NetBIOS Extended User Interface): default protocol for
Windows 95 peer networking and Windows for Workgroups; used when
2000 wants to share resources with these networks.
•2000 uses the TCP/IP Internet protocol to connect to a wide variety of
operating systems and hardware platforms.
22. •PPTP (Point-to-Point Tunneling Protocol) is used to communicate
between Remote Access Server modules running on 2000 machines
that are connected over the Internet.
•The 2000 NWLink protocol connects the NetBIOS to Novell NetWare
networks.
•The Data Link Control protocol (DLC) is used to access IBM
mainframes and HP printers that are directly connected to the network.
•2000 systems can communicate with Macintosh computers via the
Apple Talk protocol if an 2000 Server on the network is running the
Windows 2000 Services for Macintosh package.
23. Programmer Interface — Access to Kernel Obj.
•A process gains access to a kernel object named XXX by calling the
CreateXXX function to open a handle to XXX; the handle is unique to
that process.
•A handle can be closed by calling the CloseHandle function; the system
may delete the object if the count of processes using the object drops to
0.
•2000 provides three ways to share objects between processes.
•A child process inherits a handle to the object.
•One process gives the object a name when it is created and the second
process opens that name.
•DuplicateHandle function: Given a handle to process and the handle’s
value a second process can get a handle to the same object, and thus
share it.
24. Programmer Interface — Process Management
•Process is started via the CreateProcess routine which loads any
dynamic link libraries that are used by the process, and creates a primary
thread.
•Additional threads can be created by the CreateThread function.
•Every dynamic link library or executable file that is loaded into the
address space of a process is identified by an instance handle.
•Scheduling in Win32 utilizes four priority classes: -
IDLE_PRIORITY_CLASS (priority level 4) -
NORMAL_PRIORITY_CLASS (level8 — typical for most processes -
HIGH_PRIORITY_CLASS (level 13) -
REALTIME_PRIORITY_CLASS (level 24)
•To provide performance levels needed for interactive programs, 2000
has a special scheduling rule for processes in the
NORMAL_PRIORITY_CLASS.
•2000 distinguishes between the foreground process that is currently
selected on the screen, and the background processes that are not
currently selected.
•
25. •When a process moves into the foreground, 2000 increases the
scheduling quantum by some factor, typically 3.
•The kernel dynamically adjusts the priority of a thread depending on
whether it is I/O-bound or CPU-bound.
•To synchronize the concurrent access to shared objects by threads, the
kernel provides synchronization objects, such as semaphores and
mutexes.
•In addition, threads can synchronize by using the WaitForSingleObject
or WaitForMultipleObjects functions.
•Another method of synchronization in the Win32 API is the critical
section.
•A fiber is user-mode code that gets scheduled according to a user-
defined scheduling algorithm.
•Only one fiber at a time is permitted to execute, even on multiprocessor
hardware.
•2000 includes fibers to facilitate the porting of legacy UNIX
applications that are written for a fiber execution model
26. Programmer Interface — Interprocess Comm.
•Win32 applications can have interprocess communication by sharing
kernel objects.
•An alternate means of interprocess communications is message passing,
which is particularly popular for Windows GUI applications.
•One thread sends a message to another thread or to a window.
•A thread can also send data with the message.
•Every Win32 thread has its won input queue from which the thread
receives messages.
•This is more reliable than the shared input queue of 16-bit windows,
because with separate queues, one stuck application cannot block input
to the other applications.
27. Programmer Interface — Memory Management
•Virtual memory: - VirtualAlloc reserves or commits virtual memory. -
VirtualFree decommits or releases the memory.
•These functions enable the application to determine the virtual address
at which the memory is allocated.
•An application can use memory by memory mapping a file into its
address space.
•Multistage process.
•Two processes share memory by mapping the same file into their
virtual memory.
•A heap in the Win32 environment is a region of reserved address space.
• A Win 32 process is created with a 1 MB default heap.
• Access is synchronized to protect the heap’s space allocation data
structures from damage by concurrent updates by multiple threads.
•Because functions that rely on global or static data typically fail to
work properly in a multithreaded environment, the thread-local storage
mechanism allocates global storage on a per-thread basis
•The mechanism provides both dynamic and static methods of creating
thread-local storage.