程序代写代做代考 android file system kernel graph Java Fortran C gui IOS compiler assembly 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