Theory: Computer Systems Flashcards
What type of system software is used by programmers to simplify the process of application development?
Libraries (do card for how)
Is a webcam hard or software?
Hardware
Under which category of software is the operating system classed?
System software
Under which category of software is a web browser classed?
Application software
Define software
Program code, sequences of instructions which are executed in order to perform a task
What is the role of system software?
To operate, control and maintain the computer and its components
Is a word processor hardware or software?
Software
Define hardware
The physical components of a computer system
Includes:
-internal components
-external components (peripherals)
Define peripherals
An auxiliary hardware device used to transfer information in an out of a computer, hives the computer more power and ability
Why is an operating system said to provide a virtual machine?
OS hides complexity of the computer from the user
Under which category of software is a compiler classed?
Translators
Define General purpose software
This is software that can be used for multiple purpose
Define special purpose software
Software developed for a specific purpose
Define bespoke software
Developed for a specific user AND a specific purpose
Give examples of Application software
-IDEs
-Word Processors
-Photo editing software
-Browsers
-Games
Give the main types of system software
-Operating systems
-Utility programs
-Translators
-Library programs
Which are processor specific: low or high level languages?
Low level languages
Which type of language uses mnemonics in instructions?
Assembly language
Which type of languages must be translated into machine code with a compiler or interpreter before execution?
High level languages
Give an example of a component that is both hardware and software
-wireless router
-wireless keyboard
-wireless (blank)
Give examples of peripherals
-speaker
-printer
-microphone
What is the purpose of application software?
Programs to complete a specific task for the user
Describe the role of the operating system
-allows user to control the computer with ease
-does this by providing a virtual machine
-a platform on which other software can run
-to hide the true complexity of the computer from the user
-manages and controls access to a computers resources
-eg memory management, processor scheduling, handling inputs, outputs and interrupts, security
What is the role of utility programs?
-“housekeeping” tasks in the computer system
-eg, data backup, defragmenting hard drives, data compression, encryption, anti virus activities, file management
How does processor management work?
Operating system makes sure the right instructions are processed at the right time, allocates processor access to different applications.
Starts by finding the relevant data from secondary storage and bring it to main memory
Processor then executes processes to run program
How does the operating system handle multi-tasking?
A scheduler can be used by the OS to swap tasks in and out of the processor so it appears more than one task is being performed. Though, one processor core can only carry out one instruction at a time.
Why is multi-tasking more efficient in modern computers?
Almost all modern computers have multiple processor cores that the OS uses schedulers with, making multi-tasking very efficient.
How does the OS perform memory management?
Instructions and data needed for a process have to be available in main memory (RAM). OS runs memory management program.
-keeps track of the proportion of memory allocated
-maps memory to each process
-determines how much memory to allocate to processes
-determines when memory should be available
How does OS manage Files?
(NOT file management tools from utility programs)
-controls how data is stored and retrieved
-keeps track of where files are stored in secondary storage
How does OS manage backing storage?
-keeps directory of where files are stored to access them
(Directory = file system cataloguing structure
How does OS manage input and output devices?
-controls and uses input and output devices
-records which device requires processor time so the processor can communicate with devices without conflict.
-prioritises processes based on control signals that I/O device sends and receives.
How does OS manage Interrupts?
A signal is sent to the processor to request attention. The processor suspends what it is doing and runs the process from the interrupt
What are some common interrupts?
-hardware device has data to process
-hardware device has completed a task
-software process needs a service or OS function to be performed
-allotted amount of time has passed/expired, action needed
-a hardware failure happened
What do library programs contain?
Useful instructions that are frequently used by a program. To use, programmers must import the library in their program code
List the three types of translators
-compilers
-assemblers
-interpreters
Why were low level languages used?
Early computers had limited speed and memory
What is special about low level languages
-They directly manipulate the processor
-specific to the type of processor being used
What were the issues with low level languages?
-require a lot of effort
-prone to errors
Why were high level languages created?
-allow instructions to be communicated to the processor instead of directly manipulating it
-makes programming much easier
What are the two categories of low level languages
-assembly code
-machine code
Describe machine code
-uses only binary digits
-communicate directly with the processor
-processor specific
-very long and difficult to program
-prone to errors and difficult to debug
What is an advantage of machine code?
Not abstracted, so does not need to be translated. This means it is much faster to execute, used in embedded systems where speed is key
Why was assembly language developed?
To simplify the process of programming
What is the key feature of assembly code?
Uses mnemonics in place of machine code, 1 to 1 relationship/correlation: one line of assembly is one line of machine
Why is assembly code better, and worse?
-more compact, less prone to errors and easier to debug
-More abstracted so needs to be translated before it is run.
Key feature of high level languages:
-not platform/processor specific
-must be translated by a compiler or interpreter before execution
-1 to many relationship/correlation: each line of a high level language is many lines of machine code
Advantages and disadvantage of high level languages!
-more compact, easier to debug, easier to code, may make use of built in functions so quicker.
-even more abstracted, so needs to be translated by compiler or interpreter before running
What is the difference between imperative high level languages and declarative high level languages?
Imperative languages are formed from instructions on HOW the computer should complete the task, Declarative languages specify what task needs to be completed
Comment on portability, ease of use, ease of debugging, ease of execution for machine assembly and high level.
Machine: not portable(processor specific), difficult to understand, very difficult to debug, directly executed- no need for translation
Assembly: not portable(processor specific, fairly difficult- but much easier than machine, moderately difficult to debug, must be translated by an assembler but not too time consuming.
High level: portable, much easier to understand, much easier to debug, must be translated by a compiler or interpreter- may be time consuming
Describe the role of an assembler
Translate assembly language into machine code, because its 1 to 1, its straightforward and easy and quick.
As assembly is platform specific/processor specific, a different assembler must be used for each different processor instruction set
Describe the role of compilers
Translate high level language into machine code.
Describe the process of a compiler
-checks for errors
-translates entire program at once
-to produce machine code which is then
What is an advantage and disadvantage of compilers?
Time consuming as its translating all code at once
Can be run as many times as needed without translating again, can be run without the requirement for other software
Describe the role of an interpreter
Translates high level language into machine code line by line. Has procedures that can be used to translate each kind of program instruction
What is different about interpreters to compilers?
Detects errors as it goes through
Describe the processes of translation with intermediate code.
-compiled not into machine code, but intermediate code
-the intermediate code is often bytecode and allows for platform independence
-a virtual machine is used to execute the bytecode on different processors
(Each processor instruction set has its own virtual machine)
What is the advantage of using an intermediate language?
Means the code can be translated just once and used on a variety of processors
What is the name for a translators output?
Object code