1. Introduction to Operating Systemsjsumey/CSC400/ppts/01OSintro.pdf · CSC400 - Operating Systems...

18
Intro. to Operating Systems CSC400 - Operating Systems 1 CSC400 - Operating Systems 1. Introduction to Operating Systems by J. Sumey CSC400 - Intro. to Operating Systems 2 Overview Operating System (OS) defined History of OS Development types of Operating Systems OS components & functions OS design goals & influences OS architectures

Transcript of 1. Introduction to Operating Systemsjsumey/CSC400/ppts/01OSintro.pdf · CSC400 - Operating Systems...

Page 1: 1. Introduction to Operating Systemsjsumey/CSC400/ppts/01OSintro.pdf · CSC400 - Operating Systems 9 Types of Operating Systems CSC400 - Intro. to Operating Systems 18 OS Types -

Intro. to Operating Systems

CSC400 - Operating Systems 1

CSC400 - Operating Systems

1. Introduction to Operating Systems

by J. Sumey

CSC400 - Intro. to Operating Systems 2

Overview

Operating System (OS) defined

History of OS Development

types of Operating Systems

OS components & functions

OS design goals & influences

OS architectures

Page 2: 1. Introduction to Operating Systemsjsumey/CSC400/ppts/01OSintro.pdf · CSC400 - Operating Systems 9 Types of Operating Systems CSC400 - Intro. to Operating Systems 18 OS Types -

Intro. to Operating Systems

CSC400 - Operating Systems 2

CSC400 - Intro. to Operating Systems 3

Computer Software

application programs

• performs actual work desired by end-user

system programs

• manages operation of computer itself

– PCs

– PDAs, cell phones

– MP3 players

– game consoles

CSC400 - Intro. to Operating Systems 4

OS Defined

old def:

• "the s/w that controls the h/w"

modern def:

• layer of s/w that bridges together app. programs with the computer's h/w by providing services allowing safe and effective execution of app. programs

Page 3: 1. Introduction to Operating Systemsjsumey/CSC400/ppts/01OSintro.pdf · CSC400 - Operating Systems 9 Types of Operating Systems CSC400 - Intro. to Operating Systems 18 OS Types -

Intro. to Operating Systems

CSC400 - Operating Systems 3

CSC400 - Intro. to Operating Systems 5

OS Defined

thus: OS is a resource manager

• provides orderly & controlled allocation & use of system resources

resources:

• hardware – processors, memory, I/O devices, communication devices

• software – applications

– editors, spreadsheets, DBMSs, browsers, compilers, CAD, accounting, …

History of

OS Development

Page 4: 1. Introduction to Operating Systemsjsumey/CSC400/ppts/01OSintro.pdf · CSC400 - Operating Systems 9 Types of Operating Systems CSC400 - Intro. to Operating Systems 18 OS Types -

Intro. to Operating Systems

CSC400 - Operating Systems 4

CSC400 - Intro. to Operating Systems 7

OS History: 1940s

1st generation (no OS):

• vacuum tubes & wired plugboards

• plugboards replaced by punched cards

1946: ENIAC @ U. of PA.

• 18k vacuum tubes

1947: William Shockley

• invents transistor at Bell Labs

– http://www.pbs.org/transistor

CSC400 - Intro. to Operating Systems 8

OS History: 1950s

2nd generation:

• V.T.s replaced by transistors

GM Research Labs / IBM 701

• first OS – batch job processing

• batch job: collection of source pgm, data, & controls to compile & run a particular task

thus: single-stream batch-processing

• one-at-a-time, start to finish!

Page 5: 1. Introduction to Operating Systemsjsumey/CSC400/ppts/01OSintro.pdf · CSC400 - Operating Systems 9 Types of Operating Systems CSC400 - Intro. to Operating Systems 18 OS Types -

Intro. to Operating Systems

CSC400 - Operating Systems 5

CSC400 - Intro. to Operating Systems 9

OS History: 1960s

multiprogramming • multiple jobs loaded into memory & switch

