8. 9. Systems Software Evolution Flashcards
From Mainframes to Personal Computers From Personal Computers to Smartphones
What is meant by systems software?
Narrow, Broad, Broader
the software platform whose purpose is to allow apps to perform specific tasks
Device Drivers, OS
Broad: User interfaces, Utilities
Broader: Development tools (compilers, linkers, debuggers etc)
How are Computing devices and Application programs mediated?
Systems software
What is the main purpose of the Systems software? what are its aims?
Enable efficient use of the hardware resources needed for intended tasks.
Aims to enable economical expenditure of time effort and cost
What has been the driver of evolution?
Relative costs of people and hardware
How have the relative costs and goals changed?
Beginning: Hardware expensive relative to labour. Goal: minimise hardware utilisation
Now: Hardware inexpensive even compared to cheapest labour
Goal: minimise the difficulty for people to use a computing device
Grossmans five eras of computing
Mainframe 1960-1980 PC 1980-2000 Web 1990-2010 Device 2000-2020 Data 2010-2030
What needed improving in the mainframe era?
interfacing, interaction with hardware, utilization, access and usability,
What were computers like in the mainframe era?
can only be used by a signal user/application when in interactive mode
low level interaction: consoles, punched cards
User must write all code specifically for hardware every time
What was the solution to the complex coding of peripherals in the mainframe era?
Subroutine library (device drivers) for peripherals. Enables load once, use many. Creates resident application independent code and indisputable class of systems software rather than all-in-one
Mainframe Era: How do we solve the issue of idleness when the programmer sets themselves up?
Hire mainframe operators who have a higher productivity in setting up than the programmer.
Further: build a memory resident batch monitor. Write many jobs onto a spool. Batch monitor picks one job after the other from the spool, run it, write output onto continuous form printouts
Mainframe Era: How do we solve the issue that the running job is either using CPU or peripherals, leaving the other idle?
Allow CPU and I/O activity to overlap by extending the device manager with buffers and interrupt handlers.
Mainframe Era: How do we solve the problem that no job can always keep peripheral and CPU active all the time?
Multiprogramming: Several jobs are always actively sharing the computer and cooperatively sharing resources
Mainframe Era: How do we solve the problem that one job must not do anything to affect anothers results?
Memory protection and relocation is added to hardware.
OS must manage these new hardware capabilities
Mainframe Era: What are the results of the OS becoming more significant?
More complex and vital Significant cause of resource hogging, risking high overheads.
Mainframe Era: How do we improve access and usability and the fact people need to wait for output?
Remove dead waiting times- give people means for direct interaction
Do this using Time sharing but have fairness policies to give every job a reasonable slice.
Implement this using preemptive scheduling.
Have priority levels to meet requirements of resource allocation