Computer software: divides into system programs.
System program: a program that manages the operation of a computer. An operating system is the most fundamental of these.
What does an operating system do?
- Manages storage and access to date.
- Hides the complexities of the hardware from the user
- Manages the hardware resources- giving orderly and controlled allocation of the processors, memories and input/output devices among the various programs competing for them, and manage data storage.
- Allocates processing time to each of the processors – processor scheduler program –cores-complexities hidden
- Allocates space in main memory – usually RAM for each the processor. –Fetch Execute system
- Memory management program is responsible for keeping track of which part of the main memory are being used by each process.
Provision of a virtual machine- SPEC POINT
Virtual machine: A VM is the apparent machine that the operating system presents to the user, achieved by hiding the complexities of the hardware behind layers of operating system software.
The final layers of the operating system are the user interface and a way of application programs to call on the services of the operating system e.g. File creation. This is achieved with an application programming.
Why is the virtual machine relevant?
Because one role of the operating system is to hide from the user all the details of how the hardware works, so the user is presented with a machine that is much easier to use. The details are progressively hidden by placing layers of software on top of the hardware.
Here are the layers of the OS which hide all complexities from the user, from the Hardware to the final layers of the User Interface and the API:
- Kernel - the bridge between the Hardware components and the Applications
- Device drivers
- Processor management
- Memory management
- File management
- I/O management
- User Interface/API
Application programming interface (APIs)
Application programming interface: a layer of software that allows application programs to call on the services of the operating system.
The Application Programming Interface (API) makes it possible for the same piece of program to be used on different computers. It is the layer of the software that allows the application programs to call on the services of the OS.
What does it allow the software developer to do?
Write an application on one computer and have a high degree of confidence that it will run on another computer of the same type, even if the other computer has a different specification.
Operating system: must ensure that the application continues to run where hardware upgrades and updates occurs. This is why the operating system, not the application, must manage the hardware and the distribution of its resource.
Application programs call subprograms provided by the programming language designer. The subprograms hook into the operating system so that the resources managed by the operating system can be accessed.
Command Line Interface (CLI) and Graphical User In
User interface: user interfaces of interactive operating system are classes as command line interfaces and graphical user interfaces.
Command Line Interface (CLI), a user responds to a prompt to enter command by typing a single command word, followed by zero or more parameters on a single line, before pressing the return key. The action of pressing the return key submits the command for processing.
Graphical User Interface (GUI) is made up of windows. One window has the focus at any moment. GUIs are event-driven. Events are mouse button clicks, key presses or mouse movements. The operating system detects and correlates it with the current mouse position and the window currently in focus, in order to select an action to carry out.
Fetch execute cycle
Interactive operating system
Interactive operating system: an operating system in which the user and the computer are in a direct two-way communication. An operating system that responds to user input. Priority is given to programs that the user is currently using. A desktop operating is always an interactive system.
Real time operating systems
Real-time operating system: inputs are processed in a timely manner so that the out can affect the source of the input. Responds to external events. Designed so that events are responses in a set time. Using involve complex timing systems. EG mobile phone masks with multiple calls.
Real-time operating systems are characterized by four requirements:
- They support application programs which are non-sequential in nature , i.e. programs which don’t have a start –process-end structure
- They have to deal with a number of events which happen in parallel and at unpredictable moments.
- They have to carry out processing and produce a response within a specified time interval.
- Some systems are safety-critical, so they must be fail-safe and guarantee a response within a specified time interval.
Network operating system
Network operating system: a layer of software is added to the operating system of a computer connected to the network. This layer intercepts commands that reference resources elsewhere on the network. E.g. a file server, then redirect the request to the remote resource in a manner completely transparent to the user.
Enables the computer to operate over a network.
Device: Similar to embed system but usually have more processing power. EG a mobile phone is an example when power is considered.
Embedded: A limited size operating system that matches the hardware. Example is a microwave.
A dedicated computer system with a limited or non-existent user interface and designed to operate completely or largely autonomously from within other machinery.
Desktop: Usually has more processing power but deals with resources, applications, interrupts and multitasking. Windows 7 is a desktop OS.
Alternative definition: an operating system that allows a user to carry out a broad range of general-purpose tasks.
Server: Designed to support multiple users, has access to network resources and control of security. Allows services to run in the background.
Alternative definition: an operating system optimized to provide one or more specialized services to networked clients.
A way to remember the roles of an operating system
Memory Management Shares finite resources on management between different processes. Tries to avoid running out of memory or collision in memory. Most operating system use virtual memory.
User Interface (API Calling) Allows the user to interact with the operating system and can use API (Application Programming interface) which is related to Abstraction. Allowing the user to interact with common features of programs and the operating system.
Multitasking (Process Management) Only a single process can be handled at a time, the operating system gives priority to each process and allows the user to multitask.
Peripheral (Device Management) Interacts with devices, interrupts are used so the operating system can perform a devices task (Moving the mouse)
Security (File I/O Management) File management (I/O) including user account control
Key ResourceOS Program Processors Processor Scheduling Storage Memory management I/O devices I/O management Data File management
Operating Systems are trusted with the job of controlling and sorting through the hardware, and this includes all the main components of the computer. To ensure that there is little confusion, the OS programs managing the key resources are giving relatively simple names depending on the resource they manage.
Remember: Data is stored information, but Storage holds the information.