CLASSIC SYSTEMS: UNIX AND THE Hakim Weatherspoon CS

Slides:



Advertisements
Similar presentations
CSCI 1730 April 1 st, Materials Class notes slides & some “plain old” html & source code examples linked from course calendar board notes & diagrams.
Advertisements

Classic Systems: Unix and THE Presented by Hakim Weatherspoon.
File Systems.
EEE 435 Principles of Operating Systems Operating System Concepts (Modern Operating Systems 1.5)
CLASSIC SYSTEMS: UNIX AND MACH Ken Birman CS6410.
Classic Systems: Unix and THE Presented by Hakim Weatherspoon.
1 UNIX 1 History of UNIX 2 Overview of UNIX 3 Processes in UNIX 4 Memory management in UNIX 5 The UNIX file system 6 Input/output in UNIX.
JMS 1 CSE 350, Spring 2001 The Unix Time-sharing System Chuck Davin Software Design & Engineering CSE 350 Spring 2001.
CS533 - Concepts of Operating Systems
1 Course Outline Processes & Threads CPU Scheduling Synchronization & Deadlock Memory Management File Systems & I/O Networks, Protection and Security.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Chapter 2: Operating-System Structures Modified from the text book.
Operating Systems Concepts 1. A Computer Model An operating system has to deal with the fact that a computer is made up of a CPU, random access memory.
Classic Systems: Unix and THE Presented by Hakim Weatherspoon.
Chapter 3 Operating Systems Concepts 1. A Computer Model An operating system has to deal with the fact that a computer is made up of a CPU, random access.
Chapter 3.1:Operating Systems Concepts 1. A Computer Model An operating system has to deal with the fact that a computer is made up of a CPU, random access.
Operating System It is the interface between user (application programs) and hardware. It is a program that controls the execution of application programs.
CSC 322 Operating Systems Concepts Lecture - 4: by Ahmed Mumtaz Mustehsan Special Thanks To: Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall,
Segmentation & O/S Input/Output Chapter 4 & 5 Tuesday, April 3, 2007.
Classic Operating Systems: Unix and Mach
Chapter 1 Introduction 1.1 What is an operating system
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 3: Operating-System Structures System Components Operating System Services.
File Management Chapter 12. File Management File management system is considered part of the operating system Input to applications is by means of a file.
30 October Agenda for Today Introduction and purpose of the course Introduction and purpose of the course Organization of a computer system Organization.
UNIX and Shell Programming
UNIX Unit 1- Architecture of Unix - By Pratima.
The Structure of the “THE”- Multiprogramming System Edsger W. Dijkstra Presented by: Jin Li.
UNIX & Windows NT Name: Jing Bai ID: Date:8/28/00.
CSC414 “Introduction to UNIX/ Linux” Lecture 2. Schedule 1. Introduction to Unix/ Linux 2. Kernel Structure and Device Drivers. 3. System and Storage.
Copyright © Curt Hill Operating Systems An Introductory Overview.
The UNIX Time-Sharing System Mosharaf Chowdhury EECS 582 – W1611/11/16.
CS533 Concepts of Operating Systems Jonathan Walpole.
Chapter 1 Introduction  What is an operating system  History of operating systems  The operating system zoo  Computer hardware review  Operating system.
Operating Systems: Summary INF1060: Introduction to Operating Systems and Data Communication.
Concepts and Structures. Main difficulties with OS design synchronization ensure a program waiting for an I/O device receives the signal mutual exclusion.
WHY AN OPERATING SYSTEM (OS) OS interacts with hardware and manages programs. Programs not expected to know which hardware they will run on. Must be possible.
1 Chapter 2: Operating-System Structures Services Interface provided to users & programmers –System calls (programmer access) –User level access to system.
Introduction to Operating Systems Concepts
A LECTURE NOTE.
Operating System Basics
File System Interface CSSE 332 Operating Systems
Module 3: Operating-System Structures
Introduction to Kernel
Classic Systems: Unix and THE
Chapter 3: Process Concept
Chapter 11: File System Implementation
CS 6560: Operating Systems Design
FileSystems.
CASE STUDY 1: Linux and Android
KERNEL ARCHITECTURE.
Review.
The UNIX Time-Sharing System
Introduction to Linux Week 0 - Thursday.
OS Organization.
Chapter 2: System Structures
File System B. Ramamurthy B.Ramamurthy 11/27/2018.
Operating Systems.
Advanced UNIX progamming
Classic Systems: Unix and THE
Chapter 2: Operating-System Structures
Operating Systems Lecture 1.
Introduction to Operating Systems
LINUX System : Lecture 7 Lecture notes acknowledgement : The design of UNIX Operating System.
Chapter 3: Processes.
OS Components and Structure
CS510 Operating System Foundations
Outline Operating System Organization Operating System Examples
Chapter 2: Operating-System Structures
Department of Computer Science
Introduction to Operating Systems
The UNIX Time Sharing System
Presentation transcript:

CLASSIC SYSTEMS: UNIX AND THE Hakim Weatherspoon CS6410 1

The UNIX Time-Sharing System Dennis Ritchie and Ken Thompson  Background of authors at Bell Labs  Both won Turing Awards in 1983  Dennis Ritchie  Key developer of The C Programming Lanuage, Unix, and Multics  Ken Thompson  Key developer of the B programming lanuage, Unix, Multics, and Plan 9  Also QED, ed, UTF-8 2

The UNIX Time-Sharing System Dennis Ritchie and Ken Thompson 3

 Classic system and paper  described almost entirely in 10 pages  Key idea  elegant combination: a few concepts that fit together well  Instead of a perfect specialized API for each kind of device or abstraction, the API is deliberately small 5

