Download presentation
Presentation is loading. Please wait.
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?
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.