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
Mainframe: What are the aims of a scheduler?
Complete as many jobs as possible per unit time
Reduce response time
reduce turnaround time
Mainframe: how do we solve the problem of jobs growing in complexity starting to be compositions of many programs and use many kinds of data sets?
File Systems. Make computer a repository of data and programs, allowing quick access.
Mainframe: why did concern change from increasing utilisation to improving access and usability?
As computers became more useful, more were bought. The growth of cost slows.
Meanwhile, the labour costs grow and so the relative cost drops.
At the start of the PC Era:
computers are smaller, less expensive. Become standard office equipment.
Hardware is cut back: slow CPU, small memory, no persistent memory, no connectivity.
OS is also cut back to single user mode.
Systems software consists of device drivers and batch monitor.
No Multi-programming, no time sharing.
What types of problems were there in the PC Era?
Human-computer Interfacing
Facilitating sharing
PC Era: How do we improve user interaction? What problem does this cause? How is it solved?
WIMP. Gui becomes dominant.
Problem: requires high level of responsiveness, graphics drain response and completion times.
Solution: Multi programming- time sharing between GUI and application.
PC Era: How do we solve the demand for networking and security for file sharing across national and global organisations?
OS grows to implement authentication and authorisation mechanisms.
Build support for IPC inside the OS. This is done using sockets.
Support standard network protocol stacks in the OS
What prompted the change from PC to Web Era?
The availability of OS level networking support made the internet universally available.
HTTP was inspired from the classic application layer protocols (FTF, Telnet, SMTP/IMAP)
This bootstrapped the web and opened up the internet.
The web sparked in universal take up of distributed computing. This makes the end of centralised, personal computing.
The web era sparked the rise of ? This is?
Middleware
The OS is diminished in its centrality. Application systems instead exploit layers of middleware: Virtual machines, messaging systems, distributed transaction processors, workflow engines.
App development is about higher level use of APIs. OS must support the right middleware instead of managing local resources well.
What changes from the Web to Device Era?
new kinds of computer: Private personal devices and machine/appliance embedded systems.
Instead of paying for a device, we pay more for a service.
In the Device Era the network is the computer. What does this mean, what is the problem?
The device is a dumb terminal that hosts apps. Application software functionality is running remotely.
Multiprogramming is retained. Axioms ever present. Transparencies grow to encompass process mobility.
Problem: Scale of devices doesnt allow for space capacity in CPU cycles or storage
Solution: Dumb device- communicate with servers. Offload storage and CPU intensive tasks to remote service providers. “Cloud”
Device Era: What is the problem with the data centre as the computer? Solution?
Tens and hundreds of millions of users. Only a few data centres
Solution: elastically scalable massive assemblies of commodity level processing and storage.
Middleware for scheduling and workload balancing over massively parallel/distributed clouds of processing and storage devices.
Device Era: What is the problem with Scaling in and out elastically?
Demand is uninterrupted in time and sapce. 24/7 requests from anywhere and everywhere. Downtime/lulls in demand not acceptable/reliable.
Solution: middleware (i.e. relaxed-consistency transaction servers) that reach high levels of avaliability and robustness through massive replication
Summarise the evolution through the era as bottlenecks and commodities
Mainframe: bottleneck was computer cycles, PC made it a commodity
PC Era: bottleneck was application software which Web era made a commodity.
Web Era: bottleneck was bandwidth which Device Era made a commodity
What was in the wave of innovation started by device drivers?
batch monitors task schedulers interrupt handlers preemption multiprogramming file systems timesharing priority levels
The rise of DS was underpinned by? This lead to?
Support for IPC over protocol stacks. This lead to client-server architectures then generalised middleware.
One important class of middleware enables?
massively-parallel scheduling and workload balancing
Offloading functionality to remote service providers let to the notion of?
Clouds based on massively parallel assemblies hosted in data centres.
Relaxing transactional guarantees led to?
highly scalable, highly available data centres serving tens to hundred of millions of devices.