1.2.1

Cards (28)

  • Operating System Features
    • Memory management
    • Resource management
    • File management
    • Input/Output management
    • Interrupt management
    • Utility software
    • Security
    • User interface
  • Memory management
    Paging, segmentation, virtual memory
  • Paging
    1. Memory is split up into equal-sized sections known as pages
    2. Programs are made up of a certain number of equally-sized pages
    3. Pages can be swapped between main memory and the hard disk as needed
  • Segmentation
    • Memory is split up into logical sized divisions known as segments, which vary in size
    • Segments are representative of the structure and logical flow of the program
  • Virtual memory
    • Uses a section of the hard drive to act as RAM when the space in main memory is insufficient to store programs being used
    • Sections of programs that are not currently in use are temporarily moved into virtual memory through paging, freeing up memory for other programs in RAM
  • The key issue with using paging, segmentation and virtual memory is disk thrashing
  • Interrupts
    • Signals generated by software or hardware to indicate to the processor that a process needs attention
    • Different types of interrupts have different priorities and how urgent they are must be taken into account by the operating system when allocating processor time
    • Interrupts are stored in order of their priority within an interrupt register
  • Interrupt Service Routine
    1. The processor checks the contents of the interrupt register at the end of each Fetch-Decode-Execute cycle
    2. If an interrupt exists that is of a higher priority to the process being executed, the current contents of the special purpose registers in the CPU are temporarily transferred into a stack
    3. The processor then responds to the interrupt by loading the appropriate interrupt service routine (ISR) into RAM
    4. A flag is set to signal the ISR has begun
    5. Once the interrupt has been serviced, the flag is reset
    6. The interrupt queue is checked again for further interrupts of a higher priority to the process that was originally being executed
  • Scheduling algorithms
    • Pre-emptive (jobs are actively made to start and stop by the operating system)
    • Non pre-emptive (once a job is started, it is left alone until it is completed)
  • Scheduling algorithms
    • Round robin
    • First come first served
    • Multilevel feedback queues
    • Shortest job first
    • Shortest remaining time
  • Round robin
    • Each job is given a section of processor time (known as a time slice) within which it is allowed to execute
    • Once each job in the queue has used its first time slice, the operating system again grants each job an equal slice of processor time
    • This continues until a job has been completed, at which point it is removed from the queue
  • First come first served

    Jobs are processed in chronological order by which they entered the queue
  • Multilevel feedback queues
    Makes use of multiple queues, each which is ordered based on a different priority
  • Shortest job first
    The queue storing jobs to be processed is ordered according to the time required for completion, with the longest jobs being serviced at the end
  • Shortest remaining time
    The queue storing jobs to be processed is ordered according to the time left for completion, with the jobs with the least time to completion being serviced first
  • Types of operating systems
    • Distributed
    • Embedded
    • Multi-tasking
    • Multi-user
    • Real Time
  • Distributed operating system
    Runs across multiple devices, allowing the load to be spread across multiple computer processors when a task is run
  • Embedded operating system
    • Built to perform a small range of specific tasks, catered towards a specific device
    • Limited in their functionality and hard to update although they consume significantly less power than other types of OS
  • Multi-tasking operating system

    Enables the user to carry out tasks seemingly simultaneously by using time slicing to switch quickly between programs and applications in memory
  • Multi-user operating system
    • Multiple users make use of one computer, typically a supercomputer
    • A scheduling algorithm must be used to ensure processor time is shared fairly between jobs
  • Real time operating system
    • Designed to perform a task within a guaranteed time frame
    • Used in time-critical computer systems
  • BIOS
    • The first program that runs when a computer system is switched on
    • Responsible for running various key tests before the operating system is loaded into memory
  • Device drivers
    Computer programs provided by the operating system that allow the operating system to interact with hardware
  • Virtual machine
    A software implementation of a computer system that provides an environment with a translator for intermediate code to run
  • Intermediate code
    Code that is halfway between machine code and object code, independent of the processor architecture
  • Virtual machines are commonly used to create a development environment for programmers to test programs on different operating systems
  • Running intermediate code in a virtual machine can be considerably slower compared to running low-level code on the device it was designed for
  • Other uses of virtual machines
    • Protection from malware
    • Running incompatible software