1.11. The Operating System Environment¶
1.11.1. Some OS Tasks¶
1.11.1.1. Program Execution¶
An OS has to be able to load a program into memory and run that program. Also, this program needs to be able to end execution, whether normally or abnormally.
1.11.1.2. I/O Operations¶
A running program may require I/O in the form of a file or an output device.
Due to a security or efficiency need, users often do not control I/O, so the OS must provide the means for I/O.
1.11.1.3. File-system manipulation¶
Programs need to able to read and write to files, also delete, rename, and remove them.
It is also necessary that files have permission functionality to provide additional security.
1.11.1.4. Communication¶
Often times one process must communication with another process.
Communication may be between the processes of a single computer, or computers connected via a network.
Communication may be implemented via shared memory or through message passing.
1.11.1.5. Error detection¶
An OS should be constantly looking for errors, and know how to handle them.
For each error, the OS should have an action to take to ensure correct and consistent computing.
Debugging facilities enhance user and development usage of the system.
1.11.2. OS Efficiency Functions¶
1.11.2.1. Resource Allocation¶
Multiple users or jobs require that resources be allocated to each one.
Some resources have a special allocation code, while others may have more general request and release code.
1.11.2.2. Protection and Security¶
It should not be possible for one process to interfere with other processes or the OS itself.
This means that all access to system resources is controlled.
Protecting the system from outside threats is done through authenticating users, and to defending external I/O devices.
Log files can help detect and track attempts of outside infiltration.