0% found this document useful (0 votes)
1 views

Automating the Processes of Selecting an Appropriate Scheduling Algorithm and Configuring the Scheduler Implementation for Time Triggered Embedded Systems 1st edition by Ayman Gendy, Michael Pont ISBN 3540876977 9783540876977 pdf download

The document discusses the challenges of scheduling algorithms for time-triggered embedded systems, focusing on the development of an enhanced algorithm, TTSA2, which improves task segmentation to increase schedulability. It highlights the NP-hard nature of determining task parameters and compares the new algorithm to previous methods, emphasizing its efficiency. The paper aims to automate the selection and configuration of schedulers for safety-critical applications, ensuring reliable system behavior in embedded environments.

Uploaded by

mapperucchas
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
1 views

Automating the Processes of Selecting an Appropriate Scheduling Algorithm and Configuring the Scheduler Implementation for Time Triggered Embedded Systems 1st edition by Ayman Gendy, Michael Pont ISBN 3540876977 9783540876977 pdf download

The document discusses the challenges of scheduling algorithms for time-triggered embedded systems, focusing on the development of an enhanced algorithm, TTSA2, which improves task segmentation to increase schedulability. It highlights the NP-hard nature of determining task parameters and compares the new algorithm to previous methods, emphasizing its efficiency. The paper aims to automate the selection and configuration of schedulers for safety-critical applications, ensuring reliable system behavior in embedded environments.

Uploaded by

mapperucchas
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 51

Download the full version and explore a variety of ebooks

or text books at https://ebookball.com

Automating the Processes of Selecting an


Appropriate Scheduling Algorithm and Configuring
the Scheduler Implementation for Time Triggered
Embedded Systems 1st edition by Ayman Gendy,
Michael Pont ISBN 3540876977 9783540876977
_____ Follow the link below to get your download now _____

https://ebookball.com/product/automating-the-processes-of-
selecting-an-appropriate-scheduling-algorithm-and-
configuring-the-scheduler-implementation-for-time-triggered-
embedded-systems-1st-edition-by-ayman-gendy-michael-pont-
isbn/

Access ebookball.com now to download high-quality


ebooks or textbooks
We believe these products will be a great fit for you. Click
the link to download now, or visit ebookball.com
to discover even more!

The Advanced Electric Power Grid Complexity Reduction


Techniques for Reliability Modeling 1st edition by Ayman
Faza, Sahra Sedigh, Bruce McMillin ISBN 3540876977
9783540876977
https://ebookball.com/product/the-advanced-electric-power-grid-
complexity-reduction-techniques-for-reliability-modeling-1st-edition-
by-ayman-faza-sahra-sedigh-bruce-mcmillin-
isbn-3540876977-9783540876977-13416/

Modelling Support for Design of Safety-Critical Automotive


Embedded Systems 1st edition by DeJiu Chen, Rolf
Johansson, Henrik Lonn, Yiannis Papadopoulos, Anders
Sandberg, Fredrik Torner, Martin Torngren ISBN 3540876977
https://ebookball.com/product/modelling-support-for-design-of-safety-
9783540876977
critical-automotive-embedded-systems-1st-edition-by-dejiu-chen-rolf-
johansson-henrik-lonn-yiannis-papadopoulos-anders-sandberg-fredrik-
torner-martin-torngren-isb/

Resilience in the Aviation System 1st edition by Antonio


Chialastri, Simone Pozzi ISBN 3540876977 9783540876977

https://ebookball.com/product/resilience-in-the-aviation-system-1st-
edition-by-antonio-chialastri-simone-pozzi-
isbn-3540876977-9783540876977-13626/

Embedded System Design Embedded Systems Foundations of


Cyber Physical Systems and the Internet of Things 3rd
Edition by Peter Marwedel ISBN 331956045X 9783319560458
https://ebookball.com/product/embedded-system-design-embedded-systems-
foundations-of-cyber-physical-systems-and-the-internet-of-things-3rd-
edition-by-peter-marwedel-isbn-331956045x-9783319560458-15824/
Modeling and Analyzing Disaster Recovery Plans as Business
Processes 1st edition by Andrzej Zalewski, Piotr
Sztandera, Marcin Ludzia, Marek Zalewski ISBN 3540876977
9783540876977
https://ebookball.com/product/modeling-and-analyzing-disaster-
recovery-plans-as-business-processes-1st-edition-by-andrzej-zalewski-
piotr-sztandera-marcin-ludzia-marek-zalewski-
isbn-3540876977-9783540876977-13734/

A Formal Approach for User Interaction Reconfiguration of


Safety Critical Interactive Systems 1st edition by David
Navarre, Philippe Palanque, Sandra Basnyat ISBN 3540876977
9783540876977
https://ebookball.com/product/a-formal-approach-for-user-interaction-
reconfiguration-of-safety-critical-interactive-systems-1st-edition-by-
david-navarre-philippe-palanque-sandra-basnyat-
isbn-3540876977-9783540876977-11314/

The Art of The Art of Designing Embedded Systems 1st


edition by Jack Ganssle 9780080499352 008049935X

https://ebookball.com/product/the-art-of-the-art-of-designing-
embedded-systems-1st-edition-by-jack-
ganssle-9780080499352-008049935x-8874/

Real Time Embedded Systems Design Principles and


Engineering Practices 1st Edition by Xiaocong Fan
0128015071 9780128015070
https://ebookball.com/product/real-time-embedded-systems-design-
principles-and-engineering-practices-1st-edition-by-xiaocong-
fan-0128015071-9780128015070-17208/

A Linear Time Algorithm for the k Maximal Sums Problem 1st


Edition by Fredrik Bengtsson, Jingsen Chen ISBN
9783540305514
https://ebookball.com/product/a-linear-time-algorithm-for-the-k-
maximal-sums-problem-1st-edition-by-fredrik-bengtsson-jingsen-chen-
isbn-9783540305514-9960/
Automating the Processes of Selecting an Appropriate
Scheduling Algorithm and Configuring the Scheduler
Implementation for Time-Triggered Embedded Systems

Ayman K. Gendy and Michael J. Pont

Embedded Systems Laboratory,


University of Leicester,
University Road, Leicester LE1 7RH, UK
{akg14,M.Pont}@le.ac.uk

Abstract. Predictable system behaviour is a necessary (but not sufficient)


condition when creating safety-critical and safety-related embedded systems.
At the heart of such systems there is usually a form of scheduler: the use of
time-triggered schedulers is of particular concern in this paper. It has been
demonstrated in previous studies that the problem of determining the task
parameters for such a scheduler is NP-hard. We have previously described an
algorithm (“TTSA1”) which is intended to address this problem. This paper
describes an extended version of this algorithm (“TTSA2”) which employs task
segmentation to increase schedulability. We show that the TTSA2 algorithm is
highly efficient when compared with alternative “branch and bound” search
schemes.

Keywords: Safety-related embedded systems, automatic code generation,


scheduler, time triggered.

1 Introduction
Developers creating software for use in the majority of “desktop” applications face a
very different set of challenges from those creating embedded software. For example,
the time interval within which the desktop system responds to a command may vary
significantly without causing a major problem: by contrast, even small variations in
timing behaviour (milliseconds or much less) in embedded systems may prove life
threatening in (for example) an industrial, automotive or medical system.
There are two common approaches used in building real-time embedded systems:
event-triggered (ET) and time-triggered (TT). The ET approach may prove cost
effective in cases where the system must handle many aperiodic and sporadic events
([4], [5]), since the conversion of such events to periodic events may reduce the
system utilisation. On the other hand “time-triggered systems are to be preferred with
respect to fault tolerance” [4] and are also considered as best match for supporting
safety critical applications ([1], [2], [3], [4]). In addition, it is widely recognised that
“Very safety critical systems, like X-by-wire require fault-tolerance and redundancy.
The implementation of such systems probably will fail without the framework of time-
triggered architectures” [5]. For these reasons, this paper focuses on systems with a
TT architecture.

M.D. Harrison and M.-A. Sujan (Eds.): SAFECOMP 2008, LNCS 5219, pp. 440–453, 2008.
© Springer-Verlag Berlin Heidelberg 2008
Automating the Processes of Selecting an Appropriate Scheduling Algorithm 441

In most TT designs, an “offline” (also known as “pre-runtime”, or “static”)