System features  Time-sharing system  Hierarchical file system  Device-independent I/O  Shell-based, tty user interface  Filter-based, record-less processing paradigm  Major early innovations: “fork” system call for process creation, file I/O via a single subsystem, pipes, I/O redirection to support chains 6

Version 3 Unix  1969: Version 1 ran PDP-7  1971: Version 3 Ran on PDP-11’s  Costing as little as $40k!  < 50 KB  2 man-years to write  Written in C PDP-7PDP-11 7

File System  Ordinary files (uninterpreted)  Directories (protected ordinary files)  Special files (I/O) 8

Uniform I/O Model  open, close, read, write, seek  Uniform calls eliminates differences between devices  Two categories of files: character (or byte) stream and block I/O, typically 512 bytes per block  other system calls  close, status, chmod, mkdir, ln  One way to “talk to the device” more directly  ioctl, a grab-bag of special functionality  lowest level data type is raw bytes, not “records” 9

Directories  root directory  path names  rooted tree  current working directory  back link to parent  multiple links to ordinary files 10

Special Files  Uniform I/O model  Each device associated with at least one file  But read or write of file results in activation of device  Advantage: Uniform naming and protection model  File and device I/O are as similar as possible  File and device names have the same syntax and meaning, can pass as arguments to programs  Same protection mechanism as regular files 11

Removable File System  Tree-structured  Mount’ed on an ordinary file  Mount replaces a leaf of the hierarchy tree (the ordinary file) by a whole new subtree (the hierarchy stored on the removable volume)  After mount, virtually no distinction between files on permanent media or removable media 12

Protection  User-world, RWX bits  set-user-id bit  super user is just special user id 13

File System Implementation  System table of i-numbers (i-list)  i-nodes  path names (directory is just a special file!)  mount table  buffered data  write-behind 14

I-node Table  short, unique name that points at file info.  allows simple & efficient fsck  cannot handle accounting issues File nameInode# Inode 15

Many devices fit the block model  Disks  Drums  Tape drives  USB storage  Early version of the ethernet interface was presented as a kind of block device (seek disabled)  But many devices used IOCTL operations heavily 16

Processes and images  text, data & stack segments  process swapping  pid = fork()  pipes  exec(file, arg1,..., argn)  pid = wait()  exit(status) 17

Easy to create pipelines  A “pipe” is a process-to-process data stream, could be implemented via bounded buffers, TCP, etc  One process can write on a connection that another reads, allowing chains of commands % cat *.txt | grep foo | wc  In combination with an easily programmable shell scripting model, very powerful! 18

The Shell  cmd arg1... argn  stdio & I/O redirection  filters & pipes  multi-tasking from a single shell  shell is just a program  Trivial to implement in shell  Redirection, background processes, cmd files, etc 19

Traps  Hardware interrupts  Software signals  Trap to system routine 20

Perspective  Not designed to meet predefined objective  Goal: create a comfortable environment to explore machine and operating system  Other goals  Programmer convenience  Elegance of design  Self-maintaining 21

Perspective  But had many problems too. Here are a few:  Weak, rather permissive security model  File names too short and file system damaged on crash  Didn’t plan for threads and never supported them well  “Select” system call and handling of “signals” was ugly and out of character w.r.t. other features  Hard to add dynamic libraries (poor handling of processes with lots of “segments”)  Shared memory and mapped files fit model poorly ...in effect, the initial simplicity was at least partly because of some serious limitations! 22

Even so, Unix has staying power!  Today’s Linux systems are far more comprehensive yet the core simplicity of Unix API remains a very powerful force  Struggle to keep things simple has helped keep O/S developers from making the system specialized in every way, hard to understand  Even with modern extensions, Unix has a simplicity that contrasts with Windows.NET API... Win32 is really designed as an internal layer that libraries invoke, but that normal users never encounter. 23

“THE”-Multiprogramming System Edsger W. Dijkstra  Received Turing Award in 1972  Contributions  Shortest Path Algorithm, Reverse Polish Notation, Bankers algorithm, semaphore’s, self-stabilization  Known for disliking ‘goto’ statements and using computers!

“THE”-Multiprogramming System Edsger W. Dijkstra  Never named “THE” system; instead, abbreviation for "Technische Hogeschool Eindhoven”  Batch system (no human intervention) that supported multitasking (processes share CPU)  THE was not multiuser  Introduced  software-based memory segmentation  Cooperating sequential processes  semaphores

Design  Layered structure  Later Multics has layered structure, ring segmentation  Layer 0 – the scheduler  Allocated CPU to processes, accounted for blocked proc’s  Layer 1 – the pager  Layer 2 – communication between OS and console  Layer 3 – managed I/O  Layer 4 – user programs  Layer 5 – the user  “Not implemented by us”!

Perspective  Layered approach  Design small, well defined layers  Higher layers dependent on lower ones Helps prove correctness Helps with debugging  Sequential process and Semaphores

Next Time  Read and write review:  SEDA: An Architecture for Well Conditioned, Scalable Internet Services, Matt Welsch, David Culler, and Eric Brewer. Proceedings of the Eighteenth ACM Symposium on Operating Systems Principles (Banff, Alberta, Canada, 2001), pages  On the duality of operating system structures, H. C. Lauer and R. M. Needham. ACM SIGOPS Operating Systems Review Volume 12, Issue 2 (April 1979), pages

Next Time  Read and write review:  MP1 – available later today and due in two weeks and milestone due next week  Project Proposal due end of next week  talk to me and other faculty and and talk to me  Check website for updated schedule