Top Banner
1 Introduction to Operating Systems Yücel Saygın |Some of these slides are based on your text book and on the slides prepared by Andrew S. Tanenbaum
72
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 2005_Fall_CS307_Lecture_1.ppt

1

Introduction to Operating Systems

Yücel Saygın|Some of these slides are based on your text book and on the slides

prepared by Andrew S. Tanenbaum

Page 2: 2005_Fall_CS307_Lecture_1.ppt

2

Early Computers

• Charles Babbage (1791-1871) designed the first true digital computer called the analytical engine.

• That was purely mechanical and intended to do math operations

• The engine was supposed to be made of brass, and steam powered

• He did not actually built the machine but inspired others in the field.

Page 3: 2005_Fall_CS307_Lecture_1.ppt

3

Early Computers

• Babbage also thought of the concept of software

• And hired the first programmer (Lady Ada, Countess of Lovelace) for his analytical machine

Page 4: 2005_Fall_CS307_Lecture_1.ppt

4

Current Computer Systems

• A computer system consists of– hardware– system programs– application programs

Page 5: 2005_Fall_CS307_Lecture_1.ppt

5

What is an Operating System• It is the software that enables us the use the hardware• It is a resource manager

– Allocates system resources such as I/O devices, CPU etc

– Schedules different jobs etc

Page 6: 2005_Fall_CS307_Lecture_1.ppt

6

History of Computinghttp://www.computerhistory.org/

• Hewlett Packard was founded in 1939 by  David Packard and Bill Hewlett,

• Their first product, the HP 200A Audio Oscillator

• Walt Disney Pictures ordered eight of the 200B model to use during the creation of the movie “Fantasia.”

Page 7: 2005_Fall_CS307_Lecture_1.ppt

7

History of Computinghttp://www.computerhistory.org/

• Computer wars: – Germany vs Britain

Alan Turing: The bombe

Konrad Zuse: Zuse Z3

Page 8: 2005_Fall_CS307_Lecture_1.ppt

8

History of Operating Systems (2)

• First generation 1945 - 1955– vacuum tubes, plug boards

– Still very slow and used for scientific calculations

• No OS was needed• Programs were entered by setting some switches

Page 9: 2005_Fall_CS307_Lecture_1.ppt

9

A Famous Remark!

• "I think there is a world market for maybe five computers." – Thomas Watson, chairman of IBM - 1943

Page 10: 2005_Fall_CS307_Lecture_1.ppt

10

History of Operating Systems (2)• Second generation 1955 – 1965

– transistors, batch systems

– Universities started to buy computers (spending millions of dollars)

– Punched cards were used

– To run a job (a program or a set of related programs) first punch it and give the deck to the operators and wait for the output (batch operation)

– Computers were single user

IBM STRETCH DEC

PDP-1

Page 11: 2005_Fall_CS307_Lecture_1.ppt

11

History of Operating Systems (3)

• Structure of a typical Fortran Monitoring System job – a 2nd generation operating system

$JOB card specifies:•the max runtime in minutes•The account number to be charged•The programmers name

$FORTRAN card: tells the operatingSystem to load Fortran compiler$RUN means run the program withThe following data$END end of job

Page 12: 2005_Fall_CS307_Lecture_1.ppt

12

History of Operating Systems (1)

Early batch system– bring cards to IBM 1401 machine (good at card reading)– read cards to tape– put tape on IBM 7094 which does computing– put tape on IBM 1401 which prints output offline

Page 13: 2005_Fall_CS307_Lecture_1.ppt

13

Famous Remarks

• "I have traveled the length and breadth of this country and talked with the best people, and I can assure you that data processing is a fad that won't last out the year.“– The editor in charge of business books for Prentice Hall

- 1957

Page 14: 2005_Fall_CS307_Lecture_1.ppt

14

•Third generation 1965 – 1980

– Integrated Circuits

–Engineer at the Advanced Computing Systems Division of IBM, 1968, commenting on the microchip

– "But what ... is it good for?"

History of Operating Systems

Page 15: 2005_Fall_CS307_Lecture_1.ppt

15

•Third generation 1965 – 1980

– Integrated Circuits and multiprogramming

– IBM’s System/360 mainframe computer with a standard architecture designed to handle both scientific and commercial computing

