Misplaced Pages

GP1

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.

Jerusalem is a logic bomb DOS virus first detected at Hebrew University of Jerusalem , in October 1987. On infection, the Jerusalem virus becomes memory resident (using 2kb of memory), and then infects every executable file run, except for COMMAND.COM . COM files grow by 1,813 bytes when infected by Jerusalem and are not re-infected. Executable files grow by 1,808 to 1,823 bytes each time they are infected, and are then re-infected each time the files are loaded until they are too large to load into memory. Some .EXE files are infected but do not grow because several overlays follow the genuine .EXE file in the same file. Sometimes .EXE files are incorrectly infected, causing the program to fail to run as soon as it is executed.

#801198

54-652: GP1 , GP-1 , GP.1 , GP 1 or variants may refer to: Science and technology [ edit ] Get Password 1 (computer virus) Astronomy [ edit ] GP1 , IAU Minor Planet Center notation for small solar system bodies (48689) 1996 GP 1 aka "1996 GP1" (6327) 1991 GP 1 aka "1991 GP1" Vehicles [ edit ] Gehrlein GP-1 , midwing sailplane "GP-1" manufactured by Gehrlein González Gil-Pazó GP-1 , trainer aircraft Petronas FP1 ,

108-422: A trap ) is a request for the processor to interrupt currently executing code (when permitted), so that the event can be processed in a timely manner. If the request is accepted, the processor will suspend its current activities, save its state , and execute a function called an interrupt handler (or an interrupt service routine , ISR) to deal with the event. This interruption is often temporary, allowing

162-571: A considerable extent. Some devices with a poorly designed programming interface provide no way to determine whether they have requested service. They may lock up or otherwise misbehave if serviced when they do not want it. Such devices cannot tolerate spurious interrupts, and so also cannot tolerate sharing an interrupt line. ISA cards, due to often cheap design and construction, are notorious for this problem. Such devices are becoming much rarer, as hardware logic becomes cheaper and new system architectures mandate shareable interrupts. Some systems use

216-453: A device, the processor may again poll and, if necessary, service other devices before exiting the ISR. An edge-triggered interrupt is an interrupt signaled by a level transition on the interrupt line, either a falling edge (high to low) or a rising edge (low to high). A device wishing to signal an interrupt drives a pulse onto the line and then releases the line to its inactive state. If the pulse

270-410: A further interrupt. This contrasts with a level trigger where the low level would continue to create interrupts (if they are enabled) until the signal returns to its high level. Computers with edge-triggered interrupts may include an interrupt register that retains the status of pending interrupts. Systems with interrupt registers generally have interrupt mask registers as well. The processor samples

324-452: A hybrid of level-triggered and edge-triggered signaling. The hardware not only looks for an edge, but it also verifies that the interrupt signal stays active for a certain period of time. A common use of a hybrid interrupt is for the NMI (non-maskable interrupt) input. Because NMIs generally signal major – or even catastrophic – system events, a good implementation of this signal tries to ensure that

378-413: A particular (rising or falling) edge will cause a service request to be latched; the processor resets the latch when the interrupt handler executes. A level-triggered interrupt is requested by holding the interrupt signal at its particular (high or low) active logic level . A device invokes a level-triggered interrupt by driving the signal to and holding it at the active level. It negates the signal when

432-960: A period - and unless there is some type of hardware latch that records the event it is impossible to recover. This problem caused many "lockups" in early computer hardware because the processor did not know it was expected to do something. More modern hardware often has one or more interrupt status registers that latch interrupts requests; well-written edge-driven interrupt handling code can check these registers to ensure no events are missed. The Industry Standard Architecture (ISA) bus uses edge-triggered interrupts, without mandating that devices be able to share IRQ lines, but all mainstream ISA motherboards include pull-up resistors on their IRQ lines, so well-behaved ISA devices sharing IRQ lines should just work fine. The parallel port also uses edge-triggered interrupts. Many older devices assume that they have exclusive use of IRQ lines, making it electrically unsafe to share them. There are three ways multiple devices "sharing

486-501: A restart of the program. Arm uses the term exception to refer to all types of interrupts, and divides exceptions into (hardware) interrupts , aborts , reset , and exception-generating instructions. Aborts correspond to x86 exceptions and may be prefetch aborts (failed instruction fetches) or data aborts (failed data accesses), and may be synchronous or asynchronous. Asynchronous aborts may be precise or imprecise. MMU aborts (page faults) are synchronous. RISC-V uses interrupt as