between them on I/O waits

• processor-bound vs. I/O-bound jobs

• partitions: regions of memory setup for diff. jobs

• still used punch cards, but also mag. tapes

1964: IBM System/360 • arch. continued to today

timesharing systems • multiprogramming with multiple simultaneous

interactive users connected via "on-line" dumb terminals (response issue)

CSC400 - Intro. to Operating Systems 10

OS History: OSs from the '60s

timesharing takes off…

• MIT develops CTSS

– Compatible Time Sharing System

• IBM develops TSS

• MIT, GE, Bell succeeds CTSS with Multics

– Multiplexed Info & Computing Services

• IBM succeeds TSS with CP/CMS -> VM

– Virtual Machine

use of virtual memory

Page 6: 1. Introduction to Operating Systemsjsumey/CSC400/ppts/01OSintro.pdf · CSC400 - Operating Systems 9 Types of Operating Systems CSC400 - Intro. to Operating Systems 18 OS Types -

Intro. to Operating Systems

CSC400 - Operating Systems 6

CSC400 - Intro. to Operating Systems 11

The term "Process"

first used by designers of Multics

used to describe a program loaded into memory and currently executing

CSC400 - Intro. to Operating Systems 12

OS History: the UNIX story

1969/70: UNIX • Dennis Ritchie & Ken Thompson @ Bell

Labs develop UNIX from Multics

1972: Ritchie invents C language • from Thompson's B language

1973: Thompson rewrites UNIX in C

later evolves into whole family of unices • BSD, Unix V, AIX, HP-UX, Linux, Solaris …

Page 7: 1. Introduction to Operating Systemsjsumey/CSC400/ppts/01OSintro.pdf · CSC400 - Operating Systems 9 Types of Operating Systems CSC400 - Intro. to Operating Systems 18 OS Types -

Intro. to Operating Systems

CSC400 - Operating Systems 7

CSC400 - Intro. to Operating Systems 13

OS History: 1970s

1958: Jack Kilby • invents Integrated Circuit (IC) @ T.I.

3rd generation, "digital revolution": • transistors replaced with ICs • higher speeds & densities

continued multiprogramming improvements • support batch processing, timesharing & real-time

applications

communications & LANs • Robert Metcalfe develops Ethernet @ Xerox • ARPA TCP/IP standards -> Internet

CSC400 - Intro. to Operating Systems 14

OS History: 1980s

1974: Federico Faggin

• invents 4004 microprocessor @ Intel

4th generation, "uP revolution":

• PCs & workstations

• distributed computing, NOSs, client/server model

mouse & GUI developed at Xerox

• 1984: Steve Jobs @ Apple

– commercializes GUI with Macintosh

• Xwindows developed @ MIT for UNIX

Page 8: 1. Introduction to Operating Systemsjsumey/CSC400/ppts/01OSintro.pdf · CSC400 - Operating Systems 9 Types of Operating Systems CSC400 - Intro. to Operating Systems 18 OS Types -

Intro. to Operating Systems

CSC400 - Operating Systems 8

CSC400 - Intro. to Operating Systems 15

OS History: 1990s

Internet continues to develop • 1989: Tim Berners-Lee develops WWW @ CERN

with HTML & HTTP

1990: Microsoft releases Windows 3.0 exponential improvements in hardware

performance • processor execution measured in MIPS

network & object technologies integrated into OSs (OOOS)

open source software becomes popular • FSF, GNU (Richard Stallman), GPL, OSI • 1991: Linus Torvalds releases Linux kernel 1.0

CSC400 - Intro. to Operating Systems 16

Current OS Interests

middleware • s/w that links 2 separate apps on heterogeneous

systems via networks

• ex: Web services

multiprocessing / coprocessors • multiple processors in same system

concurrent programming languages • Concurrent C, Java – parallel computations/threads

API standardization • POSIX – Portable Operating System Interface

Page 9: 1. Introduction to Operating Systemsjsumey/CSC400/ppts/01OSintro.pdf · CSC400 - Operating Systems 9 Types of Operating Systems CSC400 - Intro. to Operating Systems 18 OS Types -

