The two types of multi-tasking are co-operative and pre-emptive:
- Pre-emptive – This is when the applications are forced to give up the CPU after a certain length of time so that the other processes get an equal share of CPU time. (time-sliced).
- Co-operative multi-tasking is when it is the current running tasks responsibility to share the CPU to the other processes. One task must finish before the other starts. It is called Co-operative because all the tasks must co-operate for this type of processing to work and there is no time limit on each task. (Round Robin).
- Advantages / Disadvantages
An advantage of Pre-emptive multi-tasking is that some important tasks may be allocated a more time slices so it will not be stalled by other smaller tasks.
A disadvantage of both types of multi-tasking is that it requires a large amount of memory to work properly.
Background Processing
- Concepts of background / foreground processing
When a task will require a long time to process and requires no user input e.g. downloading a large file from the internet, it can be processed later when the computer is not processing other tasks. Background processing is often used in banks and businesses to process the customer’s accounts at the end of each day, the operating system can be left to run the process overnight or when the CPU is not currently being used by a task that requires a great deal of processing.
- Unix command to run background processing
Control-Z = Leave process running in background
bg = Continue process at background
Control-C = move foreground process to background
Fg = move the process to foreground
- Example of a background process
If you need to run a large print job, e.g. printing out one hundred copies of a
Workbook for a group of students, it can be set as a background process and will only use CPU power when other tasks are not running.
Types of Multi-User Operating System
Multi-Processor
Multi user operating systems can sometimes have more that one processor. In some expensive operating systems it is possible to connect more CPUs to the system and have them work together to execute tasks.
Multiprocessing can significantly reduce the time taken to execute each process. An operating system with multiple processors can perform different tasks separately or a task can be split up and processed by different CPUs.
- Advantages / Disadvantages
An advantage is that multi processing systems can be very speedy at completing tasks.
A disadvantage is that this type of system is very expensive.
Time-Sliced
As multi user operating systems share resources, different processes can require different amounts of time. It is possible and to interrupt a large process so that a smaller process to be completed. If you were using a time slicing system then the processor will switch between processes at timed intervals (Pre-emptive). The amount of time allocated to each process is called a time slice. The length of time given for each time-slice is allocated by a program called a scheduler.
- An advantage is that larger or more important processes may be given more time slices than a smaller task so it can be completed, however this could also be a disadvantage if there are many users executing smaller tasks as they will take longer to be finished.
Distributed
The distributed system is where a number of systems are connected through a Local Area Network. This can be more powerful than a single processor system and it is capable of online sharing.
Hardware Components
Processor
- The CPU is the brain of the operating system. It responds to and processes and instructions that control the computer. The control unit in a CPU controls everything which happens within, the ALU does calculations and is responsible for decision making and the accumulator stores the last data that was decoded for future processes. There are various registers within the CPU, they are the instruction register, which holds the instruction that is being decoded, the program counter stores what part of the program we have reached, the memory address register points to the location where data is being fetched or written and the memory data register is a storage area for data that is currently being transferred between the memory and the CPU.
- The Fetch-Decode-Execute Cycle has three important stages.
- FETCH – The CPU collects an instruction from the RAM
- DECODE – The control unit figures out what to do with it.
- EXECUTE - The instruction is carried out
- The speed of an FDE cycle depends on how fast the processor is (the length of time it takes for the signals to be sent to the control bus, and how many T-cycles each assembly instruction takes to execute.
Memory
Random Access Memory is sometimes known as ‘main memory’. RAM is volatile, which means it loses all the stored information when the power is cut off. Some computers also use virtual memory, which is stored in the hard drive but acts like RAM, this is much slower than physical memory. Another type of memory is Read Only Memory (ROM) which can be written to but cannot be erased.
Data Storage Devices
- Floppy disk – can be written to and erased, 1.44Mb
- CD ROM – Can be written to but not erased, 700Mb
- Hard Drive – stores many Gigabytes, can be written to and erased
- Zip Drive – can be written to and erased, 100 – 250Mb
Terminals
- Dumb Terminal – A dumb terminal has no processing capabilities as they have no memory or processor of their own, it has only a monitor, keyboard and mouse. They are connected to a central processor.
- Intelligent Terminal – An intelligent terminal contains memory and a CPU and is a standalone device. It only has to connect to the central processor when needed.
- Command to find terminal type - terminfo
Input / Output Devices
Dumb Terminal
- Input – keyboard and mouse.
- Output – monitor
Intelligent Terminal
- Input – keyboard, mouse, scanner, touch screen.
- Output – monitor, printer, speakers
Software Components
Kernel
The Kernel is the heart of the operating system, the lowest level or the central part. Communication with the hardware is through the kernel. In multi user operating systems it is the kernel's job to keep each process and user separate and to organize access to the system hardware, including CPU, memory, disk and other I/O devices.
Device Handlers
A device is any piece if hardware that is used in an operating system. A device handler is a piece of software within the operating system that communicates with the devices and tells them what to do. This is part of the operating system that is responsible for servicing requests of the device request queue.
Spoolers (Simultaneous peripheral operations on-line)
Spooling is used when data is waiting to go to an output device after it has been processed. The data is placed into a queue so that the CPU can process something else instead of having to slow down to the speed of the output device. Spoolers are used on mainly old devices e.g. old printers that can only handle one job at a time
User Interface
This is how the user can view the data within the operating system. The main types of user interfaces are; the graphical user interface e.g. Windows and Command driven interface e.g. MS DOS and standard UNIX. The CDI was more complicated to use than a GUI as you would have to know certain commands to do very basic tasks.
Bibliography
Index
MUOS workbook
Computer Architecture notes