Operating System Objectives and Functions

harpywarrenSoftware and s/w Development

Dec 14, 2013 (3 years and 6 months ago)

60 views


1

CmSc
125


Operating Systems


1. Operating system objectives and functions


What is an operating system? Some definitions:

A program that is executed by the processor that frequently relinquishes control and must
depend on the processor to regain control.

A

program that mediates between application programs and the hardware

A set of procedures that enable a group of people to use a computer system.

A program that controls the execution of application programs

An interface between applications and hardware


T
he common idea behind these definitions:


Operating systems control and support the usage of computer systems.


Concepts to be discussed:


Usage


Computer system


Control


Support



a.

usage

users of a computer system:


programs
-

use memory, use CPU time, us
e I/O devices


human users

programmers
-

use program development tools such as debuggers, editors


end users
-

use application programs, e.g. Internet explorer


b.

computer system = hardware + software

OS is a part of the computer software, it is a program. I
t is a very special program, that is
the first to be executed when the computer is switched on, and is supposed to control and
support the execution of other programs and the overall usage of the computer system.


c.

control

The operating system controls the
usage of the computer resources
-

hardware devices
and software utilities. We can think of an operating system as a
Resource Manager
. Here
are some of the resources managed by the OS:

Processors,

Main memory,

Secondary Memory,

Peripheral devices,


2

Info
rmation.


d.

support

The operating system provides a number of services to assist the users of the computer
system:


For the programmers:



Utilities
-

debuggers, editors, file management, etc.


For the end users
-

provides the interface to the application p
rograms


For programs
-

loads instructions and data into memory, prepares I/O devises for
usage, handles interrupts and error conditions.


The hierarchical view of the computer system illustrates how the operating system interacts with
the users of the co
mputer system:




Main Objectives in OS design:

Convenience



makes computer user friendly.


3

Efficiency
-

allows computer to use resources efficiently.

Ability to evolve
-

constructed in a way to permit effective development, testing and
introduction of new
functions without interfering with service.


2. Evolution of Operating Systems

Serial Processing
-

1940’s


1950’s programmer interacted directly with hardware. No
operating system.

problems

Scheduling
-

users sign up for machine time. Wasted computing t
ime

Setup Time
-

Setup included loading the compiler, source program, saving
compiled program, and loading and linking
. If an error occurred
-

start over.


Simple Batch Systems

Improve the utilization of computers
.

Jobs were submitted on cards or tape to an

operator who batches jobs together
sequentially. The program that controls the execution of the jobs was called
monitor

-

a simple
version of an operating system. The interface to the monitor was accomplished through Job
Control Language (JCL). For exampl
e, a JCL request could be to run the compiler for a
particular programming language, then to link and load the program, then to run the user
program.

Hardware features:


Memory protection: do not allow the memory area containing the monitor to be altered

Timer: prevents a job from monopolizing the system



Problems:

Bad utilization of CPU time
-

the processor stays idle while I/O devices are in use.


Multiprogrammed Batch Systems


More than one program resides in the main memory. While a program A uses an
I/O device the
processor does not stay idle, instead it runs another program B.








4



New features
:


Memory management
-

to have several jobs ready to run, they must be kept in main
memory


Job scheduling
-

the processor must decide which program to ru
n.


Time
-
Sharing Systems



Multiprogramming systems : several programs use the computer system

Time
-
sharing systems : several (human) users use the computer system interactively.


Characteristics:



Using multiprogramming to handle multiple interactive jobs



Processor’s time is shared among multiple users



Multiple users simultaneously access the system through terminals





Commands entered at the
terminal


Job control language commands
provided with the job


Source of directives to
operating system


Minimize response time

Maximize processor use


Principal objective


Time Sharing


Batch Multiprogramming




5

Time sharing
is

multiprogramming. The key differences between time
-
sharing systems and batch
multiprogramming systems are given in the ta
ble above.


3. Major Achievements

Five major theoretical advances in development

Processes

Memory Management

Information protection and security

Scheduling and resource management

System structure


3.1. Processes


What is a process?

A program in execution

An instance of a program running on a computer

The entity that can be assigned to and executed on a processor

A unit of activity characterized by a single sequential thread of execution, a current state,
and an associated set of system resources


