Computer Systems Flashcards
What is hardware?
The hardware of a system is the physical components that make up the computer.
What are the classifications of hardware?
Peripherals, internal components
What are peripherals?
The external components of hardware are the parts that you can touch
What are internal components?
The internal hardware components are housed within the casing of the computer and include the processor, hard disk etc.
What is software?
The software of a system is a collection of procedures and rules that carry out operations on a. Computer’s hardware. The software code may be stored on the computer’s hard drive or any other storage device.
What are the two classifications of software?
Application and system
What is application software?
Application software refers to all of the programs that the user uses in order to complete a particular task
Classifications of application software?
General purpose and special purpose
What is general purpose software?
This is a software that can be used for a variety of tasks. For example: word-processing software
What is special purpose software?
This is software that can only be used for one particular task. For example: scientific calculator
Classifications of special purpose software?
Off-the-shelf, bespoke
What is off-the-shelf software?
This is standardised software that is mass-produced, available to the general public and fir for immediate use.
What is bespoke software?
Software that is developed to meet the user’s specific requirements.
Pros of off-the-shelf
Readily available for anyone to use, well-documented, well-tested
Cons of off-the-shelf
You have little or not control over what features there are, it may not do exactly what you want
Pros of bespoke software
It is tailor made to fit the user requirements exactly
Cons of bespoke
Costs, time taken for development is long
What is system software?
Software that is needed im order for the computer to function
Classifications of system software
library programs, translator software, utility programs
What are library programs?
A library is a collection of pre-complied routines that can be used by other programs. Programmers can invoke library subroutines to save time having to re-write code. For example: DateTime, Os, DLLs
Advantages of library programs
Speeds up the software development process as you don’t have to re-engineer functionality that has already been implemented by others, allows use of functionality that you may not be a specialist in, more robust software will have already extensively tested by others
Disadvantages of library programs
You don’t know what the library is doing (it could be doing something malicious of malfunctioning in some way), you can’t update the library yourself if there is an issue you have to wait for a fix to be implemented, some libraries have a large storage overhead in comparison to custom code implémentions
What is translator software?
Software tools that are used to convert program code from one format to another, without adjusting the logical operation of the original program code.
What are utility programs?
This supports the computer system in operating as safely and efficiently as possible. It has the job of analysing, configuring, optimising, and maintaining a particular part of the computer system
Classifications of utility programs
Compression software, defragmentation, anti-malware,
What is compression software?
Compression software if specifically responsible for compression and decompressing files. The main purpose of compression software is to reduce the amount of data inside files. It saves space on secondary storage devices; this in turn has the potential to increase the efficiency of the computer as less system resources are being used. It reduces the transmission time when sending the file across a network. Email systems often have a limit on the maximum file size allowed for an attachment; compressing files helps keep files within the maximum attachment limit
What is defragmentation software ?
A disk defragmenter is a software that looks at all o the data on a hard drive and reorganises it, so that related data is stored together. The process is: moving files to a temporary space on the hard drive, collecting together the empty spaces, collecting together the related data, replacing the data so that related data is now stored sequentially.
What is anti-malware software?
Anti-malware software is designed to protect a computer system by detecting and blocking threats. It continually monitors the files and software being accessed by the OS in order to detect signs of malicious intent. Once identified the software will quarantine the file, involving isolating the file so that it can’t spread or cause further damage. The software will attempt to repair the file or give the user an option to repair it.
What is the operating system?
An operating system is a collection of software designed to act as an interface between the user an the computer and manages the overall operation of the computer.
Classifications of operating systems
memory management, managing secondary storage, backing store management, processor management
What is memory management?
When a user asks for a file to be loaded it is the job of the memory management routines to check to see if enough memory is available and then allocate the appropriate memory and load the file into those locations. The OS controls the use of main memory by creating a memory map, which shows which blocks of memory have been allocated to each task; this way the OS can control more than one task in the RAM at any one time. If there is not enough memory a program may be swapped out of memory onto virtual memory (storing data in secondary storage if there is no space in RAM) and reloaded when activated.
What is managing secondary storage?
It provides access to the data and programs that need to be loaded from secondary storage to the main memory. It keeps track of where programs and files are stored, it performs backup operations. It supports a user-friendly interface by providing a file management system that allows the user to create, edit, and delete files and folders that are located on secondary storage devices.
What is backing store management?
The OS keeps track of where all files are stored so that they can accessed quickly when they are requested and transferred into main memory. This also speeds ups storage and saves computation resources rather than having to search for free space every time a user wants to save a file.
What is processor management?
In a multi-tasking system, the OS has to allocate each task a time slice, meaning that each task is given an equal amount of processor time. This is also known as round-robin scheduling.
Classifications of programming languages?
Low-level and high-level
What are low-level languages?
Low-level languages are defined by the processor they are designed to run on; these can be described as machine-oriented. They have no built-functions and can access specific registers in the process. They have a 1:1 relationship with processor instructions, non-portable as they are processor specific, allow for individual control of a processor’s components and registers, programs typically require less memory and execute faster than a high-level language program performing the same task.
What is the format of low-level languages?
Opcode = This is part of the instruction that specifies which operation the processor should perform
Operand = Contains a value or set of values relevant to the opcode. The operand can be an actual piece of data or a reference to the memory location
What are the uses of low-level languages?
An embedded system is a complete computer system that has a dedicated function; examples include digital watches, domestic appliances, and central heating systems. Embedded systems are designed to complete a limited number of specific tasks but very efficiently. Due to their nature, embedded systems are usually restricted by size and therefore cannot have huge processors that require cooling , or large storage devices that would add weight and heat to a system. This means that the programs that run on embedded systems need to be efficient and make the best use of the processing power and memory available. Low-level languages allow a programmer to create optimised programs for embedded systems. These programs are extremely efficient at completing their tasks.
Device drivers are programs that allow a computer to interact with a peripheral, like a mouse or a printer. Operating systems install and manage device drivers for every peripheral connected to a computer. Low-level languages allow precise control of a piece of hardware and that is why they are used for device drivers. A device driver written in a low-level language allows the CPU to communicate with the peripheral directly, receiving data and issuing commands quickly and efficiently.
Advantages of low-level languages
- They allow a programmer to create optimised programs, when a computer system has limited resources
- low-level languages allow a programmer to more directly control how the resources are used
Disadvantages of low-level languages
- It is more difficult to write programs in low-level languages than in high-level languages programmer need to have a very good understanding of the hardware being used
- Low-level languages are not portable because they are specific to a particular instruction set
- Low-level languages do not have libraries of functions that can be imported and used by the programmer. This means the programmer has to write every process required for a programmer themselves
What are high-level languages?
High-level languages are programming languages that are designed to allow human to write computer programs and interact with a computer system without having to have specific knowledge of the processor or hardware that the program will run on
Classifications of high-level languages
Imperative, Declarative, Object-oriented
What are imperative languages?
They are languages used to write a list of instructions to solve a problem, where the programmer defines how the problem should be solved. Procedural is also used to describe this subset, but it specifically describes to a language used to write programs that can be split into procedures.
What are declarative languages?
These languages are used by the programmer to define the problem to be solved rather than how to solve the problem. Like SQL.
What are object-oriented languages?
When programmers define objects and classes, which define the data and instructions to manipulate the data. Like Java.
Advantages of high-level languages
- Much easier and faster to write, debug and maintain programs
- Different high-level languages have been written specifically for different types of problem
- High-level language programs are portable- a program written for one type of computer can be recompiled for a different type of computer
Disadvantages of high-level languages
- The object code may run slower than assembly code or machine code
- The object code may occupy more space in RAM- which can be a problem in embedded systems with a small amount of memory
- Most high-level languages do not have statement to allow the programmer to manipulate individual bits which is essential in some applications such as device drivers
Types of program translators
Assemblers, Interpreters, Compliers
What are assemblers?
Assemblers translate assembly code programs into executable code
What are interpreters?
- Interpreters translate and execute each line of source code one by one. Each program line when run is first syntax-checked. If a syntax error is found the program halts and it is reported. Following the syntax check, each line of source code is converted into its machine code equivalent and executed. If a runtime error occurs the program crashes
- This line-by-line approach allows the developer to test the program and to quickly identify and remedy each error as it occurs without having to go through the whole process of translating the entire program every time
- Source code that is interpreted runs more slowly than compiled code, because each time the program is run, it must be translated all over again. In addition, the user must have the interpreter installed to be able to run the program. However, interpreted code can be advantageous if the programmer does not know which platform will be used to run the code.
Advantages of interpreters
- Errors will be reported as soon as they are encountered, which means that you don’t have to wait for the entire program to be complied
- Errors are shown line by line as the interpreter reaches them
- Debugging is quicker and easier as errors are reported in the console, which shows what and where the error is in the code
Disadvantages of interpreters
- The program requires an interpreter to be run
- Translating the code line by line at execution time is slower than running complied machine code
- The interpreter takes up space in memory
What are compliers?
- Compliers produce executable code in a form that cannot be read by a human
- The complier takes the source code as its set of instructions, which it them puts through a series of processes to produce executable code
- Any compilation errors are reported at the end of the compilation process
- When the program has successfully complied, the executable file will not need to be translated again. This results in faster running times as no further translation is required
Advantages of compliers
- Code can be well optimised by the complier
- Complied programs can distributed as machine code, meaning that the source is hidden and can be kept confidential for commercial reasons
- No translation is required at execution time, as it has already been done
Disadvantages of compliers
- You have to wait until the entire program is compiled before receiving any errors, which for a large program may take some time
- If you want to change something in the program, you have to recompile the entire program
- The executable code produced is specific to the processor platform