History of Operating Systems

Page 16: 2005_Fall_CS307_Lecture_1.ppt

16

•Third generation 1965 – 1980

–OS/360 was the operating system of System/360

–First the single task “Primary Control Program” was introduced

–Then “Multiprogramming with a Fixed number of Tasks”

–Finally “Multiprogramming with a Variable number of Tasks”

– In multiprogramming, multiple jobs are in the memory and when a job finishes another can start immediately while the free memory partition is being reloaded

History of Operating Systems

Page 17: 2005_Fall_CS307_Lecture_1.ppt

17

History of Operating Systems (4)

• Multiprogramming system – three jobs in memory – 3rd generation

Page 18: 2005_Fall_CS307_Lecture_1.ppt

18

History of Operating Systems (4)

• The concept of spooling was introduced by 3rd generation operating systems– They loaded the programs from cards to disk, and

whenever a job is finished and a memory partition was available, it is loaded directly to memory.

• Third generation OSs were still not interactive, i.e., whenever there is an error, programmers would realize it after a couple of hours.

• This problem lead to timesharing systems where the user has an online terminal

Page 19: 2005_Fall_CS307_Lecture_1.ppt

19

History of OS

• MULTICS, another third generation OS introduced the concept of client server computing and influenced other OS

• MULTICS (father of all modern OS) led to the development of UNIX

• UNIX (1970, ATT) became popular with companies and government agencies, and people started to develop their own UNIX OS

• IEEE developed a standard for UNIX, called POSIX to prevent chaos.

• POSIX defined a standard set of system call interface that conformant UNIX systems should support.

Page 20: 2005_Fall_CS307_Lecture_1.ppt

20

History of OS

• Tanenbaum wrote a version of UNIX called MINIX with POSIX support for educational use.

• A Finnish student Linus Torvalds wrote a free production of MINIX called Linux

Page 21: 2005_Fall_CS307_Lecture_1.ppt

21

History of Operating Systems (4)• Fourth generation 1980 – present

– personal computers were developed after LSI (Large Scale Integration) circuits were invented.

– First Microcomputer:

• Intel 8080 CPU + attached 8-inch floppy disk

• First disk based OS CP/M (Control Program for Microcomputers)

– In 1980s IBM designed the IBM PC and contacted Bill Gates for an operating System

Page 22: 2005_Fall_CS307_Lecture_1.ppt

22

Famous Remark

• “There is no reason anyone would want a computer in their home.“– Ken Olson, president, chairman and founder of Digital Equipment

Corp. - 1977

Page 23: 2005_Fall_CS307_Lecture_1.ppt

23

History of Operating Systems (4)

• Bill Gates suggested IBM that they should look at CP/M (one of the the most successful OS for microcomputers at that time, by Gary Kildall)

• The biggest mistake of all:

– Kindall refused to sign a non-disclosure agreement

• IBM went back to Bill Gates and signed a contract with him to write an OS for their new home computer

• MS-DOS was based on QDOS, the "Quick and Dirty Operating System" written by Tim Paterson of Seattle Computer Products,

• QDOS was based on Gary Kildall's CP/M

• Microsoft bought the rights to QDOS for $50,000

Page 24: 2005_Fall_CS307_Lecture_1.ppt

24

History of Operating Systems (4)

• Early MS-DOS was very primitive but later versions included advanced features taken from UNIX

• The early OS for microcomputers were based on users typing in commands from the keyboard

• Doug Engelbart from SRI invented the Graphical User Interface (GUI) with windows, icons, menus, and mouse.

Page 25: 2005_Fall_CS307_Lecture_1.ppt

25

Famous Remark

• “We don't see Windows as a long-term graphical interface for the masses.“– A Lotus Software Development official, while

demonstrating a new DOS version - 1989

Page 26: 2005_Fall_CS307_Lecture_1.ppt

26

History of Operating Systems (4)

• Steve Jobs saw the value of GUI in a PC and developed the Apple computer with GUI (Apple Macintosh) in his garage.

• He is also the co-founder of Pixar which has created very successful animated films: Toy Story ; A Bug's Life; Toy Story 2; Finding Nemo; Monsters.

