Intro / History
Download
Report
Transcript Intro / History
TDC 311
Introduction
Other NT/TDC/CINS courses
The other courses teach
–
–
–
–
–
–
–
–
protocols (TCP/IP, OSPF, HTTP, ARP,…)
standards (Ethernet, USB,…)
network administration
security
wireless
routers
VoIP
etc.
What will this course cover?
Imagine that we are going to take a network server
and tear it apart completely
What will we see?
–
–
–
–
–
–
–
Power supplies (voltages, current, resistance, diodes)
Memories (RAM, ROM)
Buses, clocks, timing signals
Operating systems (paging, threads, synchronization)
CPUs (registers, program counter, ALU)
I/O devices (disk drives)
and more
What are we waiting for? Let’s get started!
“Layers” of a Computer
Problem oriented language level (Java, C, etc.)
|
Assembly language level
|
Operating system machine level
|
Instruction set architecture level
|
Microarchitecture level
|
Digital logic level
|
Basic electronic circuits
0th Generation (1642 - 1940's)
Notable characteristics and events included:
Mechanical gears and electromechanical relays
In 1642 Blaise Pascal creates mechanical calculating machine
using gears, hand powered, performs + and -.
In 1834 Charles Babbage creates the Difference Engine which
runs a single algorithm to compute tables of numbers. Output
was punched copper plates. Never completed. Instead, began
work on Analytical Engine, a programmable machine. Never
completed. Was assisted by Ada Lovelace (first programmer)
to write code for machine.
In 1930's Konrad Zuse builds a series of automatic calculating
machines (Z1) similar to Babbage’s but using
electromechanical relays. Destroyed in 1944 by allied bombing
of Berlin.
1st Generation (1940's - early 50's)
Vacuum tubes
Absolute machine language using wired plug boards
No programming languages or operating systems
Programmer signed up for a block of time and brought own plug boards
Serial processing
In 1930's, John Atanasoff at Iowa State College designs and builds special
purpose computer using vacuum tubes. First electronic computer but still
debated. First computer to use RAM.
In 1943, Alan Turing designs and builds a computer (COLUSSUS) to help crack
Germany’s secret war code (ENIGMA).
In 1946, John Mauchly and J.Presper Eckert design and build first general
purpose electronic computer, the ENIAC. 18,000 vacuum tubes, 1500 relays,
and 30 tons. Hard-wired programs.
In 1946, John von Neumann writes paper on stored program concept.
In 1951 Eckert and Mauchly complete the first commercially sold computer, the
UNIVAC I. Used to predict the winner of presidential election 1952.
IBM creates Model 650. Slow, but used punch cards.
2nd Generation (1955 - 1965)
Transistor hardware, more reliable, sold commercially
Programmer would write program in FORTRAN, punch cards
Operator (or programmer) reads in program card deck + FORTRAN compiler
card deck - Wasteful! So...
Developed BATCH SYSTEM - operator batched all FTN programs together
with compiler, ran them, then batched all COBOL programs together with
compiler and ran them, etc. But this still needed a human, so...
Developed RESIDENT MONITOR - a program which kept the jobs running, one
after another; produced dumps; used simple JCL: $FTN $ASM $JOB ..... Still
slow, so...
Developed BUFFERING - input device reads multiple records, trying to “be
ready” for CPU.
FORTRAN introduced in 1957.
COBOL introduced in 1960.
DEC PDP-1 introduced in 1961. First mini, with 4K RAM, $120,000. 50 sold.
IBM introduces model 1401 business computer in 1961.
IBM introduces model 7094 scientific computer in 1962.
CDC introduces 6600 parallel processor number cruncher in 1964.
3rd Generation (1965 - 1980?)
IC technology
IBM S/360 series of computers (family) created - one operating system ran on all models.
OS was humongous! (Read Brooks - Mythical Man Month).
Developed MULTIPROGRAMMING - CPU switches from one job to next very quickly
when: I/O needed, job finishes (errs).
Developed SPOOLING (Simultaneous Peripheral Operation On-Line) - used with disk
system. Input cards are read to disk, OS gets next job/data from disk, writes output
records to disk. Jobs are then printed from disk. Overlaps I/O of one job with computation
of other jobs. Job pool - may have multiple jobs on disk ready to run - leads to JOB
SCHEDULING.
Developed TIME SHARING - multiprogramming with time slices. In a batch system, there
is no interaction. Good for large jobs. In a time sharing system, each program is given a
time slice. When time slice expires, CPU switches to next job. Gives illusion many jobs
are running at once. CPU now switches from job to job when: I/O needed, job finishes
(errs), time slice expires.
MULTICS OS developed - large complex OS running on a large complex computer (GE
645). Performed address translation, memory management (paging and segmentation),
protection features.
Ken Thompson wrote UNICS/UNIX based upon concepts in MULTICS. Dennis Ritchie
helped him rewrite UNIX in C.
3rd Generation (1965 - 1980?)
Developed REAL-TIME OS - SABRE airline reservation system.
Developed VIRTUAL MEMORY - looks like unlimited memory since
disk system is used (PAGING and SEGMENTATION).
Developed concept of PROCESS - concept of “job” did not fit. Job
had improper synchronization failed mutual exclusion, deadlocks.
Process helped to solve these problems - executable program +
associated data + associated files + registers + ...
Intel introduces 8080 microprocessor in 1974. General purpose 8-bit
64K RAM.
Motorola introduces 6800 in 1974.
Altair 8800 introduced in 1974.
Bill Gates rewrites BASIC for microcomputer. First programming
language on a micro. (1974)
Gary Kildall creates CP/M in 1974.
Steve Jobs and Steve Wozniak create Apple computer (1974-1975).
Apple II comes out in 1977.
4th Generation (1980 - ? )
Personal computers, LSI technology, single-user OS.
Developed NETWORK OS - loosely connected computers, each doing its own
thing.
Developed DISTRIBUTED OS - more tightly connected computers, working
together on a large problem.
SECURITY continued to improve, including access control, information flow
control, certification.
SYSTEM STRUCTURE evolved into a layered or hierarchical design
VAX VMS
OS/2
UNIX
MVS simplified
Windows NT
Concept of THREAD developed (lightweight process) - thread includes program
counter, register set, stack space. Shares code section, data section and OS
resources.
IBM introduces IBM PC with 64K, 8088 processor (1981).
Apple introduces LISA 68000 based (1984).
4th Generation (1980 - ? )
SUN introduces its own microprocessor based on RISC technology-the
SPARC (Scalable Processor ARChitecture).
Windows 3 (May 1990) introduced, lots of 3rd party support (unlike previous
versions) and modern look
Apple Mac 7 (May 1991) - TrueType fonts allowed for powerful use of ink-jet
printers, first virtual memory in consumer pc
Early 1990s - virtual reality
Digital’s Alpha architecture (1992) - 64-bit RISC
Linux (1992-93)
PowerPC (1993) - very powerful RISC processor
Apple Newton (1993) - first PDA, weighed 1 pound, 20 MHz Acorn RISC
Intel Pentium (1993) - CISC can run fast, 3.1 million transistors, 60 MHz
Apple’s Power Mac (March 1994) - first mainstream RISC pc
World Wide Web
OS/2 Warp (October 1994) - Third try, IBM finally got it right, second most
popular OS after Windows
Windows 95 – first really successful Microsoft Windows product
4th Generation (1980 - ? )
Toy Story – First all digital movie
NetWare v. 4, then 6
Windows Server NT (followed by much better 2000, 2003, 2008)
Linux
IPv6
Multi-core processors
Apple’s iPhone
Cloud computing
?
Binary Arithmetic
Read the Handout on Binary Arithmetic on my website
base 10, 2, and 16 number systems (and others?)
binary arithmetic (add long strings of binary/hex digits –
arithmetic check)
conversion from one form to another
integer representation
signed and unsigned integers
largest values, positive values, negative values
2's complement and 1’s complement
floating point fraction (mantissa) and exponent
floating point representation
binary coded decimal (BCD)
character encoding (ASCII, EBCDIC, and Unicode)
Basic Computer Organization
Also: Program Counter,
Instruction Register
Cache
Almost as fast
as CPU
Most recently used
instructions and data
More Basic Terminology
Bits, bytes, words
RAM and ROM
SRAM – static RAM
DRAM – dynamic RAM
SDRAM – synchronous dynamic RAM
More Basic Terminology
Magnetic tape
Disk drives
–
–
–
–
–
Total average access time Ta = Ts + 1/2r +b/r*N
where Ts=avg seek time = m*n+s where
m=constant that depends on drive; n=#tracks
traversed; s=startup time
r = rotational speed in RPS
b = # of bytes transferred
N = # of bytes on track
More Basic Terminology
CD-ROM – hold ~700 Mbytes
CD-R (recordable once)
CD-RW (rewritable)
DVD-ROM, DVD-Audio, DVD-RAM, DVDRW, DVD-R, DVD+RW
Blu-Ray DVD, (HD DVD obsolete)
More details on these in a later lecture