Operating System Concepts

Download as pdf or txt
Download as pdf or txt
You are on page 1of 23

Operating System Concepts

OPERATING SYSTEMS

STRUCTURES
3/18/2017 O. S. Structures 1
Chapter2: O.S Structures

Objectives
Operating System Services
User Operating System Interface
System Calls
Types of System Calls
System Programs
Operating System Design and
Implementation
Operating System Structure
Virtual Machines
Operating System Generation
System Boot

3/18/2017 O. S. Structures 2
Chapter2: O.S Structures
Operating System Services
One set of operating-system services provides functions that are helpful to the user:

User interface - Almost all operating systems have a user interface (UI)
Varies between Command-Line (CLI), Graphics User Interface (GUI), Batch Interface
Program execution - The system must be able to load a program into memory and to run that
program, end execution, either normally or abnormally (indicating error)
I/O operations - A running program may require I/O, which may involve a file or an I/O device.
File-system manipulation - The file system is of particular interest. Obviously, programs need
to read and write files and directories, create and delete them, search them, list file Information,
permission management.
Communications Processes may exchange information, on the same computer or between
computers over a network
Communications may be via shared memory or through message passing (packets
moved by the OS)
Error detection OS needs to be constantly aware of possible errors
May occur in the CPU and memory hardware, in I/O devices, in user program
For each type of error, OS should take the appropriate action to ensure correct and
consistent computing
Debugging facilities can greatly enhance the users and programmers abilities to
efficiently use the system

3/18/2017 O. S. Structures 3
Chapter2: O.S Structures
Operating System Services
Another set of OS functions exists for ensuring the efficient operation of the system itself via resource
sharing
Resource allocation - When multiple users or multiple jobs running concurrently, resources
must be allocated to each of them
Many types of resources - Some (such as CPU cycles, main memory, and file
storage) may have special allocation code, others (such as I/O devices) may have
general request and release code.
Accounting - To keep track of which users use how much and what kinds of computer
resources
Protection and security - The owners of information stored in a multiuser or networked
computer system may want to control use of that information, concurrent processes should
not interfere with each other
Protection involves ensuring that all access to system resources is controlled
Security of the system from outsiders requires user authentication, extends to
defending external I/O devices from invalid access attempts
If a system is to be protected and secure, precautions must be instituted throughout
it. A chain is only as strong as its weakest link.

3/18/2017 O. S. Structures 4
Chapter2: O.S Structures
User and Operating-System Interface
Two fundamental approaches command-line interface (CLI) or command interpreter and
graphical user interface (GUI)
Command-line interface (CLI)
Gets and processes the next user request, and launches the requested programs.
In some systems the CI may be incorporated directly into the kernel.
More commonly the CI is a separate program that launches once the user logs in
or otherwise accesses the system.
UNIX, for example, provides the user with a choice of different shells, which
may either be configured to launch automatically at login, or which may be
changed on the fly. ( Each of these shells uses a different configuration file of
initial settings and commands that are executed upon startup. )
Different shells provide different functionality, in terms of certain commands that
are implemented directly by the shell without launching any external programs.
Most provide at least a basic command interpretation structure for use in shell
script programming ( loops, decision constructs, variables, etc. )

3/18/2017 O. S. Structures 5
Chapter2: O.S Structures
User and Operating-System Interface
Graphical User Interface, GUI
Generally implemented as a desktop symbol, with file folders, trash cans,
and resource icons.
Icons represent some item on the system, and respond accordingly when the
icon is activated.
In some systems the GUI is just a front end for activating a traditional
command line interpreter running in the background.
In others the GUI is a true graphical shell in its own right.
Mac has traditionally provided ONLY the GUI interface. With the advent of
OSX ( based partially on UNIX ), a command line interface has also
become available.
Because mice and keyboards are impractical for small mobile devices, these
normally use a touch-screen interface today, that responds to various
patterns of swipes or "gestures". When these first came out they often had a
physical keyboard and/or a trackball of some kind built in, but today a
virtual keyboard is more commonly implemented on the touch screen.

