GoConqr has a new look! Let us know what you think.

Slides

Unit 2 - Systems software

Jodie Jacob Computing A level English 58 slides

Slides in this set (58)

  1. Operating System (OS)

    • An Operating System is a program or set of programs that manages the operations of the computer for the user.
    • It acts as a bridge between the user and the computer's hardware.
    • The Operating System is held in permanent storage, for example on a hard disk. A small program called the loader is held in ROM. When a computer is switched on the loader in ROM sends instructions to load the OS by copying it from storage into RAM.
  2. Functions of an Operating System

    • The OS provides...
    • a user interface
    • memory management
    • interrupt handling
    • processor scheduling
  3. User Interface

    • The OS hides the complexity of the hardware from the user by providing a user interface.
  4. Memory management

    • Programs and their data need to be loaded into RAM
    • The OS must manage the allocation of RAM to the different programs
    • There may not be sufficient RAM for all desired processes to be completely loaded into RAM at once
  5. Memory management - Paging

    • Available memory is divided into fixed sized chunks called pages
    • Each page has an address
    • A process loaded into RAM is allocated sufficient pages, but those pages may not be contiguous in physical terms
    • A page table maps between the logical memory locations and the physical memory locations
  6. Memory management - Segmentation

    • Alternatively, memory is divided into segments which can be of different lengths
    • Segmentation can relate to parts of a program, for example a particular function or subroutine may occupy a segment.
  7. Virtual memory

    • A computer has a fixed amount of RAM, the demands of memory will often exceed this amount
    • An area of the hard disk can be designated as virtual memory
    • Some of the pages of a current process are stored in virtual memory until they are needed, at which point they are swapped into RAM
    • If many processes are running and the computer has insufficient RAM, lots of time is spent swapping pages in and put of virtual memory
    • Repeatedly swapping pages can noticeably slow down the computer this is known as disk thrashing
  8. Interrupts

    • It is vital that the CPU can be interrupted when necessary
    • Interrupts can be sent to the CPU by software, hardware devices or the CPUs internal clock
    • Examples of interrupts are:
    • ​​​​​​​An input/output device sends an interrupt signal
    • The printer runs out of paper
    • An error occurs in a program
    • A scheduled interrupt from the internal clock
    • Power failure
    • The CPU checks at the end of each clock cycle whether there are any interrupts to be processed
  9. Interrupts - Using the stack

    • When an interrupt is detected, the processor stops fetching instructions and instead pushes the current contents of its registers onto a stack
    • The CPU uses an Interrupt service routine to process the interrupt
    • When processing has finished the values can be popped from the stack and reloaded into the CPU
  10. Interrupt Priority

    • Interrupts have different priorities, and will be processed in order of priority
    • Interrupts can themselves be interrupted if the new interrupt is of a higher priority
    • If a higher priority interrupt occurs whilst an interrupt is being processed the original interrupt's registers will be pushed onto the stack as well
    • The stack is a Last In First Out (LIFO) data structure so the last data to be pushed on the stack will be the first to be retrieved
  11. Processor scheduling

    • A single CPU can only process instructions for one application at a time
    • The OS must schedule when each application can use the CPU
    • This gives the illusion of multi-tasking multiple applications appear to be running simultaneously
  12. Aims of scheduling

    • To provide an acceptable response time to all the users
    • To maximise the time the CPU is usefully engaged
    • To ensure fairness on a multi-user system
  13. Processor scheduling - Round Robin

    • Each job is allocated (by FIFO) a time slice during which it can use the CPU's resources
    • If the job has not been completed by the end of its time slice, the next job is allocated a time slice
    • Processor scheduling - Round Robin
    • Caption: Round Robin
  14. First com first served

    • The first job to arrive is executed until it is completed
  15. Shortest remaining time

    • The time to completion is estimated as each new job arrives
    • The job with the shortest remaining time to completion is executed, meaning that a shorter new job can take over from the current process
  16. Shortest job first

    • Also known as "shortest process next"
    • As with shortest remaining time, the total execution time of each job is estimated by the user
    • The waiting job with the shortest total execution time is executed when the current job is completed
  17. Multi-level feedback queues

    • Multiple queues are created with different priority levels
    • If a job uses too much CPU time it is moved to a lower priority queue
    • Processes can also be moved to a higher priority queue if they have waited a long time
  18. Distributed Operating Systems

    • A distributed OS can coordinate the processing of a single job across multiple computers
    • A program can be run by the user that uses data or resources from any other computer e.g- processor time, memory, I/O devices
    • The distribution of tasks is coordinated by the OS passing instructions between computers
    • The user can access more computational power with the illusion of working with a single processor
    • Advantage - No need for training or writing programs differently
    • Disadvantage - The programmer has no control over the task distribution as this is entirely handled by the OS
  19. Multi-tasking Operating Systems

    • Enables a user to carry out task simultaneously
    • Time slicing is used to switch quickly between programs and applications in memory
  20. Multi-user Operating System

    • Multiple users make use of one computer
    • A scheduling algorithm is used to allocate processor time fairly between jobs and prevent processor starvation
  21. Multi-user, Multi-tasking system

    • Some systems use a very powerful computer called a mainframe
    • Lots of users with their own terminals access the mainframe's CPU and each gets a time slice
    • Each terminal is also running multiple processes
  22. Mobile Operating Systems

    • A smartphone is a computer with a multi-tasking Operating system
    • Mobile OSs are linked to specific hardware
    • A low level proprietary OS is used for handling the hardware and special features
    • Meanwhile the main OS handles the user interface and running applications
  23. Open source Operating Systems

    • Open source is used by all major device manufacturers
    • It allows for major customisation
    • A device manufacturer fine-tine the OS to suit their devices, and add additional features or user interfaces to enhance the users experience
    • The interface and the available apps can be a major selling point
  24. Embedded Operating System

    • Built to perform a small range of specific tasks
    • Catered towards a specific device e.g- a household appliance
    • Limited functionality and hard to update
    • Consumes less power than other types of OSs
  25. Real time Operating Systems

    • Some operating systems must operate in real time
    • Must respond extremely quickly to inputs
    • May need to cope with many inputs simultaneously
    • Real time OSs are usually seen in safety critical environments
    • If a hardware component fails the OS must have a failsafe to detect this and respond accordingly
    • There is hardware redundancy - crucial components are duplicated in case one fails
  26. Basic Input Output System (BIOS)

    • Basic Input Output System is the first program that runs when a computer system is switched on
    • Runs a series of tests before the operating system is loaded into memory:
    • POST(Power On Self Test) which ensures that all hardware is correctly connected and functional
    • Checking the CPU clock, memory and processor
    • ​​​​​​​Testing for external memory devices
  27. Device drivers

    • A driver is a program that provides an interface for the OS to interact with a device
    • Drivers are hardware dependent and OS specific:
    • ​​​​​​​Drivers are needed to allow the OS to control hardware devices from your speakers to your graphics card
    • The OS does not need to know the specifics of the hardware to be able to interact with it
  28. Virtual Machine

    • A theoretical computer and a software implementation of a computer system
    • Provides an environment with a translator for intermediate code to run
    • Uses of virtual machines include:
    • Testing programs
    • Protection from malware
    • Running software compatible with different versions/types of operating systems
  29. Intermediate code

    • Code halfway between machine code and object code is called intermediate code
    • Independent of processor architecture so can run across different machines and operating systems
    • Takes longer to execute than low-level code
  30. Categories of software

    • Categories of software
  31. Systems software

    • Systems software is low-level software that is responsible for running the computer system smoothly, interacting with hardware and generally providing a platform for applications software to sun.
    • The user does not directly interact with systems software but it ensures high performance for the user
    • Examples - Library programs, utility programs, operating system, device drivers
  32. Utility programs

    • Utility programs optimise the performance of the computer and perform useful background tasks
    • Examples - Disk defragmenter, Automatic backup, Automatic updating, Virus checker and compression software
  33. Utility Programs - Disk defragmenter

    • Large files stored on a magnetic hard drive may be split up across several physical disk locations
    • Disk defragmenter reorganises the hard drive so that files are in sequential blocks where possible
    • The result is that files can be read more quickly
  34. Utility programs - Automatic backup

    • Data in permanent storage needs to be regularly backed up
    • The users may forget so...
    • The process can be automated, specifying:
    • Where - portable hard drive, cloud, local server...
    • When - usually when the computer is not being used
    • What - which data should be backed up
    • How - should backups be compressed​​​​​​​
  35. Utility programs - Automatic updating

    • Runs in the background detecting software update releases and automatically installing them
    • Some updates add new software features
    • Some important updates fix security issues which could otherwise be exploited by hackers
  36. Utility programs - Virus checker

    • Scans permanent storage for viruses by comparing files to known virus definitions
    • May also san files "on access" as they are opened
    • Must be kept up to date with new virus definitions to be effective
    • Antivirus software uses heuristics - it now what types of behaviour are likely to be used by a malicious program
  37. Utility program - Compression software

    • Operating systems provide utilities that enable files to be compressed and decompressed
    • This is used when compressing large files to be transmitted across the Internet and commonly used to compress scanned files
  38. Libraries and Translators

    • Allows programs to use pre-written routines to be translated into executable code
  39. Application software

    • Application software is designed to be used by the end-user to perform one specific task
    • Application software requires system software in order to run
    • Examples - desktop publishing, word processing, spreadsheets, web browsers
  40. Off the shelf or Bespoke software?

    • Ready made software available to anyone to purchase is known as off the shelf software
    • Software that is custom created for a specific user is known as bespoke software
    • Bespoke software is mostly used by businesses rather than individuals
  41. Open source software

    • Open source software allows anyone to access its source code
    • The software is open source licensed out free to use
    • Anyone may modify the software and sell it on the condition that the software produced is also open source
    • Different from freeware - software that is free for anyone to use but the source code is not available
  42. Closed source (proprietary) software

    • Closed source software does not allow access to the source code
    • Users must pay the person or company who owns the copyright for a license to use the software
    • There may be restrictions on how the software is used
  43. Assembly code

    • Computers execute machine code
    • It is difficult for humans to read, write and debug machine code
    • Assembly code instructions are equivalent to machine code but easier for humans to work with e.g- LDA 5
  44. Assembler

    • Assembly code is a low level language
    • Translating assembly code instructions into machine code is done by an assembler
    • Each processor has its own instructions set and so the object code produced will be hardware specific
  45. Compiler

    • A compiler translates a whole program written in a high level language into executable machine code, going through several stages
    • The resulting machine code is called object code
    • The object code produced is also hardware specific
  46. Interpreter

    • An interpreter also translates code written in a high level language into machine code
    • However, the interpreter does this line-by-line rather than translating the whole program before any of it can be executed
  47. Compiler vs Interpreter

    • Compiler
    • Advantages:
    • Program can be run many times without the need to recompile
    • Faster to execute than interpreted code
    • Compiled code cannot be easily read and copied by others
    • Disadvantages:
    • Must be recompiled to run on other platforms as it is hardware specific
    • The source code must be re-compiled every time the programmer changes the program.
    • Interpreter
    • Advantages:
    • Source code can be run on any machine without the interpreter
    • If a small error is found, no need to recompile the entire program
    • Disadvantages
    • The program may be slower than a compiled program
  48. Bytecode

    • Most languages are not solely compiled or interpreted they use a combination of both
    • For example - Java is compiled into bytecode which is an intermediate step between source code and machine code
    • The bytecode is interpreted by a bytecode interpreter
  49. Stages of compilation

    • A compiler goes through several stages to convert source code to object code they are...
    • Lexical analysis
    • Symbol table
    • Syntax analysis
    • Semantic analysis
    • ​​​​​​​Code generation
  50. Lexical analysis

    • All unnecessary spaces and all comments are removed
    • Keywords (e.g-print), constants and identifiers are replaced with tokens representing their function in the program
  51. Symbol table

    • The lexer will build up a symbol table for every keyword and identifier in the program
    • The symbol table helps to keep track of the run-time memory addresses for each identifier
  52. Syntax analysis

    • The stream of tokens from the lexing stage is split up into phrases
    • Each phrase is parsed which means it is checked against the rules of the language
    • If the phrase is not valid, an error will be recorded
  53. Semantic analysis

    • It is possible to create a sequence of tokens which is valid syntax but is not valid program
    • Semantic analysis checks for this kind of error
    • If an identifier has not previously been declared then semantically it is not a valid program
  54. Code generation

    • Once the program has been checked the compiler generates the machine code
    • It may do this in several "passes" over the code because code optimisation will also take place
  55. Code optimisation

    • Sometimes source code is written insufficiently
    • Code optimisation aims to...
    • remove redundant instructions
    • replace inefficient code with code that achieves the same result but in a more effective way
  56. Libraries

    • Most languages have sets of pre-written ( and pre-compiled) functions called libraries eg-mathematical operations
    • A programmer can also write their own libraries
    • Library functions can be called within a program
  57. Linker

    • The linker needs to put appropriate memory addresses in place so that the program can call and return from a library function
  58. Loader

    • The job of the loader is to copy the program and any linked subroutines into main memory to run
    • When the executable code was created it may assume the program will load in memory address 0
    • However, memory addresses in the program will need to be relocated by the loader because some memory will already be in use

Information

Description
A level Computing Slide Set on Unit 2 - Systems software, created by Jodie Jacob on 26/11/2021.
Created by
Jodie Jacob · Nov 2021
Updated
Nov 26, 2021
Views
83
Rating

More on Operating systems

Feedback

What is it about?

What do you think of the new look?

How do you like it?