Intro. to Operating Systems

CSC400 - Operating Systems 9

Types of

Operating Systems

CSC400 - Intro. to Operating Systems 18

OS Types - 1

mainframe

• used in corporate data centers, typically have huge I/O capabilities, ex: OS/390

• services provided:

batch – routine jobs with no user interaction

ex: utility bill processing

transaction processing – small but numerous tasks

ex: check processing, reservation systems

timesharing – multiple remote on-line users

ex: database queries

Page 10: 1. Introduction to Operating Systemsjsumey/CSC400/ppts/01OSintro.pdf · CSC400 - Operating Systems 9 Types of Operating Systems CSC400 - Intro. to Operating Systems 18 OS Types -

Intro. to Operating Systems

CSC400 - Operating Systems 10

CSC400 - Intro. to Operating Systems 19

OS Types - 2

server / network

• systems that provide high-speed services over a network

– ex: file/print sharing, web services

• ex: Unix, Novell, Windows Server 2003

PC / single-user

• provide good interface (GUI) to single user

• ex: WinXP, MacOS, Unix w/ X11

CSC400 - Intro. to Operating Systems 20

OS Types - 3

real-time • used in industrial process control systems

where timing is critical

a) "hard" real time – action must occur at precisely some instant

– ex: robot welder, autopilot

b) "soft" real time – missing an occasional deadline is OK

– ex: digital audio / multimedia

• ex: VxWorks, QNX, RT-Linux

Page 11: 1. Introduction to Operating Systemsjsumey/CSC400/ppts/01OSintro.pdf · CSC400 - Operating Systems 9 Types of Operating Systems CSC400 - Intro. to Operating Systems 18 OS Types -

Intro. to Operating Systems

CSC400 - Operating Systems 11

CSC400 - Intro. to Operating Systems 21

OS Types - 4

embedded

• used in PDAs & consumer electronics

– TVs, set-top boxes, microwaves, cell phones

• ex: PalmOS, WinCE, WinXP Embedded

smart cards?

• credit card devices with on-board CPU

• Java Virtual Machine (JVM)

OS Components

& Functions

Page 12: 1. Introduction to Operating Systemsjsumey/CSC400/ppts/01OSintro.pdf · CSC400 - Operating Systems 9 Types of Operating Systems CSC400 - Intro. to Operating Systems 18 OS Types -

Intro. to Operating Systems

CSC400 - Operating Systems 12

CSC400 - Intro. to Operating Systems 23

"Core" OS Components "Kernel"

process scheduler • determines when & for how long a process is

assigned on a processor

memory manager • handles system memory allocation & exhaustion

I/O manager • services I/O requests to & from h/w devices

Interprocess Communication (IPC) manager • allows processes to communicate with each other

file system manager • maintains data/files/directories on storage devices

CSC400 - Intro. to Operating Systems 24

Additional OS Components

device drivers • supports device-specific control by I/O mgr.

• ex: plug-and-play

disk scheduler • optimizes secondary storage I/O

performance

shell, a.k.a. command interpreter • allows user to interact with OS via a text

and/or GUI interface

Page 13: 1. Introduction to Operating Systemsjsumey/CSC400/ppts/01OSintro.pdf · CSC400 - Operating Systems 9 Types of Operating Systems CSC400 - Intro. to Operating Systems 18 OS Types -

Intro. to Operating Systems

CSC400 - Operating Systems 13

CSC400 - Intro. to Operating Systems 25

Application Programming Interfaces

recall: the OS bridges app. programs with the system h/w; yet the OS frees the app. developer from dealing with the h/w directly (messy, difficult)

this is accomplished via a set of system calls to invoke such services

• ex: open a file, allocate mem., send network pkt.

set of defined system calls = API

• thus: app. developer need only learn the API

ex: POSIX, Windows API, wxWidgets

OS Design Goals

& Influences

