Overview of the operating system (from top to bottom):
The operating system has two basically independent tasks:
Provide a clear abstraction of resource sets for application programmers (applications)
manages hardware resources, not just one For hardware
As the operating system of the extended machine:
Abstract: Abstraction is a key to managing complexity. A good abstraction can divide a task that is almost impossible to manage into two manageable parts:
The first part :About the definition and realization of abstraction
Part 2: Use these abstractions to solve problems at any time
The task of the operating system is to create a good Abstraction, and realize and manage the abstract objects it creates, that is, hide the hardware, and present to the program (and programmers) a good, clear, elegant, and consistent abstraction
the actuality of the operating system Clients are applications, they deal directly with the operating system and its abstractions; while the end users deal with the abstractions provided by the user interface, that is, command-line shell or graphical interface.
The operating system as a resource manager (self Bottom-up):
Operating system is used to manage the various parts of a complex system. From this perspective, the tasks of the operating system are competing with each other Programs orderly control the allocation of processors, memory, and other I/O interface devices
Modern operating systems allow multiple programs to run in memory at the same time
When a computer (or network) has multiple users, the need to manage and protect storage, I/O devices and other resources becomes strong, because users will interfere with each other, users not only share hardware, but also share information
From this point of view, the main task of the operating system is to record which program is using which resource, allocate resource requests, evaluate the cost of use, and Different users mediate conflicting resource requests
There are two ways to implement resource managementMultiplexing (shared) resources:
Time reuse: Different programs use resources in turn , The first one gets the use of resources, then the next one, and so on
spatial reuse: each customer gets a part Resources, instead of customer queuing, disk resources use multiplexing