Midterm Flashcards

Bold terms

1
Q

Operating System (OS)

A

System software that manages computer hardware and software resources, providing common services for computer programs. A special program that runs on the bare machine and hides the details of managing processes and devices.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Robot Operating System

A

Special program that runs on the operating system and hides the gory details of controlling robot devices, autonomy processes, and sensorimotor routines.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Process

A

Instance of a computer program that is being executed by a computer operating system.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Program

A

A sequence of instructions for a computer processor to execute.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Address Space

A

The set of ranges in memory available to a process.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Kernel

A

The operating system and its programs.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Shell

A

A user space program used to interact with the kernel.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Utilities

A

Any programs that run as processes in user space by the kernel.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Bash

A

Bourne Again Shell.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

ps

A

Program that displays the currently running processes in a shell.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

PID

A

Process ID.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Process State

A

Running (R), suspended (S), or terminated (T).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

top

A

Program that displays updated information across all processes (like Activity Monitor).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Abstractions of Processes

A

Independent logical control flow and private address space.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Fetch-Execute Cycle

A

Steps taken by a computer processor to execute instructions of a program stored in memory.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Instruction Set

A

Set of instructions or opcodes that can be executed by a processor (typically load, store, arithmetic, and jump).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Program Counter

A

Special register on processor containing memory address of next program instruction to be executed.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Runtime Stack

A

Stores local variables for functions actively invoked by a process. Allocates downward based on order of invocation.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Multitasking

A

Concurrent execution of multiple processes over a certain period of time by a computer operating system.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Context Switch

A

Storing a currently running process to be executed from the same state later, and then loading another previously stored process.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Process Interleaving

A

Executing processes in a non-serial manner to improve processor utilization.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Process Queue

A

Function of the OS to schedule the execution of each process on the processor.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Memory Fault

A

When a process attempts to access memory without proper permissions or preparation.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Interprocess Communication (IPC)

A

