administrivia
play

Administrivia Website. cis.poly.edu/jsterling/cs3224 Text: Modern - PDF document

CS3224 Chapter One 9/14/09 CS3224 Operating Systems Introduction Administrivia Whats the course about? History Hardware basics System Structure 9/14/09 Sterling - CS3224 1 Administrivia Website.


  1. CS3224 Chapter One 9/14/09 CS3224 Operating Systems Introduction • Administrivia • What’s the course about? • History • Hardware basics • System Structure 9/14/09 Sterling - CS3224 1 Administrivia – Website. cis.poly.edu/jsterling/cs3224 – Text: Modern Operating Systems ; Tanenbaum. • Read the material before the lecture. – Instructor: Sterling; • jsterling@poly.edu; • LC117 • Office hours: See my website: http://cis.poly.edu/jsterling – Projects: • Two projects. • Work in pairs or alone. Your choice. • Pick your partner soon. First project starts in a couple of weeks. • Each project is 15% of the grade. 9/14/09 Sterling - CS3224 2 Sterling 1

  2. CS3224 Chapter One 9/14/09 Administrivia – Exams: • One midterm (30%) • Final Exam (40%) • Closed book. • Questions include multiple choice, short answer, essay and code. – Optional Homework • Hard copy turned in at the beginning of class. • Can only help your grade. • If you have questions, ask in class and we’ll go over them. After all, as usual, if you’re confused, someone else is too. – Coverage • Core material: chaps 1-6. • Unix and Windows details: chaps 10 & 11 • Additional material on virtualization (in chap 7) and security (chap 9) • Some outside material, too. There will be handouts/links as needed. 9/14/09 Sterling - CS3224 3 What’s the course about? • Will we write an OS in this course? – No. • Will we learn how to do super cool things with Windows or Unix? – No 9/14/09 Sterling - CS3224 4 Sterling 2

  3. CS3224 Chapter One 9/14/09 So, what will we learn? • Lots of terminology. (Sorry.) • First, what’s an OS? • The ideas and some of the algorithms behind: – Processes. – Deadlock. – Memory Management. – I/O management. – File Management. • In particular, how Unix and Windows handle these issues. 9/14/09 Sterling - CS3224 5 History • First Generation: 1945-1955 • Second Generation: 1955-1965 • Third Generation: 1965-1980 • Fourth Generation: 1980- 9/14/09 Sterling - CS3224 6 Sterling 3

  4. CS3224 Chapter One 9/14/09 History • First generation 1945-1955 – Technology: vacuum tubes, access time 100 ms. (that’s 1/10 of a second) – Language: machine language. – OS? Ha! – Input: switches, patch cords and punch cards 9/14/09 Sterling - CS3224 7 9/14/09 Sterling - CS3224 8 Sterling 4

  5. CS3224 Chapter One 9/14/09 History • Second Generation 1955-1965 – Technology: transistors, access time: 100 µs. – Storage: tape, then disks. – Languages: COBOL, Fortran, Algol, LISP and (of course) assembler. – OS: • “batch” systems / “monitor” – With SPOOLing • Experimental: CTSS supported – dual mode – memory protection – time sharing – Input: most often punch cards. 9/14/09 Sterling - CS3224 9 What’s a monitor? Monitor Read input tape Process commands Run jobs sequentially Refresh at end of job User Area (Rest of memory) 9/14/09 Sterling - CS3224 10 Sterling 5

  6. CS3224 Chapter One 9/14/09 Poly’s 7040 9/14/09 Sterling - CS3224 11 Batch processing and spooling here at Poly Decks of 2400 ft cards reel Small (cheap) computer (IBM 1401) Print images Input tape Big (expensive) Output tape (Card images) computer (print images) (IBM 7040) 9/14/09 Sterling - CS3224 12 Sterling 6

  7. CS3224 Chapter One 9/14/09 Poly’s 1401 (corner of 7040) 9/14/09 Sterling - CS3224 13 History • Third Generation 1965-1980 – Technology: Integrated Circuits. 1 µs and up. – Languages: PL/1, C, Basic… – OS: • Started with Batch, • Time sharing became wide spread. Why? Memory protection ! – Significant systems: • Hardware: – Mini-computers (e.g PDP series) – IBM 360 family • Major operating systems: OS 360 (Frederick Brooks), Multics, Unix. 9/14/09 Sterling - CS3224 14 Sterling 7

  8. CS3224 Chapter One 9/14/09 Thanks for the Memory 9/14/09 Sterling - CS3224 15 History • Multics (1965-2000) – Goal: create a computing utility. Focus on time-sharing. – Follow-up to CTSS. – AT&T, MIT and General Electric. – Target machine was the GE 635 mainframe. – Early example of many ideas used in later hardware and operating systems. • Combined segmentation and paging • Developed in high level language 9/14/09 Sterling - CS3224 16 Sterling 8

  9. CS3224 Chapter One 9/14/09 History Multics begat… • AT&T pulled out at the end of the 60’s. • AT&T researchers were without a cool operating system. • Ken Thompson decided to write a trimmed down version for personal use. • Found an under-utilized PDP-7 “minicomputer” as the target. • Used GE-635 for development. • Assembly language. • Later ported the OS to the hot new PDP-11 minicomputer. • Goal: rewrite OS in a high level language. – Thompson tried FORTRAN. Nah. – Then created B. Still no. – Dennis Ritchie improved on it… 9/14/09 Sterling - CS3224 17 History Unix Open Source • Originally universities and others got licenses for the source because AT&T didn’t figure it was worth much… • Berkeley added many features, resulting in BSD Unix. • TCP/IP was developed on BSD Unix. • The two versions diverged. • ’87 minimal version of Unix written by Tanenbaum for educational purposes. MINIX. Source provided. • Disgruntled MINIX users demanded more features. Tanenbaum refused to let MINIX get too large. (He did add support for hard drives.) • Meantime AT&T blocks Berkeley from making their source code free. 9/14/09 Sterling - CS3224 18 Sterling 9

  10. CS3224 Chapter One 9/14/09 Linux • A Finnish student decided to write his own version. Posts version 0.98 on the web in ~1990. • Thanks in part to Ma Bell, the penguin got more market share than the little devil. 9/14/09 Sterling - CS3224 19 4 th Generation 1980- • Largely focused on microprocessors, networking, distributed systems • Mid-70s: the Intel 8080 and CP/M (Gary Kildall) • ~80: 8086 and msdos. (similar to cp/m). • 1985: Windows 1.0. Graphical user interface for MSDOS – not an operating system. • 1990: Windows 3.0 for ‘386. • Windows 95. – virtual memory – multi-programming, etc – Later on, long file names. – fancy new GUI, closer to the Mac 9/14/09 Sterling - CS3224 20 Sterling 10

  11. CS3224 Chapter One 9/14/09 NT • Late 80’s Microsoft knew they were going to need a “real” OS – Hired VAX VMS designer, David Cutler for complete rewrite. – Targeting heavy business apps. Compete with OS/2 – Intended to be highly portable. • NT 3.1 in ‘93 – “Layered” – Looked like Windows 3.1 • NT 4 in ’96 – Layering was reduced to improve efficiency. – GUI was made compatible with Windows 95. • NT 5 in 2000 (actually named Windows 2000, but…) – added many features that had already appeared in Win ’98, such as support for USB and plug-and-play. • NT 5.1 – XP finally merged the “home” and “office” environment. 9/14/09 Sterling - CS3224 21 Improvements in NT vs. 95/98 • Support for multi-processor • File system security • Fully 32-bit (as opposed to having some legacy 16-bit) code • Fully reentrant • Shared memory visible only to the processes involved. • Better protection for operating system But less compatible with old MSDOS programs. 9/14/09 Sterling - CS3224 22 Sterling 11

  12. CS3224 Chapter One 9/14/09 Hardware • Processor: instruction set architecture • Protection: Dual mode, privileged instructions, memory protection • Computer view (with buses) • Memory hierarchy • I/O, Interrupts 9/14/09 Sterling - CS3224 23 Instruction Set Architecture (ISA) • Registers – Special purpose: • Program counter, Stack pointer, Processor Status Word • Pentium: EIP, ESP and EFLAGS • MIPS: ?? – General purpose: • Pentium: EAX, EBX, ECX, EDX. Not really totally general. • MIPS: S0, … T0, … • Instructions: – Arithmetic, Data transfer, Comparison, Branching – I/O – Halting … 9/14/09 Sterling - CS3224 24 Sterling 12

  13. CS3224 Chapter One 9/14/09 Assembly Language Examples MIPS x86 // S3 = S0 + S1 // BX = BX + AX Arithmetic ADD S3, S0, S1 ADD BX, AX Transfer data // S1 = S0 // BX = AX ADD S1, ZERO, S0 MOVE BX, AX Compare CMP AX, 1000 // if (AX == 100) … Conditional JZ Label Branch 9/14/09 Sterling - CS3224 25 Privileged Instructions • HALT – Who should be free to halt the computer? – Who should be free to write anything they want onto the hard drive or your screen? – Who should be free to changed the system time? • Some machine instructions have to be blocked from the “average” user program. – Called privileged instructions – Only the kernel should be permitted to use them – How does the hardware know when the kernel is running? – How do we switch to the kernel in order to do these things. 9/14/09 Sterling - CS3224 26 Sterling 13

Recommend


More recommend