Presentation is loading. Please wait.

Presentation is loading. Please wait.

Rensselaer Polytechnic Institute CSC 432 – Operating Systems David Goldschmidt, Ph.D.

Similar presentations


Presentation on theme: "Rensselaer Polytechnic Institute CSC 432 – Operating Systems David Goldschmidt, Ph.D."— Presentation transcript:

1 Rensselaer Polytechnic Institute CSC 432 – Operating Systems David Goldschmidt, Ph.D.

2  What is an Operating System?  The software interface between hardware and its users  Operating systems:  Execute user and system programs  Manage and coordinate computer hardware  Serve as resource allocators  Are typically interrupt-driven

3  What is system software?  Computer programs that directly control the operations of the computer and its devices  Operating systems:  Coordinate and orchestrate all activities of the hardware devices in a computer  Provide both a Graphical User Interface (GUI) and a Command-Line Interface (CLI) for its users

4  From a user’s perspective:  easy to use  easy to learn  reliable  safe  fast  etc.  System goals:  reliability  flexibility  extensibility  speed(y)  efficiency  maintainability  etc.

5  An operating system provides services:  Program execution ▪ Load programs into memory, run/suspend/halt programs, handle/display errors  I/O operations ▪ Seamlessly interact with I/O devices, including disks, networks connection, etc.  Filesystem manipulation ▪ Read/write/traverse filesystem directories, read/write files, enforce permissions, search for files

6  Other operating system services:  Inter-Process Communications (IPC) ▪ Processes exchange information via shared memory, message passing, sockets, pipes, files, etc. ▪ Often spans multiple computers and networks  Error detection and recovery ▪ Detect errors in CPU, memory, I/O devices, processes, network connections, etc. ▪ Recover from errors gracefully, ensuring correct and consistent operations

7  In the beginning......the 1940s

8  Automation in the 1950s with punch cards

9  A job is a unit of work submitted by a user to the operating system  Jobs typically consist of:  a program either in a source language or in “executable” binary form  input data used by the program when it executes

10  IBM 360 introduced (in 1964) a computing revolution! what’s so revolutionary?

11

12  In multiprogramming, several jobs reside in memory simultaneously  CPU use is shared and managed by the operating system

13  Multiprogramming provides efficient use of the computer (CPU) and its resources (I/O)  One user cannot keep the CPU and I/O devices busy at all times  Multiprogramming organizes jobs such that the CPU always has exactly one to execute

14  Computer is often idle – why?  CPU and hardware significantly faster than I/O  When a user or process is blocked waiting for I/O, the operating system switches to another job  A subset of jobs is stored in memory, awaiting CPU or I/O

15  To ensure fairness, use a timesharing scheme in which the CPU cycles through all jobs  Each job is given a fixed amount of CPU time  Switching from one running job (or process) to another is called a context switch  A process may relinquish its time if blocked on an I/O request

16  Text CRTs (1970s) to an early Mac (1984)

17  Personal computer revolution (1970s/80s)

18  The war begins... (click at your own risk!)

19  World Wide Web and Internet revolution (1990s/2000s)  Sir Tim Berners-Lee

20  Mobile revolution (2010s)

21  Software instructions are executed by a Central Processing Unit (CPU)  An external hardware event triggers an interrupt by signaling the CPU ▪ e.g. mouse movement, keyboard event  Software triggers an interrupt by executing a system call ▪ e.g. disk read, graphics output, printer output

22  Interrupts are handled much like calling a function in a programming language I/O is typically buffered

23 interrupt processing times vary......and so do I/O transfer times

24 Synchronous Asynchronous

25 very small very large very fast very slow volatile non-volatile

26  Caching is a technique in which data is temporarily stored in a smaller and faster memory component  Why implement caching in an operating system?

27  A key goal in operating system design is achieving fast and efficient performance

28  What’s the caching algorithm?  When the operating system attempts to read from memory, check to see if the requested data is already in the cache  If it is, data is read from the cache (fast!)  If not, data is copied from memory to the cache (maybe next time...)

29  When a running program reads from memory location X, the principle of locality predicts that the next memory location requested will be near X  Store pages of data in a cache, where each page is typically the same size (e.g. 64KB) memory location X

30  Implement a program to simulate caching:  Write a function called calculateAnswer() that takes integer n as input and calculates (and returns) the sum (1 + 2 + … + n) ▪ Pretend this method is computationally costly!  Initially, the cache (holds only 11 elements) is empty ▪ Ask the user to input a number in range 1..100 ▪ If the answer is not in the cache, call calculateAnswer() and display the resulting sum; store the result in the cache ▪ If the answer is in the cache, simply display the answer


Download ppt "Rensselaer Polytechnic Institute CSC 432 – Operating Systems David Goldschmidt, Ph.D."

Similar presentations


Ads by Google