Contents


About This Manual

Purpose
Audience
Organization
Related Documentation
Notation Conventions
Symbol Conventions
Support

1 Product Overview

1.1 What Is pSOSystem?
1.2 System Architecture
1.3 Integrated Development Environment

2 pSOS+ Real-Time Kernel

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 pSOS+m Multiprocessing Kernel

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 Network Programming

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 pHILE+ File System Manager

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 pREPC+ ANSI C Library

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 I/O System

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

Index





psos_support@isi.com

Copyright © 1996, Integrated Systems, Inc. All rights reserved.