schedule is considered the best choice ([6], [7], [12], [14], [3]). It has been
demonstrated in previous studies that the problem of testing the schedulability and
determining the scheduler and task parameters for a set of tasks for such a system is
NP-hard ([7], [8], [9], [10]). As part of an effort to address these problems we
previously introduced a novel two-stage heuristic search technique (“TTSA1”) which
is intended to support the configuration of TT schedulers for use with resource-
constrained embedded systems which employ a single processor [11]. In this paper,
we extend our TTSA1 technique. Our goal is to show that, with appropriate (static)
task execution behaviour, tasks may be cleanly segmented, allowing an increase in
schedulability, while meeting the constraints of a set of periodic tasks for use with
reliable embedded systems.
The remainder of this paper is organised as follows. In Section 2, we review
previous work in scheduler design and selection. In Section 3, we introduce and
describe a modified scheduling algorithm (“TTSA2”) which is used to automate the
process of scheduler selection and configuration. In Section 4, we describe the
process used to assess the TTSA2 algorithm and present the results obtained from this
assessment. Finally, in Section 5, we discuss the results, present our conclusions and
make some suggestions for future work.

2 Related Work
In this section we review previous work in this area.

2.1 Scheduling Safety Critical Resource-Constrained Embedded Systems

A wide range of software architectures can be used for real-time systems, ranging
from a simple scheduler to a full real-time operating system (RTOS).
For resource-constrained embedded systems, which have a very limited memory
and CPU performance, a simple form of “time triggered co-operative” (TTC) – a form
of cyclic executive – scheduler ([2], [8], [12], [14], [15]), “which has low run-time
overhead”[14], is often used. For safety-critical applications which have hard real-
time constraints, such as low jitter requirements, TTC architectures demonstrate very
low levels of task jitter [16], and can maintain their low-jitter characteristics even
when techniques such as dynamic voltage scaling (DVS) are employed to reduce
system power consumption [17].

2.2 Time Triggered Co-operative Scheduler (TTC)

The TTC implementation discussed in this paper executes each task in a predefined
time intervals which is derived from a scheduler “tick”. The scheduler tick is usually
signalled by an interrupt associated with the (periodic) overflow of a hardware timer.
At each tick the status of each task is updated and tasks which are due to run are
dispatched. The processor is then often placed in an “idle” mode, where it will
remain until the next tick (in order to reduce the system power consumption).
442 A.K. Gendy and M.J. Pont

2.3 Time Triggered Hybrid Scheduler (TTH)


Despite some attractive features, a TTC solution is not always appropriate. For
example a TTC system cannot respond to a critical external event while executing
specific task: this presents problems if the required response time is shorter than the
worst case execution time, “WCET”, of any of the system tasks [18].
In these circumstances, the TTC architecture can be replaced with a fully pre-
emptive architecture (for example, a rate monotonic or the earliest deadline first,
architecture [22]). Such an approach provides flexibility (and, possibly, portability),
but it will also tend to increase the system complexity and overhead when compared
to pre-run-time scheduling ([6], [7]).
In some designs the system responsiveness can be increased while maintaining the
minimal resource requirements, by allowing a limited level of pre-emption in the
system. This can be done by employing what we call a “time-triggered hybrid”
(TTH) scheduler ([3], [19]), and others have called a “multi-rate executive with
interrupts” [20]. The TTH can be seen as a rate-monotonic scheduler that supports a
single, short, high priority, pre-empting task, and a collection of co-operative tasks
(which have equal priority which is less than that of the pre-empting task).
The pre-empting task may be used for periodic data acquisition, typically by means
of an analogue-to-digital converter or similar device. Such requirements are common
in, for example, control systems [13], and applications which involve data sampling
and Fast-Fourier transforms (FFTs) or similar techniques: see, for example, the work
by Schlindwein et al. [21].

2.4 Scheduler Design and Configuration

When implementing a TTC or TTH scheduler, the system designer has to determine
some parameters (including the length of the tick interval, the order in which tasks
must be dispatched, and the initial delay - or phase - of each task). Inappropriate
choice of these parameters may affect systems reliability (by violating task
constraints) or lead to unnecessarily high levels of task jitter and / or to increased
system power consumption. It has been demonstrated in previous studies that the
problem of determining these parameters is NP-hard ([7], [8], [9], [10]).
In order to cope with this challenge, schedulability analysis and scheduler design
have been studied extensively over many years: see, for example, work by Liu and
Layland [22] through to work by Xu [7]. Researchers have proposed solutions based
on simulated annealing techniques [9], constraint programming heuristics [30], branch
and bound algorithm ([28]), and genetic algorithms [29].
None of the work summarised above relates directly to TTC / TTH architectures:
instead, most previous studies have tended to focus on “conventional” RT operating
systems (e.g. VxWorks: [29]). Such operating systems exceed the resource require-
ments available in the types of processor considered in this study.

2.5 The TTSA1 Scheduling Algorithm

In an effort to support creation of TTC / TTH designs we have previously introduced


a novel two-stage heuristic search technique, “TTSA1”, which is intended to support
the configuration of these time-triggered schedulers for use with resource-constrained
embedded systems which employ a single processor [11].
Automating the Processes of Selecting an Appropriate Scheduling Algorithm 443

As noted above the TTSA1 algorithm helps to automate the process of both
scheduler selection and configuration. If a suitable scheduler is identified for a given
task set, TTSA1 attempts to determine the suitable scheduler parameters (the tick
interval) and task parameters (such as the task order and task offset). In determining
these parameters, TTSA1 aims to ensure that: (i) task constraints are met; (ii) power
consumption is “as low as possible”; (iii) a fully co-operative scheduler architecture is
employed whenever possible.
The input to TTSA1 is a list of task specifications and constraints. The algorithm
tests the schedulability of the given task set, first using the TTC scheduler. If the task
set cannot be scheduled with this scheduler, the process is repeated using the TTH
scheduler. The algorithm calculates a suitable tick interval, along with the task order
and the required offset value for each task if all the tasks are schedulable; otherwise a
list of the schedulable tasks is generated.
To achieve this result, TTSA1 begins by sorting the tasks according to two criteria:
a) task precedence, b) task deadline, laxity, period, WCET, or jitter. It is then
assumed that the first task will run with zero offset and the algorithm tries to find a
suitable offset for the second task, using the longest possible tick interval. If such an
offset is identified (and the constraints of both tasks are met), a third task is added to
the system and the process is repeated. We carry on in this way until all tasks have
been scheduled (if this proves possible).

3 The TTSA2 Scheduling Algorithm


In this section, we describe a modified version of the TTSA1 algorithm (“TTSA2”).
TTSA2 employs task segmentation to increase the number of task sets which can be
scheduled.

3.1 Overview

Despite its attractive features, the TTSA1 algorithm fails to find a suitable schedule
for a set of tasks in some cases. For example assume that for a given set all tasks
have deadlines equal to their periods. Assume also that this set includes two short
tasks (Task S1 and Tasks S2), and at least one long task (Task L).

Table 1. Task specifications for task set that cannot be scheduled with TTC/TTH

Task WCET (ms) Deadline (ms) Period (ms)


A 10 50 50
B 1 10 10
C 1 10 10

The TTSA1 algorithm fails to find a suitable schedule for this set if:
Deadline (S1) < WCET (S1) + WCET (L)
and
Deadline (S2) < WCET (S2) + WCET (L)
444 A.K. Gendy and M.J. Pont

Table 2. Task specifications for task set that can be scheduled with TTC/TTH

Task WCET (ms) Deadline (ms) Period (ms)


SA1 5 45 50
SA2 5 50 50
SB1 1 10 10
SC1 1 10 10

