Processor Management
The OS has manage the execution of processes so that you believe that there are several things happening at once.
However, the processor can only do one thing at a time. In order to give the appearance of lots of things happening at the same time, the OS has to switch between different processes thousands of times a second making sure that each process and application receives enough of the processor's time to function properly.
Memory Management
The OS manages memory (RAM). When applications are loaded they need memory to work with. The OS allocates software RAM to work in. It ensures that the RAM allocated is not used by another application.
The OS also manages virtual memory. In this way the computer can run more applications than it has RAM for. For example if a computer was running a word processor and the user wanted to load a spreadsheet application at the same time and there was not enough RAM then the OS uses the hard disc as virtual RAM.
Device Management (Input/Output)
The OS makes use of queues and buffers, special storage facilities that take a stream of bits (data) from a device, e.g. a keyboard, hold those bits, and then release them to the CPU at a rate slow enough for the CPU to cope with.
This function is very important when a number of processes are running and taking up processor time. The OS will instruct a buffer to continue taking input from the device, but to stop sending data to the CPU while the process using the input is suspended. Then, when the process needing input is made active once again, the OS will command the buffer to send data.
Device Management (Drivers)
The operating system needs to communicate with the various hardware components which make up the computer. Special programs called drivers enable the OS to communicate with these hardware devices. Drivers are needed as the hardware which makes up a PC may be vastly different to that of another PC with the same OS installed.
Drivers are translation programs which convert the messages from the OS into messages that the hardware device can understand.
Application Interface
In much the same way that drivers provide a way for applications (software) to make use of hardware without having to know every detail of the hardware's operation, application program interfaces (APIs) let application programmers use functions of the computer and operating system without having to directly keep track of all the details in the CPU's operation.
User Interface
The user interface (UI) brings structure to the interaction between a user and the computer.
In desktop computers the user interface is a program or set of programs that sits as a layer above the OS. The core operating-system functions - the management of the computer system - lie in the kernel of the operating system. The display manager is separate, though it may be tied tightly to the kernel beneath.
Custom Software
Advantages:
Meets purpose exactly
Small hard disk footprint compared to off-the-shelf
Specialist Backup
Source Code
Disadvantages:
More expensive than off-the shelf
May have mistakes in code (untested) which will cost money to correct
Not immediately available
Very limited overall backup and support – no books, etc
Off-the-Shelf Software
Advantages:
Usually cheaper than custom-written
Already been tested
Choice of brands
Immediately available no time delay in implementing
Support from a variety of sources: e.g. Internet sites, Books, etc.
Disadvantages:
Large Memory footprint
Many features not required
Not completely suited to purpose
Integrated Package vs. Suite
Software Suite
Contain common productivity tools in ONE package
Limited functionality
Usually cheaper than integrated package
Often “bundled” with new PCs
Integrated Package
Separate productivity applications that are bundled together and sold at a discount
The applications are "integrated" i.e. have a common interface and can export/import data between apps
Open Source vs. Proprietary
Applies to all software
Some software vendors / communities licence their software as open-source
Anybody can develop the source code i.e. customise/improve the application
Often but not always free