Contents
- Purpose
- Audience
- Organization
- Related Documentation
- Notation Conventions
- Symbol Conventions
- Support
- 1.1 What Is pSOSystem?
- 1.2 System Architecture
- 1.3 Integrated Development Environment
- 2.1 Overview
- 2.2 Multitasking Implementation
- 2.2.1 Concept of a Task
- 2.2.2 Decomposition Criteria
- 2.3 Overview of System Operations
- 2.3.1 Task States
- 2.3.2 State Transitions
- 2.3.3 Task Scheduling
- 2.3.4 Task Priority
- 2.3.5 Roundrobin by Timeslicing
- 2.3.6 Manual Roundrobin
- 2.3.7 Dispatch Criteria
- 2.3.8 Objects, Names, and IDs
- 2.4 Task Management
- 2.4.1 Creation of a Task
- 2.4.2 Task Control Block
- 2.4.3 Task Mode Word
- 2.4.4 Task Stacks
- 2.4.5 Task Memory
- 2.4.6 Death of a Task
- 2.4.7 Notepad Registers
- 2.4.8 The Idle Task
- 2.5 Storage Allocation
- 2.5.1 Regions and Segments
- 2.5.2 Special Region 0
- 2.5.3 Allocation Algorithm
- 2.5.4 Partitions and Buffers
- 2.6 Communication, Synchronization, Mutual
Exclusion
- 2.7 The Message Queue
- 2.7.1 The Queue Control Block
- 2.7.2 Queue Operations
- 2.7.3 Messages and Message Buffers
- 2.7.4 Two Examples of Queue Usage
- 2.7.5 Variable Length Message Queues
- 2.8 Events
- 2.8.1 Event Operations
- 2.8.2 Events Versus Messages
- 2.9 Semaphores
- 2.9.1 The Semaphore Control Block
- 2.9.2 Semaphore Operations
- 2.10 Asynchronous Signals
- 2.10.1 The ASR
- 2.10.2 Asynchronous Signal Operations
- 2.10.3 Signals Versus Events
- 2.11 Time Management
- 2.11.1 The Time Unit
- 2.11.2 Time and Date
- 2.11.3 Timeouts
- 2.11.4 Absolute Versus Relative Timing
- 2.11.5 Wakeups Versus Alarms
- 2.11.6 Timeslice
- 2.12 Interrupt Service Routines
- 2.12.1 Interrupt Entry
- 2.12.2 Synchronizing With Tasks
- 2.12.3 System Calls Allowed From an ISR
- 2.13 Fatal Errors and the Shutdown Procedure
- 2.14 Tasks Using Other Components
- 2.14.1 Deleting Tasks That Use Components
- 2.14.2 Restarting Tasks That Use Components
- 3.1 System Overview
- 3.2 Software Architecture
- 3.3 Node Numbers
- 3.4 Objects
- 3.4.1 Global Objects
- 3.4.2 Object ID
- 3.4.3 Global Object Tables
- 3.4.4 Ident Operations on Global Objects
- 3.5 Remote Service Calls
- 3.5.1 Synchronous Remote Service Calls
- 3.5.2 Asynchronous Remote Service Calls
- 3.5.3 Agents
- 3.5.4 RSC Overhead
- 3.6 System Startup and Coherency
- 3.7 Node Failures
- 3.8 Slave Node Restart
- 3.8.1 Stale Objects and Node Sequence Numbers
- 3.8.2 Rejoin Latency Requirements
- 3.9 Global Shutdown
- 3.10 The Node Roster
- 3.11 Dual-Ported Memory Considerations
- 3.11.1 P-Port and S-Port
- 3.11.2 Internal and External Address
- 3.11.3 Usage Within pSOS+m Services
- 3.11.4 Usage Outside pSOS+
- 4.1 Overview of Networking Facilities
- 4.2 pNA+ Software Architecture
- 4.3 The Internet Model
- 4.3.1 Internet Addresses
- 4.3.2 Subnets
- 4.3.3 Broadcast Addresses
- 4.3.4 A Sample Internet
- 4.4 The Socket Layer
- 4.4.1 Basics
- 4.4.2 Socket Creation
- 4.4.3 Socket Addresses
- 4.4.4 Connection Establishment
- 4.4.5 Data Transfer
- 4.4.6 Connectionless Sockets
- 4.4.7 Discarding Sockets
- 4.4.8 Socket Options
- 4.4.9 Non-Blocking Sockets
- 4.4.10 Out-of-Band Data
- 4.4.11 Socket Data Structures
- 4.5 The pNA+ Daemon Task
- 4.6 The User Signal Handler
- 4.7 Error Handling
- 4.8 Packet Routing
- 4.9 IP Multicast
- 4.10 Unnumbered Serial Links
- 4.11 Network Interfaces
- 4.11.1 Maximum Transmission Units (MTU)
- 4.11.2 Hardware Addresses
- 4.11.3 Control Flags
- 4.11.4 Network Subnet Mask
- 4.11.5 Destination Address
- 4.11.6 The NI Table
- 4.12 Address Resolution and ARP
- 4.12.1 The ARP Table
- 4.12.2 Address Resolution Protocol (ARP)
- 4.13 Memory Management
- 4.14 Memory Configuration
- 4.14.1 Buffer Configuration
- 4.14.1.1 MTU-Size Buffers
- 4.14.1.2 Service-Call-Size Buffers
- 4.14.1.3 128-Byte Buffers
- 4.14.1.4 Zero-Size Buffers
- 4.14.2 Message Blocks
- 4.14.3 Tuning the pNA+ Component
- 4.15 Zero Copy Options
- 4.15.1 Socket Extensions
- 4.15.2 Network Interface Option
- 4.16 Internet Control Message Protocol
(ICMP)
- 4.17 Internet Group Management Protocol
(IGMP)
- 4.18 NFS Support
- 4.19 MIB-II Support
- 4.19.1 Background
- 4.19.2 Accessing Simple Variables
- 4.19.3 Accessing Tables
- 4.19.4 MIB-II Tables
- 4.19.4.1 Interfaces Table
- 4.19.4.2 IP Address Table
- 4.19.4.3 IP Route Table
- 4.19.4.4 IP Address Translation Table
- 4.19.4.5 TCP Connection Table
- 4.19.4.6 UDP Listener Table
- 4.19.5 SNMP Agents
- 4.19.6 Network Interfaces
- 4.20 pRPC+ Subcomponent
- 4.20.1 What is a Subcomponent?
- 4.20.2 pRPC+ Architecture
- 4.20.3 Authentication
- 4.20.4 Port Mapper
- 4.20.5 Global Variable
- 5.1 Volume Types
- 5.2 Formatting and Initializing Disks
- 5.2.1 Which Volume Type Should I Use?
- 5.2.2 Format Definitions
- 5.2.3 Formatting Procedures
- 5.2.3.1 Hard Disks
- 5.2.3.2 Floppy Disks
- 5.3 Working With Volumes
- 5.3.1 Mounting And Unmounting Volumes
- 5.3.2 Volume Names and Device Numbers
- 5.3.3 Local Volumes: CD-ROM, MS-DOS and
pHILE+ Format Volumes
- 5.3.4 NFS Volumes
- 5.4 Files, Directories, and Pathnames
- 5.4.1 Naming Files on pHILE+ Format Volumes
- 5.4.2 Naming Files on MS-DOS Volumes
- 5.4.3 Naming Files on NFS Volumes
- 5.4.4 Naming Files on CD-ROM Volumes.
- 5.5 Basic Services for All Volumes
- 5.5.1 Opening and Closing Files
- 5.5.2 Reading And Writing
- 5.5.3 Positioning Within Files
- 5.5.4 Creating Files and Directories
- 5.5.5 Changing Directories
- 5.5.6 Moving and Renaming Files
- 5.5.7 Deleting Files
- 5.6 Special Services for Local Volume
Types
- 5.6.1 get_fn, open_fn
- 5.6.2 Direct Volume I/O
- 5.6.3 Blocking/Deblocking
- 5.6.4 Cache Buffers
- 5.6.5 Synchronization Modes
- 5.6.5.1 Immediate-Write Mode
- 5.6.5.2 Control-Write Mode
- 5.6.5.3 Delayed-Write Mode
- 5.6.5.4 Read-Only Mode
- 5.6.6 sync_vol
- 5.7 pHILE+ Format Volumes
- 5.7.1 How pHILE+ Format Volumes Are Organized
- 5.7.1.1 The Root Block
- 5.7.1.2 The Root Directory
- 5.7.1.3 The Volume Bitmap
- 5.7.1.4 The File Descriptor List
- 5.7.1.5 Control and Data Block Regions
- 5.7.2 How Files Are Organized
- 5.7.2.1 The File Number
- 5.7.2.2 The File Descriptor
- 5.7.2.3 File Types
- 5.7.2.4 Time of Last Modification
- 5.7.2.5 The File Expansion Unit
- 5.7.2.6 Extents
- 5.7.2.7 The Extent Map
- 5.7.3 Data Address Mapping
- 5.7.4 Block Allocation Methods
- 5.7.5 How Directories Are Organized
- 5.7.6 Logical and Physical File Sizes
- 5.7.7 System Calls Unique to pHILE+ Format
- 5.7.7.1 annex_f
- 5.7.7.2 lock_f
- 5.8 Special Considerations
- 5.8.1 Restarting and Deleting Tasks That
Use the pHILE+ File System Manager
- 5.8.1.1 Restarting Tasks That Use the
pHILE+ File System Manager
- 5.8.1.2 Deleting Tasks That Use the pHILE+
File System Manager
- 6.1 Introduction
- 6.2 Functions Summary
- 6.3 I/O Overview
- 6.3.1 Files, Disk Files, and I/O Devices
- 6.3.2 File Data Structure
- 6.3.3 Buffers
- 6.3.4 Buffering Techniques
- 6.3.5 stdin, stdout, stderr
- 6.3.6 Streams
- 6.4 Memory Allocation
- 6.5 Error Handling
- 6.6 Restarting Tasks That Use the pREPC+
Library
- 6.7 Deleting Tasks That Use the pREPC+
Library
- 6.8 Deleting Tasks With exit( ) or abort(
)
- 7.1 I/O System Overview
- 7.2 I/O Switch Table
- 7.3 Application-to-pSOS+ Interface
- 7.4 pSOS+ Kernel-to-Driver Interface
- 7.5 Device Driver Execution Environment
- 7.6 Device Auto-Initialization
- 7.7 Mutual Exclusion
- 7.8 I/O Models
- 7.8.1 Synchronous I/O
- 7.8.2 Asynchronous I/O
- 7.9 pREPC+ Drivers
- 7.10 Loader Drivers
- 7.11 pHILE+ Drivers
- 7.11.1 The Buffer Header
- 7.11.2 I/O Transaction Sequencing
- 7.11.3 Logical-to-Physical Block Translation
- 7.11.3.1 pHILE+ Format Volumes
- 7.11.3.2 MS-DOS Floppy Disk Format
- 7.11.3.3 Partitioned Hard Disk Format
(Standard MS-DOS)
- 7.11.4 MS-DOS Hard Drive Considerations:
Sector Size and Partitions
psos_support@isi.com
Copyright © 1996, Integrated Systems, Inc. All rights reserved.