Mechanisms an operating system provides to allow a process to manage shared data with other processes.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
POSIX: Portable Operating System Interface
UNIX-like cross-platform specification that includes many IPC mechanisms.
26
Pipelining/Piping
IPC by chaining together the standard streams of processes such that output of a process (stdout) is passed directly as input (stdin) to the next one.
27
Redirection
Writes stdout of a process to a file or reads a file as stdin to a process.
28
Message Queues
Similar to pipes for message passing, but are at the kernel-level with structured into prioritized distinct units. Have kernel-level persistence.
29
Signal
A software-generated interrupt sent to a process by the OS to indicate when an important event has occurred, and then must be handled by the process.
29
Shared Memory
Memory that may be accessed by multiple processes with an intent to provide communication among them or avoid redundant copies.
30
Exceptional Control Flow
Changes in sequence instructions of a program are executed that are outside the normal branches and procedure calls.
31
Exceptions
Sent among hardware and the OS, indicating low-level events such as interrupts or memory faults.
32
Signal
Sent among user space processes and the OS, indicating high-level events such as keyboard and timing events.
33
Signal Handler
Procedure that is run immediately in response to a signaled event.
34
Microservices
Break down complex operations into smaller independent services that can be loosely coupled (or piped) together.
35
Unix Philosophy
Emphasizes building simple, compact, clear, modular, and extensible code that can be easily maintained and repurposed by developers other than its creators.
36
Marshalling
Process to transfer a object to another program.
37
Serialization
Process of transforming the memory representation of an object into a data format suitable for storage or transmission.
38
Robot Middleware
Abstraction of the robot kernel allowing plug-and-play operability of applications across robot platforms.
39
Extensibility
Feature of robot middleware systems: ability to allow the addition of new capabilities or functionality.
40
Interoperability
Feature of robot middleware systems: capability of different solutions to communicate with one another freely and easily.
41
Modularity
Feature of robot middleware systems: separating the functionality of a program into independent, interchangeable modules.
42
Performance
Feature of robot middleware systems: requirements, such as execution time, memory capacity, and energy consumption.
43
Reliability
Feature of robot middleware systems: the quality of performing consistently well.
44
Reusability
Feature of robot middleware systems: capacity to repurpose pre-existing code when developing new programs.
45
Client-Server
Architecture that works by a client messaging a request to a server that responds to fulfill the request.
46
Switching
The process of moving data from one device to another on a network between a source and a destination.
47
Circuit Switching
Establishes a direct connection between source and destination.
48
Packet Switching
Divides data into small packets that are individually routed from source to destination.
49
OSI Model
A 7-layer model for packet-switched messaging over networks.
50
Physical Layer
OSI layer 1: the actual media for communication — such as physical cable or wireless connection.
51
Data Link Layer
OSI layer 2: ensures binary data (as frames) are communicated error-free "over the wire" between two directly connected devices.
52
Network Layer
OSI layer 3: breaks up data into packets and ensures routing to the proper destination node.
53
Session Layer
OSI layer 5: maintains a communication channel between applications (as processes) that remains open and functional over a socket session interface.
54
Presentation Layer
OSI layer 6: formats, translates, and encapsulates data from the application into a message.
55
Application Layer
OSI layer 7: interface for applications and user programs to the network stack.
56
Internet Protocol
IP
57
Transmission Control Protocol
TCP
58
Secure Sockets Layer
SSL
59
Hypertext Transfer Protocol
HTTP
60
rosbridge
Robots bridging protocol.
61
TCPROS
ROS applications-layer publish-subscribe protocol.
62
Ladder Diagram
Describes TCP messages between client and server during a session.
63
Pub-Sub Nodes
Perform computation, and publish and subscribe to topics.
64
Core Node
Maintains current set of topics, publishers, and subscribers (also known as mediator or master).
65
Concurrency
The ability of a computing system to execute multiple control flows (or tasks) at the same time or in overlapping intervals of time.
66
Blocking
A process that is blocked is waiting for some event, such as a resource becoming available or the completion of an I/O operation.
67
Fork
An operation whereby a process creates a copy of itself.
68
Multithreading
Ability of an operating system to execute multiple copies of a program in the context of a single process.
69
Thread
A runtime logical flow that executes in the context of a process.
70
Peer Threads
Threads created by the main thread or any other thread.
71
Race Condition
When the behavior of a program depends on relative timing or interleaving of multiple threads or processes.
72
Nondeterminism
Execution of an algorithm that, even for the same input, can exhibit different behaviors on different runs — as opposed to a deterministic algorithm.
73
Synchronization
Mechanisms an operating system provides to allow multiple processes or threads to reach an agreement for action on a shared resource.
74
Critical Section
Sections of a program where a shared resource is accessed need to be protected in ways that avoid the concurrent access.
75
Deadlock
Situation when no thread can proceed due to waiting for another thread, including itself, to take action.
76
Semaphore
Non-negative variable shared between threads (or processes) to synchronize access to shared resources in a multi-processing environment.
77
Mutex
Binary semaphore that controls access to shared resources.
78
Network Socket
A software structure for a process that serves as an endpoint for a session to send and receive data across a (TCP/IP) network.
79
Publish-Subscribe
Messaging pattern where messages are sent and received over topics, instead of addressing a specific sender or receiver.
80
Player/Stage
Forerunner of ROS that used a client-server architecture.
81
Player/Stage Server
Provides abstracted interfaces to robot devices as proxies.
82
Player/Stage Player
Provides interoperability across robots by abstracting the specific robot by the network protocol.
83
Processes pros
Clean model for separating processes Relatively easy to cod
84
Processes Cons
Sharing information requires IPC Overhead of kernel-level context switching
85
kinematics
Expresses range of possible motion (or states of the robot)
86
dynamics
Expresses motion over time with respect to Newton's laws (evolution of state over time)
87
link
Representation of a rigid body
88
frame
Coordinate system of a body
89
base
Root link
90
data structures
Abstract data types for organizing, storing, and operating on data for efficient access and processing
91
admissable
A heuristic function is admissible if it never overestimates the cost of reaching the goal
92
consistent
A heuristic function is consistent if it obeys the triangle inequality
93
forward kinematics
Inferring the pose of the end-effector, given the state of each joint
94
inverse kinematics
Inferring the joint states necessary to reach a desired end-effector pose
95
workspace
3D space defined in the global frame
96
kinematic chain
Connects N+1 links together by N joints; with a coordinate frame on each link
97
joint
Relates the motion of one link (the child link) with respect to another link (the parent) (only affects child link)
98
configuration
State of all joints in the kinematic chain
99
configuration space
Space of all possible configurations
100
URDF
Unified Robot Description Format
101
robot kinematic definition
Specifies the arrangement of an articulated robot in a graph (or tree) structure comprised of links connected by joints
102
URDF origin field
Specifies transform parameters from parent to child frame
103
URDF axis field
Specifies DOF axis of motion with respect to parent frame
104
right-hand rule
Convention utilized to define the orientation of axes in three-dimensional space, and determine the direction of the cross product of two vectors
105
orthonormal matrix
Real square matrix whose columns and rows are all unit vectors, column vectors is orthogonal to every other column vector, and row vectors and orthogonal to every other row vector
106
orthonormal
Rotation matrices are orthonormal
107
SO(2)
The group of 2D orthonormal matrices
108
euler angles
Three angles to describe the orientation of a rigid body with respect to a fixed coordinate system, the orientation of a mobile frame of reference
109
Rz Ry Rx
XYZ convention multiplication for Euler angles
110
gimbal lock
The loss of one degree of freedom in a multi-dimensional mechanism at certain alignments of the axes (causes singularities in matrices)
111
Rodrigues Axis-Angle Rotation
b' = b + a×(a×b) (1-cos(θ)) + a×b sin(θ)
112
skew-symmetric matrix
A square matrix whose transpose equals its negative
113
Rodrigues Rotation Formula
R = I + [a]² (1-cos(θ)) + [a] sin(θ)
114
Euler's formula
Establishes the fundamental relationship between the trigonometric functions and the complex exponential function
115
unit quaternions
Form a sphere in 4-dimensional space covering rotations in the group SO(3) — every point on this sphere is a rotation in 3D
116
quaternion
q = a + bi + cj+ dk = (a, [b,c,d]) = (r, v)
117
quaternion (trig)
q = [cos(Θ/2), ux sin(Θ/2), uy sin(Θ/2), uz sin(Θ/2)]