Paul Nicholls Stuff

21May/080

File Management

File management is a key function of the Operating System. The OS must effectively manage reading and writing data from different storage media, using different file systems and different disk access methods. The OS may also choose to cache data to improve performance of disks.

21May/080

Managing Your Memory

Another key role of the Operating System is to manage memory resources, there are two separate conceptual levels of memory. Firstly, physical memory - this is what the operating system sees, and it relates directly to your actual physical hardware. Secondly, there is virtual memory, which is what a programmer will see when developing an application to run within an operating system. Virtual memory is viewed as limitless, and is not dependent on the physical memory available - so applications can be programmed to run on systems with different physical memory capabilities.

21May/080

Process Management

A process is a program in execution. The distinction is that a program is a static bit of code; the process is the instance of that program being executed. For example, if the same program is running twice, the program will be loaded into memory once, but it will have two processes - one for each instance of the program.

The operating system maintains information about all the processes in the process control block (PCB). The contains information such as the process’s unique ID, the current state of the process (explained in a moment), the program counter, pointers to allocated memory space and resources, CPU time used so far, and estimated time to completion.

20May/080

Combinatorics

Combinatorics is a branch of mathematics concerned with the study of finite objects, and has many applications in the field of Computer Science. Combinatorics is useful in problem solving, and is most often involves ideas such as counting elements in a set, or calculating permutations or combinations of elements in a set.

20May/080

Algorithms & Time Complexity

Rosen describes an algorithm as:

"An algorithm is a finite set of precise instructions for performing a computation or for solving a problem."

An algorithm can be expressed in a number of different ways however, it could be explained in plain English, written in a generic pseudocode (not a true programming language in itself, but a loose language system useful to describe algorithms in) or in a particular programming language.

19May/080

I/O Control in Operating Systems

The I/O bus allows communications with hardware devices; each device on the bus has an address, and is instructed when to transmit and receive data. A device controller sits between the storage device and the bus, to provide a generic interface for the hardware to connect to. Software known as device drivers will allow the operating system to manage the actions which must take place to correctly communicate with different devices.