Page 27: 2005_Fall_CS307_Lecture_1.ppt

27

History of Operating Systems (4)• Microsoft developed a GUI-based system called Windows which

originally ran on top of MS-DOS (just as a GUI to DOS)

• Windows 95 and 98 were real GUI based operating systems still based on 16 bit Intel assembly language

• Windows NT is 32-bit rewrite from scratch version of Windows 98.

• Windows 2000 (Windows NT version 5.0), Windows Me.

Page 28: 2005_Fall_CS307_Lecture_1.ppt

28

Interesting TV Series

• Pirates of Silicon Valley– Available in information center as VHS

Page 29: 2005_Fall_CS307_Lecture_1.ppt

29

The Operating System Zoo

• Mainframe operating systems– Room-size computers– High I/O capacity– Offers:

• batch processing (no interaction, such as large reports)

• Transaction processing (small requests)

• Timesharing (multiple users sitting in front of clients)

Page 30: 2005_Fall_CS307_Lecture_1.ppt

30

Famous Forcast

• "Computers in the future may weigh no more than 1.5 tons." –– Popular Mechanics, forecasting the relentless march of

science, 1949

Page 31: 2005_Fall_CS307_Lecture_1.ppt

31

The Operating System Zoo

• Server operating systems– Offer services like print, file, or web– UNIX, Windows 2000, Linux

• Multiprocessor operating systems– Parallel computing

• Personal computer operating systems– Single user with a good GUI, such as Windows

98, Windows 2000, Macintosh OS, Linux

Page 32: 2005_Fall_CS307_Lecture_1.ppt

32

The Operating System Zoo

• Real-time operating systems– E.g. industrial process control systems where each job must be

completed in the specified time.– Hard real-time (nuclear reactor control systems) or soft-real

time systems (e.g multimedia systems) depending on the acceptance of missing deadlines

• Embedded operating systems:– Real-time systems with some resource constraints like

memory, CPU, power.

• Smart card operating systems– Extremely primitive OS running on credit card sized devices

with a CPU.

Page 33: 2005_Fall_CS307_Lecture_1.ppt

33

Computer Architecture• Evolution:

– Charles Babbage: • Difference Engine, automatically calculated the logarithmic tables etc

• He did not implement it cause he found another idea, the analytical engine

• His difference engine was reconstructed from his drawings in 1990s by a team at London Science Museum from iron, bronze and steel, consisting of 4000 components, and weighing 3 tons

• performed its first sequence of calculations in the early 1990's and returned results to 31 digits of accuracy,

• But, each calculation requires the user to turn a crank hundreds, sometimes thousands of times (body building while running a program)

Page 34: 2005_Fall_CS307_Lecture_1.ppt

34

Computer Architecture• Evolution:

– Charles Babbage: • Analytical Steam Engine (intended to work with steam power)

• was intended to use loops to control an automatic calculator, which could make decisions based on the results of previous computations.

• This machine was also intended to employ several features subsequently used in modern computers, including sequential control, branching, and looping.

• was never completed cause he would come up with another idea to improve his machine

Page 35: 2005_Fall_CS307_Lecture_1.ppt

35

Computer Architecture• Computers of Today:

– “It is evident that the machine must be capable of storing in some manner not only the digital information needed in a given computation…, but also the instructions which govern the actual routines to be performed on the numerical data”

– Von Neumann computer architecture• Based on the idea that the machine has a fixed set of electronic parts

whose actions are determined by a variable program

– Hardware in Von Neumann computer • CPU (Arithmetic Logic Unit + Control Unit)• Memory Unit• I/O Devices• Busses to interconnect the other components

Page 36: 2005_Fall_CS307_Lecture_1.ppt

36

Computer Hardware

• Components of a simple personal computer

Monitor

Bus

Page 37: 2005_Fall_CS307_Lecture_1.ppt

37

CPU• Brain of the computer

– ALU (Arithmetical- Logical Unit)

– CU (Control Unit, fetch-execute-decode instructions)

• Has a certain set of instructions it can recognize and execute

• Basic CPU cycle– Fetch the next instruction

– Decode it to determine its type and operands

– Execute it

– …..

• Programs are list of instructions executed by the CPU

• When the computer powers up, CU of CPU starts the fetch-decode-execute cycle

