Upload
others
View
4
Download
0
Embed Size (px)
Citation preview
CO2101 — Operating Systems, Networks and
Distributed Systems
Introduction
Tom Ridge (tr61)
7th October 2019
tr61 Introduction 7th October 2019 1 / 25
Module Organisation
Outline
1 Module Organisation
Teaching staff
Background
Timetable
Coursework
Exam
Module materials
Syllabus
2 Overview of Operating Systems
3 Attributions
tr61 Introduction 7th October 2019 2 / 25
Module Organisation Teaching staff
Teaching staff
Convenor: Dr Tom Ridge
email: [email protected]: F4
Teaching assistants:
See module webpage for details.
tr61 Introduction 7th October 2019 3 / 25
Module Organisation Background
Background
The module webpage is http://www.tom-ridge.com/CO2101/
Make sure you read this webpage regularly. News and additionalmaterial will be posted there as the semester progresses.
Blackboard page will be used for Reflect recordings and not muchelse.
It is worth reading the study guide, available on line on thewebpage.
tr61 Introduction 7th October 2019 4 / 25
Module Organisation Timetable
Timetable
See also the module webpage.
Lectures:
Mon 14:00–15:00Mon 16:00–17:00
Tutorial/Surgery/Problem Class:
Mon 17:00–18:00
Computer Class:
Tue 15:00–17:00 in CW301
tr61 Introduction 7th October 2019 5 / 25
Module Organisation Coursework
Coursework
Various exercises set throughout the course (especially labexercises and surgeries).
Two class tests, one in week 6 and one in week 10. Each is worth50% of the mark.
Details of class tests will be made available well in advance ofthe class tests themselves.
tr61 Introduction 7th October 2019 6 / 25
Module Organisation Exam
Exam
There is no exam!
tr61 Introduction 7th October 2019 7 / 25
Module Organisation Module materials
Module materials
Everything is available from the module webpages.
Recommended reading: this is now maintained by the library;see module webpage for link.
tr61 Introduction 7th October 2019 8 / 25
Module Organisation Syllabus
Operating Systems: syllabus
Introduction Overview
Process management Programs and processes (and threads!);multitasking; dispatcher; scheduling and schedulingpolicies; inter-thread communication, in particular jointaccess to shared resources; threads; threadprogramming (Java and/or Python).
Memory management Memory allocation methods; paging; virtualmemory; segmentation; protection and sharing.
File management Concept of file; directory structure; filemanagement techniques; directory implementation.
tr61 Introduction 7th October 2019 9 / 25
Module Organisation Syllabus
Operating Systems: syllabus
Introduction Overview
Process management Programs and processes (and threads!);multitasking; dispatcher; scheduling and schedulingpolicies; inter-thread communication, in particular jointaccess to shared resources; threads; threadprogramming (Java and/or Python).
Memory management Memory allocation methods; paging; virtualmemory; segmentation; protection and sharing.
File management Concept of file; directory structure; filemanagement techniques; directory implementation.
tr61 Introduction 7th October 2019 9 / 25
Module Organisation Syllabus
Operating Systems: syllabus
Introduction Overview
Process management Programs and processes (and threads!);multitasking; dispatcher; scheduling and schedulingpolicies; inter-thread communication, in particular jointaccess to shared resources; threads; threadprogramming (Java and/or Python).
Memory management Memory allocation methods; paging; virtualmemory; segmentation; protection and sharing.
File management Concept of file; directory structure; filemanagement techniques; directory implementation.
tr61 Introduction 7th October 2019 9 / 25
Module Organisation Syllabus
Operating Systems: syllabus
Introduction Overview
Process management Programs and processes (and threads!);multitasking; dispatcher; scheduling and schedulingpolicies; inter-thread communication, in particular jointaccess to shared resources; threads; threadprogramming (Java and/or Python).
Memory management Memory allocation methods; paging; virtualmemory; segmentation; protection and sharing.
File management Concept of file; directory structure; filemanagement techniques; directory implementation.
tr61 Introduction 7th October 2019 9 / 25
Module Organisation Syllabus
Networks/Distributed Systems
NOTE the following is likely to be reduced significantly
Introduction Overview; different sorts of networks; layered protocols.
OSI model A short overview, contrast with TCP/IP model
Low Layers Error detection and correction; flow control; channelallocation; protocols for local area networks; bridges.Datagrams and virtual circuits; routing; congestioncontrol; inter-networking; the network layer in theInternet.
Upper layers Connection management; transport layer in theInternet; congestion control; socket concept; Java socketprogramming. Application example (e-mail, http, . . . ).
tr61 Introduction 7th October 2019 10 / 25
Module Organisation Syllabus
Networks/Distributed Systems
NOTE the following is likely to be reduced significantly
Introduction Overview; different sorts of networks; layered protocols.
OSI model A short overview, contrast with TCP/IP model
Low Layers Error detection and correction; flow control; channelallocation; protocols for local area networks; bridges.Datagrams and virtual circuits; routing; congestioncontrol; inter-networking; the network layer in theInternet.
Upper layers Connection management; transport layer in theInternet; congestion control; socket concept; Java socketprogramming. Application example (e-mail, http, . . . ).
tr61 Introduction 7th October 2019 10 / 25
Module Organisation Syllabus
Networks/Distributed Systems
NOTE the following is likely to be reduced significantly
Introduction Overview; different sorts of networks; layered protocols.
OSI model A short overview, contrast with TCP/IP model
Low Layers Error detection and correction; flow control; channelallocation; protocols for local area networks; bridges.Datagrams and virtual circuits; routing; congestioncontrol; inter-networking; the network layer in theInternet.
Upper layers Connection management; transport layer in theInternet; congestion control; socket concept; Java socketprogramming. Application example (e-mail, http, . . . ).
tr61 Introduction 7th October 2019 10 / 25
Module Organisation Syllabus
Networks/Distributed Systems
NOTE the following is likely to be reduced significantly
Introduction Overview; different sorts of networks; layered protocols.
OSI model A short overview, contrast with TCP/IP model
Low Layers Error detection and correction; flow control; channelallocation; protocols for local area networks; bridges.Datagrams and virtual circuits; routing; congestioncontrol; inter-networking; the network layer in theInternet.
Upper layers Connection management; transport layer in theInternet; congestion control; socket concept; Java socketprogramming. Application example (e-mail, http, . . . ).
tr61 Introduction 7th October 2019 10 / 25
Module Organisation Syllabus
Networks/Distributed Systems
NOTE the following is likely to be reduced significantly
Introduction Overview; different sorts of networks; layered protocols.
OSI model A short overview, contrast with TCP/IP model
Low Layers Error detection and correction; flow control; channelallocation; protocols for local area networks; bridges.Datagrams and virtual circuits; routing; congestioncontrol; inter-networking; the network layer in theInternet.
Upper layers Connection management; transport layer in theInternet; congestion control; socket concept; Java socketprogramming. Application example (e-mail, http, . . . ).
tr61 Introduction 7th October 2019 10 / 25
Overview of Operating Systems
Outline
1 Module Organisation
2 Overview of Operating Systems
Introduction
System structure
Operating system
Processes and scheduling
Memory management
File system and I/O
Practical issues and programming
3 Attributions
tr61 Introduction 7th October 2019 11 / 25
Overview of Operating Systems Introduction
Introduction
Brief history of computers, focusing on operating system andnetwork developments. This is now available as a separate set ofslides that you can read as part of independent study. Seemodule webpage.
The functions and parts of an OS and network.
A few key definitions.
tr61 Introduction 7th October 2019 12 / 25
Overview of Operating Systems Introduction
Introduction
Brief history of computers, focusing on operating system andnetwork developments. This is now available as a separate set ofslides that you can read as part of independent study. Seemodule webpage.
The functions and parts of an OS and network.
A few key definitions.
tr61 Introduction 7th October 2019 12 / 25
Overview of Operating Systems System structure
Computer System Structure
A computer system consists of hardware and software.
Software: application software and system software (software designedto support creation of other software).
Operating System is the most important system software.
tr61 Introduction 7th October 2019 13 / 25
Overview of Operating Systems System structure
Computer System Structure
A computer system consists of hardware and software.
Software: application software and system software (software designedto support creation of other software).
Operating System is the most important system software.
tr61 Introduction 7th October 2019 13 / 25
Overview of Operating Systems System structure
Computer System Structure
A computer system consists of hardware and software.
Software: application software and system software (software designedto support creation of other software).
Operating System is the most important system software.
tr61 Introduction 7th October 2019 13 / 25
Overview of Operating Systems Operating system
Operating system
A cohesive collection of programs/libraries/interfaces thatmediate between hardware and application programs.
Consists of many loosely related sub-systems
Memory management and file systemI/O managementCPU SchedulingCommunicationsMulti-tasking/multi-programmingStandard utilities and libraries
Principles:
Keep user programs from crashing OS and each otherAllocate resources efficiently and fairly
We will study algorithms run by these sub-systems.
Assumption: single-processor computer (mostly)
tr61 Introduction 7th October 2019 14 / 25
Overview of Operating Systems Operating system
Operating system
A cohesive collection of programs/libraries/interfaces thatmediate between hardware and application programs.
Consists of many loosely related sub-systems
Memory management and file systemI/O managementCPU SchedulingCommunicationsMulti-tasking/multi-programmingStandard utilities and libraries
Principles:
Keep user programs from crashing OS and each otherAllocate resources efficiently and fairly
We will study algorithms run by these sub-systems.
Assumption: single-processor computer (mostly)
tr61 Introduction 7th October 2019 14 / 25
Overview of Operating Systems Operating system
Operating system
A cohesive collection of programs/libraries/interfaces thatmediate between hardware and application programs.
Consists of many loosely related sub-systems
Memory management and file systemI/O managementCPU SchedulingCommunicationsMulti-tasking/multi-programmingStandard utilities and libraries
Principles:
Keep user programs from crashing OS and each otherAllocate resources efficiently and fairly
We will study algorithms run by these sub-systems.
Assumption: single-processor computer (mostly)
tr61 Introduction 7th October 2019 14 / 25
Overview of Operating Systems Operating system
Operating system
A cohesive collection of programs/libraries/interfaces thatmediate between hardware and application programs.
Consists of many loosely related sub-systems
Memory management and file systemI/O managementCPU SchedulingCommunicationsMulti-tasking/multi-programmingStandard utilities and libraries
Principles:
Keep user programs from crashing OS and each otherAllocate resources efficiently and fairly
We will study algorithms run by these sub-systems.
Assumption: single-processor computer (mostly)
tr61 Introduction 7th October 2019 14 / 25
Overview of Operating Systems Operating system
Linux kernel block diagram
tr61 Introduction 7th October 2019 15 / 25
Overview of Operating Systems Operating system
Linux kernel block diagram
To understand the structure, remember that the OS providesvirtualization and controlled usage for:
Memory
CPU
Block devices (for storage via a filesystem)
Network devices
Of course, there are other things as well, but this covers the mainareas.
tr61 Introduction 7th October 2019 16 / 25
Overview of Operating Systems Processes and scheduling
Processes and scheduling
How do two or more programs “simultaneously” run on the samecomputer?
Scheduling: related definitions.
Principles of fair scheduling.
Scheduling algorithms.
tr61 Introduction 7th October 2019 17 / 25
Overview of Operating Systems Processes and scheduling
Processes and scheduling
How do two or more programs “simultaneously” run on the samecomputer?
Scheduling: related definitions.
Principles of fair scheduling.
Scheduling algorithms.
tr61 Introduction 7th October 2019 17 / 25
Overview of Operating Systems Processes and scheduling
Processes and threads
An OS supports multiple processes running “at the same time”
Within a process, there can be multiple threads running “at thesame time”.
The threads within a process can share things like globalvariables (contrast this with processes, which cannot).
It turns out that threads are a very useful feature whenprogramming certain types of system.
tr61 Introduction 7th October 2019 18 / 25
Overview of Operating Systems Processes and scheduling
Processes and threads
An OS supports multiple processes running “at the same time”
Within a process, there can be multiple threads running “at thesame time”.
The threads within a process can share things like globalvariables (contrast this with processes, which cannot).
It turns out that threads are a very useful feature whenprogramming certain types of system.
tr61 Introduction 7th October 2019 18 / 25
Overview of Operating Systems Processes and scheduling
Processes and threads
An OS supports multiple processes running “at the same time”
Within a process, there can be multiple threads running “at thesame time”.
The threads within a process can share things like globalvariables (contrast this with processes, which cannot).
It turns out that threads are a very useful feature whenprogramming certain types of system.
tr61 Introduction 7th October 2019 18 / 25
Overview of Operating Systems Processes and scheduling
Processes and threads
An OS supports multiple processes running “at the same time”
Within a process, there can be multiple threads running “at thesame time”.
The threads within a process can share things like globalvariables (contrast this with processes, which cannot).
It turns out that threads are a very useful feature whenprogramming certain types of system.
tr61 Introduction 7th October 2019 18 / 25
Overview of Operating Systems Memory management
Memory management
Why is concurrent use of shared memory not safe without specialprecautions?
Safe concurrent use of memory. . .
Safe concurrent use of memory without unnecessary delays.
Concurrent protocols under particular hardware assumptions.
Virtual memory: a way to run a program requiring memoryexceeding available RAM.
Paging algorithms.
tr61 Introduction 7th October 2019 19 / 25
Overview of Operating Systems Memory management
Memory management
Why is concurrent use of shared memory not safe without specialprecautions?
Safe concurrent use of memory. . .
Safe concurrent use of memory without unnecessary delays.
Concurrent protocols under particular hardware assumptions.
Virtual memory: a way to run a program requiring memoryexceeding available RAM.
Paging algorithms.
tr61 Introduction 7th October 2019 19 / 25
Overview of Operating Systems Memory management
Memory management
Why is concurrent use of shared memory not safe without specialprecautions?
Safe concurrent use of memory. . .
Safe concurrent use of memory without unnecessary delays.
Concurrent protocols under particular hardware assumptions.
Virtual memory: a way to run a program requiring memoryexceeding available RAM.
Paging algorithms.
tr61 Introduction 7th October 2019 19 / 25
Overview of Operating Systems Memory management
Memory management
Why is concurrent use of shared memory not safe without specialprecautions?
Safe concurrent use of memory. . .
Safe concurrent use of memory without unnecessary delays.
Concurrent protocols under particular hardware assumptions.
Virtual memory: a way to run a program requiring memoryexceeding available RAM.
Paging algorithms.
tr61 Introduction 7th October 2019 19 / 25
Overview of Operating Systems File system and I/O
File system and I/O
Files: role and operations.
Methods of allocation of disc space.
tr61 Introduction 7th October 2019 20 / 25
Overview of Operating Systems Practical issues and programming
Practical issues and programming
Investigating practical behaviour of real OS
Thread programming in Python and/or Java
Application of multi-thread programming to practical problems
tr61 Introduction 7th October 2019 21 / 25
Overview of Operating Systems Practical issues and programming
Networks
A network is two or more computers connected by a physicalmedium.
The question we will be studying in the class: how to transfer amessage from one computer to another reliably and efficiently?
Detailed discussion of the subject is offered by advancedmodules “Networking” and “Cryptography and Internet security.”
tr61 Introduction 7th October 2019 22 / 25
Overview of Operating Systems Practical issues and programming
Networks
A network is two or more computers connected by a physicalmedium.
The question we will be studying in the class: how to transfer amessage from one computer to another reliably and efficiently?
Detailed discussion of the subject is offered by advancedmodules “Networking” and “Cryptography and Internet security.”
tr61 Introduction 7th October 2019 22 / 25
Overview of Operating Systems Practical issues and programming
Networks
A network is two or more computers connected by a physicalmedium.
The question we will be studying in the class: how to transfer amessage from one computer to another reliably and efficiently?
Detailed discussion of the subject is offered by advancedmodules “Networking” and “Cryptography and Internet security.”
tr61 Introduction 7th October 2019 22 / 25
Overview of Operating Systems Practical issues and programming
Distributed systems
Distributed system is a program than runs on two or morecomputers.
We will implement a simple distributed system based on theclient-server architecture.
Detailed discussion of the subject is offered by the “Distributedsystems” module.
tr61 Introduction 7th October 2019 23 / 25
Overview of Operating Systems Practical issues and programming
Distributed systems
Distributed system is a program than runs on two or morecomputers.
We will implement a simple distributed system based on theclient-server architecture.
Detailed discussion of the subject is offered by the “Distributedsystems” module.
tr61 Introduction 7th October 2019 23 / 25
Overview of Operating Systems Practical issues and programming
Distributed systems
Distributed system is a program than runs on two or morecomputers.
We will implement a simple distributed system based on theclient-server architecture.
Detailed discussion of the subject is offered by the “Distributedsystems” module.
tr61 Introduction 7th October 2019 23 / 25
Attributions
Outline
1 Module Organisation
2 Overview of Operating Systems
3 Attributions
tr61 Introduction 7th October 2019 24 / 25
Attributions
Picture attributions
EDSAC console: CC BY 2.0, https://commons.wikimedia.org/w/index.php?curid=432939
By Cushing Memorial Library and Archives, Texas A&M - Flickr: IBM Processing Machine,CC BY 2.0, https://commons.wikimedia.org/w/index.php?curid=17397582
By Iain MacCallum - “email from my father, Iain MacCallum,” CC BY 3.0,https://commons.wikimedia.org/w/index.php?curid=18776249
By Jason Scott - Flickr: IMG-9976, CC BY 2.0,https://commons.wikimedia.org/w/index.php?curid=29457452
CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=18061
By Christian Heilmann - Flickr: The first Google computer at Stanford, CC BY 2.0,https://commons.wikimedia.org/w/index.php?curid=30041591
By ScotXW - Own work, CC BY-SA 4.0,https://commons.wikimedia.org/w/index.php?curid=47075153
tr61 Introduction 7th October 2019 25 / 25