Term
|
Definition
|
|
Term
|
Definition
| A way of encoding the things being represented as a set of bits, with each bit pattern corresponding to a unique object or thing |
|
|
Term
|
Definition
| Consists of both a size in bits and a representation, such as the 2's complement representation for signed integers, or the ASCII representation for English text. |
|
|
Term
|
Definition
| A representation scheme that formats information in several components or fields, each with a data type. |
|
|
Term
|
Definition
| Several components that make up a data structure, typically a location representation. |
|
|
Term
|
Definition
| int=32 bits, char=byte, look up the rest |
|
|
Term
|
Definition
| A way to order locations in memory space. It is the size of an address. |
|
|
Term
|
Definition
| Just a bunch of bits that serve one purpose: to point to our stored number in memory. |
|
|
Term
|
Definition
| To reading from the memory location to which the pointer we are dereferencing points to |
|
|
Term
|
Definition
| Any pointer can be treated as an array, and any array can be treated as a pointer. |
|
|
Term
|
Definition
| When a field points to another structure creating a link between each element in the list. |
|
|
Term
|
Definition
| Repeatedly breaking each task into subtasks until we reach the desired level, usually only a machine instruction or two. |
|
|
Term
|
Definition
| Look at page 5 in the Lecture notes #0. There are three types: sequential, iterative and conditional |
|
|
Term
| Register Transfer Language (RTL) |
|
Definition
| A level where we obtain a pointer to the first list element by reading from M[head], the memory location to which head points. |
|
|
Term
|
Definition
| Statements we know to be true |
|
|
Term
|
Definition
| The condition that ends an iteration. Typically because search space is empty or middle item is one we want |
|
|
Term
|
Definition
| Languages that prevent the programmer from changing the type of a given datum (variable/structure). |
|
|
Term
|
Definition
| Types that are always available in the language |
|
|
Term
|
Definition
| Provides the size in bytes of any type or variable. It's a built-in function within C library |
|
|
Term
|
Definition
| Another name for stack frames |
|
|
Term
|
Definition
| defines a structure type and/or a variable of a structure type |
|
|
Term
|
Definition
| The components of a data structure |
|
|
Term
|
Definition
| a listing of all of the elements of a set. |
|
|
Term
|
Definition
| int, char, double, float preface a variable and set to a semicolon. |
|
|
Term
|
Definition
a container for a set of identifiers (names). A name in a namespace consists of a namespace identifier and a local name. C++ code:
std::array |
|
|
Term
|
Definition
| Makes a variable defined elsewhere accessible |
|
|
Term
|
Definition
| Creation of a new variable |
|
|
Term
|
Definition
| Specifies what parts of a program can access the variable |
|
|
Term
|
Definition
| Specifies when and where in memory the variable is stored |
|
|
Term
|
Definition
| When programmer defines a variable with the same name either within scope or in a broader scope. |
|
|
Term
|
Definition
| the static qualifier creates a variable local to the file. |
|
|
Term
|
Definition
| A variable accessible from other files |
|
|
Term
| automatic (stack) variable |
|
Definition
| Any variable declared in a compound statement and without the static qualifier, forcing the stack to allocate space whenever the enclosing function begins execution and is discarded when the function returns. |
|
|
Term
|
Definition
| addition, subtraction, etc. |
|
|
Term
|
Definition
| AND(&), OR(|), XOR(^), NOT(~), and left(<<) and right(>>) bit shifts |
|
|
Term
|
Definition
| (==), (!=), and relative order(<,<=,>=,>) |
|
|
Term
|
Definition
| Uses single equals sign (=) |
|
|
Term
| pre- and post-increment and decrement |
|
Definition
Pre-increment: ++p, --p expression produces the new, incremented value Post-increment: p++, p-- expression produces original, unincremented value |
|
|
Term
|
Definition
dereference (*) reads contents of address. address (&) reads the address |
|
|
Term
|
Definition
| Addition and subtraction are defined for pointer types |
|
|
Term
| function signature/prototype |
|
Definition
| Specifies the return type, name, and argument types for a function, but does not actually define the function |
|
|
Term
|
Definition
| The arguments are evaluated and the resulting values are copied(usually onto the stack) when function is called |
|
|
Term
|
Definition
| When the compiler changes the type for you. Aka, int to float or double. This happens prior to executing operation |
|
|
Term
|
Definition
| Force conversion from one type to another. Such casts must be used with caution, as they silence many of the warnings that a compiler might otherwise generate when it detects potential problems. |
|
|
Term
|
Definition
| Enables the unique definition of new types, structures, and function prototypes within header files that can be included by reference within source files that make use of them |
|
|
Term
|
Definition
| Provides a text-replacement facility |
|
|
Term
|
Definition
| When a system makes use of parametrized text replacement |
|
|
Term
|
Definition
| Reduced Instruction Set Computing. Basically fake instruction sets used in an academic setting like LC-3 |
|
|
Term
|
Definition
| Complex Instruction Set Computing. The all-powerful x86 (one instruction set to rule them all!) |
|
|
Term
|
Definition
| Described using an % sign. Review the table on page 17 for Lecture Notes #1 describing the size of different registers and their basic description |
|
|
Term
|
Definition
| If you want something returned as an immediate value. |
|
|
Term
|
Definition
| It's the school's new mascot! Described by Prof. Lumetta as "an action where if you store a 32-bit register into memory and then look at the four bytes of memory one by one, you will find the little end of the 32 bits first, followed by the next eight bits, then the next, and finally the high eight bits of the stored value. |
|
|
Term
| Instruction operands that DO NOT affect flags |
|
Definition
|
|
Term
|
Definition
| Preceded by an asterix. Ex: *(%eax) means push the memory of %eax into the Extended Instruction Pointer (EIP). |
|
|
Term
|
Definition
| They are pushed from right to left to allow for a variable number of parameters without requiring additional space for parameter counts or sentinels (end pointers). |
|
|
Term
| Address requirement for moving data that is 16-bit values |
|
Definition
| Can only be writtne or read from even addresses |
|
|
Term
| Address requirement for moving data that is 32-bit values |
|
Definition
| Require addresses that are multiples of four |
|
|
Term
|
Definition
|
|
Term
|
Definition
|
|
Term
|
Definition
| A calling convention is used: before invoking a system call, arguments are marshaled by a staff sargent into the appropriate registers or locations in the stack. After a system call returns, any result appears in a pre-specified register. |
|
|
Term
|
Definition
| Asynchronous interruptions generated by other devices, including disk drives, printers, network cards, video cards, keyboards, mice. |
|
|
Term
|
Definition
| Occur when a processor encounters an unexpected |
|
|
Term
|
Definition
| The code associated with an interrupt, an exception, or a system call is a form of procedure. |
|
|
Term
| Interrupt enable Flag (IF) |
|
Definition
| Set in the flags register, interrupts are allowed to occur. |
|
|
Term
| Non-maskable interrupts (NMI) |
|
Definition
| Used to indicate serious conditions such as parity failure in memory, critically, low energy levels in batteries, etc. and will not be addressed in great detail in our course, as most of the hardware and software mechanisms involved are nearly identical to those used for normal interrupts. |
|
|
Term
| Interrupt Descriptor Table (IDT) |
|
Definition
| A single 256-entry array vector table for interrupts, exceptions, and system calls. See diagram on page 29, Lecture #2. |
|
|
Term
|
Definition
| Similar to a memory address space, this space allows for a bus system that sends reads and writes of data to specific port numbers that correspond as addresses. |
|
|
Term
|
Definition
| A system that separates I/O ports from memory addresses by using distinct instructions for each class of operation. |
|
|
Term
|
Definition
| Allows access to device registers from same load and store instructions as are used to access memory(i.e. PUSH, POP). Requires no new instructions for I/O, but demands that a region of the memory address space be set aside for I/O. |
|
|
Term
|
Definition
| A block of code that executes a set of operations that should be executed without stopping or interruption. |
|
|
Term
|
Definition
| Indivisibility. The critical section cannot be divided into chunks to be read/processed. |
|
|
Term
| Race conditions and deadlocks |
|
Definition
| Think of a marathon where two runners cross the finish line at once. This is what a race condition is on an a macro level. Who wins? This problem is known as a deadlock. |
|
|
Term
|
Definition
| Refers to the fact that a program waiting for a lock "spins" idly in a small loop while waiting rather than going off to do other useful work or allowing other programs to use the processor. Make sure no race conditions allow a dynamically allocated spin lock to be used before it is initialized. |
|
|
Term
| Application Programming Interface (API) |
|
Definition
| specification intended to be used as an interface by software components to communicate with each other. In ECE 391, we've referred to two examples: spin lock API and API's defined standard POSIX |
|
|
Term
|
Definition
| acronym for "Portable Operating System Interface", is a family of standards specified by the IEEE for maintaining compatibility between operating systems. |
|
|
Term
|
Definition
| Generalizes the concept of a lock to allow some fixed number of programs to enter some set of critical sections simulatanously. |
|
|
Term
|
Definition
| Used with semaphores, mutex_locks to execute the read or write operation respectively. Sets semaphore to zero. |
|
|
Term
|
Definition
| Sets semaphore, mutex_lock to one. Releases semaphore or mutex_lock |
|
|
Term
|
Definition
| When code shares data with interrupt handlers, when a spin_lock is being held, or there's a short critical section. Multiple writers, but few readers |
|
|
Term
|
Definition
| Multiple readers, few writers |
|
|
Term
|
Definition
| When only one program can enter a critical section at a time, the presence of programs in the critical section is mutually exclusive. |
|
|
Term
|
Definition
| When readers mosy on into the critical section, throw up a spin lock, and deprive the writer of writing abilities, possibly forever! |
|
|
Term
|
Definition
| Additional piece of hardware to manage the interrupt signals and priorities |
|
|
Term
| Programmable Interrupt controller (PIC) |
|
Definition
| A chip used for the interrupt controller that has 28 pins. Study Intel's 8259A PIC on page 39, Lecture #2 |
|
|
Term
|
Definition
| When kernel code is otherwise only executed by programs making system calls or programs running in the kernel. |
|
|
Term
| Function signature/prototype |
|
Definition
| Specifies the return type, name, and argument types for a function, but does not actually define the function. Used for linked list removal function |
|
|
Term
|
Definition
| The code produced by the compiler stops evaluating operands as soon as the final result is known. |
|
|
Term
|
Definition
| Allows for writers to access the datum(component/object) when no one else, readers or writers, are accessing it. Also a function, Reader/Writer locks allow for multiple readers to view critical section at once. |
|
|
Term
|
Definition
| One writer can enter a critical section at any time, and only when no other readers or writers are in critical sections protected by the same reader/wrtier semaphore. A program attempting to acquire a reader/writer semaphore may yield the processor to another program. |
|
|
Term
| Which IR has highest priority when connected to the PIC? |
|
Definition
| The lower-numbered IR lines have higher priority. When an IR line is selected, the lower priority IR lines in service are masked |
|
|
Term
| End-Of-Interrupt signal (EOI) |
|
Definition
| The PIC removes the interrupt from its set of in-service interrupts. If an interrupt handler fails to send an EOI, the PIC continues to mask lower priority interrupts indefinitely. |
|
|