Page 14: 1. Introduction to Operating Systemsjsumey/CSC400/ppts/01OSintro.pdf · CSC400 - Operating Systems 9 Types of Operating Systems CSC400 - Intro. to Operating Systems 18 OS Types -

Intro. to Operating Systems

CSC400 - Operating Systems 14

CSC400 - Intro. to Operating Systems 27

OS Design Goals

efficiency – satisfy requirements of the OS without becoming undue overhead; high throughput

robustness – ability to contain & recover from h/w & s/w errors in the system; reliability

flexibility – can evolve & support new or changing h/w & s/w features over time; scalable

portability – able to run OS or apps. on different h/w configurations

security – enforces authorization of users and s/w to system services & resources

compatibility – appropriateness & usability to many users & target apps.

CSC400 - Intro. to Operating Systems 28

OS Design Influences

security – as the resources managed by the OS increase in value, so must the security mechanisms to protect those resources

Internet – how else could a complete, full-function OS be developed world-wide by the world's best programmers & distributed for free?

multimedia – human evolution demands increased sensory experiences; audio/video

GUIs – provide a more natural, faster man-machine interface

Page 15: 1. Introduction to Operating Systemsjsumey/CSC400/ppts/01OSintro.pdf · CSC400 - Operating Systems 9 Types of Operating Systems CSC400 - Intro. to Operating Systems 18 OS Types -

Intro. to Operating Systems

CSC400 - Operating Systems 15

Operating System

Architectures

CSC400 - Intro. to Operating Systems 30

OS Architectures

help designers manage the complexity of OS providing many services and supporting a wide variety of h/w & s/w resources

paradigms: • monolithic

• microkernel

• layered

• network

Page 16: 1. Introduction to Operating Systemsjsumey/CSC400/ppts/01OSintro.pdf · CSC400 - Operating Systems 9 Types of Operating Systems CSC400 - Intro. to Operating Systems 18 OS Types -

Intro. to Operating Systems

CSC400 - Operating Systems 16

CSC400 - Intro. to Operating Systems 31

OS Architectures: Monolithic

all OS components are contained in the kernel & operate with unrestricted access

earliest & most common architecture

unstructured, ad hoc design resulting from "afterthoughts" & evolution

pro: highly efficient due to direct communication between components

con: difficult to debug & susceptible to damage from errors

CSC400 - Intro. to Operating Systems 32

OS Architectures: Microkernel

moves OS components not needing full privilege levels outside the kernel

results in a much smaller kernel

pro: highly modular; thus more portable, extensible & scalable. Also more reliable.

con: increased inter-module communication further degrades performance

Linux & Windows XP have some modularity

Page 17: 1. Introduction to Operating Systemsjsumey/CSC400/ppts/01OSintro.pdf · CSC400 - Operating Systems 9 Types of Operating Systems CSC400 - Intro. to Operating Systems 18 OS Types -

Intro. to Operating Systems

CSC400 - Operating Systems 17

CSC400 - Intro. to Operating Systems 33

OS Architectures: Layered

groups OS components into logical hierarchy of layers according to functions

• range from processor (lowest) to user (highest)

modular design where layers communicate only with immediate neighbors

result of "top-down" structured design

• ex: THE OS had 6 layers

pro: easier debugging & maintenance

con: performance degradation

CSC400 - Intro. to Operating Systems 34

OS Architectures: Network

enables its processes to readily access resources on other systems via network

based on client/server model

network file systems – provide remote file access via traditional file system paradigm

• ex: Sun's NFS, CMU's Andrew, SMB

distributed OS: a single OS run on multiple computers

Page 18: 1. Introduction to Operating Systemsjsumey/CSC400/ppts/01OSintro.pdf · CSC400 - Operating Systems 9 Types of Operating Systems CSC400 - Intro. to Operating Systems 18 OS Types -

Intro. to Operating Systems

CSC400 - Operating Systems 18

- Summary -

Operating System (OS) defined

History of OS Development

types of Operating Systems

OS components & functions

OS design goals & influences

OS architectures