system software

Cards (24)

  • OS
    • Controls operation of computer system
    • Provides a user interface
    • Controls how computer responds to user's requests
    • Controls how hardware communicate
    • Provides an environment in which application software can be executed
  • OS hardware is unusable without an OS, as the OS acts as an interface since it controls communication between user and hardware
  • Key Management Tasks of OS
    • Memory Management
    • File Management
    • Security Management
    • Hardware (input/output/peripherals) Management
    • Process Management
  • Memory Management
    Memory protection to ensure 2 programs do not try to use same memory space, paging, use of virtual memory
  • File Management
    Provides file naming conventions, maintains a directory structure, allocates space to particular files
  • Security Management
    Proves usernames & passwords, ensures data privacy, prevents unauthorized access, carries out automatic backup
  • Hardware (input/output/peripherals) Management
    Installation of appropriate driver software, controls access to data sent to and from peripherals, receives & handles interrupts from hardware devices
  • Process Management
    Enables multiprogramming and multitasking, resolution of conflicts when 2 or more processes requires the same resource (e.g. via Round-robin method)
  • Utility Software
    • Disk Formatter
    • Virus checker
    • Defragmentation Software
    • Disk contents analysis/disk repair software
    • File Compression
    • Back-up Software
    • Program Libraries
  • Disk Formatter
    Prepares a hard disk to allow data to be stored on it, deletes any existing data on disk, performs formatting (process where computer 'draws lines' on disk surface to split it into small areas)
  • Virus checker
    Checks for and then removes any viruses found, constantly checks all incoming and outgoing files
  • Defragmentation Software

    Files can be big so have to be stored in multiple sectors, which can result in fragmentation (contents of file scattered across >2 noncontiguous sectors), defragmenting software works by physically reorganizing disk contents (files) such that they are stored in contiguous sectors, this reduces number of movements of the read/write heads require to access the disk contents, hence increasing computer performance, also creates larger contiguous free space regions
  • Disk contents analysis/disk repair software
    Software utility for visualization of disk space usage, gets size for each folder and files, and generates a graphical chart showing disk usage distribution according to folders or other user defined criteria, allows disk to report errors (e.g. "bad sector") and attempts to offer a solution
  • File Compression
    Reduces file size by removing redundant data in files, causes improvements in the computer's performance by reducing the data that needs to be stored
  • Back-up Software
    Makes copy of files on another storage medium in the event of a hard drive failure, user error, disaster or accident, should be a regular process, can provide synchronization between devices
  • Program Libraries
    Pre-written code that can be linked to a software under development without any amendments, can perform common or complex tasks, takes the form of classes, benefits include saving time, smaller testing time, and not needing to understand the complex algorithm
  • Dynamic Link Library (DLL) files
    Shared library file that contains code and data, code saved separately from the main .EXE file, reducing the .EXE file's size, code only loaded to main memory when required, DLL file can be made available to several applications simultaneously, thus reducing strain on memory, DLL files act as modules in more complex programs, making it easier to install and run updates
  • Language Translators
    • Assembler
    • Compiler
    • Interpreter
  • Assembler
    Software that translates assembly language statements into machine code (binary) for execution, the mnemonics used translates into machine opcodes, process is simple because assembly language has a one-to-one relationship with machine code
  • Compiler
    Translates a high-level language program to machine code, creates a .exe file which can be easily distributed, once compiled, .exe file does not need to be compiled again, resulting in faster execution, reports all errors at the end of compilation: difficult to locate errors, development process long
  • Interpreter
    Translates and executes a high-level language program, line-by-line, no .exe file created, execution very slow, debugging easier/faster, since it stops translating when it reaches an error, allows real time error correction, can run program any time, even before code finished, used during development
  • Java and some other high level language programs may require two-step translation, i.e., they will be partially compiled and partially interpreted
  • Java code
    First translated to bytecode by Java compiler, bytecode finally interpreted by the Java Virtual Machine to produce machine code
  • IDE features
    • Coding: Context-sensitive prompts, highlights undeclared/unassigned variable identifiers
    • Initial Error Detection: Dynamic syntax checks, type checking & parameter checking
    • Presentation: Prettyprint, expand and collapse code blocks
    • Debugging: Single stepping, breakpoints, variables/expressions report window