Operating Systems Lecture 1a
Dr Ronald Grau School of Engineering and Informatics Spring term 2020
What is an Operating System? 1
A piece of software (virtual machine)
Provides abstractions from the hardware
Provides the basic services for running other programs
Gives us a user interface (the shell or GUI)
Provides a programming interface (e.g., system calls)
Protects any running programs (including itself)
What is an Operating System? 2
Module Overview 3
Identify the main components of an operating system; understand their basic function. Understand and critically assess concepts and processes related to these components. Implement some operating system functions in software
Processes
Process Synchronisation
Memory management
Threads
Inter-Process Communication
Page Replacement
Process Scheduling
Deadlocks
File Systems
Security
Input / Output
Module Prerequisites 4
Introduction to Computer Systems Programming Concepts
Further programming
About Myself 5 Ron Grau
School of Engineering and Informatics Department of Informatics
Office: Office hour:
E-mail:
Chichester II, 2R 209
Tuesday 2pm – 3pm Wednesday 2pm – 3pm
(Appointments by e-mail) r.r.grau@sussex.ac.uk
Teaching Sessions 6
Two lectures per week – led by myself Tuesday 5pm (FULTON B)
Thursday 4pm (RICHM AS03) Attendance to both sessions is required.
One lab class per week: CHI2 2R226 (INF LAB4) – led by Mohammed Alasmar
Thursday Thursday Friday
Friday
Friday
9am – 10am, or 10am – 11am, or 9am – 10am, or 10am – 11am, or 1pm – 2pm
You will have been assigned to one of the above sessions – check your timetable for details.
Module Timetable
7
Teaching: 28 January – 8 May Laboratory class: Lectures :
CHI-2 2R226 (Lab 4)
Tue: FULTON B / Thu: RICHM AS03
E 11 Year-endAP
Week
Assignments Lab class
Lectures
1 2 3 4 5 6 7 8 9 10
Project
MCQ Test
Exam
Pictures: wikipedia.org,telegraph.co.uk
Module Assessment 8 Coursework (50% of total module marks)
Coursework 1 (70% share): Programming/Research project & report. Due in week 8: Thursday 19 March, 4pm.
Coursework 2 (30% share): Computer-based test with multiple choice questions This will run in week 11: Thursday / Friday 7th/8th May
(You have to be there in person at the University to do the test!)
Unseen exam (50% of total module marks) Date TBA
Make sure to always double-check assessment deadlines in Sussex Direct & Canvas.
How do I pass this module? 9 The lecture notes / recordings will give you relevant pointers, but you need to do
more to succeed!
Successful students will normally
Do the suggested readings and attempt to solve the self-study questions every week. Prepare for and attend lab classes regularly.
Brush up on their programming skills independently, if necessary.
Do the exercises BEFORE the solutions are posted, and review their work afterwards. Explore additional material and readings independently.
Study and adhere to all assignment guidelines very carefully.
Make an effort to do well in their coursework assignments.
Readings 10 Core texts
Tanenbaum & Bos:
Modern operating systems, 4th edition
Physical copies in the library and online access
Silberschatz, Galvin & Gagne:
Operating system concepts, 9th edition
Physical copies in the library
Readings 11 Optional / more in-depth reading
Stallings:
Operating Systems, Internals and Design Principles
Physical copies of the third edition in the library (latest: ninth ed.)
Love:
Linux Kernel development
Physical copies of the third edition in the library and online access to an older edition
Software / Programming 12 QEMU
Virtualisation platform for emulating different hardware devices and operating systems
Netbeans / Java (majority of programming tasks)
For implementing different operating system parts, also for the first coursework assignment
Others (incidental)
Notepad++ / NASM compiler: Assembly language Notepad++ / gcc compiler: C
Let’s Get Started 13 Today: A brief introduction to operating systems
A bit of history
Ancient (20th century) systems
Batch monitors
Multi-programming and multi-tasking PCs and GUIs
Mobile devices
Basic concepts Abstraction
Resources Protection
A bit of history 14 Humble beginnings: Relays and vacuum tubes
1930s – 1960s digital computers
Directly programmed with punched cards or by placing wires to connect to the
machine’s internal functions.
No operating systems here!
ENIAC
ZUSE Z3
A bit of history 15 Then, this happened:
A bit of history
16
Batch systems
Invention of the transistor allowed miniaturisation, and eventually, integrated circuits
1950s&60s mainframe systems could cost millions of $$$
Simple operating systems for batch processing
First programming languages (e.g., FORTRAN)
An IBM 360 mainframe
A bit of history
17
Batch systems
Instructions on punched cards are copied onto tape and then processed by the computer in
a “batch”
Results are then printed out on paper
A punched card
An IBM 360 rig in action
A bit of history
18
Commercial successes
Integrated circuits become more widespread
Minicomputers become more affordable for businesses to use
Still, we’re pushing buttons to enter machine code directly
PDP “Mini” computer console
Not really “Mini” by today’s standards
A bit of history
19
The problem with batch monitors
System resources are not efficiently used e.g., idle CPU during I/O operations
What can we do?
Multi-programming is a solution but brings additional problems (e.g., scheduling, data integrity)
Interleaved execution of programs
A bit of history 20 Time-sharing and multi-tasking
1970s terminals – interactive computing systems
Multiple users share centralised resources, using
relatively cheap terminals
Operating systems needed to handle a lot of I/O data and coordinate processing
Responsiveness is assured by time-sharing
Today, the general concept has been revived
in cloud- and remote-computing, and more generally, Software-as-a-Service (SaaS) scenarios.
Tip: Read about the story of MULTICS (See further resources on Canvas)
A bit of history 21 From Mini to Micro: meet the personal computer
We’re in the 1980s – computers get smaller and affordable for small businesses and home users
IBM asks the newly founded Microsoft company to outfit their new IBM PC with MS-DOS (Microsoft Disk Operating System)
MS-DOS: hardware drivers & simple console shell
Users enter commands with a keyboard
Later, graphical user interfaces (GUI) became more common
with Apple’s Macintosh products and later also Microsoft’s Windows 3 operating system, and others (e.g., IBM OS/2, Linux).
A bit of history
22
Graphical shells
The concept of a GUI with windows, icons, etc. was originally developed by Xerox PARC
Macintosh
Windows 3.1
OS/2
A bit of history
23
Mobile devices
Focus on networking and internet access
“Smart” phones – different application focus and requirements Operating systems must adapt!
Palm OS (1996) Symbian OS (2000) Blackberry (2002) iOS (2007)
Android (2008)
A bit of history 24 Moore’s “Law”
Current technologies & materials
are hitting limits
Other technologies emerge:
Parallel processing GPUs
Computing clusters
Basic concepts 25 What do operating systems do?
Virtual machine abstraction
The pitfalls and dangers of multi-process scheduling and synchronisation are hidden from applications and these programs don’t need to care about how they get access to resources – they are free to “think” that they have the computer for themselves (CPU, I/O, memory)
Portability: Programs can run on different hardware devices
Different devices can support the same physical interfaces
Multiple levels of abstraction (e.g., file systems) for better performance or security
Basic concepts 26 What do operating systems do?
Resource allocation
Request handling
Conflict management
Protection
From errors in programs From malicious software
As a result, operating systems are pretty complex pieces of software. Tip: Compare the code bases of different kinds of software (Further resources on Canvas)
Summary 27 Today: A brief introduction to operating systems
A bit of history:
How operating systems came about and developed over time
A few basics about operating systems
They offer a virtual machine abstraction to work with diverse hardware They make computers easier to program
They manage resources for programs
They offer protection for programs (and their users), and themselves
Read 28
Tanenbaum & Bos., Modern Operating Systems Chapter 1
Chapter 12
Silberschatz et al., Operating System Concepts Chapter 1
Chapter 2
Watch
Lecture on Computers and Heuristics by Richard Feynman (1985) https://www.youtube.com/watch?v=EKWGGDXe5MA
“Dumber but faster” – on how computers work on the inside from the start, ca. 38 mins.
Prepare 30 For the coming lab and lectures next week, review the basic content on
Microarchitectures, Instruction set architectures, Machine code and Assembly language
from your Year 1 module “Introduction to Computer Systems“.
Next Lecture
31
Introduction
Operating System Architectures Processes
Threads
Process Scheduling
Process Synchronisation
Deadlocks
Memory Management File Systems
Input / Output
Security