Scheduled-task pattern

Last updated

A scheduled-task pattern is a type of software design pattern used with real-time systems. [1] It is not to be confused with the "scheduler pattern".

Contents

While the scheduler pattern delays access to a resource (be it a function, variable, or otherwise) only as long as absolutely needed, the scheduled-task pattern delays execution until a determined time. This is important in real-time systems for a variety of reasons.

Related Research Articles

Computer multitasking Concurrent execution of multiple processes

In computing, multitasking is the concurrent execution of multiple tasks over a certain period of time. New tasks can interrupt already started ones before they finish, instead of waiting for them to end. As a result, a computer executes segments of multiple tasks in an interleaved manner, while the tasks share common processing resources such as central processing units (CPUs) and main memory. Multitasking automatically interrupts the running program, saving its state and loading the saved state of another program and transferring control to it. This "context switch" may be initiated at fixed time intervals, or the running program may be coded to signal to the supervisory software when it can be interrupted.

Latency from a general point of view is a time delay between the cause and the effect of some physical change in the system being observed. Lag, as it is known in gaming circles, refers to the latency between the input to a simulation and the visual or auditory response, often occurring because of network delay in online games.

Real-time computing (RTC), or reactive computing is the computer science term for hardware and software systems subject to a "real-time constraint", for example from event to system response. Real-time programs must guarantee response within specified time constraints, often referred to as "deadlines".

A real-time operating system (RTOS) is an operating system (OS) intended to serve real-time applications that process data as it comes in, typically without buffer delays. Processing time requirements are measured in tenths of seconds or shorter increments of time. A real-time system is a time-bound system which has well-defined, fixed time constraints. Processing must be done within the defined constraints or the system will fail. They either are event-driven or time-sharing. Event-driven systems switch between tasks based on their priorities, while time-sharing systems switch the task based on clock interrupts. Most RTOSs use a pre-emptive scheduling algorithm.

In computing, scheduling is the method by which work is assigned to resources that complete the work. The work may be virtual computation elements such as threads, processes or data flows, which are in turn scheduled onto hardware resources such as processors, network links or expansion cards.

RTLinux is a hard realtime real-time operating system (RTOS) microkernel that runs the entire Linux operating system as a fully preemptive process. The hard real-time property makes it possible to control robots, data acquisition systems, manufacturing plants, and other time-sensitive instruments and machines from RTLinux applications. Despite the similar name, it is not related to the Real-Time Linux project of the Linux Foundation.

The software utility cron also known as cron job is a time-based job scheduler in Unix-like computer operating systems. Users who set up and maintain software environments use cron to schedule jobs to run periodically at fixed times, dates, or intervals. It typically automates system maintenance or administration—though its general-purpose nature makes it useful for things like downloading files from the Internet and downloading email at regular intervals. The origin of the name cron is from the Greek word for time, χρόνος (chronos).

In software engineering, behavioral design patterns are design patterns that identify common communication patterns among objects. By doing so, these patterns increase flexibility in carrying out communication.

Broadcast delay The practice of intentionally delaying a live broadcast

In radio and television, broadcast delay is an intentional delay when broadcasting live material, technically referred to as a deferred live. Such a delay may be to prevent mistakes or unacceptable content from being broadcast. Longer delays lasting several hours can also be introduced so that the material is aired at a later scheduled time to maximize viewership. Tape delays lasting several hours can also be edited down to remove filler material or to trim a broadcast to the network's desired run time for a broadcast slot, but this is not always the case.

Micro-Controller Operating Systems is a real-time operating system (RTOS) designed Jean J. Labrosse in 1991. It is a priority-based preemptive real-time kernel for microprocessors, written mostly in the programming language C. It is intended for use in embedded systems.

PBS Satellite Service are feeds relayed from PBS by satellite. The service was launched in September 1978. The service provides a mixed variety of programming selected from PBS's regular network services. In the X/XP years a satellite feed was multicast by some PBS member stations on an over-the-air DTV sub-channel along with their regular programming, or during overnight hours on their main channel to provide a second opportunity for viewers to watch or record primetime programming. PBS currently utilizes two transponders on the AMC-21 satellite. Transponder 24 is a MCPC which currently has seven channels uplinked from the PBS NOC in Alexandria, VA. Transponder 23 utilizes four SCPC feeds which are shared amongst different affiliates across the country at various times.

A workflow pattern is a specialized form of design pattern as defined in the area of software engineering or business process engineering. Workflow patterns refer specifically to recurrent problems and proven solutions related to the development of workflow applications in particular, and more broadly, process-oriented applications.

Apache Hadoop is a collection of open-source software utilities that facilitates using a network of many computers to solve problems involving massive amounts of data and computation. It provides a software framework for distributed storage and processing of big data using the MapReduce programming model. Hadoop was originally designed for computer clusters built from commodity hardware, which is still the common use. It has since also found use on clusters of higher-end hardware. All the modules in Hadoop are designed with a fundamental assumption that hardware failures are common occurrences and should be automatically handled by the framework.

Forward caste is a term used in India to denote castes whose members are on average ahead of other Indians economically and socially. Forward castes account for about 28.8% of the population based on Schedule 10 of available data from the National Sample Survey Organisation 55th (1999–2000) and National Sample Survey Organisation 61st Rounds (2004–05) Round Survey.

A cyclic executive is an alternative to a real-time operating system. It is a form of cooperative multitasking, in which there is only one task. The sole task is typically realized as an infinite loop in main, e.g. in C.

Completely Fair Scheduler

The Completely Fair Scheduler (CFS) is a process scheduler which was merged into the 2.6.23 release of the Linux kernel and is the default scheduler of the tasks of the SCHED_NORMAL class. It handles CPU resource allocation for executing processes, and aims to maximize overall CPU utilization while also maximizing interactive performance.

SCHED_DEADLINE

SCHED_DEADLINE is a CPU scheduler available in the Linux kernel since version 3.14, based on the Earliest Deadline First (EDF) and Constant Bandwidth Server (CBS) algorithms, supporting resource reservations: each task scheduled under such policy is associated with a budget Q, and a period P, corresponding to a declaration to the kernel that Q time units are required by that task every P time units, on any processor. This makes SCHED_DEADLINE particularly suitable for real-time applications, like multimedia or industrial control, where P corresponds to the minimum time elapsing between subsequent activations of the task, and Q corresponds to the worst-case execution time needed by each activation of the task.

Elixir is a functional, concurrent, general-purpose programming language that runs on the BEAM virtual machine used to implement the Erlang programming language. Elixir builds on top of Erlang and shares the same abstractions for building distributed, fault-tolerant applications. Elixir also provides productive tooling and an extensible design. The latter is supported by compile-time metaprogramming with macros and polymorphism via protocols.

NETVC was the name given to a planned royalty-free video codec that was intended to be developed in the former Internet Video Codec working group of the IETF. It was intended to provide a royalty-free alternative to industry standards such as H.264/AVC and HEVC that have required licensing payments for many uses. The chairs of the working group were Matthew Miller of Outer Planes and Mo Zanaty of Cisco Systems. A list of criteria to be met by the new video standard was produced in April 2020 as Informational RFC 8761, and the working group was closed.

Azure Sphere are services and products from Microsoft that allows vendors of Internet of Things devices to increase security by combining a specific system on a chip, Azure Sphere OS and an Azure-based cloud environment for continuous monitoring.

References

  1. "Scheduled Task pattern". subscription.packtpub.com. Retrieved 2019-05-24.

See also