Tuesday, August 21, 2007

PREFINAL

Memory Allocation Memory Allocation


In computer science, dynamic memory allocation is the allocation of memory storage for use in a computer program during the runtime of that program. It is a way of distributing ownership of limited memory resources among many pieces of data and code. Importantly, the amount of memory allocated is determined by the program at the time of allocation and need not be known in advance. A dynamic allocation exists until it is explicitly released, either by the programmer or by a garbage collector; this is notably different from automatic and static memory allocation, which require advance knowledge of the required amount of memory and have a fixed duration. It is said that an object so allocated has dynamic lifetime.



.::Memory Segmentation::.

Segmentation is one of the most common ways to achieve memory protection; another common one is paging. Segmentation means that a part or parts of the memory will be sealed off from the currently running process, through the use of hardware registers. If the data that is about to be read or written to is outside the permitted address space of that process, a segmentation fault will result. This usage should not be confused with that of the memory segments used by early x86 processor architectures.

Segmentation is a memory-management scheme that supports this user view of memory. A logical address space is actually a collection of segments. Each segment has a name and a length. The address specifies both the segment name and the offset within the segment. The user therefore specifies each address by 2 parameters: a segment name and an offset.



.::Input/Output Ports::.

Port located on the outside of a computer that allows for an input or output device to be connected to it. I/O Ports are memory addresses used by the processor for direct communication with a device that has sent an interrupt signal to the processor.
The exchange of commands or data between the processor and the device takes place through the I/O port address of the device, which is a hexadecimal number. No two devices can share the same I/O port. Many devices use multiple I/O port addresses, which are expressed as a range of hexadecimal numbers.


.::Internal Register::.

One embodiment of the present invention provides an apparatus within a computer system that maintains status information for peripheral devices in a status register, which is located within a central processing unit in the computer system. In this embodiment, a peripheral device updates the status register if its status changes by performing a bus master operation to transfer status information to the status register. It then generates an interrupt to indicate to a processor that it requires servicing. When the processor services the interrupt, the processor performs an internal read of the status register to determine which peripheral device requires processing. No time-consuming polling of peripheral devices is required to determine the status of the peripheral devices. Thus, one embodiment of the present invention provides an apparatus within a central processing unit that maintains status information for peripheral devices in a status register. This apparatus includes a communication channel coupled to a central processing unit and a number of peripheral devices. A status register is coupled with the central processing unit to store status information for the peripheral devices. An updating circuit is located within the core logic unit and is coupled between the communication channel and the status register. This updating circuit includes a mechanism to update the status register in response to signals containing status information received from the peripheral devices through the communication channel.


Interrupt Vectors Interrupt Vectors


An interrupt vector is the memory address of an interrupt handler, or an index into an array called an interrupt vector table or dispatch table. Interrupt vector tables contain the memory addresses of interrupt handlers. When an interrupt is generated, the processor saves its execution state via a context switch, and begins execution of the interrupt handler at the interrupt vector.
For more information, see the entry for interrupt.



.::BIOS::.

Bios is a short for " basic input/output system " and is built in computer software to control vital hardware functions of a PC. The Bios is usually loaded from the computers rom chip to it's ram chip when the computer is first booted up (this is to avoid being deleted by disk drive failures). A bios controls computer hardware such as disk drives, cd roms, floppy disk drives, keyboards, memory and more.

BIOS may also be refered to the firmware code run by an IBM compatible PC when first powered on. The primary function of the BIOS is to prepare the machine so other software programs stored on various media (such as hard drives, floppies, and CDs) can load, execute, and assume control of the PC. This process is known as booting up.



.::DOS::.

DOS stands for Disk Operating System. It was developed by Microsoft as an operating system in the 1980s. Windows 3.x needed DOS to run, but Windows 95, 98, and 2000 do not. The later versions of Windows can still run DOS programs, as well as those designed specifically for Windows.

DOS (from Disk Operating System) commonly refers to the family of closely related operating systems which dominated the IBM PC compatible market between 1981 and 1995 (or until about 2000, if Windows 9x systems are included): DR-DOS, FreeDOS, MS-DOS, Novell-DOS, OpenDOS, PC-DOS, PTS-DOS, ROM-DOS and several others. They are single user, single task systems.



Instruction Sets Instruction Sets


An instruction set, or instruction set architecture (ISA), is the part of the computer architecture related to programming, including the native data types, instructions, registers, addressing modes, memory architecture, interrupt and exception handling, and external I/O. An ISA includes a specification of the set of opcodes (machine language), the native commands implemented by a particular CPU design.
Instruction set architecture is distinguished from the microarchitecture, which is the set of processor design techniques used to implement the instruction set. Computers with different microarchitectures can share a common instruction set. For example, the Intel Pentium and the AMD Athlon implement nearly identical versions of the x86 instruction set, but have radically different internal designs.
This concept can be extended to unique ISAs like TIMI (Technology-Independent Machine Interface) present in the IBM System/38 and IBM AS/400. TIMI is an ISA that is implemented as low-level software and functionally resembles what is now referred to as a virtual machine. It was designed to increase the longevity of the platform and applications written for it, allowing the entire platform to be moved to very different hardware without having to modify any software except that which comprises TIMI itself. This allowed IBM to move the AS/400 platform from an older CISC architecture to the newer POWER architecture without having to rewrite any parts of the OS or software associated with it.




.::Data Transfer Instruction::.

Data transfer instructions are used to manipulate data contained in registers and memory. These operations include copying data, pushing data onto the stack or exchanging the contents of registers. The various instructions are listed below. An Oberon example accompanies some instructions to illustrate its function.



.::Branch Instruction::.

A branch (or jump on some
computer architectures, such as the PDP-8 and Intel x86) is a point in a computer program where the flow of control is altered. The term branch is usually used when referring to a program written in machine code or assembly language; in a high-level programming language, branches usually take the form of conditional statements, subroutine calls or GOTO statements. An instruction that causes a branch, a branch instruction, can be taken or not taken: if a branch is not taken, the flow of control is unchanged and the next instruction to be executed is the instruction immediately following the current instruction in memory; if taken, the next instruction to be executed is an instruction at some other place in memory. There are two usual forms of branch instruction: a conditional branch that can be either taken or not taken, depending on a condition such as a CPU flag, and an unconditional branch which is always taken.



.::Conditional Jumps::.

A computer instruction that will cause the proper one of two or more addresses to be used in obtaining the next instruction, depending on some property of a numerical expression that may be the result of some previous instruction. Also known as conditional branch; conditional transfer; decision instruction; discrimination; IF statement.




.::Unconditional Jumps::.

A digital-computer instruction that interrupts the normal process of obtaining instructions in an ordered sequence, and specifies the address from which the next instruction must be taken. Also known as unconditional transfer.


Looping instructions Looping instructions


Looping is an educational practice in which a single graded class of children stays with a teacher for two or more years or grade levels. The children and the teacher remain together as the class is promoted. At the end of the second (or third) year in the pattern, the children move on to a new teacher while the looping teacher returns to the lower grade level to receive a new group of students. Although looping is not used in multiage grouping (because a multiage group does not comprise a single class grade), many schools that are considering implementation of a multiage program use looping as a first step.




Arithmetic instructions Arithmetic instructions


Basic arithmetic addressing the four operations with integers, rational and real numbers and including measurement, geometry and base ten.
Basic Ladder Logic instructions allow very simple logical decisions. Arithmetic Ladder Logic instructions go beyond the simple true or false operation to give the ability to more complex operations. It retrieves one or more value, perform an operation and store the result in memory.

No comments: