Take aways:
The functions of an operating system include:
Loading a software interface for the user to interact with (usually a GUI or CLI)
Managing hardware resources such as memory and devices
User management
authentication & security
File management
Firmware is software specific to a hardware device
OS needs firmware to manage device, firmware needs OS to run it
Software interrupts are a responce to prioritised triggers like key presses
Hardware interrupts are a response to device failure
IDE's speed up annd make easier, the process of writing programs as they include debugging and tranlation tools as well as access to built modules/functions etc
Compiler's run program as a whole
Interpreters run code line by line
Most people use computers because they want to use application software(such as word processing, internet browsing) however these applications only work inside of an operating system environment. The operating system is the software that controls, manages and run all of the applications on the computer.
The functions of an operating system include:
Loading a software interface for the user to interact with (usually a GUI or CLI)
Managing hardware resources such as memory and devices
User management
authentication & security
File management
When a user is using a computer they are either interacting directly with the operating system ( e.g. logging in to the computer) or via an application (e.g. saving a word processing document)
Most general use systems (e.g. desktops, laptops, tablets) allow multitasking, where most than one program is open at one time.
Advantages
Allows a combination of active and passive user interaction, e.g.:
Type up a word processing document while listening to music.
Editing images while burning files to an optical device (DVD / CD)
Allows rapid switching between applications which can make the use more efficient.
Disadvantages
Multiple open applications can slow down the computer, making it harder to use.
Requires more physical resources (CPU power / memory) so uses more battery.
Can offer unwanted distractions from the task at hand.
A translator is a piece of software that handles the translation of source code into a form that can be executed by a processor. Interpreters, compilers, and assemblers are all types of translator.
All source code programs need to be translated before they can be executed.
Assemblers, compilers, and interpreters are all types of program translator. However, they use different methods to translate programs.
Compilers translate code into a form that can be executed. However, the compiler does not execute the code.
Interpreters translate and execute each line of source code one by one.
A key feature of any operating system is the ability to handle interrupts.
An interrupt is a signal which is sent from a device or from software to the operating system.
The interrupt signal causes the operating system to temporarily stop what it is doing and ‘service’ the interrupt.
The interrupt handler is the part of the operating system which is responsible for dealing with interrupt signals.
The interrupt handler prioritises interruptions as they are received, placing them into a queue as necessary.
For every interruption, the current task needs to be stopped, with it’s status saved (so it can resume later).
Here are some examples of the causes of interrupts. Note that not all need any intervention from the user.
Hardware issue, such as a printer paper jam
Key press by the user, e.g. CTRL ALT DEL
Software error
Phone call (mobile device)
Disk drive indicating it is ready for more data
Bootstrap programs are the first programs to be loaded from ROM by BIOS
They are the first programs to be executed when a device is booted up
Bootstrap is an example of application software
Contains the start up instructions of a computer
Bootstrap determines the basic hardware structure of computer and instructions for loading the operating system
High level languages are programming languages that aer easily readable by humans eg Python, Java, JavaScript, C, C#, C+, Ruby etc
Low level languages are readable by computers, ie binary - machine code
Assembly language is a low level language designed to be readable by humans and easy to process for computers - it is designed to communicate directly to hardware
Computers speak binary, humans dont. In the old days computers were programmed in binary (punch cards), then assembly language was developed . Assembly language automatically translate between between high and low level languages before this, programmers had to program computers in binary.
Now programmers can choose to learn and use many different high level programming languages which have their own built in translators to convert between high level language and machine code.
There are 2 main types of translator; interpreter and compiler
Compilers translate code into a form that can be executed, however, they do not execute the code.
Interpreters translate and execute each line of source code one by one.
Give two examples of application software
State the purpose of system software
Describe the relationship between application software and bootstrap
Identify 3 tasks the file management of an OS perform
Give 2 examples of software interupts and 2 examples of hardware interupts
describe the process that happens when an interupt is sent to a processor
What is meant by a high level programming language?
Why is it more appropriate to use an interpreter while writing a program?
Why is it more appropriate to use an compiler after you have finished writing a program?
Name 3 types of translator?
Describe 2 features of an IDE and how they help us to write programmes