Functional Elements of an OS Flashcards
Kernel
Provides the low level interaction between the operating system and the computer hardware
Is the most protected layer
Invokes an interrupt handler that determines the CPU handling of I/O requests, thus supplying fundamental I/O services
Provides/invokes a process scheduler that determines which programs share processing time and in which order
Kernel services can be requested by other parts of the O/S or by application programs via system calls
Memory management layer
Responsible for managing computer memory. This may be main memory, cache or Virtual memory
Allocates portions of memory to running programs/processes
Frees the memory back to the system for reuse by other programs/processes when no longer needed
Offers protection to programs/processes from each other as it won’t let a program/process steal allocated memory from another program/process
Responsible for invoking virtual memory (manager).
Virtual memory manager can have a big impact on overall system performance which makes the system appear to have more physical memory than is actually present.
Input Output Layer
Presents a consistent view of file access across differing storage media.
Allows programming without direct reference to the type of hardware or where the data is held.
Handles communications between the hardware and the rest of the system
Uses a system of interrupts that let the CPU know that a particular hardware device wishes to be serviced
Interrupts are used to alert the system of an event occurring, such as completion, request for service and errors
Input Output Layer
Each device has its own unique address within the system so that the CPU can identify the request
Each device operates in a different way and or speed; therefore there is no standard way of handling. I/O compensates for this
Characteristics to be considered are, data transfer rate, units of transfer, range of operations carried out and error conditions
Consists of both the hardware device and the software required to allow communication to take place with the rest of the system
File Management Layer
Makes working with file systems transparent to the user
Creates the link between the logical file and the directory structure
Supports the most common operations on files
Allocates space to files
Handles the linkage between areas of non-contiguous storage
UI Layer
*Allows communication between the user and O/S (kernel)
*A GUI allows the user to issue commands by using the WIMP environment (Windows, Icons, Menus and Pointers)
*The CLI allows you to interact with the kernel through manually typed commands. Harder as you need to be overly familiar with the commands used
API
An application programming interface (API) is a specification intended to be used as an interface by software components to communicate with each other.
An API may include specifications for routines, data structures, object classes, and variables.
An API specification can take many forms, including an International Standard such as POSIX, vendor documentation such as the Microsoft Windows API, the libraries of a programming language, e.g. Standard Template Library in C++ or Java API.
Application Programming Interface (API) Cont.
Application Programming Interface
Set of programming instructions and standards
Software-to-software interface
Allows particular OS and applications to run on particular hardware
In other words, two machines with different hardware can run the same software
Applications talk to the Operating System via API
When developers release API, other developers can design products powered by that API
APIs are specific to one OS
API’s In the local machine
*PC system software – series of layers
Each layer interfaces with the other
*Four basic layers
Hardware
ROM Bios and device drivers
Operating system
Application programs