CO2017 — Operating Systems, Networks and Distributed Systems Week1 L1 — Introduction
CO2017 — Operating Systems, Networks and
Distributed Systems
Week1 L1 — Introduction
Dr Gilbert Laycock (gtl1)
2017–01–23
gtl1–R868 W1L1 — Introduction 2017–01–23 1 / 20
Module Organisation Teaching staff
Teaching staff
Convenor: Dr Gilbert Laycock
email: gtl1@le.ac.uk
office: G15
Teaching assistants:
Whole team: co2017-team@mcs.le.ac.uk
Rafael Ktistakis
Marco Perez
Zeng Hao
Mirzhan Irkegulov
gtl1–R868 W1L1 — Introduction 2017–01–23 2 / 20
gtl1@le.ac.uk
co2017-team@mcs.le.ac.uk
Module Organisation Background
Background
The module webpage is
https://campus.cs.le.ac.uk/teaching/resources/CO2017/
Make sure you read this webpage regularly. News and additional
material will be posted there as the semester progresses.
Blackboard page will only be used for Reflect recordings.
It is worth reading the study guide, available on line on the
webpage.
gtl1–R868 W1L1 — Introduction 2017–01–23 3 / 20
https://campus.cs.le.ac.uk/teaching/resources/CO2017/
Module Organisation Timetable
Timetable
Lectures:
Mon 14:00–15:00 in ATT LT1
Mon 16:00–17:00 in ENG LT2
Tue 17:00–18:00 in LE LT3
Surgery/Problem Class:
Mon 17:00–18:00 in Eng LT2
Computer Class:
Fri 15:00–17:00 in CW301
gtl1–R868 W1L1 — Introduction 2017–01–23 4 / 20
Module Organisation Coursework
Coursework
Interactive shell use and simple shell programming 10%
Java Threads, Scheduling, Deadlocks 15%
Java Sockets 15%
gtl1–R868 W1L1 — Introduction 2017–01–23 5 / 20
Module Organisation Exam
Exam
New exam structure since summer 2015 year.
“Attempt all questions. Full marks may be obtained only if all
questions are answered.”
Papers from summer 2014 and earlier had a different structure.
gtl1–R868 W1L1 — Introduction 2017–01–23 6 / 20
Module Organisation Module materials
Module materials
Recommended reading:
Andrew S. Tanenbaum, Modern Operating Systems, 3rd ed.,
Prentice Hall, 2014.
Andrew S. Tanenbaum, (David J. Wetherall), Computer Networks,
5th ed., Prentice Hall, 2003/2014.
J. Farley, Java Distributed Computing, O’Reilly, 1997.
M. Boger, Java in Distributed Systems, Wiley, 2001.
Website:
https://campus.cs.le.ac.uk/teaching/resources/CO2017/
gtl1–R868 W1L1 — Introduction 2017–01–23 7 / 20
https://campus.cs.le.ac.uk/teaching/resources/CO2017/
Module Organisation Syllabus
Operating Systems
Introduction Overview; historical perspective.
Process management Programs and processes; multitasking;
dispatcher; scheduling and scheduling policies;
inter-process communication, in particular joint access to
shared resources; threads; Java thread programming.
Memory management Memory allocation methods; paging; virtual
memory; segmentation; protection and sharing.
File management Concept of file; directory structure; file
management techniques; directory implementation.
gtl1–R868 W1L1 — Introduction 2017–01–23 8 / 20
Module Organisation Syllabus
Networks/Distributed Systems
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; channel
allocation; protocols for local area networks; bridges.
Datagrams and virtual circuits; routing; congestion
control; inter-networking; the network layer in the
Internet.
Upper layers Connection management; transport layer in the
Internet; congestion control; socket concept; Java socket
programming. Application example (e-mail, http, . . . ).
gtl1–R868 W1L1 — Introduction 2017–01–23 9 / 20
Operating Systems Introduction
Introduction
Brief history of computers, focusing on OS/network
developments.
The functions and parts of an OS and network.
A few key definitions.
gtl1–R868 W1L1 — Introduction 2017–01–23 10 / 20
Operating Systems Processes and scheduling
Processes and scheduling
How do two or more programs “simultaneously” run on the same
computer?
Scheduling: related definitions.
Principles of fair scheduling.
Scheduling algorithms.
gtl1–R868 W1L1 — Introduction 2017–01–23 11 / 20
Operating Systems Memory management
Memory management
Why is concurrent use of shared memory not safe without special
precautions?
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 memory
exceeding available RAM.
Paging algorithms.
gtl1–R868 W1L1 — Introduction 2017–01–23 12 / 20
Operating Systems File system and I/O
File system and I/O
Files: role and operations.
Methods of allocation of disc space.
Implementation of directories.
Also
Other system I/O and hardware interaction.
gtl1–R868 W1L1 — Introduction 2017–01–23 13 / 20
Operating Systems Practical issues and programming
Practical issues and programming
Investigating practical behaviour of real OS
Thread programming in Java
Application of multi-thread programming to practical problems
gtl1–R868 W1L1 — Introduction 2017–01–23 14 / 20
Overview of Operating Systems Brief history of Operating Systems
History of Operating Systems
Early days, programs were entered via switches. Advances:
Cards/paper tape used, and read in by a loader program
Simple terminals with keyboard ⇒ control console
Punch cards were employed for storage
In the 1950s
Standard subroutines produced and loaded at start-up
Magnetic tapes used for storage, then disks
Assemblers appeared, then FORTRAN and ALGOL
In the late 1950s, batch systems first appeared.
Atlas (designed at Manchester Univ.) was 1st with an OS in mind: interrupts and
virtual memory
The loader program was elaborated to allow batch processing
Control cards ⇒ job control languages
gtl1–R868 W1L1 — Introduction 2017–01–23 15 / 20
Overview of Operating Systems Brief history of Operating Systems
History of Operating Systems (Cont’d)
In the mid/late 1960s, multi-programming followed.
CPU could switch between jobs, allowing processing and I/O
simultaneously
Desire for quick response leads to time-sharing via on-line operations
In the 1980s
graphical user interfaces started to be widely used.
The Internet provides shared access to computing resources, to data/files.
Current trends
Workstations vs mobile devices vs smart devices vs cloud computing;
Distributed Systems; Graphical User Interfaces
Some common OSs
Microsoft OSs, Unix-like OSs, and MacOS; iOS, Android,
gtl1–R868 W1L1 — Introduction 2017–01–23 16 / 20
Overview of Operating Systems System structure
Computer System Structure
A computer system consists of hardware and software.
Software: application software and system software.
Operating System is the most important system software.
gtl1–R868 W1L1 — Introduction 2017–01–23 17 / 20
Overview of Operating Systems Operating system
Operating system
A computer program that mediates between hardware and
application programs.
Consists of many loosely related parts handling
Memory management
I/O management
CPU Scheduling
Communications
Multi-tasking/multi-programming
Principles:
Keep user programs from crashing OS and each other
Allocate resources efficiently and fairly
We will study algorithms run by these parts.
Assumption: single-processor computer (mostly)
gtl1–R868 W1L1 — Introduction 2017–01–23 18 / 20
Overview of Operating Systems Operating system
Networks
A network is two or more computers connected by a physical
medium.
The question we will be studying in the class: how to transfer a
message from one computer to another reliably and efficiently?
Detailed discussion of the subject is offered by advanced
modules “Networking” and “Cryptography and Internet security.”
gtl1–R868 W1L1 — Introduction 2017–01–23 19 / 20
Overview of Operating Systems Operating system
Distributed systems
Distributed system is a program than runs on two or more
computers.
We will implement a simple distributed system based on the
client-server architecture.
Detailed discussion of the subject is offered by the “Distributed
systems” module.
gtl1–R868 W1L1 — Introduction 2017–01–23 20 / 20
Module Organisation
Teaching staff
Background
Timetable
Coursework
Exam
Module materials
Syllabus
Operating Systems
Introduction
Processes and scheduling
Memory management
File system and I/O
Practical issues and programming
Overview of Operating Systems
Brief history of Operating Systems
System structure
Operating system