For example Task B and / or Task C shown in Table 1 will miss their deadlines
every time Task A runs if these three tasks are scheduled using TTC / TTH. To
overcome this situation, while still using a TTC / TTH architecture, long task(s) can
be divided into multiple short tasks ([3],[8], [16]): for example Task A can be divided
into two segments, Segment SA1 and Segment SA2, as shown in Table 2.
As previously indicated, testing the schedulability of a set of tasks and finding a
suitable scheduler for them (if any) is an NP-hard problem. The problem becomes
more complex if some parts of some tasks are required to exclude parts of other tasks
in the set. For example, it may be that Segment SA2 in Task A excludes Segment SB3
and Segment SC2 in Task B and Task C respectively, and Segment SB1 in Task B
excludes Segment SC1 in Task C.
In this section we extend our previous TTSA1 algorithm to deal with such
situations. We call the resulting algorithm TTSA2. The input to TTSA2 is a list of
task specifications and constraints, including critical-section boundaries.
The TTSA2 algorithm tests the schedulability of the given task set, first using the
TTC scheduler, if possible, otherwise it will try the TTH, considering each task as a
single segment. If the task set cannot be scheduled the process is repeated after
dividing one or more long tasks into two or more shorter tasks. The algorithm
calculates a suitable tick interval, the task order, the smallest number of task segments
along with the required offset value for each task and task segment if all the tasks are
schedulable; otherwise a list of the schedulable tasks and task segments is generated.
To achieve this result, TTSA2 begins (like TTSA1) by sorting the tasks according
to two criteria: a) task precedence, b) task deadline, laxity, period, WCET, or jitter. It
is then assumed that the first task will run as one segment with zero offset and the
algorithm tries to find a suitable offset for the second task (in one segment), using the
longest possible tick interval (the greatest common divisor of the task periods). If
such an offset is identified (and the constraints of both tasks are met), a third task is
added to the system and the process is repeated. We carry on in this way until all
tasks have been scheduled (if this proves possible). If a schedule cannot be found at
any stage the last task added to the design is removed and divided into two segments.
After adding the segmentation overhead and updating the segment deadlines (as
explained in the next subsections), the search proceeds (Fig. 1).
Please note that this search process is not exhaustive, and might be described as “best
characteristics first” approach: for example, it starts with a long tick interval (which is
known to reduce power consumption) and it gradually reduces the tick interval until it
matches the timing needs of the application (if ever). We proceed iteratively, stopping
the search when we have identified the first workable solution. We assume that -
because we have begun the search with “best characteristics” - any schedule identified
will represent a good (but not necessarily completely optimal) solution.
Automating the Processes of Selecting an Appropriate Scheduling Algorithm 445

START
Arrange tasks;
// Common divisors of task periods in descending order
GCD[t] = {GCD1, GCD2, …, GCDm}, t=1, 2,,.., m;
Sched_Strategy = {TTC, TTH};

// First check schedulability using TTC strategy


Sched_Strategy_Index = 1;
DO{
Tick_index = 1;
DO{
Tick_Interval = GCD[Tick_index];
Add the first task as one segment with zero offset;
i = 1; Sched_Tasks = 1;
DO{
i++;
Add the next task, one segment at a time;
start segment with zero offset;
DO{
Sched[i] = Check_Sched(i, Tick_index,
Sched_Strategy_Index);
IF (Sched[i] = TRUE)
{ Sched_Tasks ++ ;}
ELSE
{
Increment offset of the last added segment;
Add the segmentation overhead;
}
} WHILE((constraints violated) and
(offset<=Period));
} WHILE (i < total number of tasks);
IF ( Sched_Tasks = total number of tasks )
{
Print task offsets, tick interval,
scheduler type;
EXIT;
}
ELSE
{ Tick_index++;}
} WHILE (Tick_index <= m )
Sched_Strategy++; // Try the TTH strategy
} WHILE (Sched_Strategy_Index <= 2);
Print list of scheduled and unscheduled tasks;
END

Fig. 1. Pseudo code for the TTSA2 algorithm

3.2 Adjusting the Segment Deadline

If Task T is divided into n segments, ST1, ST2.., STn, then the TTSA2 algorithm
calculates the deadline of each segment as follows:
Deadline (STn) = Deadline (T) . (1)

Deadline (STi-1) = Deadline (STi) – WCET (STi), where i = n, n-1, n-2…,2 . (2)
Please notice the deadline of Segment SA1 in Table 2 as an example.
To be able to divide long tasks into multiple short tasks accurate information about
the task WCET and the points at which the task can / cannot be pre-empted (the critical
446 A.K. Gendy and M.J. Pont

sections boundaries) must be specified. This can be done using techniques such as the
“single path programming paradigm” ([24], [25]) or code balancing techniques [23].

3.3 Adding Segmentation Overhead

If a task is divided into two or more segments, the TTSA2 algorithm takes
segmentation overhead into account. This overhead represents the time needed to
save the context of the current segment and the time needed to restore this context
when the next segment becomes ready to run. The time required for saving the
context (Context_Saving_overhead) may not be the same as that required for loading
the context (Context_Loading_overhead).
If Task T is divided into n segments, ST1, ST2.., STn, then the TTSA2 algorithm
updates the segments WCETs to reflect this overhead, as follows:
WCET (ST1) = WCET (ST1) + Context_Saving_overhead . (3)

WCET (STi) = Context_Loading_overhead + WCET (STi) +


(4)
Context_Saving_overhead, where i = 2, 3…, n-1.

WCET (STn) = Context_Loading_overhead +WCET (STn) . (5)

4 The Effectiveness of the TTSA2 Scheduling Algorithm


In this section the complexity and the effectiveness of the TTSA2 is evaluated. We
compare the performance of the TTSA2 with that of the “branch and bound”
algorithm (BaB), a standard benchmark which has been used previously to test the
effectives of heuristic algorithms[26].

4.1 Algorithm Complexity

Assume we have a set of n independent tasks and that each consists of s segments.
Investigating the schedulability of these tasks by means of a BaB algorithm requires
testing n paths, each of length n!, this has a complexity of O(n.n!) which is
“computationally intractable and cannot be used in practical systems when the
number of tasks is high”[27].
As noted elsewhere [11], the offset of each task can be any value in the range [0,
Period], in ticks. Taking all possible offset combinations (tn), where t is the period,
and considering each task as set of s segments, each may has different offset, the
complexity will increase to O(tn.s .n!).
By contrast, the TTSA2 algorithm does not try all paths. In addition, it does not
change the task or / and segment offset of a given task once it has been added
successfully to the schedule (that is, added without causing violation of the constraints
of any of the tasks and segments which have been included in the schedule
previously). The complexity of this algorithm is O(n.s.t).
Automating the Processes of Selecting an Appropriate Scheduling Algorithm 447

4.2 Algorithm Performance


An empirical test was carried out to explore the performance of the TTSA2 algorithm.
The procedure and the results of this test are discussed in this section.

4.2.1 The Test Tools


The chosen hardware platform was an NXP (formerly Philips) LPC2129 micro-
controller running on a small evaluation board. The LPC2129 is based on an
ARM7TDMI core and is typical of modern (low cost) embedded processors. The
measurements of the scheduler overhead and the segmentation overhead were carried
out using this microcontroller. This overhead was taken into account while perf-
orming the scheduling selection and configurations.
To compare the performance of the TTSA2 with that of the BaB a simple (custom)
scheduler simulator was executed on a desktop PC.

4.2.2 Task Constraints


The constraints considered in this study are described in this section.
Jitter calculation
As far as we are concerned in this paper, a task’s jitter is the variation in the interval
between the start times of the task. The starting time of each task is recorded so that
the jitter statistics can be estimated. In the experiment discussed in the present paper,
the upper bound of task jitter is (pseudo) randomly generated according to Equation 6.
0 ≤ Jitter ≤ P(i) , where P(i) is the period of Task i. (6)

Precedence
If it is required that Task A precedes Task B, then, in any tick, Task B is allowed to
start its execution only after Task A completes its execution (e.g. see [28]).
In the current study, the precedence relation between any two tasks, A and B, is
(pseudo) randomly generated iff
P(A) = P(B) . (7)
and
P(A) ≥ ( WCET(A) + WCET (B) ) . (8)

Exclusion
If it is required that Segment SA2 in Task A excludes Segment SB3 in Task B, then, at
any tick, Segment SA2 is not allowed to pre-empt Segment SB3 and vice versa [28].
In the current study some tasks segments in each set were (pseudo) randomly
selected to have an exclusion relation between them.
Distance
The distance relation between any two tasks, A and B, can be defined as the minimum
distance between the completion of Task A and the start of Task B [29].
In the current study the precedence relation between two tasks was (pseudo)
randomly generated according to Equation 9.
448 A.K. Gendy and M.J. Pont

0 ≤ Distance(A, B) ≤ P(A) – (WCET(A) + WCET (B)) . (9)


given that:
P (A) = P (B) and P(A) ≥ (WCET(A) + WCET (B)) (10)

Latency
The latency relation between any two tasks, A and B, can be defined as the maximum
distance between the completion of Task B and the start of Task A [29].
In the current study the latency relation between two tasks was (pseudo) randomly
generated as follows:
If there are no distances constraint between Task A and Task B then:
(WCET(A) + WCET (B)) ≤ Latency(A, B) ≤ Max (P(A), P(B)) (11)
given that:
Max (P(A), P(B)) ≥ (WCET(A) + WCET (B)) . (12)
Otherwise:
(WCET(A) + WCET (B) + Distance (A,B)) ≤ Latency(A, B) ≤ P(A) . (13)

4.2.3 Dataset Used