540-900: A sport bike, original name GP1 GP1, an English Racing Automobiles E-type racecar GP1, a Soviet gas turbine-electric locomotive design Video games [ edit ] Grand Prix 1 , a Formula One video game by Microprose GP-1 , a motorcycle racing video game Atlus Other uses [ edit ] Canon de 75 mle GP1 , a Belgian 75mm cannon GP1, a High Efficiency Video Coding processor used by GoPro GP1, (Gesellenprüfung Teil 1) Zwischenprüfung Der KFZ - Mechatroniker Ausbildung. See also [ edit ] [REDACTED] Search for "gp1" on Misplaced Pages. MotoGP , motorcycle GP class 1 Formula 1 , racecar GP class 1 All pages with titles beginning with GP1 All pages with titles containing GP1 GPA (disambiguation) GPI (disambiguation) GP (disambiguation) [REDACTED] Topics referred to by

594-429: A synchronous interrupt caused by an exceptional condition (e.g., division by zero , invalid memory access , illegal opcode ), although the term exception is more common for this. x86 divides interrupts into (hardware) interrupts and software exceptions , and identifies three types of exceptions: faults, traps, and aborts. (Hardware) interrupts are interrupts triggered asynchronously by an I/O device, and allow

SECTION 10

#1732852784802

648-418: A system misbehaves. In a wired-OR circuit, parasitic capacitance charging/discharging through the interrupt line's bias resistor will cause a small delay before the processor recognizes that the interrupt source has been cleared. If the interrupting device is cleared too late in the interrupt service routine (ISR), there will not be enough time for the interrupt circuit to return to the quiescent state before

702-517: A trigger table (a table of functions) in its header, which both the app and OS know of and use appropriately that is not related to hardware. However do not confuse this with hardware interrupts which signal the CPU (the CPU enacts software from a table of functions, similarly to software interrupts). Multiple devices sharing an interrupt line (of any triggering style) all act as spurious interrupt sources with respect to each other. With many devices on one line,

756-577: A type reserved for interrupts, or it might be of some pre-existing type such as a memory write. Message-signalled interrupts behave very much like edge-triggered interrupts, in that the interrupt is a momentary signal rather than a continuous condition. Interrupt-handling software treats the two in much the same manner. Typically, multiple pending message-signaled interrupts with the same message (the same virtual interrupt line) are allowed to merge, just as closely spaced edge-triggered interrupts can merge. Message-signalled interrupt vectors can be shared, to

810-404: A variety of purposes, such as requesting operating system services and interacting with device drivers (e.g., to read or write storage media). Software interrupts may also be triggered by program execution errors or by the virtual memory system. Typically, the operating system kernel will catch and handle such interrupts. Some interrupts are handled transparently to the program - for example,

864-411: Is deferred or ignored by the processor, while to unmask an interrupt is to enable it. Processors typically have an internal interrupt mask register, which allows selective enabling (and disabling) of hardware interrupts. Each interrupt signal is associated with a bit in the mask register. On some systems, the interrupt is enabled when the bit is set, and disabled when the bit is clear. On others,

918-415: Is different from Wikidata All article disambiguation pages All disambiguation pages Get Password 1 (computer virus) The virus code itself hooks into interrupt processing and other low-level DOS services. For example, code in the virus suppresses the printing of console messages if, say, the virus is not able to infect a file on a read-only device such as a floppy disk . One of

972-421: Is no OS, from the bare metal program running on the CPU. Such external devices may be part of the computer (e.g., disk controller ) or they may be external peripherals . For example, pressing a keyboard key or moving a mouse plugged into a PS/2 port triggers hardware interrupts that cause the processor to read the keystroke or mouse position. Hardware interrupts can arrive asynchronously with respect to

1026-416: Is no clear consensus as to the exact meaning of these terms". The term trap may refer to any interrupt, to any software interrupt, to any synchronous software interrupt, or only to interrupts caused by instructions with trap in their names. In some usages, the term trap refers specifically to a breakpoint intended to initiate a context switch to a monitor program or debugger . It may also refer to

