REQUIREMENTS FOR LINUX SSYTEM
ADMINISTRATOR
v
Hardware-Abstraction Layer
The HAL
is the layer of software that hides hardware chipset differences from upper
levels of the operating system. The HAL exports a virtual hardware drivers.
Only a single version of each device driver is required for each CPU
architecture, no matter what support chips might be present. Device drivers map
devices and access them directly, but the chipset-specific details of mapping
memory, configuring I/O buses, setting up DMA, and coping with
motherboard-specific facilities are all provided by the HAL interfaces.
v
Kernel
The
kernel layer ofWindows has four main responsibilities: thread scheduling,
low-level processor synchronization, interrupt and exception handling, and
switching between user mode and kernel mode. The kernel is implemented in the C
language, using assembly language only where absolutely necessary to interface with
the lowest level of the hardware architecture.
Kernel Dispatcher
The
kernel dispatcher provides the foundation for the executive and the subsystems.
Most of the dispatcher is never paged out of memory, and its execution is never
preempted. Its main responsibilities are thread scheduling and context
switching, implementation of synchronization primitives, timer management,
software interrupts (asynchronous and deferred procedure calls), and exception
dispatching.
ü
Threads and Scheduling
Like many
other modern operating systems, Windows uses processes and threads for
executable code. Each process has one or more threads, and each thread has its
own scheduling state, including actual priority, processor affinity, and CPU
usage information.
There are
six possible thread states: ready, standby, running, waiting, transition,
and terminated. Ready indicates that the thread is waiting to run.
The highest-priority ready thread is moved to the standby state, which
means it is the next thread to run. In a multiprocessor system, each processor
keeps one thread in a standby state. A thread is running when it is executing
on a processor. It runs until it is preempted by a higher-priority thread,
until it terminates, until its allotted execution time (quantum) ends, or until
it waits on a dispatcher object, such as an event signaling I/O completion. A
thread is in the waiting state when it is waiting for a dispatcher object to be
signaled. A thread is in the transition state while it waits for resources
necessary for execution; for example, it may be waiting for its kernel stack to
be swapped in from disk. A thread enters the terminated state when it finishes
execution.
ü
Implementation of Synchronization Primitives
Key
operating-system data structures are managed as objects using common facilities
for allocation, reference counting, and security. Dispatcher objects control
dispatching and synchronization in the system. Examples of these objects
include the following:
The event object is used to record an event occurrence
and to synchronize this occurrence with some action. Notification events signal
all waiting threads, and synchronization events signal a single waiting thread.
The
mutant provides kernel-mode or user-mode mutual exclusion associated with the
notion of ownership.
The
mutex, available only in kernel mode, provides deadlock-free mutual exclusion.
The
semaphore object acts as a counter or gate to control the number of threads
that access a resource.
The
thread object is the entity that is scheduled by the kernel dispatcher. It is
associated with a process object, which encapsulates a virtual address space.
The thread object is signaled when the thread exits, and the process object,
when the process exits.
The timer
object is used to keep track of time and to signal timeouts when operations
take too long and need to be interrupted or when a periodic activity needs to
be scheduled.
Related Topics
Privacy Policy, Terms and Conditions, DMCA Policy and Compliant
Copyright © 2018-2023 BrainKart.com; All Rights Reserved. Developed by Therithal info, Chennai.