To explore the effectiveness of this algorithm, 1000 sets of tasks were (pseudo)
randomly generated. Each set consisted of 3, 4 and 5 tasks specified by WCETs,
deadlines and periods. These specifications were generated according to the following
criteria:
0 < WCET(i) ≤ 2000 µs . (14)

WCET(i) < P(i) ≤ 10000 µs . (15)

WCET(i) ≤ D(i) ≤ P(i) . (16)


In order to simplify the calculations, task periods were (pseudo) randomly
generated at multiples of 1 ms (constrained by (15)). Task constraints of precedence,
exclusion, distance, latency, and upper bound of jitter were also (pseudo) randomly
generated and were in line with the findings from previous studies (e.g. see [28], [29])
and are (pseudo) randomly generated constrained by Equation 6 – Equation 16.

4.2.4 Results (Small Task Sets)


We tested the effectiveness of the TTSA2 algorithm when scheduling small sets of
tasks (each contains 3, 4, or 5 tasks) and compared the results with those from the
TTSA1 and the BaB algorithms. The results obtained from the BaB algorithm with /
without using task segmentation are recorded as BaB1 and BaB2 respectively.
Fig. 2 to Fig. 4. show the number of task sets that was found to be schedulable
using TTSA1, TTSA2, BaB1, and BaB2. Please note that the results obtained by
combining the (unique) results from TTSAx-EDF, TTSAx-LLF, TTSAx-Jitter,
Automating the Processes of Selecting an Appropriate Scheduling Algorithm 449

TTSAx-RM, and TTSAx-SJF are shown in these figures as TTSAx-ALL, where x


equals 1 or 2 for TTSA1 and TTSA2. The number of trials until each algorithm
identified the set of tasks as schedulable/unschedulable and the total time are also
shown in Table 3.

Table 3. Number of trials and the total time

TTC TTH
3-task set
TTSA1 TTSA2 BaB1 BaB2 TTSA1 TTSA2 BaB1 BaB2

Minimum number of trials 2.00E+00 2.00E+00 2.00E+00 2.00E+00 2.00E+00 2.00E+00 2.00E+00 2.00E+00
Maximum number of trials 2.70E+02 5.80E+02 2.97E+03 4.66E+06 1.65E+02 3.30E+02 2.83E+03 1.99E+05
Average number of trials 2.46E+01 4.63E+01 3.51E+02 1.75E+04 1.59E+01 3.04E+01 1.97E+02 2.08E+03
Total number of trials 2.46E+04 4.63E+04 3.51E+05 1.75E+07 1.59E+04 3.04E+04 1.97E+05 2.08E+06
Total time (s) 4.00E+00 4.00E+00 3.90E+01 8.49E+02 2.50E+00 2.50E+00 2.50E+01 1.17E+02

TTC TTH
4-task set
TTSA1 TTSA2 BaB1 BaB2 TTSA1 TTSA2 BaB1 BaB2

Minimum number of trials 3.00E+00 3.00E+00 3.00E+00 3.00E+00 3.00E+00 3.00E+00 3.00E+00 3.00E+00
Maximum number of trials 2.65E+02 5.30E+02 7.23E+04 1.60E+08 2.65E+02 5.30E+02 4.21E+04 2.78E+07
Average number of trials 3.49E+01 7.01E+01 5.45E+03 5.30E+05 2.49E+01 4.99E+01 3.24E+03 1.13E+05
Total number of trials 3.49E+04 7.01E+04 5.44E+06 5.29E+08 2.49E+04 4.99E+04 3.23E+06 1.13E+08
Total time (s) 3.50E+00 4.50E+00 2.22E+02 1.73E+04 2.50E+00 4.50E+00 1.11E+02 4.17E+03

TTC TTH
5-task set
TTSA1 TTSA2 BaB1 BaB2 TTSA1 TTSA2 BaB1 BaB2

Minimum number of trials 4.00E+00 4.00E+00 4.00E+00 4.00E+00 4.00E+00 4.00E+00 4.00E+00 4.00E+00
Maximum number of trials 1.40E+02 3.14E+02 1.03E+06 1.21E+09 1.02E+02 2.26E+02 1.33E+06 1.98E+08
Average number of trials 4.04E+01 8.58E+01 8.84E+04 2.04E+07 2.93E+01 6.34E+01 5.41E+04 5.09E+06
Total number of trials 4.04E+04 8.58E+04 8.84E+07 2.04E+10 2.93E+04 6.34E+04 5.41E+07 5.09E+09
Total time (s) 2.50E+00 6.00E+00 3.69E+03 2.94E+06 2.50E+00 3.50E+00 5.26E+03 3.79E+05

From the results obtained it was noted that:


• TTSA2 found a suitable scheduler for more sets than TTSA1.
• Because TTSA2 tries to find a suitable (TTC or TTH) scheduler using the lowest
number of task segments, the results obtained from TTSA1 are found to be a
subset of the complete list of valid schedules identified by TTSA2. This means
that all the schedulers identified by both TTSA1 and TTSA2 have the same
scheduling overhead and power consumption.
• The results obtained from TTSA1 and TTSA2 (when overheads are taken into
account) are found to be a subset of the complete list of valid schedules
identified by BaB1 and BaB2, respectively. In addition, although TTSA1 and
TTSA2 test the schedulability using a subset of all the possible offset
combinations, they produce results which are similar to those obtained with the
BaB1 and BaB2 methods.
• The criteria used for adding the tasks to the TTSA1 and TTSA2 have an impact
on the schedulability of the set (different criteria may give different results).
450 A.K. Gendy and M.J. Pont

• Combining results from the variations of TTSA1 and variations of TTSA2


together gives results which are very close to those obtained from the BaB1 and
BaB2 respectively while requiring a much lower number of trials, and hence less
time (see Table 3).

4.2.5 Results (Large Task Set)


The results shown in Fig. 2. to Fig. 4. consider a maximum of 5 tasks. This is not an
unrealistic number for the resource-constrained systems we are concerned with in this
paper. However, this task set does not fully test the algorithm. In order to explore the
performance of TTSA2 on larger problems, 1000 new data sets were created. Each
data set consisted of 50 tasks, each with a maximum execution time of 2 ms and

Fig. 2. Number of Scheduled task sets (3 Fig. 3. Number of Scheduled task sets (4
interdependent tasks in each set) interdependent tasks in each set)

Fig. 4. Number of Scheduled task sets (5 Fig. 5. Number of Scheduled task sets (50
interdependent tasks in each set) interdependent tasks in each set)
Automating the Processes of Selecting an Appropriate Scheduling Algorithm 451

maximum period of 200 ms. The task sets were (pseudo) randomly created according
to the constraints described previously. To reduce the length of the major cycle, task
periods were (pseudo) randomly generated as a multiple of 20 ms.
The results from this test are shown in Fig. 5. It took approximately 1 minute to
complete the schedulability test for one set of 50 tasks using TTSA2-EDF, and a total
of approximately 6 minutes to complete the test for TTSA2-All. It was not possible
to complete this search using a BaB approach as this would have required performing
a huge number of trials.

5 Discussion and Conclusions


It has been previously demonstrated that using offline, or pre-runtime, scheduling
helps in reducing the complexity of inspecting and verifying the timing behaviour of
safety critical embedded systems ([6], [7]).
In this paper we introduced a new offline scheduling algorithm, TTSA2, which
helps to automate the process of determining the parameters required to schedule a
given set of tasks in a resource-constrained embedded system employing a TTC or
TTH architecture. The TTSA2 algorithm tries to find a suitable scheduler for the set
of tasks by dividing each task into two or more segments. While searching for a
workable scheduler the proposed scheduling algorithm ensures that the CPU power
consumption is “as low as possible” (by choosing the longest possible tick interval),
and the task constraints as well as individual segment constraints are met (by
adjusting the segment offsets, tick interval, and task orders), using the lowest number
of segments. If the tasks cannot all be scheduled (for example, if some timing const-
raints of one or more tasks cannot be met), a list of the schedulable/unschedulable
tasks is generated. The algorithm improves on the performance of both a BaB search
and a previous version of this algorithm (TTSA1).
The algorithm can be used as part of a tool for automatic code generation for safety–
critical, resource-constrained embedded systems. Using such a tool will not only reduce
the time and effort required to develop such systems but will reduce the probability of
scheduling errors, which may cause serious damage (see [31] for an example), as well.
In the current work we assume that a task can be divided into two or more
segments only at certain points of time (the critical segment boundaries). Future work
needs to be done to determine more efficient way to find the points of time at which
task can be divided. In addition, other methods are needed to explore ways for
choosing the pre-empting task in the TTH scheduler, in order to improve the results.