• Instructions may be OS instructions or other programs

Page 38: 2005_Fall_CS307_Lecture_1.ppt

38

CPU//Assembly language that does a = b + c

load R3, b // Copy the value of b from memory to R3

load R4, c // Copy the value for c from memory to R4

Add R3, R4 // sum placed in R3

Store R3, a // store the sum into memory cell a

Decode Unit

PC

Exec Unit

Fetch Unit

IR

3054

Load R4, c

3046

3050

3054

3058

Main Memory

0100101111…10

Page 39: 2005_Fall_CS307_Lecture_1.ppt

39

CPU• Registers hold key variables and temporary

results• They are faster to access than the main

memory• Special Registers:

– Program Counter contains the memory address of the next instruction to be fetched

– Instruction Register contains the current instruction

– Stack pointer points to the top of the current stack in memory

– Program status word contains condition bits set by comparison instructions, and control bits

• Instructions are about loading an instruction to registers and manipulating the registers and memory locations

Program Counter

Registers

Stack Pointer

Program Stat Word

General Register1

General Register 2

Page 40: 2005_Fall_CS307_Lecture_1.ppt

40

Registers and OS

• OS should be aware of the registers that keep the current state of a running program

• When OS stops running a program it should save all the registers to restore the current state of the program later on

Page 41: 2005_Fall_CS307_Lecture_1.ppt

41

CPU Modes• A bit in PSW controls the mode• Kernel (supervisor) Mode :

– CPU can execute every instruction in its instruction set– CPU can use every feature of the hardware– OS runs in kernel mode

• User Mode:– Only a subset of instructions can be run– And a subset of hardware features are accessed– Generally all instructions involving I/O and Memory protection

are disallowed in that mode

• To obtain OS services, a user program must make a system call that traps into kernel mode and invokes the OS

• Trap instruction switches from user mode to kernel mode and starts the operating system (system calls and errors such as division by zero causes trap instructions)

Page 42: 2005_Fall_CS307_Lecture_1.ppt

42

trap

Mode (supervisor/user)

S Trap Table

Trusted code

USER SUPERVISOR

Page 43: 2005_Fall_CS307_Lecture_1.ppt

43

Pipelining

• Parallelize the fetch, decode, execute sequence• Three stage pipeline : While executing instruction

N, decode instruction N+1, and fetch instruction N+2

• What happens when a conditional branch occurs in an instruction?

Page 44: 2005_Fall_CS307_Lecture_1.ppt

44

Computer Hardware Review (2)

(a) A three-stage pipeline (three instructions processed in 1 cycle)

(b) A superscalar CPU (with multiple execution units)

Page 45: 2005_Fall_CS307_Lecture_1.ppt

45

Pipelining

Instruction N+2

Instruction N+3

Instruction N + 4

One CPU Cycle

Instruction N + 1

Instruction N

Fetch NDecode NFetch N+1

Execute NDecode N+1Fetch N+2

Execute N+1Decode N+2Fetch N+3

Execute N+2Decode N+3Fetch N+4

Page 46: 2005_Fall_CS307_Lecture_1.ppt

46

Memory Hierarchy

• Magnetic Tape : – backup purposes and for storing very large data sets.

– One dimensional, only sequential access is possible

– Reliable (no tape crashes, or time based data corruption)

– Was the main data storage medium of the past

• Optic CDs:– Faster than tape

– Used for permanent storage (now rewritable)

Page 47: 2005_Fall_CS307_Lecture_1.ppt

47

Memory Hierarchy

• Magnetic disks:– are faster than tapes and CDs

– They are the main storage medium these days

– Data stored in concentric cylinders

– Disk head moves in discrete steps

– Each position of the disk head identifies a track (divided into multiple sectors, typically 512 bytes)

– Rotates continuously with a certain speed (e.g. 10000 rpm)

Page 48: 2005_Fall_CS307_Lecture_1.ppt

48

Computer Hardware Review (4)

Structure of a disk drive

Page 49: 2005_Fall_CS307_Lecture_1.ppt

49

Disk StructurePicture is from : http://www.jegsworks.com/Lessons/lesson6/lesson6-3.htm

A surface with 3 tracks

•Track is a sequence of bits on a circular region on the surface of the plate

