|
|
||
| You are here: | ||
|
6.3 Operating systems and utilities |
A computer is a machine , composed of various bits of hardware. Early computers had to be operated directly with switches and cables which connected one component to another. Clearly, this limits the speed and operability of the machine.
So, rather than being a single appl;ication, an operating system is a collection of hardware management applications, software control applications, communications modules and other other utilities. Operating systems usually include the following tasks:
Network and mainframe operating systems may also control access rights and privileges for the different groups of users. Becuase physical primary memory is usually limited - often a large application will exceed the capacity of main memory and many such applications may be running at the same time - memory must be managed carefully. One process should not use another processes address space or accidents can happen (this is what happens when a general protectiopn fault occurs). Operating systems often use secondary memory as if it were an extension of primary memory, swapping data from one to the other - often in large units called "pages". This is known as virtual memory. Compiling, linking and running programs A programmer using a high level language such as Java uses an IDE or editor to produce source code. This cannot run directly on a machine, it has to be converted to machine code (binary 1's and 0's) for that to happen. Often the programmer uses relatively low level functions like outputting information to the monitor. The actual code that does this is part of the operating system. This has been written (probably in assembly language) and converted to machine code. When the programmers code is compiled, these OS "routines" must be linked in with the programmers compiled code. This is done by the linker. The linkier also associates/links identifier names with actual memory locations that will be used to store/retrieve data. Although we call these actual memory locations they will be defined relative to the start location of the program's working area. These are usually linked to actual physical locations dynamically - as the program runs. This task will be carried out by the program that places the code in working memory - the loader. The library manager keeps track of where the "routines" mentioned earlier, and used by the linker, are stored.
related: [ Topic 6 home | previous: magnetic discs | next: further networks ] |
|
|
|
|||
|
Questions or problems related to this web site should be addressed to Richard Jones who asserts his right to be identified as the author and owner of these materials - unless otherwise indicated. Please feel free to use the material presented here and to create links to it for non-commercial purposes; an acknowledgement of the source is required by the Creative Commons licence. Use of materials from this site is conditional upon your having read the additional terms of use on the about page and the Creative Commons Licence. View privacy policy. This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License. © 2001 - 2007 Richard Jones, PO BOX 246, Cambridge, New Zealand; This page was last modified: July 29, 200823, 2008 |