Advanced Operating Systems - Lecture 1: Introduction and Overview. This lecture will cover the following: course objectives and pre-requisites; introduction to what an operating system is; issues involved in the design of an operating system; different types of operating systems;...
Trang 1Advanced Operating Systems
Introduction and Overview
Trang 2 MS (Computer Science) University of Southern California, USA
BS Electrical Engineering, University of Engineering and Technology Lahore, Pakistan
Over 15 years of professional experience in US and Pakistan industry as system software architect, designer and developer in the field of embedded systems, operating systems and computer networks.
Worked as senior software architect and team lead in Nortel Networks California USA, Philips Semiconductors California USA, Zhone Technologies California USA, Enabling Technologies Islamabad and CresSoft Inc Islamabad Pakistan.
Designed and implemented embedded software for network routers, including protocol stacks in real-time operating system kernels, switches, DSL access
multiplexers, TCP/IP core protocol and routing engines, multimedia software for video conferencing and video encoding/decoding.
Currently working as the CTO of MediaRoutes Inc, where I am developing a SIP (Session Initiation Protocol) based highly scalable state-full server for call proxy, routing and registrations The system is built on an asynchronous, event-driven framework I have designed that can scale the SIP server to handle more than 100,000 concurrent SIP sessions The framework will soon be available as
open-source under GNU public license.
Trang 3 Course Objectives and Pre-requisites
Introduction to what an operating system is?
Issues involved in the design of an operating system
Different types of operating systems
Re-cap of the lecture
Trang 4 In depth treatment of topics from design
perspective
Consider why things are done in a certain way
instead of just how they are done
Consider design alternatives.
Be able to tell the difference between a good design and a bad design
Also consider engineering tradeoffs involved in the design process.
Trang 5
Practical aspects from a computer scientist’s
perspective.
These include:
1 A case study throughout the course of a real commercial operating system kernel We will
present Linux kernel for this purpose We will also make comparisons to other operating systems e.g Windows where applicable.
2 Hands on training as a programmer on using operating system services in relatively complex
programs I will assign 4 to 5 programming
assignments for this purpose.
Trang 6 Research perspective
We will also look at some contemporary and
classical research on operating system topics in the research literature For this purpose, I will assign a few readings from the literature on operating
systems.
Trang 7 C/C++ programming This is an essential
pre-requisite since without this, you won’t be able to do the assignments.
An undergraduate first course on data structures
This should include implementation of elementary data structures e.g lists, stack, queues, trees etc in
a high level language like C or C++ etc.
A first course on operating systems would be helpful but not strictly required since we will cover the
basics of each topic before diving into the deeper
stuff
Trang 8Top-down view
Provides an extended or virtual machine abstraction to user
programs
Easier to program than the underlying hardware.
All services are invoked and accomplished through system calls
Bottom-up view
Acts as a resource manager of a complex system
Resources consist of processors, memories, timers, disks,
mice, keyboard, network interfaces, printers etc
OS manages allocation of these resources to user programs in
an orderly and controlled manner
Trang 9 OS multiplexes resources in two ways:
In time, In space
Time multiplexing involves different programs taking turns in
using the resource Example: CPU scheduling, printer sharing Space multiplexing involves different program getting part of the resource possibly at the same time Example: memory is divided into several running programs
Trang 10Structure: how is the OS organized?
Sharing: how are resources shared across users?
Naming: how are resources named (by users or programs)?
Security: how is the integrity of the OS and its resources
ensured?
Protection: how is one user/program protected from another?
Performance: how do we make it all go fast?
Reliability: what happens if something goes wrong
(either with hardware or with program)?
Extensibility: can we add new features?
Communication: how do programs exchange information,
including across a network?
The major OS issues
Trang 11Concurrency: how are parallel activates (computation and I/O
created and controlled?
Scale: what happens as demands or resources increase?
Persistence: how do you make data last longer than program executions?
Distribution: how do multiple computers interact with each other?
Accounting: how do we keep track of resources usage, and perhaps charge for it?
Trang 12OS from my program
Your program from my program
My program from my program
Access by intruding individuals
Access by intruding programs
Denial of service
Distributed denial of service
Spoofing
Spam
Worms
Viruses
Stuff you download and run knowingly (bugs, Trojan horses)
Stuff you download and run unknowingly (cookies, spyware)
Protection and security as an example
Trang 13 Main frame operating systems
Huge amounts of I/O activity 1000s of disks not unusual
Provide batch, transaction and time sharing services
Batch processing is routine non-interactive jobs e.g claims
processing, sales reporting etc
Transaction processing systems handle large number of small requests e.g check processing in banks, air line reservations
etc
Time-sharing systems allow multiple remote users to run jobs
at the same time e.g querying a database
OS Optimized for these tasks Example is OS/390
Server operating systems
Run on very large PCs, workstations or even main-frames
They serve multiple users over a network simultaneously and allow them to share hardware and software Examples are web servers, database transaction servers etc Examples of OS in this class are Win2K, XP and flavors of UNIX
Trang 14 Multiprocessor operating systems
OS is basically a variation to server operating systems with special provisions for connectivity and
communication management between different CPUs.
PC operating systems
OS provides a nice interface to a single user Typically used for word processing, spread sheets, Internet access etc.
Trang 15 Real-time operating systems
Characterized by time as the key parameter Real-time response
to internal and external events is more important than any other design goal Classified into two sub-categories: Hard and Soft real-time
Example applications include Industrial process control, robotics and assembly lines, air traffic control, network routers and
telecommunication switches, multi-media systems etc.
Embedded operating systems
Embedded in small devices e.g palm-top computers e.g PDA,
TV sets, micro-wave ovens, mobile phones They have
characteristics of real-time systems (mainly soft real-time) but also have restraints on power consumption, memory usage etc Examples include PalmOS and Windows CE Height of this type
is smart-card systems
Trang 16Distribute the computation among several physical
processors.
Loosely coupled system – each processor has its own local memory; processors communicate with one another through various communications lines, such as high-speed buses or telephone lines.
Advantages of distributed systems
Resources Sharing
Computation speed up – load sharing
Reliability
Communications
Distributed Systems
Trang 17Multiprocessor systems with more than on CPU in close communication.
Tightly coupled system – processors share
memory and a clock; communication usually takes place through the shared memory.
Advantages of parallel system:
Increased throughput
Economical
Increased reliability
graceful degradation
fail-soft systems
Parallel Systems