Difficul
ties with designing system software:


Improper Synchronization:

results from an improper design of a signaling mechanism can
result in duplicate signals, or lost signals.

Failed Mutual Exclusion:

two programs attempt to modify shared piece of data.

Nondete
rministic

program operation:
a program may change the contents of memory used by
another program, and in this way affect unpredictably the operation of the other program.

Deadlock:

each program is waiting for the other program to release its resource


Sol
ution to these problems:
use the concept of a

process
that consists of


An executable program

Associated data needed by the program

Execution context of the program: All information the operating system needs to manage
the process












6





3.2. Memo
ry Management



Responsibilities of OS

Process isolation
-

prevent independent processes from interfering with each other

Automatic allocation and management
-

transparent to the programmer

Support of modular programming

Protection and access control

Long
-
Term Storage


The above requirements are satisfied by means of virtual memory and file system facilities


Virtual memory and paging

Allows programmers to address memory from a logical point of view

Allows process to be comprised of a number of fixed
-
size
blocks, called pages


7

Virtual address is a page number and an offset within the page

Each page may be located any where in main memory

Dynamic mapping between the virtual address used in the program and the real address in main
memory


File system

Implement
s long
-
term store

Information stored in named objects called files



3.3. Information protection and security


Access Control
-

regulates user access to the whole system, subsystems, and data

Information flow control
-

regulates the flow of data within the
system and its delivery to users.

Certification
-

relates to proving that access and flow control mechanisms perform according to
their specifications and enforce desired protection and security policies.



3.4. Scheduling and resource management


Factors t
o be considered:

Fairness
-

give equal and fair access to all jobs of the same class

Differential Responsiveness
-

discriminate between different classes of jobs.

Efficiency
-

maximize throughput, minimize response time and accommodate as many users as
possi
ble.


The major elements of the operating system involved in scheduling and resource management in
a multiprogramming environment are depicted in Figure 2.11


I/O queues
: processes waiting for I/O devices ( a queue is associated with each I/O
device)


Shor
t
-
term queue
: a list of processes whose execution has been started. They reside in
main memory.
Round
-
robin

technique: give each process some time in turn.


Long
-
term queue
: a list of new jobs waiting to be started.


How does it work?


Assume that a proces
s is running. The following events transfer the control from the
process to the OS



Service call from the process

-

the process explicitly invokes some of the OS
services, e.g. I/O operations.



Interrupt from the process
, e.g. exception handling



Timer
interrupt

-

the time slice for the process is over



I/O interrupt

-

an I/O device reports its status to the OS.


In each case the corresponding handler is invoked, and then the short
-
tem scheduler picks
up the next process to be run.




8







3.5. System
structure


Guidelines:


Modular software


Well
-
defined interfaces between modules, as simple as possible


Hierarchical layered structure


Each level:

-

performs a related subset of functions

-

relies on the next lower level to perform more
-
primitive functions
and to conceal the
details of those functions

-

provides services to the next higher level


9



4. Characteristics of Modern Operating Systems

Microkernel architecture
-
assigns only a few essential functions to the kernel, including address
spaces, interprocess
communication, and basic scheduling.


Multithreading
-

the
process is divided into threads that can run simultaneously



Thread
-

dispatchable unit of work. It includes a processor context program counter and stack
pointer and its own data storage for the st
ack. It
executes sequentially and is interruptable


Process
-

collection of one or more threads and associated system resources.


Symmetric multiprocessing
-

standalone computer with multiple processors that share the same
memory and I/O facilities connected

by a communication bus.

All processors can perform the
same functions


Distributed operating systems
-

provide the illusion of a single main memory and single
secondary memory space. Used for distributed file system


Object
-
oriented design
-

used for addi
ng modular extensions to a small kernel.

Enables programmers to customize an operating system without disrupting system integrity



Exam
-
like questions:


1.

Compare batch multiprogramming systems and time
-
sharing systems. Discuss their
similarities and differ
ences.

2.

How is a process defined?

3.

Discuss the difficulties in early OS that motivated the use of processes in OS design.

4.

Describe briefly virtual memory and paging techniques for memory management.

5.

Describe briefly how the resource scheduling works.

6.

List an
d describe briefly four of the characteristics of modern operating systems