1/47
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced |
---|
No study sessions yet.
external hardware components
used to get data into/out of the system, peripherals, I/O devices
internal hardware components
processing and storage devices
hardware
physical components of the computer
software
all of the programs that run on the computer
types of software
application and system
application software
programs that perform specific tasks that would need completing even if computers didn’t exist
user-oriented tasks
system software
programs that are concerned with the more technical aspects of setting up and running the computer
machine-oriented tasks
types of system software
utility programs
library programs
operating system
translators
utility programs
designed to help configure/maintain/optimise the computer
compression software, anti-virus software, back-up software, registry cleaners
enhance the use of your computer though your computer will work without them
library programs
code, data and resources that can be called by other programs
include pre-written code and subroutines
tend to be critical for the application for which they were built
operating system software
collection of software designed to act as an interface between the user and the computer
manages the overall operation of the computer
resource management
how an OS manages hardware and software to optimise the performance of the computer
types of resource management done by OS
scheduling
managing I/O devices
memory management
file management
scheduling
a technique to ensure that different users or different programs are able to work on the same computer system at the same time
managing I/O devices
accessing some devices is a relatively slow process compared to the speed at which the processor can handle requests and there are likely to be competing requests where several processes are waiting for the same device
rather than wait for each process to end before it can continue, the OS can create a queue of commands that are waiting for the device and then handle each request in sequence or based on priority
memory map (created by OS)
shows which blocks of memory have been allocated to each task
means that OS can control more than one task in the RAM at any one time
memory management
stores details of all the unallocated locations in a section of memory known as the heap
when an application needs some memory, it is allocated from the heap
when an application has finished with the memory location, the now unneeded memory locations return to the heap
virtual memory
involves using secondary storage to store code or files that would normally be held in RAM
the OS then treats that part of the secondary storage as if it is part of the RAM
paging
involves holding a central block of code in RAM
other sections of code (’pages’) are loaded from the secondary storage as and when they are needed
this method allows very large applications to run in a small section of RAM, which frees up memory for other applications to use
file management
OS uses folders and directories- allows the user to group similar files together
folders are arranged in a hierarchical structure like a tree
source code
code that programmer creates, not yet been compiled into executable file
object code
compiled code that can be run as an executable on any computer
machine code
very similar to the instruction set of a computer, machine-oriented
advantages of machine code
instructions executed very quickly because they can be used directly by the processor
precise control over hardware
disadvantages of machine code
difficult to track down errors and bugs in long series of 1s and 0s
written for a specific processor, therefore unlikely to be very portable- it will only work on a computer with the same type of processor as it was written for
writing programs in machine code is a very time-consuming and tedious process
assembly code
a way of programming that involves writing mnemonics (short codes used as instructions), one-to-one relationship with machine code
advantages of assembly
direct manipulation of hardware
more concise than machine code
instructions are more closely tied to the machine's instruction set, allowing for highly optimised and faster execution
disadvantages of assembly
requires a deep understanding of the specific processor architecture and its instructions, making it more complex and difficult to learn
highly specific to a particular processor architecture so generally not portable
very time-consuming- requires the programmer to manage low-level details, such as memory addresses and register manipulation
main uses of assembly code
embedded systems - low level of interaction required with hardware, processor may be slow and have limited memory so efficiency of assembly is required
real-time applications- they need to respond quickly to inputs
high-level language
a programming language that allows programs to be written using English-like keywords and that is platform-independent, problem oriented
why are there so many different languages
different languages are used for specific problem types
some languages are developed for specific hardware devices
advantages of high-level languages
meaningful identifier names makes it easier to understand
use fewer lines of program code
often provide built-in functions and libraries that can simplify the programming process, leading to faster development
disadvantages of high-level languages
often involve translation or interpretation, adding layers of processing compared to low-level languages, which can lead to slower execution speeds
less control over hardware
may consume more system resources
imperative/ procedural language
based on giving the computer commands or procedures to follow
instructions executed in a programmer-defined order
useful for games programming
library of pre-written functions available
object-oriented language
encapsulates instructions and data together into objects
objects can be further grouped into classes
declarative/ logical/ functional language
declare or specify what properties a result should have
describe what the program should accomplish rather than how it should accomplish it
facts and rules rather than instructions
clear link to mathematical logic
useful for database query, creating a website
interpreter
translates high-level languages by reading each statement in the source code and immediately performing the action
errors are reported as soon as they are encountered
advantages of interpreter
you do not need to compile the whole program in order to run sections of code
code is platform independent and can be translated on any computer that has a suitable interpreter
easier to debug
disadvantages of interpreter
no matter how many times a section of code is revisited in the program, it will need translating every time
source code must be distributed to users
can only be translated and therefore executed on a computer that has the same interpreter installed
compiler
translates high-level languages by converting all of the source code into object code before the program is executed
errors reported in a batch
advantages of compiler
once the source code has been compiled, you no longer need the compiler or the source code
already in a format that the processor can directly execute so executes faster
source code not visible to user and difficult to reverse engineer
disadvantages of compiler
whole program has to be converted from source code to object code every time you make an alteration to your code- can take a long time to debug
object code is machine-dependent - the object code will only run on a computer that has the same processor
bytecode
an instruction set used for programming that can be executed on any computer using a virtual machine
how does a virtual machine work
can emulate the architecture of a computer, meaning that the source code written using bytecode can be translated into a format that can be executed on any platform
rather than translating source code into platform-specific machine code, it is translated into an intermediate code
intermediate code can then be executed by the virtual machine
why should you simplify boolean expressions
used to create logic gates, simplifying the expression also simplifies the actual circuit, reducing the number of components needed making it cheaper, more efficient and more reliable
advantage of using De Morgans law
simplifies statements so that only NAND or NOR gates are used
makes it simpler to create logic gates and circuits- easier to design and build microprocessors
edge-triggered d-type flip-flop
a memory unit / used to store data
how does an edge-triggered d-type flip-flop work
each pulse of the system clock has a rising edge and a falling edge
clock used to synchronise operation of a group of flip-flops
output is updated to reflect current status of input