程序代写代做代考 file system C Java IOS graph android compiler assembly gui Fortran kernel Operating Systems Lecture 1a

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