Two types of software are application and system software.
The Operating System performs many functions including memory management, handling interrupts and providing an interface.
An interrupt is a signal sent to the processor to get its attention.
An IDE helps the user write, test, and run program code.
An Integrated Development Environment (IDE) consists of an editor with an interpreter and/or complied, a run-time environment and debugging tools.
A runtime environment is where the outputs from the code executed is displayed e.g. your console (command line) or GUI (graphical user interface) such as forms.
IDE editor is a tool used by the programmer to write, edit, and save code. Can include auto-completion, auto-correction, prettyprint - colour coding different key words, block minimising.
IDE debugging tools find and correct errors. They include: Breakpoints, can be used to stop code running at certain points. Variable watch windows, used to see them change during the programs runtime. Stepping, this allows you to run one line at a time to check code line by line. It doesn’t continue unless told to.
Programs are a set of instructions that enables a computer to perform a specific task.
Firmware are instructions that are stored in the ROM and are loaded when the computer starts. It cannot run unless it is told to run.
Bootstrap is the first commands loaded when a computer starts, it checks hardware and loads the firmware.
Application software that allows the user to perform a useful task.
System software is a type of software that manages the hardware and software in a computer.
Graphical User Interface (GUI) has windows, icons, menus, and pointers (WIMP). It is what you will be familiar with from PCs, mobile phone, etc. This is the most useful for novices because it is often intuitive. An example is Windows.
A command line interface requires the user to enter text as a commands. This is the most useful for expert users because the command as entered must be exact. An example is Linux.
A natural language interface allows the user to enter any text as commands, or speak commands. The OS then analyses what has been entered and performs the action.
A computer cannot be used without input and output devices. These are called peripherals. A peripheral is a hardware device used to input, store, or output data from a computer, that is not directly part of the computer itself.
A driver is software that translates data from the computer to the peripheral, and vice-versa. The OS allows the installation of these drivers and the sending of data to and from it. In simple terms, a driver is a program that controls a device, e.g. a printer or a keyboard.
An interrupt is a signal sent to the processor to tell it that its attention is required. It can make a processor seem like it is multitasking.
An interrupt can be software or hardware based. Software examples include division by 0, two processes attempting to access the same memory location, program request for input, output required, and data required from memory. Hardware examples include data input, error from hardware, hardware failure, hard drive signal that it has read data, and new hardware device connected.
An interrupt has a priority level. A high priority interrupt needs the attention quickly. A low priority interrupt needs the processor, but it‘s not urgent. This is managed by the interrupt handler (IH).
An interrupt handler (IH) is a program that organises interrupts into an order based upon priorities.
When the processor finishes its current f-d-e cycle, if there is an interrupt with a higher priority than the current task it is processing it stores the current process in the interrupt, checks the source of the interrupt, and calls the relevant interrupt service routine (ISR). When finished, the stored process is returned to memory or another higher priority interrupt is fetch. Otherwise it runs another f-d-e.
An interrupt service routine (ISR) is a program that retrieves an interrupt and performs the required action(s).