Software Development Test

Cards (28)

  • First computers
    Programmed with wires and switches, would continue running the program until the configuration was changed
  • More sophisticated computers
    • Expected to run a number of programs for a number of users
    • Use increasing amounts of additional hardware to do this
  • Operating system
    Software that manages the computer hardware, software, security, and user interface
  • Examples of operating systems
    • Microsoft Windows
    • Apple iOS
    • Google Android
    • Unix
    • Linux
  • In exams, you should never use brand names but instead refer to the generic purpose of operating systems
  • Key purposes of an operating system
    • Managing the processor
    • Managing the memory
    • Managing external devices
    • Providing a platform for application software and utility programs
    • Providing a platform for networking communication
    • Managing security
    • Providing a user interface
  • Managing the processor
    1. Deciding which process to execute next
    2. Handling interrupts to the currently executing process
  • Managing the memory
    1. Allocating and managing the memory used and relinquished by processes using paging and segmentation
    2. Managing the virtual memory
  • Managing external devices
    Using device drivers to translate operating system instructions into those understood by specific models of hardware
  • Providing a platform for application software and utility programs
    1. Allowing applications to open and close files easily
    2. Providing a framework for applications to run
  • Providing a platform for networking communication
    Through protocols to other machines and devices
  • Managing security
    Servicing and denying requests to access the resources connected to the computer
  • Providing a user interface
    Users interact with applications through the interface provided by the operating system, which may be graphical (GUI) or menu-driven/command line
  • The user interacts with the applications, the applications interact with the operating system, and the operating system interacts with the hardware
  • Layering
    Each layer does not need to concern itself with what is happening above and below it
  • Managing memory in an operating system
    1. Programs A, B, C, D occupy different amounts of memory
    2. When program C is closed, it relinquishes the memory it was using
    3. The free space is not contiguous, so another program E won't fit
    4. Moving program D up to the left to make the free space contiguous is a bad idea as it takes time and slows down the computer
  • Paging
    • Divides memory into smaller, equally sized sections
    • Programs are split up into pages that fit exactly into the free space
  • Segmentation
    • Keeps logical divisions of programs together rather than having fixed page sizes
    • Avoids separating code within a loop
  • Memory is full with programs A, B, E, D

    Another program F wants to run
  • Virtual memory
    1. Moves sections of programs that aren't being used out onto the hard disk
    2. Frees up space in the RAM for another program
    3. When that section of the program needs to be executed again, it is moved back into the memory
  • The central processing unit cannot execute instructions from the disk, it can only execute instructions from the RAM
  • Paging
    Splitting memory into fixed-size sections
  • Segmentation
    Splitting memory into variable-sized logical sections
  • Both paging and segmentation allow programs to run despite insufficient memory
  • Both pages and segments are stored on the disk and transferred into memory when needed
  • Pages are a fixed size, whereas segments are different sizes
  • Pages are physical divisions, segments are logical divisions
  • If more time is spent moving pages or segments in and out of memory to the disk (thrashing)

    The computer will be very slow