Page 50: 2005_Fall_CS307_Lecture_1.ppt

50

Disk StructurePicture is from : http://www.jegsworks.com/Lessons/lesson6/lesson6-3.htm

•A track consists of a set of sectors defined with a magnetic marking and and ID number

•Cluster is a collection of sectors

Page 51: 2005_Fall_CS307_Lecture_1.ppt

51

Disk StructurePicture is from : http://www.jegsworks.com/Lessons/lesson6/lesson6-3.htm

•Cylinder is the collection of tracks with the same radius

• Addressing : 1) CHS (Cylinder-head-sector) used in most IDE drives

2) LBA (Logical Block Address) used in

SCSI and advanced IDE drives

• Disk Cache (Buffer) : Frequently used data is stored in the RAM of the Hard Disk to improve read performance

Page 52: 2005_Fall_CS307_Lecture_1.ppt

52

Disk Access

• Data Transfer Rate (DTR) : The rate at which bits are read from disk and sent to the controller

• Rotational Latency: The avg time to locate a bit on a track

• Seek time : Avg time for locating the track

Page 53: 2005_Fall_CS307_Lecture_1.ppt

53

Disk Formatting

• Low Level formatting : dividing the disk into tracks and sectors (usually Hard Disks are already formatted)

• Partitioning – divides the disk drive into logical drives (C: D: E:) (using fdisk

command in DOS)

– Every disk drive has a primary partition (say C:) plus some extended partitions

• High Level Formatting : Preparing drive partitions for the OS by creating a root directory, creating a FAT etc.

Page 54: 2005_Fall_CS307_Lecture_1.ppt

54

DiskCapacity

• Depends on:1. Number of sides used,

2. How close the bits are (denser the better)

3. Number of tracks on disk

– 2. And 3. determine the bits/square-inch

– Early hard disks were 40 MB

– Nowadays hundreds of GB

Page 55: 2005_Fall_CS307_Lecture_1.ppt

55

File System• File system enables us to store and access data on various

storage systems– FAT16 (DOS and Windows 3.x)

– FAT32 (Windows95 and higher, FAT16 can be converted to FAT32 )

– NTFS (Windows NT, not compatible with FAT16 or FAT32)

• Disk is addresses by clusters (collection of sectors, ex: 512x4 bytes, can be more for larger disks)

Page 56: 2005_Fall_CS307_Lecture_1.ppt

56

Memory Hierarchy• Disks and tapes are mechanical devices, therefore they are

slow compared to (RAM and Cache)

• Main Memory (Random Access Memory) : – Volatile

– Much Much faster than magnetic disks but more expensive too

• Cache:– Faster than RAM and more expensive

– CPU requests first go to cache, and if they are there (cache hit) then fine, if not there (cache miss) then RAM is accessed

– There can be multiple cache levels

– Cache is divided into cache lines (usually 64 bytes at each line)

Page 57: 2005_Fall_CS307_Lecture_1.ppt

57

Memory Hierarchy

• Registers– They are the fastest accessible memory locations

– Placed at the CPU.

– They are usually of size 32 bits, or 64 bits depending on the CPU type

Page 58: 2005_Fall_CS307_Lecture_1.ppt

58

Memory Hierarchy

• Read Only Memory (ROM)– Write once, read many times

– Low level I/O cards

– Code for starting the computer

• Electrically Erasable Rom (EEPROM)– Non volatile

• Flash RAM– Non volatile

Page 59: 2005_Fall_CS307_Lecture_1.ppt

59

Memory Hierarchy

• CMOS (Complementary Metal Oxide Semiconductor)– Volatile but can be sustained with mother board battery

for years.

– May give checksum errors when being corrupted

– Very small, 64 bytes.

– Holds the current time and date, configuration parameters (like which disk to boot from etc.)

Page 60: 2005_Fall_CS307_Lecture_1.ppt

60

Yet another famous quote!

• "640K ought to be enough for anybody." – Bill Gates, 1981

Page 61: 2005_Fall_CS307_Lecture_1.ppt

61

Computer Hardware Review (3)

• Typical memory hierarchy– numbers shown are rough approximations

Page 62: 2005_Fall_CS307_Lecture_1.ppt

62