References
1. Domaratsky, Y., Perevozchikov, M.: Highly dependable time-triggered operating system-
static scheduling approach and effective run-time implementations, Dedicated Systems
Magazine, pp. 77–84 (October-December 2000)
2. Kopetz, H.: Real-Time Systems, Design Principles for Distributed Embedded
Applications. Kluwer Academic, Dordrecht (1997)
3. Pont, M.J.: Patterns For Time-Triggered Embedded Systems. Addison-Wesley, Reading
(2001)
452 A.K. Gendy and M.J. Pont

4. Scheler, F., Schröder-Preikschat, W.: Time-Triggered vs. Event-Triggered: A matter of


configuration? In: Dulz, W., Schröder-Preikschat, W. (eds.) MMB Workshop Proceedings
(GI/ITG Workshop on Non-Functional Properties of Embedded Systems Nuremberg, pp.
107–112. VDE Verlag, Berlin (2006) ISBN 978-3-8007-2956-2
5. Albert, A.: Comparison of Event-Triggered and Time-Triggered Concepts with Regard to
Distributed Control Systems, Embedded World 2004, Nuremberg, WEKA Verlag, pp.
235–252 (2004)
6. Xu, J.: Making Software Timing Properties Easier to Inspect and Verify. IEEE
Software 20(4), 34–41 (2003)
7. Xu, J., Parnas, D.L.: Priority Scheduling Versus Pre-Run-Time Scheduling. Int. Journal of
Time-Critical Systems 18, 7–23 (2000)
8. Baker, T.P., Shaw, A.: The Cyclic Executive Model and Ada. Real-Time Systems 1(1), 7–
25 (1989)
9. Tindell, K., Burns, A., Wellings, A.: Allocating Hard Real-Time Tasks: An NP-Hard
Problem Made Easy. Real-Time Systems 4(2), 145–165 (1992)
10. Baruah, S.K.: The Non-Preemptive Scheduling of Periodic Tasks Upon Multiprocessors.
Real-Time Systems 32(1-2), 9–20 (2006)
11. Gendy, A.K., Pont, M.J.: Automatically Configuring Time-Triggered Schedulers for Use
with Resource-Constrained, Single-Processor Embedded Systems. IEEE Trans. on
Industrial Informatics 4(1), 37–46 (2008)
12. Gangoiti, U., Marcos, M., Estévez, E.: Using Cyclic Executives for Achieving Closed
Loop Co-Simulation. In: Proc. of the Joint 44th IEEE Control and Decision Conference
and European Control Conference CDC-ECC 2005, Sevilla, pp. 3790 –4785 (2005)
13. Buttazzo, G.C.: Rate monotonic vs. EDF: Judgement day. Real-Time Systems 29(1), 5–26
(2005)
14. Huang, C., Chang, L., Kuo, T.: A Cyclic-Executive-Based QoS Guarantee over USB. In:
IEEE 9th Real-Time and Embedded Technology and Applications Symposium, Toronto,
Canada, May 27-30, 2003, pp. 88–95 (2003)
15. Burns, A.: Generating Feasible Cyclic Schedules. Control Engineering Practice 3(2), 151–
162 (1995)
16. Locke, C.D.: Software Architecture for Hard Real-Time Applications: Cyclic Executives
Vs. Fixed Priority Executives. Real-Time Systems 4(1), 37–52 (1992)
17. Phatrapornnant, T., Pont, M.J.: Reducing Jitter in Embedded Systems Employing A Time-
Triggered Software Architecture and Dynamic Voltage Scaling. IEEE Transactions on
Computers (Special Issue on Design and Test of Systems-On-a-Chip) 55(2), 113–124 (2006)
18. Allworth, S.T.: An Introduction to Real-Time Software Design. Macmillan, London (1981)
19. Maaita, A., Pont, M.J.: Using Planned Pre-Emption to Reduce Levels ff Task Jitter in a
Time-Triggered Hybrid Scheduler, UK Embedded Forum, Birmingham, UK, University of
Newcastle (2005)
20. Kalinsky, D.: Context Switch. Embedded Systems Programming 14(1), 94–105 (2001)
21. Schlindwein, F.S., Smith, M.J., Evans, D.H.: Spectral Analysis of Doppler Signals and
Computation of the Normalized First Moment in Real Time. Using a Digital Signal
Processor, Medical & Biological Engineering & Computing 26, 228–232 (1988)
22. Liu, C.L., Layland, J.W.: Scheduling Algorithms for Multiprogramming in a Hard Real-
Time Environment. Journal of the ACM 20(1), 40–61 (1973)
23. Gendy, A.K., Pont, M.J.: Towards a Generic Single-Path Programming Solution with
Reduced Power Consumption. In: Proceedings of the ASME 2007 International Design
Engineering Technical Conferences & Computers and Information in Engineering
Conference (IDETC/CIE 2007), Las Vegas, Nevada, USA, September 4-7 (2007)
Automating the Processes of Selecting an Appropriate Scheduling Algorithm 453

24. Puschner, P., Burns, A.: Writing Temporally Predictable Code. In: Proc. 7th IEEE
International Workshop on Object-Oriented Real-Time Dependable Systems, pp. 85–91
(January 2002)
25. Puschner, P.: The Single-Path Approach Towards WCET-Analysable Software. In: Proc.
IEEE International Conference on Industrial Technology, pp. 699–704 (December 2003)
26. Cucu, L., Sorel, Y.: Non-Preemptive Multiprocessor Scheduling for Strict Periodic
Systems with Precedence Constraints. In: Proc. 23rd Annual Workshop of the UK
Planning and Scheduling Special Interest Group, PLANSIG 2004, Cork, Ireland
(December 2004)
27. Buttazzo, G.: Hard Real-Time Computing Systems: Predictable Scheduling Algorithms
and Applications. Kluwer Academic, Dordrecht (1997)
28. Xu, J., Parnas, D.L.: Scheduling Processes with Release Times, Deadlines, Precedence and
Exclusion Relations. IEEE Transactions on Software Engineering 16(3), 360–369 (1990)
29. Sandström, K., Norström, C.: Managing Complex Temporal Requirements in Real-Time
Control Systems. In: 9th IEEE Conf. Engineering of Computer-Based Systems. IEEE,
Sweden (2002)
30. Ekelin, C., Jonsson, J.: Evaluation of Search Heuristics for Embedded System Scheduling
Problems. In: Proc. Int. Conf. Principles and Practice of Constraint Programming, Paphos,
Cyprus, pp. 640–654 (2001)
31. Reeves, G.: What Really Happened on Mars?, – Authoritative Account (1997),
http://research.microsoft.com
Other documents randomly have
different content
Alma, i. 17
Bothnia, Gulf of, Russian aims, i. 9, 41, 42
Boxer Rebellion, i. 136, 154, 155
Bulgaria:
Turko-Servian War, i. 24, 25;
Russian behaviour in, i. 29, 30
Burun, M., on the Russian fleet, i. 236, 237, 240, 241

Caucasus, the:
her Russian frontier, i. 5, 8, 33, 34, 57, 58;
her troops, i. 26, 114
Cavalry:
not sufficiently used, ii. 151, 152;
failure of the officers, ii. 153–155, 288;
details of units, ii. 162
Censorship, necessity for press, ii. 176
Charles XII., King of Sweden, war with Russia, i. 5
Cherniaeff, General, Geok Tepe, i. 32
Chichagoff, General, his alarmist reports, ii. 302, 321, 322
China:
peaceful attitude of, i. 5;
Peking Treaty, i. 35;
Russian frontier and trade, i. 67, 68;
war with Japan, i. 69, 151, 201–204;
Russian policy, i. 72, 157;
the awakening of, i. 91;
Boxer Rebellion and treaty with Russia, i. 154–162;
her alarm at Russia’s policy, i. 170;
Russian treatment of the Chinese, ii. 190, 191
Chin-chou, battle of, i. 257
Civil disorder, repression of, ii. 125
Constantinople, Russian advance to walls of, i. 30, 82
Cossacks. See Cavalry
Crimean War:
strength of Russian army, i. 13;
Russia’s unpreparedness, i. 16, 101, 109;
Inkerman, i. 18;
siege of Sevastopol, i. 19;
a premature peace, i. 20–22

Dalny:
Russian annexation of, i. 69;
Japanese use of, i. 127;
its fortifications, i. 172, ii. 207;
commerce, i. 190;
coal storage at, i. 246
Danube, the, Russian acquisition and loss of the mouths of, i.
13, 16, 19, 24, 32
Defence schemes, ii. 26–30
Dembovski, General, at Mukden, ii. 285, 286
Demchinski, M., Were we Ready for War? i. 111
Djam, Russian force at, i. 84
Dragomiroff, General, and quick-firing artillery, i. 136;
his theories, ii. 8, 10, 11
Dubniak Hill, capture of, i. 25
Dukhovski, General, Governor-General and Commander in the
Pri-Amur district,
and the Siberian Railway, i. 151, 171
Dushkevitch, Colonel, i. 302

Eastern Chinese Railway:


the bad condition of, i. 131, 132, 182–242;
a parallel in Persia, i. 193;
suggested sale to China, i. 221;
capacity of, i. 243–256
Emmanuel, Major, his appreciation of the Japanese army, i. 222
Engineers, ii. 141–146;
details of units, ii. 162
Essen, Admiral, his daring sally from Vladivostok, i. 239
Esthonia, Russian annexation of, i. 5
Eupatoria, the Allies’ disembarkation at, i. 17

Feng-huang-cheng, Russian occupation of, i. 170–174, 184


Finance Minister, dual capacity of, i. 139
Finland, Russian annexation of, i. 5, 12, 41;
Russian frontier, i. n. 11, 9;
her aims for autonomy, i. 42
Fortresses, work on the, i. 126–130
France:
her struggles with Russia, i. 10;
strength of her army, i. 15;
cause of Franco-Russian entente, i. 46;
lessons from the Franco-German War, i. 78–81
Friederichsham, Treaty of, i. 40, 41
Frontiers (see Russia), Russian, i. n. 11, 35, 40–77

Galicia, strategic value of, i. 54, 55


Geok Tepe, Russian attack on, i. 31, 85, 148
Georgia, Russian annexation of, i. 8
Germany:
war with Napoleon, i. 10;
her Russian frontier, i. 44, 45;
her Russian trade, i. 45, 59;
her strategic preparations, i. 46–49;
possibilities of war, i. 49, 50;
trade in Persia, i. 59, 60;
lessons from the Franco-German War, i. 79, 80;
her relative speed of mobilization, i. 90;
her perfect organization, i. 103, 113;
her military expenditure, i. 112, 113
Gerngros, General:
the Boxer Rebellion, i. 155;
wounded at Te-li-ssu, i. 219;
the battle near Mukden, ii. 278, 279, 293, 297
Giers, M., Russian Minister for Foreign Affairs, on the cession of
Kuldja, i. 93
Glinski, M., The Resurrected Dead, i. 292
Godunoff, Boris, and the Caspian Sea, i. 4
Goltz, Von der, a distinguished German writer, his dictum on war,
i. 88
Gorbatoff, M., Thoughts Suggested by Recent Military
Operations, ii. 75, 76
Great Britain:
strength of her army, i. 15;
the Crimean War, i. 16–20;
her trade with Persia, i. 59, 60;
Russia and Afghanistan, i. 62–67, 84, 85;
Afghan Boundary Commission, i. 86;
treaty with Japan, i. 269
Grieg, Admiral, Russian Minister of Finance, on the cession of
Kuldja, i. 93
Grippenberg, General, Commander of the 2nd Army:
his peculiar theories and behaviour, i. 299, ii. 11, 23–25, 55–
60, 251–253,
257, 260, 261, 264–267, 320;
The Truth about the Battle of Hei-kou-tai, ii. 83
Grodekovi, General, i. 154, 155
Guber, General, ii. 52
Gulistan, Treaty of, i. 60
Guns. See Artillery
Gurieff, M., The Outbreak of the Russo-Japanese War, i. 146
Gurko, General, siege of Plevna, i. 26; criticisms by, ii. 9

Hamilton, General Sir Ian, an appreciation of the Japanese


army, i. 223
Harbin:
concentration at, i. 155, 160;
railway difficulties, i. 245, 254, 261, 268;
drunkenness at, ii. 188
Hei-kou-tai, operations at, ii. 82, 83, 271, 320
Hei-ni-tun, Russian attack on, ii. 282
Herat, proposed railway, i. 67;
and Russia, i. 86
Hershelman, General, i. 279
Hsi-mu-cheng, concentration at, ii. 42
Hsi-ping-kai positions:
Russian occupation of, i. 229, ii. 32, 182, 287;
handed over to Japan, i. 232;
preparations near, ii. 184, 185, 194
Hun-huses, raids by, i. 158, 159

Imeretinski, General, at Plevna, i. 28


India and Russia’s policy, i. 64–67
Infantry (see Army):
the chief arm, ii. 155;
improvement in, ii. 156;
officers’ casualties, ii. 157, 158;
promotion in the field, ii. 159;
field v. office training, ii. 160;
organization and details of units, ii. 161–170;
penalties on active service, ii. 171–175
Istomin, Admiral, his heroic death, i. 18, 21
Ivanovitch, Tsar Theodore, i. 4

Japan:
peaceful attitude of, i. 5;
Russia and Saghalien, i. 35;
Peking Treaty, i. 35;
war with China, i. 69, 151, 202–204;
events leading up to the war with Russia, i. 123–130, 151,
157–166, 170, 177–179;
the Royal Timber Company, i. 172;
Kuropatkin’s visit to, and impressions of, i. 174, 175, 217–
223;
progress of negotiations, i. 188, 193;
Russia’s bluff, i. 193–198;
her early history, i. 199;
birth of her army, i. 200–202;
expedition to China, i. 203;
her estimated strength, i. 203, 208, ii. 192;
expansion for war, i. 204–206;
her loss in the war with Russia, i. 207, ii. 192;
her sea-transport, i. 209;
Russian criticisms on the army of, i. 210;
her officers in Russian employ, i. 212;
her reserve troops, i. 213;
the samurai spirit, i. 214;
her resentment with Russia, i. 215;
her system of education, i. 217–219;
Korea a vital question, i. 219;
German and English appreciations of, i. 222, 223;
her disembarkations on Liao-tung Peninsula and Kuan-tung
unhindered, i. 225;
her advantages, i. 226;
their moral tone, i. 227;
the nation with the army, i. 228;
partial exhaustion, i. 230, 235, ii. 194, 195;
strength of the fleets in the Far East, i. 236, 237;
the naval battles near Port Arthur and Vladivostok, i. 238–
241;
her victories at the Yalu, Chin-chou and Te-li-ssu, i. 257, 258,
ii. 38, 83;
her treaty with Great Britain, i. 269;
relative positions after fifteen months’ war, ii. 31–35, 39–44;
her losses, ii. 192, 193;
Kuropatkin’s summary of the war, ii. 217–287, 314–335
Jassy, Treaty of, i. 6
Jilinski, General, Headquarter Staff, i. 206, 256

Ka-liao-ma, ii. 274, 290


Kamchatka, Russian annexation of, i. 35
Kao-li-tun, ii. 275
Kars, the capture of the fortress of, i. 26, 30, 32, ii. 14
Kashgaria, i. 70;
Chinese take possession of, i. 92
Kaufmann, General, i. 32;
and Afghanistan, i. 85;
the cession of Kuldja, i. 92, 93;
the Bokhara Khanate, i. 147
Kaulbars, General, ii. 58;
in command of the 3rd Army, ii. 249, 265;
in command of the 2nd Army, ii. 268;
the assault of San-de-pu, ii. 271;
battles near Mukden, ii. 272–287;
criticisms on, ii. 288–305, 324–335
Keller, General Count, ii. 42, 221;
his death, ii. 71, 226
Khanates, the, i. 147, 148
Khilkoff, Prince, Minister of Ways and Communications, and the
Siberian Railway,
i. 246, 248, 250, 254
Khiva, Russian failure to gain possession of, i. 5
Kipke, Surgeon-General, list of Japanese casualties, i. 207, 208
Kirghiz tribes and Russia, i. n. 9, 5, n. 11
Kirin, capture of, i. 155
Kondratenko, General, the hero of Port Arthur, i, 300, ii. 71
Korea:
independence of, i. 69;
necessity for quiet in, i. 72, 73;
Russian activity in, i. 153, 178;
timber concession, i. 170;
council at Port Arthur on, i. 180, 181;
the Treaty of Peking, i. 199;
a vital question, i. 219
Korniloff, Admiral, siege of Sevastopol, i. 18;
heroic death, i. 21
Korniloff, Lieutenant-Colonel, ii. 286
Kronstadt, fortifications of, i. 126
Kruimoff, Captain, i. 303
Kuan-tung Peninsula: Russian annexation of, i. 35, 69;
Japanese land and fortify, i. 127, 257;
Russian defence force, ii. 206, 207
Kuang-cheng-tzu, seizure by rebels, i. 155
Kuldja, province of, i. 70;
the cession to China of, i. 92–95, 148, 149
Kuprin, M., The Duel, ii. 69
Kuroki, General:
in command of the 1st Japanese Army, i. 257, 258;
his opinion of the Russian shells, i. 306;
his victory at Te-li-ssu, ii. 38;
his positions, ii. 39, 40, 216, 222;
his turning movement, ii. 230–232, 264;
strength of his army, ii. 253;
battle of Liao-yang, ii. 317;
at Mukden, ii. 323,329, 332
Kuropatkin, General, Minister of War, afterwards Commander-in-
Chief:
his report on the possibilities of the twentieth century, i. 39;
his report on the Russian frontiers and their suitability, i. 40–
77;
deductions from the work of the army as a guide to future
wars, i. 96–110;
the work before the War Department, i. 111–144;
his opinion on the Manchurian and Korean questions, i. 145–
198;
difference of opinion with Admiral Alexeieff, i. 167–169;
the Royal Timber Company, i. 172–184, ii. 306;
his impressions on visiting Japan, i. 174, 175, 217–223;
his reports on the Manchurian position, i. 176–179, 189–193;
his responsibility for the rupture with Japan, i. 177–179;
his pyramid of Russian interests, i. 185, 186;
resignation on the establishment of the Viceroyalty, i. 187;
his proposal to give way, i. 189;
his report on strength of Japanese army, i. 242;
on necessity for Russian railway improvements, i. 252–254,
263–268;
on mobilization, i. 271–289;
on reserve of officers, i. 293, 294;
his recommendations as to officers, i. 301–305;
on machine-guns and ammunition, i. 306–309;
his criticisms of staff work, ii. 2, 3;
of cavalry, ii. 4;
of attack and the defence, ii. 5, 6;
of column formation in attack, ii. 6;
on the work of the artillery and sappers, ii. 7, 8;
on criticism by commanders, ii. 9;
on tactical instruction of our troops, ii. 10;
his supplementary and monthly instructions, ii. 12, 13, 15–22;
reasons for the reverses at Plevna, ii. 13, 14;
his diagram of, and opinion on, the relative positions in
Manchuria, ii. 33–44;
on difficulties in organization, ii. 44–60;
on defects in personnel, ii. 60–72;
on the rank and file and Social Revolutionists, ii. 72–81;
on the countermanding of orders, ii. 81–84;
takes the blame for the defeat at Mukden, ii. 85, 86, 335;
his farewell address, ii. 87–97;
his suggested improvements in the senior ranks and all arms,
ii. 98–176;
his summary of the war, and conclusions, ii. 177–305;
breakdown of the unit organization and distribution, ii. 314–
335
Kushk, proposed railway to, i. 67;
defeat of Afghans at, i. 86
Kutnevitch, General, ii. 297

Lamsdorff, M., Minister for Foreign Affairs,


and the Royal Timber Company, i. 173, 174, ii. 306, 311,
312
Launits, General, his gallantry, ii. 334
Lessar, Acting State Councillor, Russian Minister in China,
council at Port Arthur on the Yalu enterprise, i. 175, 180
Levestam, General:
withdrawal to Hsi-mu-cheng, ii. 40;
the battle near Mukden, ii. 283, 286
Liao-tung Peninsula, Japanese land at, i. 225, 257
Liao-yang:
seizure by rebels, i. 155;
Russian concentration at, i. 225, 242, 258;
battle at, ii. 18, 83, 229, 230, 317;
Russian retirement, ii. 86;
Japanese losses at, ii. 193;
Kuropatkin’s arrival at, ii. 209
Linievitch, General:
capture of Peking, i. 155;
in command of the 1st Army, i. 230, ii. 249, 324;
Commander-in-Chief, i. 301, ii. 198;
and Kuropatkin, ii. 56, 58
Livonia, Russia’s annexation of, i. 5
Lomakin, General, his disastrous expedition against the
Turcomans, i. 31
Losses, Russian, in the two main struggles, i. 36;
in past wars, i. 98;
in the future, i. 99

Madridoff, Lieutenant-Colonel, and the timber concession, i.


175, 181, 184, ii. 309
Makharoff, Admiral, i. 225, 238
Maksheef, Professor, on military expenditure, i. 111–113
Malakhoff Hill, capture of, i. 19
Malingering, i. 174
Maloshevitch, N. S., Memoirs of a Sevastopol Man, i. 16
Manchuria (see also Railways):
Russian movements in, i. 35;
the question of annexation, i. 71, 105, 157–179;
expansion of Russian garrison, i. 122;
the rising in, i. 126;
the War Minister’s opinion on, i. 145;
investigation of the timber concession, i. 180–184;
pyramid of Russian interests, i. 185, 186;
negotiations, i. 187–198;
Japanese invade Southern, ii. 32–44;
summary of the war, and conclusions, ii. 177–305
Martinoff, M. E., Spirit and Temper of the Two Armies, ii. 77, 78
Menshikoff, M., Russian writer, ii. 69
Menshikoff, Prince, Commander-in-Chief, Crimean War, i. 17;
battle of Inkerman, i. 18;
superseded, i. 19
Meyendorff, General Baron, Commander of 1st Army Corps, i.
302;
retreat of, ii. 284
Milutin, General:
the emancipation of the serfs, i. 24;
Plevna, i. 25;
cession of Kuldja, i. 93;
the improvement of the army, i. 113
Mischenko, General:
retirement of the local railway guards, i. 155;
his cavalry successes, ii. 150
Mobilization, relative speed of, i. 90;
inconveniences of, i. 272–286
Moscow, a poor spirit in, i. 198, 199
Muiloff, Lieutenant-General, ii. 282;
removal of, ii. 297;
his gallantry, ii. 334
Mukden:
seized by the rebels, i. 154;
recaptured, i. 155;
battles round, i. n. 76, 260, ii. 43, 246, 272–305, 314–335;
Japanese losses at, ii. 193, 194;
Russia’s unfavourable position at, ii. 196, 197, 240, 241

Nakhimoff, Admiral, i. 18;


his heroic death, i. 21
Namangan, occupation of, i. 148
Narbut, General, member of the military council, i. 293
Narva, reasons for Russian defeat at, i. 5
Nasha Jizu, newspaper, The Viceroy Alexeieff’s Firm Policy, i.
109
Navarin, Russian battleship, terrible loss on, i. 240
Navy, Russian:
state of, i. 15;
disadvantages of, i. 107;
its uselessness at Port Arthur, i. 131;
the Pacific Squadron, i. 224;
minor part played by, i. 236;
strength of Japanese and, i. 236, 237;
battles at Port Arthur and Vladivostok, i. 238–241
Newchuang:
Russian intentions, i. 157;
evacuation of, ii. 43
Nicholas II., Tsar of Russia, on improvements in the army, i.
120–122;
his efforts against war, i. 145, 187;
railway transport, i. 245, 252, 263–268;
mobilization, i. 272;
orders concentration, ii. 212;
on Kuropatkin’s retirement at Liao-yang, ii. 238;
his connection with the Royal Timber Company and
Bezobrazoff, ii. 306–313
Nicolaeff, Grand-Duke Michael, operations in Asia, i. 26
Nicolai-Pavlovitch, the late Emperor, his warning, i. 16
Nishtabtski, Treaty of, i. 5
Nodzu, General, lands on the Liao-tung Peninsula, i. 236;
his advance, ii. 222;
summary of the war, ii. 177–305, 314–335
Nogi, General, lands on the Liao-tung Peninsula, i. 236;
on the fall of Port Arthur, i. 260;
at Mukden, ii. 84, 152, 281;
summary of the war, ii. 177–305, 314–335
Norway, her frontiers, i. 40

Obrucheff, General, Chief of Headquarter Staff:


cession of Kuldja, i. 93;
the improvement of the army, i. 113
Offensive, advantages of strategic, ii. 169
Officers, Russian:
incapacity of, i. 101, ii. 1–11;
the shortage of, i. 290–295;
General Grippenberg’s resignation, i. 299, ii. 57;
quality of, i. 300–303;
The Resurrected Dead, i. 305;
the susceptibilities of, ii. 57, 58;
defects in, ii. 61–72, 95–97;
suggested improvements, ii. 98–113;
casualties among, ii. 157;
line officers have no fair chance, ii. 158;
promotion in the field, ii. 159;
field v. office training, ii. 160, 161;
suggested changes in rank of, ii. 164–168;
removal of incompetent, ii. 172
Oku, General:
his landing on the Liao-tung Peninsula, i. 236, 256;
joins General Nodzu’s army, ii. 43;
battle of Liao-yang, ii. 84;
summary of the war, ii. 177–305, 314–335
Organization, Russian:
defects in, i. 26, 27, 88, 89, 119;
difficulties in, ii. 44–60;
Kuropatkin’s proposals on, ii. 161–176;
breakdown of, ii. 314–320
Orenburg-Tashkent Railway, i. n. 34
Orloff, General, at Liao-yang, i. 279;
retreat to Yen-tai, ii. 234
Osaka, great exhibition at, i. 219
Ostolopoff, Colonel, i. 302
Osvobojdenie, the Royal Timber Company, ii. 307

Pacific Ocean, opposition to Russian access to, i. 146, 147


Patriotism in Japan and Russia, ii. 78–80, 121–123, 227
Paul II., Emperor of Russia, and the army, i. 8
Pavloff, Chamberlain, Russian Minister in Korea, Yalu enterprise,
i. 175, 180
Pavlovski, M., engineer of Siberian Railway, i. 253
Peking, Treaty of, i. 35, 199;
capture of, i. 155
Penalties on active service, ii. 171, 173
Persia:
war with Russia, i. 33;
frontier and trade with Russia, i. 58, 59;
the cockpit of the Middle East, i. 59;
Great Britain and Germany in, i. 60;
Russian aims in, i. 61
Personnel, defects in, ii. 60–72
Peter the Great:
war with Sweden, i. 5;
war with Turkey, i. 6;
founder of the Russian fleet, i. 7;
his struggles with Charles XII. and Napoleon, i. 10, 11;
his counsel, i, 20;
his influence, i. 41
Petroff, General, i. 245
Petrovitch, Paul, Emperor, his reforms, i. 38
Plancon, M., diplomat, investigation of the Timber Company, i.
180
Plehve, Von, Minister of the Interior, and the Timber Company,
ii. 311
Plevna, battle at, i. 25–30;
the cause of the Russian reverses at, ii. 13
Poland, Russia’s neighbour, i. 3;
her struggles with Russia, i. 7;
the problem of, i. 10, 11;
rebellion, i. 23
Poltava, Russian victory at, i. 5, 11, 41
Port Arthur:
Russian aims, i. 69;
work at, i. 126, 127;
armament for, i. 128, 129;
the council on the timber concession, i. 180–184;
Kuropatkin’s advice as to, i. 189, 190;
Chino-Japanese War, i. 202;
naval battles at, i. 238–241;
fall of, i. 260;
garrison at, ii. 205, 208;
weakness of, ii. 211, 213, 214;
result of fall of, ii. 299
Pri-Amur district and Russia, i. 77;
increase of troops in, i. 121, 122, 144, 151
Punishment, corporal, ii. 173
Putiloff Hill:
Japanese losses at, ii. 193;
movement of troops from, ii. 319

Railways, the Siberian, i. 123, 149, 156;


as a factor in the Japanese War, i. 131–134, 198;
the problem of, i. 242–254, ii. 31;
necessity for guarding, ii. 37
Razsvet, newspaper, on Kuropatkin’s responsibility, i. 177
Razviedchik (The Resurrected Dead), i. 292
Rediger, Lieutenant-General, War Minister, his report, i. 138, 139
Rennenkampf, General:
capture of Tsitsihar and Kirin, i. 155;
in the Tai-tzu Ho Valley, ii. 244, 254, 273;
Liao-yang, ii. 318, 328;
the gallantry of his troops, ii. 323
Reservists, Russian, i. 275–286, ii. 73, 163
Revenue, Russian, i. 142
Revolutionists, Social, ii. 75–80
Roop, General, criticisms by commanders, ii. 9.
Roslavleff, M., on Kuropatkin’s responsibility, i. 176, 177;
the council at Port Arthur, i. 184
Roumania:
Russian frontier, i. 44, 56;
her aspirations, i. 57.
Rozhdestvenski, Admiral, result of his defeat at Tsushima, i. 241,
242
Rusin, Captain, Russian naval attaché, his report on the
Japanese navy, i. 206, 207
Ruski Viestnik, article on the fleets in the Far East, i. 236, 237
Russia:
extent of, in the eighteenth century, i. 2, 3;
her neighbours, i. 3;
her aims, i. 4;
the Great Northern War and its result, i. 5–7;
extension of, in the nineteenth century, i. 8, 35;
reductions in the army, i. 8;
closer touch with Europe, i. 9;
struggles with France, i. 10;
Polish problem, i. 11;
annexation of Finland, i. 12;
further wars with Turkey, i. 13, 24;
deterioration of the army, i. 14;
her navy, i. 15;
her unpreparedness, i. 16;
Crimean War commences, i. 16;
Allies’ disembarkation permitted, i. 17;
battle of the Alma, i. 17, 18;
Inkerman, i. 18;
siege of Sevastopol, i. 18, 19;
a premature peace, i. 20–22, 81, 82;
emancipation of the serfs, i. 23;
Plevna, i. 25;
failure of assaults, i. 26;
her slow concentration and shortcomings, i. 27–29;
her ultimate success, i. 30;
Geok Tepe, i. 31;
Kushk, i. 32;
her position, i. 33–35;
losses in the two centuries, i. 36, 37, 98, 99;
peace and war establishments, i. 38;
her future, i. 39;
her Swedish frontier, i. 40–44;
her German frontier and trade, i. 44–50;
her Austro-Hungarian frontier, i. 50–55;
Austria’s strategic railways, i. 55;
her Roumanian frontier, i. 56;
her Turkish frontier and trade, i. 57;
her Persian frontier and trade, i. 58, 59;
her aims in Persia, i. 61;
her frontier with Afghanistan, i. 62;
her policy versus Great Britain, i. 63–66;
no wish for India, i. 67;
her Chinese frontier, trade, and policy, i. 67–73;
her position, i. 73–77;
lessons from Franco-German War, i. 79, 80;
National wars, i. 80, 81;
her isolation in 1878, i. 83;
her lever against Great Britain, i. 84;
Afghan Boundary Commission, i. 85, 86;
military economy, i. 187;
her disabilities, i. 188, 189;
relative speed of mobilization, i. 90;
the awakening of China, i. 91;
cession of Kuldja, i. 92–94;
her complications, i. 95;
deductions from the past, i. 96;
strain of armed peace, i. 97;
probable losses in the future, i. 99;
dangers of alien population, i. 102;
the chief duty of the twentieth century, i. 103;
her handicap on the west, i. 104, 114;
her forward movement in Manchuria, i. 105;
the disadvantages of a navy, i. 106, 107;
military expenditure, i. 112, 118;
expansion of forces in the Pri-Amur district, i. 121–123;
commencement and causes of the war with Japan, i. 123,
151, 156, 157;
work at Port Arthur, i. 127, 130;
railway factor, i. 131–149;
line of communications 5,400 miles long, i. 135;
dual capacity of Finance Minister, i. 139, 140;
her finance and revenue, i. 141–144;
War Minister’s opinion on the Manchurian and Korean
questions, i. 145;
inception of the Siberian Railway, i. 149–155;
Boxer Rebellion, i. 154, 155;
her intentions as to Manchuria, and the result, i. 157–170;
treaty with China, i. 158, 160;
influence of M. de Witte, i. 171;
the Royal Timber Company, i. 172–184, 306–313;
pyramid of her interests, i. 185, 186;
establishment of a Viceroyalty in the Far East, i. 187;
Kuropatkin’s special reports, i. 188–193;
her bluff, i. 194–198;
reasons for her reverses in the war with Japan, i. 229–309, ii.
1–97;
suggested improvements in the army, ii, 98–176;
summary of the war, ii. 177–287;
conclusions upon the battle of Mukden, i. 288–305;
breakdown of the unit organization and distribution, ii. 314–
Welcome to our website – the ideal destination for book lovers and
knowledge seekers. With a mission to inspire endlessly, we offer a
vast collection of books, ranging from classic literary works to
specialized publications, self-development books, and children's
literature. Each book is a new journey of discovery, expanding
knowledge and enriching the soul of the reade

Our website is not just a platform for buying books, but a bridge
connecting readers to the timeless values of culture and wisdom. With
an elegant, user-friendly interface and an intelligent search system,
we are committed to providing a quick and convenient shopping
experience. Additionally, our special promotions and home delivery
services ensure that you save time and fully enjoy the joy of reading.

Let us accompany you on the journey of exploring knowledge and


personal growth!

ebookball.com

You might also like