logo资料库

Real-time Operating Systems Book 1: The Foundations.pdf

第1页 / 共388页
第2页 / 共388页
第3页 / 共388页
第4页 / 共388页
第5页 / 共388页
第6页 / 共388页
第7页 / 共388页
第8页 / 共388页
资料共388页,剩余部分请下载后查看
Opening pages
Real-Time Operating Systems - Table of Contents
Preface
What is this book series about?
Who should read this book series?
What is this book about?
How should the book be read?
Acknowledgements
Chapter 1 Real-time operating systems - things you really ought to know.
1.1 Setting the scene
1.2 Producing quality software
1.3 Modelling the software
1.4 The importance of time and timing
1.5 Handling multiple jobs
1.6 Handling complex multiple jobs
1.7 Using interrupts as the execution engine - simple quasi-concurrency
1.8 Basic features of real-time operating systems
1.9 Executives, kernels and operating systems
1.10 Task-based software design - a recap
Review
Chapter 2 Scheduling - Concepts and implementation.
2.1 Introduction
2.2 Simple cyclic, timed cyclic and cooperative scheduling
2.3 Round-Robin (time slicing) scheduling
2.4 Task priorities
2.5 Using queues
2.6 Priority pre-emptive scheduling
2.7 Implementing queues - the task control block
2.8 The process descriptor
2.9 The tick
2.10 Priorities and system responsiveness
2.11 By-passing the scheduler
2.12 Code sharing and re-entrancy
2.13 The unpredictability of run-time behaviour.
Review
Chapter 3 Control of shared resources - mutual exclusion.
3.1 The problem of using shared resources
3.2 Mutual exclusion using a single flag
3.3 The semaphore
3.3.1 The binary semaphore
3.3.2 The general or counting semaphore
3.3.3 Semaphore limitations and problems
3.4 The mutex
3.5 The simple monitor
3.6 Mutual exclusion - a final comment
Review
Chapter 4 Shared resources and contention issues
4.1 Resource contention - the deadlock problem in detail
4.2 Producing deadlock-free systems
4.3 Preventing deadlocks
4.3.1 Simultaneously sharing resources
4.3.2 Allowing request pre-emption
4.3.3 Controlling resource allocation
4.4 Priority inversion and task blocking
4.4.1 The priority inversion problem
4.4.2 Basic priority inheritance protocol
4.4.3 Immediate priority ceiling protocol
4.5 Deadlock prevention and performance issues
Review
Chapter 5 Intertask communication
5.1 Introduction
5.1.1 Overall aspects of intertask communication
5.1.2 Coordination versus synchronization
5.2 Task interaction without data transfer
5.2.1 Task coordination mechanisms
5.2.2 Task synchronization using event flags - the unilateral rendezvous
5.2.3 Task synchronization using signals - the bilateral rendezvous
5.3 Data transfer without task synchronization or coordination.
5.3.1 Overview
5.3.2 Pools
5.3.3 Queues
5.4 Task synchronization with data transfer
Review
Chapter 6 Memory usage and management
6.1 Storing digital information in embedded systems
6.1.1 Introduction
6.1.2 Non-volatile data stores
6.1.3 Volatile data stores
6.1.4 Memory devices - a brief Flash-RAM comparison
6.1.5 Memory devices - a brief SRAM-DRAM comparison
6.1.6 Embedded systems - memory device organization
6.2 Memory aspects - conceptual and physical.
6.3 Eliminating inter-task interference
6.3.1 Controlling memory accesses - a simple approach
6.3.2 Controlling memory accesses with a memory protection unit
6.3.3 Controlling memory accesses with a memory management unit
6.4 Dynamic memory allocation and its problems
6.4.1 Memory allocation and fragmentation
6.4.2 Memory allocation and leakage
6.4.3 Secure memory allocation
6.5 Memory management and solid-state drives.
Chapter 7 Multiprocessor systems
7.1 Embedded multiprocessors - why and what?
7.1.1 When one processor just isn't enough.
7.1.2 Processor structures - a general overview.
7.1.3 Multicore processors - symmetric and asymmetric types.
7.1.4 Multicomputer structures.
7.2 Software issues - job partitioning and allocation.
7.2.1 Introduction.
7.2.2 Structuring software as a set of functions.
7.2.3 Structuring software as a set of data processing operations.
7.3 Software control and execution issues.
7.3.1 Basic OS issues.
7.3.2 Scheduling and execution in AMP systems.
7.3.3 Scheduling and execution in SMP systems.
7.3.4 Scheduling and execution in BMP and mixed-mode systems.
7.3.5 A last comment.
Review
Chapter 8 Distributed systems
8.1 Software structuring in distributed systems.
8.2 Communication and timing aspects of distributed systems.
8.3 Mapping software onto hardware in distributed systems.
Review
Chapter 9 Analysis and review of scheduling policies
9.1 Overview
9.2 Priority-based non-pre-emptive scheduling policies.
9.3 Priority-based pre-emptive static scheduling policies - general.
9.4 Priority-based pre-emptive static scheduling - rate monotonic scheduling.
9.5 Priority-based pre-emptive static scheduling - combining task priority and criticality: a heuristic approach.
9.6 Priority-based pre-emptive dynamic scheduling policies - general.
9.7 Priority-based pre-emptive dynamic scheduling - earliest deadline scheduling.
9.8 Priority-based pre-emptive dynamic scheduling policies - computation time scheduling.
9.9 Priority-based pre-emptive dynamic scheduling policies - spare time (laxity) scheduling.
9.10 Improving processor utilization - forming rate groups
9.11 Scheduling strategy - a final comment
9.12 Scheduling timing diagrams - list of symbols
Review
Chapter 10 Operating systems - basic structures and features.
10.1 Setting the scene.
10.2 Simple multitasking via interrupts.
10.3 The Nanokernel.
10.4 The Microkernel.
10.5 A general-purpose embedded RTOS.
Review
Chapter 11 Performance and benchmarking of RTOSs
11.1 Introduction.
11.2 Measuring computer performance - Benchmarking.
11.2.1 Introduction.
11.2.2 Computation performance benchmarks.
11.2.3 OS performance.
11.3 Time overheads in processor systems.
11.4 OS Performance and representative benchmarks.
11.5 OS Performance and synthetic benchmarks.
11.5.1 Overview.
11.5.2 Basic requirements.
11.5.3 Test categories.
11.5.4 Baseline (reference) test data.
11.5.5 Test stressing methods.
Review
Chapter 12 The testing and debugging of multitasking software
12.1 Setting the scene.
12.2 Testing and developing multitasking software - a professional approach.
12.3 In-target testing - practical tool features.
12.3.1 Overview.
12.3.2 RTOS testing using dedicated control and data collection units.
12.3.3 RTOS testing using on-chip data storage methods.
12.3.4 RTOS testing using host-system data storage facilities.
12.4 Target system testing - some practical points.
12.4.1 Introduction.
12.4.2 Testing the concurrency of individual tasks.
12.4.3 Implementing and testing concurrent operations.
Review
Chapter 13 Epilogue
13.1 Tasks, threads and processes
13.1.1 General aspects
13.1.2 Code execution in an embedded environment - a simple-man's guide
13.1.3 Software activities, applications and tasks
13.1.4 Concurrency within tasks in a single processor system
13.1.5 Running multiple applications
13.1.6 Summary
13.2 Running multiple diverse applications - time partitioning
13.3 RTOS's vs. general-purpose OS's.
13.4 Bibliography and reference reading material.
Index
The engineering of real-time embedded systems Real-time Operating Systems
Book 1 - The theory Jim Cooling For Nieve and Gavin Who give us the best possible reason to visit Australia Tá tú go deo inár gcroí ar Published by Lindentree Associates © 2017 The rights of James E Cooling to be identified as author of this work has been asserted by him in accordance with the Copyright, Design and Patents Act 1988.
Real-Time Operating Systems - Table of Contents Opening pages Preface What is this book series about? Who should read this book series? What is this book about? How should the book be read? Acknowledgements Chapter 1 Real-time operating systems - things you really ought to know. 1.1 Setting the scene 1.2 Producing quality software 1.3 Modelling the software 1.4 The importance of time and timing 1.5 Handling multiple jobs 1.6 Handling complex multiple jobs 1.7 Using interrupts as the execution engine - simple quasi-concurrency 1.8 Basic features of real-time operating systems 1.9 Executives, kernels and operating systems 1.10 Task-based software design - a recap Review Chapter 2 Scheduling - Concepts and implementation. 2.1 Introduction 2.2 Simple cyclic, timed cyclic and cooperative scheduling 2.3 Round-Robin (time slicing) scheduling 2.4 Task priorities 2.5 Using queues 2.6 Priority pre-emptive scheduling 2.7 Implementing queues - the task control block 2.8 The process descriptor 2.9 The tick 2.10 Priorities and system responsiveness 2.11 By-passing the scheduler
2.12 Code sharing and re-entrancy 2.13 The unpredictability of run-time behaviour. Review Chapter 3 Control of shared resources - mutual exclusion. 3.1 The problem of using shared resources 3.2 Mutual exclusion using a single flag 3.3 The semaphore 3.3.1 The binary semaphore 3.3.2 The general or counting semaphore 3.3.3 Semaphore limitations and problems 3.4 The mutex 3.5 The simple monitor 3.6 Mutual exclusion - a final comment Review Chapter 4 Shared resources and contention issues 4.1 Resource contention - the deadlock problem in detail 4.2 Producing deadlock-free systems 4.3 Preventing deadlocks 4.3.1 Simultaneously sharing resources 4.3.2 Allowing request pre-emption 4.3.3 Controlling resource allocation 4.4 Priority inversion and task blocking 4.4.1 The priority inversion problem 4.4.2 Basic priority inheritance protocol 4.4.3 Immediate priority ceiling protocol 4.5 Deadlock prevention and performance issues Review Chapter 5 Intertask communication 5.1 Introduction 5.1.1 Overall aspects of intertask communication 5.1.2 Coordination versus synchronization 5.2 Task interaction without data transfer 5.2.1 Task coordination mechanisms 5.2.2 Task synchronization using event flags - the unilateral rendezvous 5.2.3 Task synchronization using signals - the bilateral rendezvous
5.3 Data transfer without task synchronization or coordination. 5.3.1 Overview 5.3.2 Pools 5.3.3 Queues 5.4 Task synchronization with data transfer Review Chapter 6 Memory usage and management 6.1 Storing digital information in embedded systems 6.1.1 Introduction 6.1.2 Non-volatile data stores 6.1.3 Volatile data stores 6.1.4 Memory devices - a brief Flash-RAM comparison 6.1.5 Memory devices - a brief SRAM-DRAM comparison 6.1.6 Embedded systems - memory device organization 6.2 Memory aspects - conceptual and physical. 6.3 Eliminating inter-task interference 6.3.1 Controlling memory accesses - a simple approach 6.3.2 Controlling memory accesses with a memory protection unit 6.3.3 Controlling memory accesses with a memory management unit 6.4 Dynamic memory allocation and its problems 6.4.1 Memory allocation and fragmentation 6.4.2 Memory allocation and leakage 6.4.3 Secure memory allocation 6.5 Memory management and solid-state drives. Chapter 7 Multiprocessor systems 7.1 Embedded multiprocessors - why and what? 7.1.1 When one processor just isn't enough. 7.1.2 Processor structures - a general overview. 7.1.3 Multicore processors - symmetric and asymmetric types. 7.1.4 Multicomputer structures. 7.2 Software issues - job partitioning and allocation. 7.2.1 Introduction. 7.2.2 Structuring software as a set of functions. 7.2.3 Structuring software as a set of data processing operations. 7.3 Software control and execution issues. 7.3.1 Basic OS issues.
7.3.2 Scheduling and execution in AMP systems. 7.3.3 Scheduling and execution in SMP systems. 7.3.4 Scheduling and execution in BMP and mixed-mode systems. 7.3.5 A last comment. Review Chapter 8 Distributed systems 8.1 Software structuring in distributed systems. 8.2 Communication and timing aspects of distributed systems. 8.3 Mapping software onto hardware in distributed systems. Review Chapter 9 Analysis and review of scheduling policies 9.1 Overview 9.2 Priority-based non-pre-emptive scheduling policies. 9.3 Priority-based pre-emptive static scheduling policies - general. 9.4 Priority-based pre-emptive static scheduling - rate monotonic scheduling. 9.5 Priority-based pre-emptive static scheduling - combining task priority and criticality: a heuristic approach. 9.6 Priority-based pre-emptive dynamic scheduling policies - general. 9.7 Priority-based pre-emptive dynamic scheduling - earliest deadline scheduling. 9.8 Priority-based pre-emptive dynamic scheduling policies - computation time scheduling. 9.9 Priority-based pre-emptive dynamic scheduling policies - spare time (laxity) scheduling. 9.10 Improving processor utilization - forming rate groups 9.11 Scheduling strategy - a final comment 9.12 Scheduling timing diagrams - list of symbols Review Chapter 10 Operating systems - basic structures and features. 10.1 Setting the scene. 10.2 Simple multitasking via interrupts. 10.3 The Nanokernel. 10.4 The Microkernel. 10.5 A general-purpose embedded RTOS.
Review Chapter 11 Performance and benchmarking of RTOSs 11.1 Introduction. 11.2 Measuring computer performance - Benchmarking. 11.2.1 Introduction. 11.2.2 Computation performance benchmarks. 11.2.3 OS performance. 11.3 Time overheads in processor systems. 11.4 OS Performance and representative benchmarks. 11.5 OS Performance and synthetic benchmarks. 11.5.1 Overview. 11.5.2 Basic requirements. 11.5.3 Test categories. 11.5.4 Baseline (reference) test data. 11.5.5 Test stressing methods. Review Chapter 12 The testing and debugging of multitasking software 12.1 Setting the scene. 12.2 Testing and developing multitasking software - a professional approach. 12.3 In-target testing - practical tool features. 12.3.1 Overview. 12.3.2 RTOS testing using dedicated control and data collection units. 12.3.3 RTOS testing using on-chip data storage methods. 12.3.4 RTOS testing using host-system data storage facilities. 12.4 Target system testing - some practical points. 12.4.1 Introduction. 12.4.2 Testing the concurrency of individual tasks. 12.4.3 Implementing and testing concurrent operations. Review Chapter 13 Epilogue 13.1 Tasks, threads and processes 13.1.1 General aspects 13.1.2 Code execution in an embedded environment - a simple-man's guide
分享到:
收藏