Moore’s Law

• The figures in the previous slide reflect the state of year 2001, and typical numbers change every year.

• In General Moore’s Law:– The observation made in 1965 by Gordon Moore (co-founder of

Intel) – He observed that the number of transistors per square inch on

integrated circuits had doubled every year since the integrated circuit was invented.

– He predicted that this will continue for the near future.– The pace slowed down a little to 18 months (instead of 12) and

this is the current definition of Moore's Law, – Most experts expect Moore's Law to hold for at least another two

decades.

Page 63: 2005_Fall_CS307_Lecture_1.ppt

63

Main Memory

• It is a sequence of subcells

• Each subcell can store only two values, 0, or 1 (one bit)

• 8 subcells (bits) is a cell = 1 byte

• divided into words (of size 2 or 4 bytes)

• Byte addressible

Page 64: 2005_Fall_CS307_Lecture_1.ppt

64

Compiling, Linking and Loading

• Each processor has a set of predefined instructions that it can understand– Ex (Intel 8088) : C7 C0 C5 9A – This tells the processor to load register AX with data 9AC

• Assembly language defines a set of symbolic instructions instead of OpCodes (like C7)– Ex (Intel 8088) : MOV AX, 9AC5H– Load register AX with data 9AC5 (written in Hexadecimal format)

• The programs that you write are too high level• A program needs to be compiled into a sequence of instructions

(Machine Language) • Machine Language can be directly fetched, decoded and executed

by the CPU

Page 65: 2005_Fall_CS307_Lecture_1.ppt

65

Multi programming

• A program needs to be loaded into main memory before it can be executed

• Multiple programs in RAM• Problems:

– How to protect programs from one another?– How to handle relocation?

• We do not know which MM location the program will be loaded• We need to handle the addresses referenced in the program

• Solution– Modify all addresses when loading (X)– Do it on-the-fly during execution (X)– Use base and limit registers (++)

Page 66: 2005_Fall_CS307_Lecture_1.ppt

66

Multi programming

• Base register points to the start of the program text• Limit register tells how large the combined program and data

are• When an instruction is to be fetched:

– Hardware checks to see if the PC (program counter) is less than the limit register

– If so adds it to the base register and sends the sum the the Main Memory.

– Base register contents are added to every memory address reference, so program can not reference the memory below base register

– Limit register makes it impossible to reference locations above it

• Both Protection and Relocation problems are solved with base and limit registers

Page 67: 2005_Fall_CS307_Lecture_1.ppt

67

Computer Hardware Review (5)

One base-limit pair and two base-limit pairs

Page 68: 2005_Fall_CS307_Lecture_1.ppt

68

I/O Devices

• An input device transfers data from a mechanism like keyboard, mouse, touch screen, or microphone into a CPU register

• CPU will then store the data into Main Memory

• For Output devices, CPU fetches the information from main memory to its registers and transfers this information via the bus to an output device like screen, speaker, or printer.

• Communication devices : serial and parallel ports, infrared transmitter/receivers, wireless network cards, network interface cards

Page 69: 2005_Fall_CS307_Lecture_1.ppt

69

CPU DISK CONTROLLER

DISK PRINTER

PRINTER CONTROLLER

MEMORY

MEMORY CONTROLLER

•Device controllers have microprocessors, •They can work in parallel. •They can read/write devices and memory in parallel. •They can tell CPU when they are done.

Page 70: 2005_Fall_CS307_Lecture_1.ppt

70

Interrupts

• Once a device is started by the device driver, the application can not proceed until the operation is complete

• The Device driver can do:– Polling and busy-waiting (continuously checking the flags of the

device)

– Or the device can signal the CPU when it has finished its job

Page 71: 2005_Fall_CS307_Lecture_1.ppt

71

Interrupts• An interrupt request flag is added to CPU and control unit

checks this flag during each fetch-execute cycle.

• All the device done flags are connected to the interrupt request flag using OR logic.

• When a “done” flag is set for any device, then the interrupt request flag is also set informing the control unit of CPU

Page 72: 2005_Fall_CS307_Lecture_1.ppt

72

Computer Hardware Review (6)

(a) Steps in starting an I/O device and getting interrupt(b) How the CPU is interrupted

(a) (b)