1. Operating systems are designed to allow even the most inexperienced user to navigate a computer. Originally computers ran using “Command Line Interface” like DOS. In DOS the user has to know the name of every file or program they wish to run and the file path location within memory. This makes navigating through documents or opening programs slow and strenuous, for example, if a spelling mistake was made the entire file path would have to be typed again. Nowadays using modern operating system like Windows XP or MEPIS it is much easier to navigate through a computer.
Menus, desktop icons and links are what make up the foundation of these systems, allowing the user to point and click on what they want. These are known as GUI’s or “Graphical User Interface’s” and are now the standard modern way of utilizing a computer. Modern operating systems also optimize how memory is used and how it is allocated to programs. It does this using a number of techniques, including dynamic partitioning. They allow quick access to memory allowing you to switch between programs and making the system work at its maximum potential.
Cleaning up memory by using tools like defragmenter or disk cleanup. Operating systems also let you organise, protect and use files and folders in directories quickly and easily as well as monitoring any new devices that have been added to the computer, for example, a USB drive. 2. GUI – “Graphical User Interface” allows point and click to access documents from the desktop or drop-down style menus this is generally customizable and simple to use. File explorer – Shows all of the contents of the computer, normally in files, folders and drives.
Internet browsing support – Allows easy access to the internet and supports web pages so they may be opened and viewed quickly, effectively and securely. Disk defragmenter – A tool to increase the speed of the computer, clustering like files meaning they will open faster. It does this by filling in gaps, as files are deleted and replaced. They all get shuffled around. Hot swappable external storage – An example of this: a USB storage device, a memory device that can be plugged into the computer and used straight away while the computer is still on with no fear of getting an electric shock or the memory getting corrupted.
User security – This is where there are several different users on a computer, each of them having their own “profile” and separate documents. All using space on the same hard drive but only accessible on the particular profile they were made upon (depending on set privileges). The profiles have the option of being password protected, so the documents on the profile are also protected. Network files and printer sharing – File sharing allow files to be viewed by as many users on the system as is allowed by the creator of the file.
This is particularly useful in businesses so that several people can read or edit files e. g. reports. Printer sharing is useful so that, for example, in a college where there are many computers in one room they can all use the same printer rather than having to have individual printers for every computer which would be far more expensive. Media player – Lets the user listen to music or watch movies from their computer. Media players can also read the content of media CDs and DVDs. Program installation, update and removal support – These features allow the user to easily install new programs from a CD or the internet.
Updating support means that all the files on your computer, especially important ones like firewalls or Anti-virus software are up to date (Anti-virus must have information of any new viruses). Removal support lets the user delete programs from the computer permanently, thus freeing up space on the hard drive. Help system – Gives simple guides for certain processes within the computer, for example creating new files as well as more complex things like networking computers together. Gives new users support in running their system.
3. Process management – All computers have hundreds and sometimes thousands of processes and all these need to be managed for the computer to run effectively or to run at all. Windows has a simple program to view some of these processes and tasks called, “Task Manager”. However this does not show how a computer actually manages these processes but rather simply lists them. Each process running is stored in a PCB or Process Control Block, this contains basic information such as: – What it is – Where it is going
– How much of its processing has been completed – Where it is stored – How many resources it has used When a process is activated it goes through “process states” which consist of: the program being initially activated (New), the program being used (Running), when the program is waiting to be put onto the processor (Ready), when the program is waiting for an event to occur (like a setup program) for it to continue running (Blocked) and when the program has finished execution (Exit). The operating system maintains the states of all the processes.
Memory management – The operating system allocates available memory as efficiently as possible and it manages multiple processes in memory constantly. It does this by contiguously allocating the memory via single or multiple partitions. A single partition works running in low memory. Multiple partitioning allocates memory from an available block of memory that is free, this is dynamic partitioning. Memory must also be able to swap quickly between processes as they occur. Fixed partitioning is where the operating system partitions the main memory of a computer into a set of blocks.
These partitions can be of equal and different sizes, and a process can only be loaded into it if the partition size is the same as or larger than the process requirement however if the process is smaller the entire block is still taken up. The main disadvantage of fixed partitions is internal fragmentation, this occurs when there is large amounts of wasted space in memory due to smaller processes taking up larger blocks. This can be reduced using unequal partition sizes in memory so that smaller processes can go in smaller blocks of memory and larger processes can go in larger block of memory.
To make sure that processes are allocated to the correct and most efficient partitions, placement algorithms are used. If the process is too large for any of the partitions in memory then only the core parts of the process or whatever is needed at the time are kept in memory, this can however only be implemented by a programmer and can be an extremely difficult maintain. Dynamic partitioning is where partitions are, unlike fixed, of a variable length and number. Each process is given the exact size in memory that is requires which that there is no internal fragmentation.
Once the process is terminated, the memory block is emptied, making it far more efficient than fixed. Dynamic partitioning however does suffer from external fragmentation which is where main memory forms many small holes which are too small to hold any processes. This is solved through memory compaction where all of the memory blocks are “squashed” together so memory is made back into one large block. In modern operating systems, main memory is partitioned into small equalled sized blocks which are called frames, the same as processes but in their case they are called pages.
The system needs to be responsible of keeping track of all available frames so the pages can be allocated to them as quickly as possible; this is called ‘paging’. File and disk management – Files are allocated to store data in and the directory structure helps you navigate through the files found on the computer. These features are both implemented by the operating system to make it easier to access documents. They can be stored on the hard disk of the computer or on an external storage device (CD, memory stick etc. ).
Two features of using files: they can be named and classified. Naming a folder is simple and makes it much easier to find specific files; they are entirely controlled by the user of the operating system. Classifying a file tells the user hat type of file it is. This is usually done automatically by the software however you can sometimes change the classification and therefore open a file using different applications. Other information is also stored such as the date the document was created, the date it was last modified, the name of the creator, etc.
Directories are a place where files are kept, they are extremely diverse in how they can be used and the accessibility they give and are very easy to use and access Device drivers allow the operating system to directly communicate with the memory device to allow directories and files to be accessed by the user. These are also responsible for starting the input and output operations as well as the completion process of the input or output device. Input and output management- this encompasses how the operating system manages external and internal devices.
The operating systems job is to organise them, they are put into three separate classes: – Human readable or character devices, those that are used and interfaced by humans. For example keyboard, mouse, sound card (speakers), printers etc. – Machine readable or block devices, those that can only be utilized by the machine. For example disks (hard disk), CD ROM. – Communications or network devices, devices that are used for outbound communications (i. e. internet and networking). For example, network adapters and modems.
The operating system must be able to “read” the device, for example when interfacing with a mouse it must detect the data event stream, this is generally done through specific device drivers. For a computer, the input of a device is many thousands of times slower than the processor and therefore the processor is in an idle mode for a “long” period of time making the system wholly inefficient. To try and counteract that effect the operating system puts a system that interrupts the input or output device and while it is idle it allows the processor to execute other processes until the input or output device is used again.
This does involve overhead but in comparison to what processing time you lose it’s more efficient. When large amounts of data are being transferred and there is too much switching between processes and devices, Direct Memory Access (DMA) is used. This is where data is transferred directly from device to main memory without even involving the processor. Input and output buffering is used to attempt to match the differing flows of data; it is given a temporary space in memory until the correct place is available for the process to run.