Introduction to Operating Systems (Part I)

Amir H. Payberah [email protected]

Amirkabir University of Technology (Tehran Polytechnic)

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 1 / 48 Course Information

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 2 / 48 I Topics we will cover include: • Process management • Memory management • File systems • I/O management • Security and privacy

Course Objective

I The purpose of this course is to teach the design of operating sys- tems.

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 3 / 48 Course Objective

I The purpose of this course is to teach the design of operating sys- tems.

I Topics we will cover include: • Process management • Memory management • File systems • I/O management • Security and privacy

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 3 / 48 I System Programming, 2nd Edition , O’Relly Media, 2013

I The Linux Programming Interface Michael Kerrisk, No Starch Press, 2010

I Linux Device Drivers, 3rd Edition Jonathan Corbet et al., O’Relly Media, 2005

Course Textbooks

I Operating System Concepts, 9th Edition Avil Silberschatz et al., Wiley, 2013

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 4 / 48 Course Textbooks

I Operating System Concepts, 9th Edition Avil Silberschatz et al., Wiley, 2013

I Linux System Programming, 2nd Edition Robert Love, O’Relly Media, 2013

I The Linux Programming Interface Michael Kerrisk, No Starch Press, 2010

I Linux Device Drivers, 3rd Edition Jonathan Corbet et al., O’Relly Media, 2005

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 4 / 48 Course Examination

I Mid term exam: 30%

I Final exam: 30%

I Lab assignments: 40% • Seven programming assignments inC • Students will work in groups of three

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 5 / 48 Course Web Site

I You can find all the course information on the course web page: http://www.sics.se/∼amir/os14.htm

I Use the course discussion forum if you have any questions.

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 6 / 48 What is an Operating System?

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 7 / 48 What is an Operating System?

I A program that acts as an intermediary between a user of a computer and the computer hardware.

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 8 / 48 What is an Operating System?

I A program that acts as an intermediary between a user of a computer and the computer hardware.

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 8 / 48 What is an Operating System?

I A program that acts as an intermediary between a user of a computer and the computer hardware.

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 8 / 48 I Make the computer system convenient to use.

I Use the computer hardware in an efficient manner.

Operating System Goals

I Execute user programs and make solving user problems easier.

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 9 / 48 I Use the computer hardware in an efficient manner.

Operating System Goals

I Execute user programs and make solving user problems easier.

I Make the computer system convenient to use.

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 9 / 48 Operating System Goals

I Execute user programs and make solving user problems easier.

I Make the computer system convenient to use.

I Use the computer hardware in an efficient manner.

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 9 / 48 I OS is a program controller • Controls execution of programs to prevent errors and improper use of the computer.

What Operating Systems Do

I OS is a resource allocator • Manages all resources. • Decides between conflicting requests for efficient and fair resource use.

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 10 / 48 What Operating Systems Do

I OS is a resource allocator • Manages all resources. • Decides between conflicting requests for efficient and fair resource use.

I OS is a program controller • Controls execution of programs to prevent errors and improper use of the computer.

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 10 / 48 I The operating system is the one program running at all times on the computer, usually called the kernel.

I Everything else is either a system program or an application program.

Operating Systems Definition

I No universally accepted definition.

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 11 / 48 I Everything else is either a system program or an application program.

Operating Systems Definition

I No universally accepted definition.

I The operating system is the one program running at all times on the computer, usually called the kernel.

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 11 / 48 Operating Systems Definition

I No universally accepted definition.

I The operating system is the one program running at all times on the computer, usually called the kernel.

I Everything else is either a system program or an application program.

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 11 / 48 Four Components of a Computer System (1/4)

I Hardware • Provides basic computing resources. • CPU, memory, I/O devices, ...

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 12 / 48 Four Components of a Computer System (2/4)

I Operating system • Controls and coordinates use of hardware among various applications and users.

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 13 / 48 Four Components of a Computer System (3/4)

I Application programs • Compilers, web browsers, database systems, video games, ... I System programs • File manipulation, program loading and execution, ...

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 14 / 48 Four Components of a Computer System (4/4)

I Users • People, machines, other computers

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 15 / 48 Operating Systems

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 16 / 48 A Brief History of Operating Systems

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 17 / 48 First Generation: 1945-1955 (1/3)

