200 likes | 300 Views
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?.
E N D
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)
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, DVD-RW, DVD-R, DVD+RW • Blu-Ray DVD, (HD DVD obsolete) • More details on these in a later lecture