3/18/2017 O. S. Structures 6
Chapter2: O.S Structures
User and Operating-System Interface

Choice of interface
Most modern systems allow individual users to select their desired interface, and
to customize its operation, as well as the ability to switch between different
interfaces as needed. System administrators generally determine which interface
a user starts with when they first log in.
GUI interfaces usually provide an option for a terminal emulator window for
entering command-line commands.
Command-line commands can also be entered into shell scripts, which can then
be run like any other programs.
Examples:
o Microsoft Windows is GUI with CLI command shell
o Apple Mac OSX as Aqua GUI interface with UNIX kernel underneath
and shells available
o Solaris is CLI with optional GUI interfaces (Java Desktop, KDE)

3/18/2017 O. S. Structures 7
Chapter2: O.S Structures
System Calls
System calls provide a means for user or
application programs to call upon the
services of the operating system.
Generally written in C or C++, although
some are written in assembly for optimal
performance.
Figure illustrates the sequence of system
calls required to copy a file:

Most programmers do not use the low-level


system calls directly, but instead use an
"Application Programming Interface", API.
The following sidebar shows the read( ) call
available in the API on UNIX based
systems::

3/18/2017 O. S. Structures 8
Chapter2: O.S Structures
System Calls
The use of APIs instead of direct system calls
provides for greater program portability
between different systems. The API then
makes the appropriate system calls through
the system call interface, using a table lookup
to access specific numbered system calls, as
shown in Figure

Parameters are generally passed to system


calls via registers, or less commonly, by
values pushed onto the stack. Large blocks
of data are generally accessed indirectly,
through a memory address passed in a
register or on the stack

3/18/2017 O. S. Structures 9
Chapter2: O.S Structures
Types of System Calls
Six major categories, as outlined in Figure 2.8 and the following six subsections:

3/18/2017 O. S. Structures 10
Chapter2: O.S Structures
Types of System Calls
Standard library calls may also generate system calls, as shown here:

3/18/2017 O. S. Structures 11
Types of System Calls Chapter2: O.S Structures
Process Control
Because UNIX is a multi-tasking system, the command
interpreter remains completely resident when executing a
process.
The user can switch back to the command interpreter at any
time, and can place the running process in the background even
if it was not originally launched as a background process.
In order to do this, the command interpreter first executes a
"fork" system call, which creates a second process which is an
exact duplicate ( clone ) of the original command interpreter.
The original process is known as the parent, and the cloned
process is known as the child, with its own unique process ID
and parent ID.
The child process then executes an "exec" system call, which
replaces its code with that of the desired process.
The parent ( command interpreter ) normally waits for the child
to complete before issuing a new command prompt, but in
some cases it can also issue a new prompt right away, without
waiting for the child process to complete. ( The child is then Figure 2.10
said to be running "in the background", or "as a background
process". )
3/18/2017 O. S. Structures 12
Chapter2: O.S Structures
Types of System Calls
Process Control
Process control system calls include end, abort, load,
execute, create process, terminate process, get/set
process attributes, wait for time or event, signal event,
and allocate and free memory.

Processes must be created, launched, monitored,


paused, resumed, and eventually stopped.

When one process pauses or stops, then another must


be launched or resumed.

When processes stop abnormally it may be necessary to


provide core dumps and/or other diagnostic or recovery
tools.

When a process is launched in DOS, the command


interpreter first unloads as much of itself as it can to
free up memory, then loads the process and transfers
control to it. The interpreter does not resume until the
process has completed

3/18/2017 O. S. Structures 13
Chapter2: O.S Structures
Operating system components
File Management
File management system calls include create file, delete file, open, close, read, write,
reposition, get file attributes, and set file attributes.
These operations may also be supported for directories as well as ordinary files.
The actual directory structure may be implemented using ordinary files on the file system, or
through other means.

Device Management
Device management system calls include request device, release device, read, write,
reposition, get/set device attributes, and logically attach or detach devices.
Devices may be physical ( e.g. disk drives ), or virtual / abstract ( e.g. files, partitions, and
RAM disks ).
Some systems represent devices as special files in the file system, so that accessing the "file"
calls upon the appropriate device drivers in the OS.
Information Maintenance
Information maintenance system calls include calls to get/set the time, date, system data, and
process, file, or device attributes.
Systems may also provide the ability to dump memory at any time, single step programs
pausing execution after each instruction, and tracing the operation of programs, all of which
can help to debug programs.

3/18/2017 O. S. Structures 14
Operating system components Chapter2: O.S Structures
Communication
Communication system calls create/delete communication connection, send/receive messages,
transfer status information, and attach/detach remote devices.
The message passing model must support calls to: Identify a remote process and/or host with which
to communicate, Establish a connection between the two processes, Open and close the connection
as needed, Transmit messages along the connection, Wait for incoming messages, in either a
blocking or non-blocking state, Delete the connection when no longer needed.
The shared memory model must support calls to: Create and access memory that is shared amongst
processes ( and threads. ), Provide locking mechanisms restricting simultaneous access, Free up
shared memory and/or dynamically allocate it as needed.
Message passing is simpler and easier, ( particularly for inter-computer communications ), and is
generally appropriate for small amounts of data.
Shared memory is faster, and is generally the better approach where large amounts of data are to be
shared, ( particularly when most processes are reading the data rather than writing it, or at least
when only one or a small number of processes need to change any given data item. )
Protection
Protection provides mechanisms for controlling which users / processes have access to which
system resources.
System calls allow the access mechanisms to be adjusted as needed, and for non- priveleged users
to be granted elevated access permissions under carefully controlled temporary circumstances.
Once only of concern on multi-user systems, protection is now important on all systems, in the age
of ubiquitous network connectivity.
3/18/2017 O. S. Structures 15
Chapter2: O.S Structures
System Programs
System programs, also known as system utilities, provide a
convenient environment for program development and
execution.
Some of them are simply user interfaces to system calls. Others
are considerably more complex. They can be divided into these
categories:
File management - programs to create, delete, etc. and generally manipulate files and directories.
Status information - Utilities to check on the date, time, number of users, data logging, etc. System
registries are used to store and recall configuration information for particular applications.
File modification - text editors and other tools which can change file contents.
Programming-language support Compilers, linkers, debuggers, profilers, assemblers, library.
Program loading and execution: loaders, dynamic loaders, overlay loaders, etc., interactive
debuggers.
Communications - Programs for providing connectivity between processes and users, including
mail, web browsers, remote logins, file transfers, and remote command execution.
Background services - System daemons are commonly started when the system is booted, and run
for as long as the system is running, handling necessary services. Examples include network
daemons, print servers, process schedulers, and system error monitoring services.
Most operating systems today also come complete with a set of application programs to provide
additional services, such as copying files or checking the time and date.

3/18/2017 O. S. Structures 16
Operating-System Design and Implementation Chapter2: O.S Structures
Start by defining goals and specifications and Affected by choice of hardware, type of system
Design Goals
Requirements define properties which the finished system must have, and are a necessary first
step in designing any large complex system.
User requirements are features that users care about and understand, and are written in
commonly understood vernacular. They generally do not include any implementation details.
System requirements are written for the developers, and include more details about
implementation specifics, performance requirements, compatibility constraints, standards
compliance, etc. These requirements serve as a "contract" between the customer and the
developers, ( and between developers and subcontractors ), and can get quite detailed.
Requirements for operating systems can vary greatly depending on the planned scope and
usage of the system. ( Single user / multi-user, specialized system / general purpose, high/low
security, performance needs, operating environment, etc. )
Mechanisms and Policies
Policies determine what is to be done. Mechanisms determine how it is to be implemented.
If properly separated and implemented, policy changes can be easily adjusted without re-writing
the code, just by adjusting parameters or possibly loading new data / configuration files.
Implementation
Traditionally OSes were written in assembly language. This provided direct control over
hardware-related issues, but inextricably tied a particular OS to a particular HW platform.
Recent advances in compiler efficiencies mean that most modern OSes are written in C, or more
recently, C++. Critical sections of code are still written in assembly language
3/18/2017 O. S. Structures 17
Chapter2: O.S Structures
Operating-System Structure
For efficient performance and implementation an OS should be partitioned into separate subsystems, each
with carefully defined tasks, inputs, outputs, and performance characteristics. These subsystems can then
be arranged in various architectural configurations:
Simple Structure
When DOS was originally written its developers
had no idea how big and important it would
eventually become. It was written by a few
programmers in a relatively short amount of time,
without the benefit of modern software engineering
techniques, and then gradually grew over time to
exceed its original expectations. It does not break
the system into subsystems, and has no distinction
between user and kernel modes, allowing all
programs direct access to the underlying hardware.

The original UNIX OS used a simple layered


approach, but almost all the OS was in one big
layer, not really breaking the OS down into
layered subsystems:

3/18/2017 O. S. Structures 18
Operating-System Structure Chapter2: O.S Structures
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.
With modularity, layers are selected such that each uses functions
(operations) and services of only lower-level layers
This approach allows each layer to be developed and debugged
independently, with the assumption that all lower layers have already
been debugged and are trusted to deliver proper services.
The problem is deciding what order in which to place the layers, as no layer can call upon the
services of any higher layer, and so many chicken-and-egg situations may arise.
Layered approaches can also be less efficient, as a request for service from a higher layer has to filter
through all lower layers before it reaches the HW, possibly with significant processing at each step.
Microkernels
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
Detriments: Performance overhead of user space to kernel space
communication
3/18/2017 O. S. Structures 19
Chapter2: O.S Structures
Modules
Most modern operating systems implement kernel modules
Uses object-oriented approach
Each core component is separate
Each talks to the others over known interfaces
Each is loadable as needed within the kernel
Overall, similar to layers but with more flexible

Solaris Modular Approach

3/18/2017 O. S. Structures 20
Chapter2: O.S Structures
Virtual Machines
A virtual machine takes the layered approach to its logical conclusion. It treats hardware and the
operating system kernel as though they were all hardware
A virtual machine provides an interface identical to the underlying bare hardware
The operating system creates the illusion of multiple processes, each executing on its own processor
with its own (virtual) memory
The resources of the physical computer are shared to create the virtual machines
CPU scheduling can create the appearance that users have their own processor
Spooling and a file system can provide virtual card readers and virtual line printers
A normal user time-sharing terminal serves as the virtual machine operators console

The virtual-machine concept provides


complete protection of system resources
since each virtual machine is isolated from
all other virtual machines. This isolation,
however, permits no direct sharing of
resources.
A virtual-machine system is a perfect
vehicle for operating-systems research and
development. System development is done
on the virtual machine, instead of on a
physical machine and so does not disrupt
normal system operation. (a) Nonvirtual machine (b) virtual machine
3/18/2017 O. S. Structures 21
Chapter2: O.S Structures
VMware Architecture

3/18/2017 O. S. Structures 22
Chapter2: O.S Structures
Operating System Generation
Operating systems are designed to run on any of a class of machines; the system must be
configured for each specific computer site
SYSGEN program obtains information concerning the specific configuration of the hardware
system
Booting starting a computer by loading the kernel
Bootstrap program code stored in ROM that is able to locate the kernel, load it into memory,
and start its execution

System Boot

Operating system must be made available to hardware so hardware can start it


Small piece of code bootstrap loader, locates the kernel, loads it into memory, and starts it
Sometimes two-step process where boot block at fixed location loads bootstrap loader
When power initialized on system, execution starts at a fixed memory location
Firmware used to hold initial boot code

3/18/2017 O. S. Structures 23

You might also like