1080-413: Is requested by the processor itself upon executing particular instructions or when certain conditions are met. Every software interrupt signal is associated with a particular interrupt handler. A software interrupt may be intentionally caused by executing a special instruction which, by design, invokes an interrupt when executed. Such instructions function similarly to subroutine calls and are used for

1134-427: Is the default state of it. Devices signal an interrupt by briefly driving the line to its non-default state, and let the line float (do not actively drive it) when not signaling an interrupt. This type of connection is also referred to as open collector . The line then carries all the pulses generated by all the devices. (This is analogous to the pull cord on some buses and trolleys that any passenger can pull to signal

SECTION 20

#1732852784802

1188-440: Is too short to be detected by polled I/O then special hardware may be required to detect it. The important part of edge triggering is that the signal must transition to trigger the interrupt; for example, if the signal was high-low-low, there would only be one falling edge interrupt triggered, and the continued low level would not trigger a further interrupt. The signal must return to the high level and fall again in order to trigger

1242-466: The ' interrupt 21h ' low-level DOS functions that Novell NetWare and other networking implementations required to hook into the file system. Jerusalem was initially very common (for a virus of the day) and spawned a large number of variants. However, since the advent of Windows , these DOS interrupts are no longer used, so Jerusalem and its variants have become obsolete. Interrupt In digital computers , an interrupt (sometimes referred to as

1296-457: The 1964 CDC 3600 , all interrupts went to the same location, and the OS used a specialized instruction to determine the highest-priority outstanding unmasked interrupt. On contemporary systems, there is generally a distinct interrupt routine for each type of interrupt (or for each interrupt source), often implemented as one or more interrupt vector tables . To mask an interrupt is to disable it, so it

1350-406: The CPU and another component such as a programmable interrupt controller or a southbridge . If an additional component is used, that component would be connected between the interrupting device and the processor's interrupt pin to multiplex several sources of interrupt onto the one or two CPU lines typically available. If implemented as part of the memory controller , interrupts are mapped into

1404-447: The ISR does not account for the possibility of such an interrupt occurring. As spurious interrupts are mostly a problem with wired-OR interrupt circuits, good programming practice in such systems is for the ISR to check all interrupt sources for activity and take no action (other than possibly logging the event) if none of the sources is interrupting. They may even lead to crashing of the computer in adverse scenarios. A software interrupt

1458-492: The VARY ONLINE command will simulate a device end interrupt on the target device. A spurious interrupt is a hardware interrupt for which no source can be found. The term "phantom interrupt" or "ghost interrupt" may also be used to describe this phenomenon. Spurious interrupts tend to be a problem with a wired-OR interrupt circuit attached to a level-sensitive processor input. Such interrupts may be difficult to identify when

1512-456: The callback is made using Structured Exception Handling with an exception code such as STATUS_ACCESS_VIOLATION or STATUS_INTEGER_DIVIDE_BY_ZERO. In a kernel process , it is often the case that some types of software interrupts are not supposed to happen. If they occur nonetheless, an operating system crash may result. The terms interrupt , trap , exception , fault , and abort are used to distinguish types of interrupts, although "there

1566-484: The clues that a computer is infected is the mis-capitalization of the well-known message " Bad command or file name " as "Bad Command or file name". The Jerusalem virus is unique among other viruses of the time, as it is a logic bomb , set to go off on Friday the 13th on all years but 1987 (making its first activation date 13 May 1988). Once triggered, the virus not only deletes any program run that day, but also infects .EXE files repeatedly until they grow too large for

1620-473: The computer. This particular feature, which was not included in all of Jerusalem's variants, is triggered 30 minutes after the system is infected, significantly slows down the infected computer, thus allowing for easier detection. Jerusalem is also known as "BlackBox" because of a black box it displays during the payload sequence. If the system is in text mode, Jerusalem creates a small black rectangle from row 5, column 5 to row 16, column 16. Thirty minutes after

1674-608: The current instance of the ISR terminates. The result is the processor will think another interrupt is pending, since the voltage at its interrupt request input will be not high or low enough to establish an unambiguous internal logic 1 or logic 0. The apparent interrupt will have no identifiable source, hence the "spurious" moniker. A spurious interrupt may also be the result of electrical anomalies due to faulty circuit design, high noise levels, crosstalk , timing issues, or more rarely, device errata . A spurious interrupt may result in system deadlock or other undefined operation if

GP1 - Misplaced Pages Continue

1728-410: The driver that they are requesting a stop.) However, interrupt pulses from different devices may merge if they occur close in time. To avoid losing interrupts the CPU must trigger on the trailing edge of the pulse (e.g. the rising edge if the line is pulled up and driven low). After detecting an interrupt the CPU must check all the devices for service requirements. Edge-triggered interrupts do not suffer

1782-451: The failure might affect only a single process or might have global impact. Some operating systems have code specifically to deal with this. As an example, IBM Operating System/360 (OS/360) relies on a not-ready to ready device-end interrupt when a tape has been mounted on a tape drive, and will not read the tape label until that interrupt occurs or is simulated. IBM added code in OS/360 so that

1836-615: The first occurrence of interrupt masking. The National Bureau of Standards DYSEAC (1954) was the first to use interrupts for I/O. The IBM 704 was the first to use interrupts for debugging , with a "transfer trap", which could invoke a special routine when a branch instruction was encountered. The MIT Lincoln Laboratory TX-2 system (1957) was the first to provide multiple levels of priority interrupts. Interrupt signals may be issued in response to hardware or software events. These are classified as hardware interrupts or software interrupts , respectively. For any particular processor,

1890-401: The highest priority enabled interrupt. In others, there are separate interrupt handlers for separate interrupt types, separate I/O channels or devices, or both. Several interrupt causes may have the same interrupt type and thus the same interrupt handler, requiring the interrupt handler to determine the cause. Interrupts may be fully handled in hardware by the CPU, or may be handled by both

1944-400: The interrupt is valid by verifying that it remains active for a period of time. This 2-step approach helps to eliminate false interrupts from affecting the system. A message-signaled interrupt does not use a physical interrupt line. Instead, a device signals its request for service by sending a short message over some communications medium, typically a computer bus . The message might be of

1998-440: The interrupt trigger signals or interrupt register during each instruction cycle, and will process the highest priority enabled interrupt found. Regardless of the triggering method, the processor will begin interrupt processing at the next instruction boundary following a detected trigger, thus ensuring: There are several different architectures for handling interrupts. In some, there is a single interrupt handler that must scan for

2052-423: The normal resolution of a page fault is to make the required page accessible in physical memory. But in other cases such as a segmentation fault the operating system executes a process callback. On Unix-like operating systems this involves sending a signal such as SIGSEGV , SIGBUS , SIGILL or SIGFPE , which may either call a signal handler or execute a default action (terminating the program). On Windows

2106-481: The number of interrupt types is limited by the architecture. A hardware interrupt is a condition related to the state of the hardware that may be signaled by an external hardware device, e.g., an interrupt request (IRQ) line on a PC, or detected by devices embedded in processor logic (e.g., the CPU timer in IBM System/370), to communicate that the device needs attention from the operating system (OS) or, if there

2160-414: The overall term as well as for the external subset; internal interrupts are called exceptions. Each interrupt signal input is designed to be triggered by either a logic signal level or a particular signal edge (level transition). Level-sensitive inputs continuously request processor service so long as a particular (high or low) logic level is applied to the input. Edge-sensitive inputs react to signal edges:

2214-489: The problems that level-triggered interrupts have with sharing. Service of a low-priority device can be postponed arbitrarily, while interrupts from high-priority devices continue to be received and get serviced. If there is a device that the CPU does not know how to service, which may raise spurious interrupts, it will not interfere with interrupt signaling of other devices. However, it is easy for an edge-triggered interrupt to be missed - for example, when interrupts are masked for

GP1 - Misplaced Pages Continue

2268-478: The processor clock, and at any time during instruction execution. Consequently, all incoming hardware interrupt signals are conditioned by synchronizing them to the processor clock, and acted upon only at instruction execution boundaries. In many systems, each device is associated with a particular IRQ signal. This makes it possible to quickly determine which hardware device is requesting service, and to expedite servicing of that device. On some older systems, such as

2322-458: The processor commands it to do so, typically after the device has been serviced. The processor samples the interrupt input signal during each instruction cycle. The processor will recognize the interrupt request if the signal is asserted when sampling occurs. Level-triggered inputs allow multiple devices to share a common interrupt signal via wired-OR connections. The processor polls to determine which devices are requesting service. After servicing

2376-511: The program to be restarted with no loss of continuity. A fault is restartable as well but is tied to the synchronous execution of an instruction - the return address points to the faulting instruction. A trap is similar to a fault except that the return address points to the instruction to be executed after the trapping instruction; one prominent use is to implement system calls . An abort is used for severe errors, such as hardware errors and illegal values in system tables, and often does not allow

2430-418: The remote side excites the gate beyond a threshold, thus no negotiated speed is required. Each has its speed versus distance advantages. A trigger, generally, is the method in which excitation is detected: rising edge, falling edge, threshold ( oscilloscope can trigger a wide variety of shapes and conditions). Triggering for software interrupts must be built into the software (both in OS and app). A 'C' app has

2484-498: The reverse is true, and a set bit disables the interrupt. When the interrupt is disabled, the associated interrupt signal may be ignored by the processor, or it may remain pending. Signals which are affected by the mask are called maskable interrupts . Some interrupt signals are not affected by the interrupt mask and therefore cannot be disabled; these are called non-maskable interrupts (NMIs). These indicate high-priority events which cannot be ignored under any circumstances, such as

2538-481: The same line" can be raised. First is by exclusive conduction (switching) or exclusive connection (to pins). Next is by bus (all connected to the same line listening): cards on a bus must know when they are to talk and not talk (i.e., the ISA bus). Talking can be triggered in two ways: by accumulation latch or by logic gates. Logic gates expect a continual data flow that is monitored for key signals. Accumulators only trigger when

2592-447: The same term This disambiguation page lists articles associated with the same title formed as a letter–number combination. If an internal link led you here, you may wish to change the link to point directly to the intended article. Retrieved from " https://en.wikipedia.org/w/index.php?title=GP1&oldid=988277738 " Category : Letter–number combination disambiguation pages Hidden categories: Short description

2646-667: The software to resume normal activities after the interrupt handler finishes, although the interrupt could instead indicate a fatal error. Interrupts are commonly used by hardware devices to indicate electronic or physical state changes that require time-sensitive attention. Interrupts are also commonly used to implement computer multitasking and system calls , especially in real-time computing . Systems that use interrupts in these ways are said to be interrupt-driven. Hardware interrupts were introduced as an optimization, eliminating unproductive waiting time in polling loops , waiting for external events. The first system to use this approach

2700-475: The system's memory address space . In systems on a chip (SoC) implementations, interrupts come from different blocks of the chip and are usually aggregated in an interrupt controller attached to one or several processors (in a multi-core system). Multiple devices may share an edge-triggered interrupt line if they are designed to. The interrupt line must have a pull-down or pull-up resistor so that when not actively driven it settles to its inactive state, which

2754-472: The timeout signal from a watchdog timer . With regard to SPARC , the Non-Maskable Interrupt (NMI), despite having the highest priority among interrupts, can be prevented from occurring through the use of an interrupt mask. One failure mode is when the hardware does not generate the expected interrupt for a change in state, causing the operating system to wait indefinitely. Depending on the details,

SECTION 50

#1732852784802

2808-579: The virus is activated, this rectangle scrolls up two lines. As a result of the virus hooking into the low-level timer interrupt, PC-XT systems slow down to one fifth of their normal speeds 30 minutes after the virus has installed itself, though the slowdown is less noticeable on faster machines. The virus contains code that enters a processing loop each time the processor's timer tick is activated. Symptoms also include spontaneous disconnection of workstations from networks and creation of large printer spooling files. Disconnections occur since Jerusalem uses

2862-468: The workload in servicing interrupts grows in proportion to the square of the number of devices. It is therefore preferred to spread devices evenly across the available interrupt lines. Shortage of interrupt lines is a problem in older system designs where the interrupt lines are distinct physical conductors. Message-signaled interrupts, where the interrupt line is virtual, are favored in new system architectures (such as PCI Express ) and relieve this problem to

2916-520: Was the DYSEAC , completed in 1954, although earlier systems provided error trap functions. The UNIVAC 1103A computer is generally credited with the earliest use of interrupts in 1953. Earlier, on the UNIVAC I (1951) "Arithmetic overflow either triggered the execution of a two-instruction fix-up routine at address 0, or, at the programmer's option, caused the computer to stop." The IBM 650 (1954) incorporated

#801198