Operating System Structures
Ø In this part of the course, we will briefly look at the operating systems from its functional point of view; that is the services which are provided by the operating system. A detailed discussion will follow in the subsequent lectures.
Common System Components
Due to the complex nature of the modern operating systems, it is partitioned into smaller component. Each component performs a well-defined function w
§ ith well-defined inputs and outputs.
§ Many modern operating systems have the following components.
- Process Management
- Main Memory Management
- File Management
- I/O System Management
- Secondary Management
- Networking
- Protection System
- Command-Interpreter System
Basic OS Organization
Process Management
§ A process is a program in execution. For example
- A batch job is a process
- A time-shared user program is a process
- A system task (e.g. spooling output to printer) is a process.
§ Remember a program itself is not a process rather it is a passive entity.
§ A process needs certain resources, including CPU time, memory, files, and I/O devices, to accomplish its task. These resources are either given to the process when it is created or when it is running. When the process completes, the OS reclaims all the resources.
§ The operating system is responsible for the following activities in connection with process management.
- Process creation and deletion.
- Process suspension and resumption.
- Provision of mechanisms for:
o Process synchronization
o Process communication
Memory Management
§ Memory is a large array of words or bytes, each with its own address. It is a repository of quickly accessible data shared by the CPU and I/O devices.
§ Main memory is a volatile storage device. It loses its contents in the case of system failure.
§ The operating system is responsible for the following activities in connections with memory management:
- Keep track of which parts of memory are currently being used and by whom.
- Decide which processes to load when memory space becomes available.
- Allocate and deallocate memory space as needed.
File Management
Most visible component of OS. Computers can store information on several different types of physical media (e.g. magnetic tap,
§ magnetic disk, CD etc).
§ For convenient use of the computer system, the OS provides a uniform logical view of information storage.
§ A file a logical storage unit, which abstract away the physical properties of its storage device.
§ A file is a collection of related information defined by its creator. Commonly, files represent programs (both source and object forms) and data.
§ The operating system is responsible for the following activities in connections with file management:
- File creation and deletion.
- Directory creation and deletion.
- Support of primitives for manipulating files and directories.
- Mapping files onto secondary storage.
- File backup on stable (nonvolatile) storage media.
I/O System Management
§ The I/O system consists of:
- A buffer-caching system
- A general device-driver interface
Drivers for specific hardware devices
Secondary Storage management
§ Since main memory (primary storage) is volatile and too small to accommodate all data and programs permanently, the computer system must provide secondary storage to back up main memory.
§ Most modern computer systems use disks as the principle on-line storage medium, for both programs and data.
§ The operating system is responsible for the following activities in connection with disk management:
- Free space management
- Storage allocation
- Disk scheduling
Networking (Distributed Systems)
§ A distributed system is a collection processors that do not share memory or a clock. Each processor has its own local memory.
§ The processors in the system are connected through a communication network.
§ Communication takes place using a protocol.
§ A distributed system provides user access to various system resources.
§ Access to a shared resource allows:
- Computation speed-up
- Increased data availability
- Enhanced reliability
Protection System
§ Protection refers to a mechanism for controlling access by programs, processes, or users to both system and user resources.
§ The protection mechanism must:
- Distinguish between authorized and unauthorized usage.
- Specify the controls to be imposed.
- Provide a means of enforcement.
Command-Interpreter System
§ Many commands are given to the operating system by control statements which deal with:
- Process creation and management
- I/O handling
- Secondary-storage management
- Main-memory management
- File-system access
- Protection
- Networking
§ The program that reads and interprets control statements is called variously:
- Command-line interpreter
- Shell (in UNIX)
§ Its function is to get and execute the next command statement.
Operating System Services
§ Program execution – system capability to load a program into memory and to run it.
§ I/O operations – since user programs cannot execute I/O operations directly, the operating system must provide some means to perform I/O.
§ File-system manipulation – program capability to read, write, create, and delete files.
§ Communications – exchange of information between processes executing either on the same computer or on different systems tied together by a network. Implemented via shared memory or message passing.
§ Error detection – ensure correct computing by detecting errors in the CPU and memory hardware, in I/O devices, or in user programs.
Ø Additional functions exist not for helping the user, but rather for ensuring efficient system operations.
§ Resource allocation – allocating resources to multiple users or multiple jobs running at the same time.
§ Accounting – keep track of and record which users use how much and what kinds of computer resources for account billing or for accumulating usage statistics.
§ Protection – ensuring that all access to system resources is controlled
Requesting Services from OS
§ System Call
- Process traps to OS Interrupt Handler
- Supervisor mode set
- Desired function executed
- Returns to application
§ Message Passing
- User process constructs message indicating function (service needed)
- Invokes send to pass message to OS
- Process blocks
- ……
- OS receives message
- OS initiates function execution
- Upon function completion, OS returns “OK”
- Process unblock…
System Calls
System calls provide the interface between a process and the operating system. These calls are generally available as assembly language instructions
§ . Some systems also allow to make system calls from a high level language, such as C.
§ Three general methods are used to pass parameters between a running program and the operating system.
- Pass parameters in registers.
- Store the parameters in a table in memory, and the table address is passed as a parameter in a register.
- Push (store) the parameters onto the stack by the program, and pop off the stack by operating system.
Types of System Calls
§ Process control – load, execute, abort, end, create process, allocate and free memory, wait event etc.
§ File management – Create file, delete file, open, close, read, write, get file attribute etc.
§ Device management – Request device, release device, read, write, logically attach or detach device etc.
§ Information maintenance – Get time and date, set time and date, get process attribute etc.
§ Communications – create, close communication connection, send, receive messages, etc.
System Programs
§ System programs provide a convenient environment for program development and execution. The can be divided into:
- File manipulation – create, delete, copy, rename, print, list etc.
- Status information – Display date, time, disk space, memory size, etc.
- File modification – Create and modify files using text editors.
- Programming language support – Compilers, assemblers, and interpreters.
- Program loading and execution – Loaders, linkers.
- Communications – remote login, send and receive messages.
§ Most users’ view of the operation system is defined by system programs, not the actual system calls.
System Structure
§ Modern OS should be developed carefully due to their size and complexity.
§ A common approach is to divide the systems into small components.
MS-DOS System Structure
§ MS-DOS – written to provide the most functionality in the least space
- Not divided into modules
- Although MS-DOS has some structure, its interfaces and levels of functionality are not well separated
Unix System Structure
§ UNIX – limited by hardware functionality, the original UNIX operating system had limited structuring. The UNIX OS consists of two separable parts.
o Systems programs – use kernel supported system calls to provide useful functions such as compilation and file manipulation.
o The kernel
- Consists of everything below the system-call interface and above the physical hardware
- Provides the file system, CPU scheduling, memory management, and other operating-system functions; a large number of functions for one level.
Layered Approach
§ The operating system is divided into a number of layers (levels), each built on top of lower layers. The bottom layer (layer 0), is the hardware; the highest (layer N) is the user interface.
§ An OS layer is an implementation of an abstract object that is the encapsulation of data and operations that can manipulate those data. These operations (routines) can be invoked by higher-level layers. The layer itself can invoke operations on lower-level layers.
§ Layered approach provides modularity. With modularity, layers are selected such that each layer uses functions (operations) and services of only lower-level layers.
§ Each layer is implemented by using only those operations that are provided lower level layers.
§ The major difficulty is appropriate definition of various layers.
Microkernel System Structure
§ Moves as much from the kernel into “user” space.
§ Communication takes place between user modules using message passing.
§ Benefits:
- Easier to extend a microkernel
- Easier to port the operating system to new architectures
- More reliable (less code is running in kernel mode)
- More secure
No comments:
Post a Comment