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
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
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
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!
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
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 …
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
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
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
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
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
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
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
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
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
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
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
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
Top Related