The monitoring component (MC) provides an interface
for the rest of DCPS to report status to the outside world
via several means. It can log debugging information to a
file, populate EPICS displays, or send feedback to the userinterface
component (UIC).
Typically, logging implies writing out successive lines of
text to a file to aid in tracing the order in which events
occur. There are different levels of log details such as error,
warning, informational, and one or more levels of debug with
increasing verbosity. RFC5424 from the Internet Engineering
task force defines eight logging levels which the MC will
implement. The various levels allow filtering based on the
characteristics of a given test. For example, an error indicates
an identified problem causing a failure, whereas a warning is
something that might be a concern but is not catastrophic.
Informational messages help tagging events in a timeline
(initialization complete, shot started, etc.), and debug messages
only serve a transient purpose while a developer traces down
a problem. Debug messages tend to be more intrusive to
real-time operations, either because of a high frequency or
because of overhead associated with crafting the specific line
of text.
Logging on a real-time system presents a challenge due to
the nondeterministic nature of writing out files. Whether the
application stores files on a local disk, a network mount, or
some other medium, writing to the files still requires kernel
system calls that disrupt deterministic real-time processing.
There are two approaches that, when combined, alleviate this
challenge.
For the first approach, the MC will do any output in a low
priority thread on a dedicated CPU. Conversely, the input will
arrive in a high priority thread that queues the writes to the
low priority thread. This separation between priorities provides
a mechanism that keeps short tasking at a high priority and
long tasking at a low priority to optimally allocate the system
resources.
The monitoring component (MC) provides an interfacefor the rest of DCPS to report status to the outside worldvia several means. It can log debugging information to afile, populate EPICS displays, or send feedback to the userinterfacecomponent (UIC).Typically, logging implies writing out successive lines oftext to a file to aid in tracing the order in which eventsoccur. There are different levels of log details such as error,warning, informational, and one or more levels of debug withincreasing verbosity. RFC5424 from the Internet Engineeringtask force defines eight logging levels which the MC willimplement. The various levels allow filtering based on thecharacteristics of a given test. For example, an error indicatesan identified problem causing a failure, whereas a warning issomething that might be a concern but is not catastrophic.Informational messages help tagging events in a timeline(initialization complete, shot started, etc.), and debug messagesonly serve a transient purpose while a developer traces downa problem. Debug messages tend to be more intrusive toreal-time operations, either because of a high frequency orbecause of overhead associated with crafting the specific lineof text.Logging on a real-time system presents a challenge due tothe nondeterministic nature of writing out files. Whether theapplication stores files on a local disk, a network mount, orsome other medium, writing to the files still requires kernelsystem calls that disrupt deterministic real-time processing.There are two approaches that, when combined, alleviate thischallenge.For the first approach, the MC will do any output in a lowpriority thread on a dedicated CPU. Conversely, the input willarrive in a high priority thread that queues the writes to thelow priority thread. This separation between priorities providesa mechanism that keeps short tasking at a high priority andlong tasking at a low priority to optimally allocate the systemresources.
การแปล กรุณารอสักครู่..
