Operating Systems Lecture 1a
Dr Ronald Grau School of Engineering and Informatics Spring term 2018
Operating System – What’s that again? 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)
Operating System – What’s that again? 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
Virtualisation
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 12pm – 1pm Friday 3pm – 4pm
(Appointments by e-mail) r.r.grau@sussex.ac.uk
Teaching Sessions 6
Two lectures per week (FULTON B) – led by me Tuesday 11am
Friday 11am
One lab class per week (CHI1 014/015) – led by Mohammed Alasmar
Monday Monday Tuesday Friday
1pm – 2pm, or 2pm – 3pm, or 1pm – 2pm, or 9am – 10am, or 10am – 11am
Friday
You will have been assigned to one of the above sessions – check your timetable for details.
Module Timetable
7
Teaching: 6 February – 11 May Laboratory class: Lectures :
CHI1 014/015 (Lab 2) FULTON B
Week
Assignments Lab class
Lectures
1 2 3 4 5 6 7 E E 8 9 10 11 12
R
Year-endAP
Project
Report
Pictures: wikipedia.org,telegraph.co.uk
Exam
Module Assessment 8 Coursework (50% of total module marks)
Coursework 1 (70% share): Research project & report. Due in week 7: Thursday 22 March, 4pm.
Coursework 2 (30% share): Theoretical essay (1500 words) Due in week 12: Friday 11 May, 4pm.
Unseen exam (50% of total module marks) Date TBA
Make sure to always double-check assessment deadlines in Sussex Direct.
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 solutions are posted, and review their work afterwards
Explore the additional material and readings independently
Make an effort in their coursework assignments
Readings 10 Core text
Tanenbaum & Bos:
Modern operating systems, 4th edition
Physical copies in the library and online access
Recommended text 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
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 (Further resources on Study Direct)
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 Study Direct)
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 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 and Virtualisation