I No operating system

I Vacuum tubes and plugboards

ENIAC (Electronic Numerical Integrator And Computer): the first electronic general-purpose computer. [http://en.wikipedia.org/wiki/ENIAC]

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 18 / 48 I Computer were programmed by physically re-wiring it; later, through stored programs(von Neumann architecture).

I Programs written in machine or assembly language.

First Generation: 1945-1955 (2/3)

I Human was the operator and programmer.

John von Neumann [http://ysfine.com/wigner/neumann.html]

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 19 / 48 I Programs written in machine or assembly language.

First Generation: 1945-1955 (2/3)

I Human was the operator and programmer.

I Computer were programmed by physically re-wiring it; later, through stored programs(von Neumann architecture).

John von Neumann [http://ysfine.com/wigner/neumann.html]

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 19 / 48 First Generation: 1945-1955 (2/3)

I Human was the operator and programmer.

I Computer were programmed by physically re-wiring it; later, through stored programs(von Neumann architecture).

I Programs written in machine or assembly language.

John von Neumann [http://ysfine.com/wigner/neumann.html]

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 19 / 48 First Generation: 1945-1955 (3/3)

I Problems:

• Serial processing: users had access to the computer one by one in series.

• Users have to write again and again the same routines.

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 20 / 48 Second Generation: 1955-1965 (1/5)

I Transistors

I Mainframes

IBM 7094 at Columbia University [http://www.columbia.edu/cu/computinghistory/1965.html]

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 21 / 48 I Job • A program or set of programs • A programmer would first write the program on paper (in FORTRAN or assembly), then punch it on cards.

Second Generation: 1955-1965 (2/5)

I Separation between operators and programmers. • The programmer: prepares her/his job off-line. • The operator: runs the job and delivers a printed output.

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 22 / 48 Second Generation: 1955-1965 (2/5)

I Separation between operators and programmers. • The programmer: prepares her/his job off-line. • The operator: runs the job and delivers a printed output.

I Job • A program or set of programs • A programmer would first write the program on paper (in FORTRAN or assembly), then punch it on cards.

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 22 / 48 I The operator pre-reads jobs onto a magnetic tape.

I The operator loads a special program (monitor) that reads the jobs from the tape and run them sequentially.

I The monitor program writes the output of each job on a second magnetic tape.

I The operator brings the full output tape for offline printing.

Second Generation: 1955-1965 (3/5)

I Batch the jobs together.

[A.S. Tanenbaum et al., Operating Systems Design and Implementation, 2006]

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 23 / 48 I The operator loads a special program (monitor) that reads the jobs from the tape and run them sequentially.

I The monitor program writes the output of each job on a second magnetic tape.

I The operator brings the full output tape for offline printing.

Second Generation: 1955-1965 (3/5)

I Batch the jobs together.

I The operator pre-reads jobs onto a magnetic tape.

[A.S. Tanenbaum et al., Operating Systems Design and Implementation, 2006]

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 23 / 48 I The monitor program writes the output of each job on a second magnetic tape.

I The operator brings the full output tape for offline printing.

Second Generation: 1955-1965 (3/5)

I Batch the jobs together.

I The operator pre-reads jobs onto a magnetic tape.

I The operator loads a special program (monitor) that reads the jobs from the tape and run them sequentially.

[A.S. Tanenbaum et al., Operating Systems Design and Implementation, 2006]

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 23 / 48 I The operator brings the full output tape for offline printing.

Second Generation: 1955-1965 (3/5)

I Batch the jobs together.

I The operator pre-reads jobs onto a magnetic tape.

I The operator loads a special program (monitor) that reads the jobs from the tape and run them sequentially.

I The monitor program writes the output of each job on a second magnetic tape.

[A.S. Tanenbaum et al., Operating Systems Design and Implementation, 2006]

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 23 / 48 Second Generation: 1955-1965 (3/5)

I Batch the jobs together.

I The operator pre-reads jobs onto a magnetic tape.

I The operator loads a special program (monitor) that reads the jobs from the tape and run them sequentially.

I The monitor program writes the output of each job on a second magnetic tape.

I The operator brings the full output tape for offline printing.

[A.S. Tanenbaum et al., Operating Systems Design and Implementation, 2006]

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 23 / 48 • A special program that controls the sequence of events.

• Always resides in main memory.

• Reads in jobs one at a time, places a job in the user program area of the memory, and passes control to it.

• Upon completion, the user program branches back to the monitor, which immediately loads and executes the next job

Second Generation: 1955-1965 (4/5)

I Monitor

• It is the ancestor of modern O/S.

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 24 / 48 • Always resides in main memory.

• Reads in jobs one at a time, places a job in the user program area of the memory, and passes control to it.

• Upon completion, the user program branches back to the monitor, which immediately loads and executes the next job

Second Generation: 1955-1965 (4/5)

I Monitor

• It is the ancestor of modern O/S.

• A special program that controls the sequence of events.

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 24 / 48 • Reads in jobs one at a time, places a job in the user program area of the memory, and passes control to it.

• Upon completion, the user program branches back to the monitor, which immediately loads and executes the next job

Second Generation: 1955-1965 (4/5)

I Monitor

• It is the ancestor of modern O/S.

• A special program that controls the sequence of events.

• Always resides in main memory.

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 24 / 48 • Upon completion, the user program branches back to the monitor, which immediately loads and executes the next job

Second Generation: 1955-1965 (4/5)

I Monitor

• It is the ancestor of modern O/S.

• A special program that controls the sequence of events.

• Always resides in main memory.

• Reads in jobs one at a time, places a job in the user program area of the memory, and passes control to it.

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 24 / 48 Second Generation: 1955-1965 (4/5)

I Monitor

• It is the ancestor of modern O/S.

• A special program that controls the sequence of events.

• Always resides in main memory.

• Reads in jobs one at a time, places a job in the user program area of the memory, and passes control to it.

• Upon completion, the user program branches back to the monitor, which immediately loads and executes the next job

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 24 / 48 Second Generation: 1955-1965 (5/5)

I Problems:

• A lot of CPU time is still wasted waiting for I/O instructions to complete.

• I/O devices much slower than processor.

[W. Stallings, Operating Systems: Internals and Design Principles, 2011]

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 25 / 48 Third Generation: 1965-1980 (1/5)

I Integrated Circuits (ICs)

IBM 360 [http://www.computermuseum.li/Testpage/IBM-360-1964.htm]

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 26 / 48 Third Generation: 1965-1980 (2/5)

I Multiprogrammed batch systems.

I Load two jobs in memory: while one job is waiting for I/O, the processor could switch to the other job.

[W. Stallings, Operating Systems: Internals and Design Principles, 2011]

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 27 / 48 Third Generation: 1965-1980 (3/5)

I Expand to three, four or more jobs.

I Jobs are kept in main memory at the same time and the CPU is multiplexed among them or multiprogrammed.

[W. Stallings, Operating Systems: Internals and Design Principles, 2011]

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 28 / 48 I Tasks kept running until they performed an operation that required waiting for an external event such as I/O.

I But, in a multiple-user system, users want to see their program running as if it was the only program in the computer.

I Solution? time-sharing or preemptive multitasking systems.

Third Generation: 1965-1980 (4/5)

I Multiprogramming alone does not give any guarantee that a program will run in a timely manner.

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 29 / 48 I But, in a multiple-user system, users want to see their program running as if it was the only program in the computer.

I Solution? time-sharing or preemptive multitasking systems.

Third Generation: 1965-1980 (4/5)

I Multiprogramming alone does not give any guarantee that a program will run in a timely manner.

I Tasks kept running until they performed an operation that required waiting for an external event such as I/O.

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 29 / 48 I Solution? time-sharing or preemptive multitasking systems.

Third Generation: 1965-1980 (4/5)

I Multiprogramming alone does not give any guarantee that a program will run in a timely manner.

I Tasks kept running until they performed an operation that required waiting for an external event such as I/O.

I But, in a multiple-user system, users want to see their program running as if it was the only program in the computer.

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 29 / 48 Third Generation: 1965-1980 (4/5)

I Multiprogramming alone does not give any guarantee that a program will run in a timely manner.

I Tasks kept running until they performed an operation that required waiting for an external event such as I/O.

I But, in a multiple-user system, users want to see their program running as if it was the only program in the computer.

I Solution? time-sharing or preemptive multitasking systems.

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 29 / 48 I Birth of UNIX: CTSS → MULTICS → UNIX

Third Generation: 1965-1980 (5/5)

I Time-sharing • A logical extension of multiprogramming for handling multiple interactive jobs among multiple users. • Hardware timer interrupt: switching jobs.

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 30 / 48 Third Generation: 1965-1980 (5/5)

I Time-sharing • A logical extension of multiprogramming for handling multiple interactive jobs among multiple users. • Hardware timer interrupt: switching jobs.

I Birth of UNIX: CTSS → MULTICS → UNIX

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 30 / 48 Fourth Generation: 1980-Present (1/3)

I Personal Computers (PCs)

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 31 / 48 Fourth Generation: 1980-Present (2/3)

I From multiple users back to a single user.

I Multitasking a central feature of modern PC operating systems.

I PC systems emphasize user convenience.

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 32 / 48 Fourth Generation: 1980-Present (3/3)

I GNU (GNU’s Not Unix!): 1983

I Mac OS: 1984

I Microsoft Windows: 1985

I Linux: 1991

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 33 / 48 I At that time, all the programmers used to share their code freely.

I In 1980, software companies refused to share the code (copyright).

I In 1985, in response, Stallman, founded the Free Software Founda- tion (FSF) and published the GNU manifesto. • Outlined his motivation for creating a free OS (GNU), which would be compatible with Unix.

GNU/Linux (1/4)

I In 1971 Richard Matthew Stallman (RMS) joined MIT.

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 34 / 48 I In 1980, software companies refused to share the code (copyright).

I In 1985, in response, Stallman, founded the Free Software Founda- tion (FSF) and published the GNU manifesto. • Outlined his motivation for creating a free OS (GNU), which would be compatible with Unix.

GNU/Linux (1/4)

I In 1971 Richard Matthew Stallman (RMS) joined MIT.

I At that time, all the programmers used to share their code freely.

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 34 / 48 I In 1985, in response, Stallman, founded the Free Software Founda- tion (FSF) and published the GNU manifesto. • Outlined his motivation for creating a free OS (GNU), which would be compatible with Unix.

GNU/Linux (1/4)

I In 1971 Richard Matthew Stallman (RMS) joined MIT.

I At that time, all the programmers used to share their code freely.

I In 1980, software companies refused to share the code (copyright).

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 34 / 48 GNU/Linux (1/4)

I In 1971 Richard Matthew Stallman (RMS) joined MIT.

I At that time, all the programmers used to share their code freely.

I In 1980, software companies refused to share the code (copyright).

I In 1985, in response, Stallman, founded the Free Software Founda- tion (FSF) and published the GNU manifesto. • Outlined his motivation for creating a free OS (GNU), which would be compatible with Unix.

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 34 / 48 GNU/Linux (2/4)

I In 1989, Stallman released the first program independent GNU Gen- eral Public License (GPL) or copyleft.

I Now the only thing that GNU lacked was a completely free OS kernel: GNU Hurd kernel

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 35 / 48 GNU/Linux (3/4)

I In 1985, Andy Tanenbaum wrote a Unix like OS from scratch, called Minix.

I He implemented it for educational purposes.

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 36 / 48 I But he was prohibited by Tanenbaum to do so.

I So, Linus implemented his own kernel and released it under GPL:

I Linux, is then, used as the kernel of the GNU in many distributions.

GNU/Linux (4/4)

I In 1990, wanted to improve Minix.

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 37 / 48 I So, Linus implemented his own kernel and released it under GPL: Linux kernel

I Linux, is then, used as the kernel of the GNU in many distributions.

GNU/Linux (4/4)

I In 1990, Linus Torvalds wanted to improve Minix.

I But he was prohibited by Tanenbaum to do so.

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 37 / 48 I Linux, is then, used as the kernel of the GNU in many distributions.

GNU/Linux (4/4)

I In 1990, Linus Torvalds wanted to improve Minix.

I But he was prohibited by Tanenbaum to do so.

I So, Linus implemented his own kernel and released it under GPL: Linux kernel

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 37 / 48 GNU/Linux (4/4)

I In 1990, Linus Torvalds wanted to improve Minix.

I But he was prohibited by Tanenbaum to do so.

I So, Linus implemented his own kernel and released it under GPL: Linux kernel

I Linux, is then, used as the kernel of the GNU in many distributions.

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 37 / 48 Computer System Organization

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 38 / 48 I The CPU and the device controllers can execute in parallel, com- peting for memory cycles.

I Device controllers inform CPU that it is finished with the operation by causing an interrupt.

Computer-System Operation

I One or more CPUs, and device controllers connect through common bus providing access to shared memory.

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 39 / 48 I Device controllers inform CPU that it is finished with the operation by causing an interrupt.

Computer-System Operation

I One or more CPUs, and device controllers connect through common bus providing access to shared memory.

I The CPU and the device controllers can execute in parallel, com- peting for memory cycles.

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 39 / 48 Computer-System Operation

I One or more CPUs, and device controllers connect through common bus providing access to shared memory.

I The CPU and the device controllers can execute in parallel, com- peting for memory cycles.

I Device controllers inform CPU that it is finished with the operation by causing an interrupt.

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 39 / 48 I Software may trigger an interrupt by executing a special operation called a system call.

Interrupt (1/3)

I Hardware may trigger an interrupt at any time by sending a signal to the CPU.

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 40 / 48 Interrupt (1/3)

I Hardware may trigger an interrupt at any time by sending a signal to the CPU.

I Software may trigger an interrupt by executing a special operation called a system call.

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 40 / 48 I The CPU resumes the interrupted computation, when the interrupt service routine completes.

I The OS preserves the state of the CPU by storing registers and the program counter.

Interrupt (2/3)

I When the CPU is interrupted, it stops what it is doing and imme- diately transfers execution to an address where the service routine for the interrupt is located.

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 41 / 48 I The OS preserves the state of the CPU by storing registers and the program counter.

Interrupt (2/3)

I When the CPU is interrupted, it stops what it is doing and imme- diately transfers execution to an address where the service routine for the interrupt is located.

I The CPU resumes the interrupted computation, when the interrupt service routine completes.

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 41 / 48 Interrupt (2/3)

I When the CPU is interrupted, it stops what it is doing and imme- diately transfers execution to an address where the service routine for the interrupt is located.

I The CPU resumes the interrupted computation, when the interrupt service routine completes.

I The OS preserves the state of the CPU by storing registers and the program counter.

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 41 / 48 Interrupt (3/3)

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 42 / 48 I Secondary storage • Extension of main memory that provides large nonvolatile storage capacity. • E.g., magnetic disk and SSD

Storage Structure (1/2)

I Main memory (RAM) • The CPU can load instructions only from memory. • Typically volatile

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 43 / 48 Storage Structure (1/2)

I Main memory (RAM) • The CPU can load instructions only from memory. • Typically volatile

I Secondary storage • Extension of main memory that provides large nonvolatile storage capacity. • E.g., magnetic disk and SSD

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 43 / 48 I Solid-state disks (SSD) • Faster than hard disks, nonvolatile. • Becoming more popular.

Storage Structure (2/2)

I Magnetic disks • Disk surface is logically divided into tracks, which are subdivided into sectors.

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 44 / 48 Storage Structure (2/2)

I Magnetic disks • Disk surface is logically divided into tracks, which are subdivided into sectors.

I Solid-state disks (SSD) • Faster than hard disks, nonvolatile. • Becoming more popular.

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 44 / 48 Storage Hierarchy - Cost vs. Speed

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 45 / 48 Summary

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 46 / 48 I Computer-system organization • I/O devices • Interrupt • Storage

Summary

I OS history • First generation: no OS • Second generation: mainframes, batch programming • Third generation: multiprogramming, multitasking • Fourth generation: PCs

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 47 / 48 Summary

I OS history • First generation: no OS • Second generation: mainframes, batch programming • Third generation: multiprogramming, multitasking • Fourth generation: PCs

I Computer-system organization • I/O devices • Interrupt • Storage

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 47 / 48 Questions?

Acknowledgements Some slides were derived from Avi Silberschatz slides.

Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/22 48 / 48