This is responsible
for thread and process management. The functions performed include:
Thread and Process creation and termination.
Thread
scheduling (priority and state management).
Preparing
threads for dispatching.
Blockin
and Running.
Implementing
the Thread and Process related APIs.
The Scheduler's
principle control blocks are:
PTDA
Per Task Data Area
TCB
Thread Control Block
TSD
Thread Swappable Data
TSS
Task State Segment (H/W)
System
Loader
This is responsible for load module management.
The Loader's principle responsibilities include:
Bringing modules into memory and performing fixups.
Managing modules resources.
Managing dynamic linking.
Tracking module references.
Deleting modules from memory.
Managing the discaring
and swapping of module pages.
Implementing
module related APIs.
The Loader's principle control
blocks are:
MTE
Module Table Entry
SMTE
Swappable Module Table Entry
OTE
Object Table Entry
STE
Segment Table Entry
Memory
Management
Memory Management is responsible for
managing physical, virtual, and swapper memory. It's principle roles include:
Allocation and assignment of physical pages of memory.
Allocation and assignment
of virtual storage.
Managing
the swapper.
Memory locking.
Implementing memory related
APIs.
The principle control blocks of Memory Management
are:
VMAR
Virtual Memory Arena Record
VMOB
Virtual Memory Object Record
PF
Page Frame Structure
VP
Virtual Page Structure
PTE
Page Table Entry (H/W)
File
System
The File System kernel component responsibilities
include:
Access to FAT formatted media.
Interfacing
with File System Drivers for accessing non-FAT media.
Managing
and tracking the status of all open files.
Path
Management
File sharing
and serialisation.
Providing
helper Kernel services for FSDs.
Implementation
of all File System APIs.
The principle control
blocks of the File System include:
MFT
Master File Table Entry
SFT
System File Table Entry
CDS
Current Directory Structure
FSC
File System Control Block
Device
and I/O Management
This component is responsible
for interfacing with Physical Device Drivers. Its responsibilities include:
Routing requests to PDDs from applications
Managing
interrupts
Providing helper
kernel services for PDDs.
The principle control
blocks for device management include:
IRQI
IRQ Information Array
DIRQ
Device IRQ Information
REQ
PDD request Packet.
DEV
PDD device header.
Virtual
Dos Machine
This component is responsible for providing
the entire Dos Machine emulation. This has not been covered in this book,
except for the Virtual Device Driver interface.