Download OS Overview

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Copland (operating system) wikipedia , lookup

Library (computing) wikipedia , lookup

Distributed operating system wikipedia , lookup

Spring (operating system) wikipedia , lookup

OS/2 wikipedia , lookup

RSTS/E wikipedia , lookup

Unix security wikipedia , lookup

Burroughs MCP wikipedia , lookup

VS/9 wikipedia , lookup

CP/M wikipedia , lookup

Transcript
OPERATING SYSTEMS
HISTORY/OVERVIEW
4/30/2017
1
HARDWARE
•
•
•
•
•
•
•
•
•
One or more processors
Memory
Disks
Printers
Keyboard
Mouse
Monitor
Network interfaces
Other I/O devices
HARDWARE, OS, USER SOFTWARE
Where the operating system fits in.
Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.
TWO MODES
• OS mostly runs in kernel mode
• Access to all of hardware
• Can execute all machine instructions
• All other software runs in user mode
• Only a subset of machine instructions are available
• In particular: instructions that control the operation of the
computer and perform i/o are off limits
• The Tanenbaum Distinction
• Don’t like your text editor? Load in a new one
• Don’t like the process scheduler? Find a new OS
4/30/2017
4
TWO TASKS OF O/S
• Shield the user from the complexity of the
underlying hardware
• Allocate resources to competing users
4/30/2017
5
TASK 1: SHIELD THE USER
Operating systems turn ugly hardware into
beautiful abstractions.
Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.
AN EXAMPLE
• Read/Write in C
• open(), close(), scanf(), fprintf(), etc.
• But (to use an old example) NEC PD765
controller for floppy disk drive has
• 16 commands to read,write,move disk arm,
format tracks, reset
• read/write has 13 parameters that specify
sectors/track, intersector gap, etc.
• Commands to monitor the status of the motor
• After each operation, chip returns 23 status and
error fields
4/30/2017
7
TASK 2: RESOURCE ALLOCATOR
• O/S allocates
•
•
•
•
•
cpu
printer
memory
etc.
Between competing users/processes
Evolution of O/S Traces these Two functions
4/30/2017
8
I. IN THE BEGINNING
•
•
•
•
•
•
4/30/2017
Reserve computer time
Load program an instruction at a time
using switches or plug boards
Monitor program’s execution
Issues
Under reserved? Machine is idle
Over reserved? Wait your turn
Programmer had to understand machine
internals
9
IN THE BEGINNING:
ENIAC PROGRAMMERS
4/30/2017
10
II. PROGRAMMER AS OPERATOR
•
•
Development of tape drives, line printers, card
readers, compilers, i/o libraries
Steps
1. Load COBOL compiler from tape
2. Read in program from card reader
3. Link program with stored libraries
4. Load executable
5. Run/Debug
Notice: Steps 1-4 are all setup
4/30/2017
11
III. ENTER THE OPERATOR
Ancestor of the modern systems
administrator
• Eliminate the reservations system
• Hire operator to load punched jobs
• Batch similar jobs together (i.e., all Fortran
jobs so that Fortran compiler needs to be
loaded only once)
Problems. When error occurs, operator must:
• Notice them
• Record status
• Start next job
• Meanwhile fabulously expensive CPU is idle
•
4/30/2017
12
IV. RESIDENT OPERATOR
Replace operator with:
• Program loader
• Job sequencer
• Control card interpreter
4/30/2017
13
INFO REQUIRED FOR EACH JOB
• Card deck included:
•
•
•
•
•
•
•
•
•
Account to be billed
Job name
cpu limit
Compiler name
Load/run directives
Dispostion of output
Program cards
Data cards
End of job card
4/30/2017
14
CARD DECK
Figure 1-4. Structure of a typical FMS job.
Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.
DIRECT ANCESTOR OF
•
•
•
•
•
JCL – IBM
DCL – DEC
ECL – Sperry
Various Shells – Unix
MS-DOS Command Line -- Microsoft
4/30/2017
16
4/30/2017
17
YET MORE PROBLEMS
• Have eliminated much human intervention
• Mechanical i/o devices are much slower than CPU
• So, CPU waits for IO
4/30/2017
18
V: MULTIPROGRAMMING
Partition memory. When a job is stopped waiting
for i/o, switch to another job
Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.
VI: SPOOLING
• Simultaneous peripheral operation offline
• Input
• Cards read directly to secondary storage device
(tape, drum, disk)
• When job is finished, o/s loads a new one in the
empty slot
• Output
• Print jobs written to secondary storage
• When device is free, print
4/30/2017
20
KEY CONSEQUENCE OF SPOOLING
• Job Pool
• Many jobs have been read in
• o/s can decide which to run next based on a priority
scheme
• Leads to development of scheduling algorithms
• Short leap to timesharing
4/30/2017
21
VI: TIME SHARING
• Logical extension of multiprogramming
• Developed to give many users the illusion of
complete CPU attention
• Context Switchswitching occurs so quickly that
multiple users may interact with multiple programs
as they are running.
4/30/2017
22
VII: VIRTUAL MEMORY
• But memory is finite
• Load only the most heavily executed pieces of a
program into memory
• Keep the rest on (much cheaper/slower) disk
• Requires a memory management unit to convert
virtual addresses to physical address on the fly
4/30/2017
23
VIII: VIRTUAL MACHINES
• Create the illusion of multiple operating systems running on
the same physical hardware
• IBM’s CP/CMS and VM/370 (early seventies)
• VirtualBox, VMware (current)
4/30/2017
24
THREE KINDS OF PROCESSING: BATCH
• Resident monitor enabled 1st batch systems
• Collect similar jobs together, so that you have to
load (e.g.) the COBOL compiler only once
• No longer true. Batch jobs are context-switched like
interactive jobs
• Defining Feature
• Lack of interaction between user and job
• Often those that are compute/data intensive
• Run (e.g.) at night
4/30/2017
25
THREE KINDS OF PROCESSING:
TRANSACTION
• Short jobs requiring human interaction
• Requires both multiprogramming and timesharing
• Defining Feature
• Human i/o (e.g. ATM)
4/30/2017
26
THREE KINDS OF PROCESSING:
REAL TIME
• Where
• Industrial control systems
• Weapons systems
• Car fuel systems
• Defining Feature
• Processing must be completed within a fixed time
• A correct answer that arrives after it’s need is not correct
• Robot assembly line
4/30/2017
27
O/S MILESTONES (1)
• IBSYS
• Fifties
• Resident monitor
• IBM 1401/7094
• OS/360
•
•
•
•
Sixties
IBM 360
Multiprogramming
Frederick Brooks, The Mythical Man-Month
• CTSS (Conversational Timesharing System)
• Early sixties
• MIT for IBM 7098
• Early version of time sharing
4/30/2017
28
O/S MILESTONES (2)
• Multics
•
•
•
•
Mid sixties
MIT, Bell Labs, GE
Many seminal o/s ideas, time-sharing in particular
Idea of a computer utility
• OS/370
• Time sharing
• Virtual memory (but Manchester Atlas was first VM machine)
4/30/2017
29
O/S MILESTONES (3)
• Unix
• Ken Thompson worked on Multics
• He and Dennis Ritchie create a stripped-down,
one user version of Multics
• Early seventies
• DEC PDP-7
• Later ported to a PDP-11: led to the idea that an
o/s does not have to be hardware specific
• Closely related: PDP-11 version written in C
(Kernighan and Ritchie)
4/30/2017
30
O/S MILESTONES (4)
• MS-DOS
• Early 80s
• Built for IBM to exploit mass-marketed 8086
• Preceded by CP/M (Gary Kildall, consultant to Intel)
• Minix
• Mid 80s
• Teaching version of Unix to run on intel processors
4/30/2017
31
O/S MILESTONES (4)
• Linux
• 90’s
• Fully-featured o/s
• Linus Thorvalds
Hello everybody out there using minix - I'm doing a (free) operating
system (just a hobby, won't be big and professional like gnu) for
386(486) AT clones. This has been brewing since april, and is starting
to get ready. I'd like any feedback on things people like/dislike in
minix, as my OS resembles it somewhat (same physical layout of the
file-system (due to practical reasons) among other things).
I've currently ported bash(1.08) and gcc(1.40), and things seem to
work. This implies that I'll get something practical within a few
months, and I'd like to know what features most people would want.
Any suggestions are welcome, but I won't promise I'll implement
them :-)
Linus ([email protected])
PS. Yes – it's free of any minix code, and it has a multi-threaded fs. It
is NOT portable (uses 386 task switching etc), and it probably never
will support anything other than AT-harddisks, as that's all I have :-(.
4/30/2017
32
O/S MILESTONES (5)
• Windowing Systems
• Doug Engelbart SRI, Xerox Parcmouse, windows etc.
• Steve Jobs saw it during a visit Macintosh
• Microsoft Windows in all of its incarnations
4/30/2017
33
OS MILESTONES (6)
• Virtual Machines
• Create the illusion of multiple operating systems running on
the same physical hardware
• IBM’s CP/CMS and VM/370 (early seventies)
• VirtualBox, VMware (current)
4/30/2017
34
OS MILESTONES (7)
• Mobile Computing
• 1990s: Combine personal digital assistant (PDA) and mobile
phone
• Term “smartphone” coined in 1997
• Current Dominant OS
• Linux-based Android from Google
• iOS from Apple
4/30/2017
35