Operating Systems and Computer Structures G2

l1_1.html - Introduction

Operating Systems and

Aims

Objectives

Entry Competencies

Assessment

Bibliography

Unit Content

Other matters

What is an Operating System?

O/S Command and Response Languages

Operating System

Course content

Mechanism

Structure

Lecture availability

Course Environment

Unix/C on your PCs

l1_2.html - Utilities

Introduction

File System

Navigation

File and directory naming

Basic utilities

Unix utilities

File copying: File renaming: File removal Printing a file: Displaying contents of a file: Listing contents of a directory: Changing directories: Showing current working directory: Making a new directory: Removing a directory:

man pages

File name globbing

Command history

Communications

File permissions

l2_1.html - Shell Scripts

Introduction

File permissions

Batch and command files

Command line arguments

I/O redirection

Common Unix utilities

cmp diff find head tail ps kill lpr lpq lprm sleep grep echo sed test expr

Regular expressions

l2_2.html - Shell Language

Command language programming

Shell variables

Grave command

Arithmetic

Sequencing

For loop

Exit codes

While command

Conditional statement

Case statement

Quoting

Miscellaneous examples

l3_1.html - More Shell Programming

Debugging

Quoting

More on sequencing

Builtin shell variables

Builtin shell commands

alias break continue export read shift trap true

Functions

Miscellaneous examples

l3_2.html - Unix Environment

Configuring the environment

Zsh

Login Shell startup Prompt Functions Other shells Search path

Shell

Net news

X Window startup

X resources Resource database Fonts Xterm Mwm

l4_1.html - Intro to C

The C language

Structure of C programs

Scalar data types

integers Floating point Characters Pointers Enumerated types Synonyms for types Boolean void

Expressions

Special operators

l4_2.html - C Control Flow

Control flow

if while for case

Standard library functions

putchar getchar printf isalpha

Functions

l5_1.html - Arrays

Arrays

Definition Initialisation Sizeof Function parameters Arrays and pointers

Strings

Library functions

Command line arguments

l5_2.html - Structure

Structures

Preprocessor

Include files Defines Conditional compilation

Multiple files

System doco

l6_1.html - File Systems

File Systems

Structure

Types

Access

File operations

Unix low-level file operations

Allocation

Contiguous Linked list Index Inodes

Free list

Disk caching

l6_2.html - Directories and Security

Structure

Directory operations

Adding files to a directory

Locating a file

Unix API

File protection

Protection matrix

Access control lists Capability lists

Security

Supervisor mode Passwords Encryption

l7_1.html - Memory Management

Memory management within a program

Standard C API

Implementation

First fit Best fit Worst fit Returning memory Buddy system

Compaction

Simple O/S memory management

No allocation Single user Mulitprogramming

l7_2.html - Virtual Memory

Swapping

Overlays

Segments

Virtual addressing

Paging

Page removal

Least recently used Not recently used FIFO (first in first out) Removal to where? Supervisor mode

Page loading

Shared pages

C Coding Standard

Preamble

Function declaration

Inline comments

Indentation

Consistency

l8_1.html - Processes

Introduction

Program Process

Concurrent processes

Process Operations

Process creation

Synchronous Asynchronous Parent Granularity

Standard C API

Unix API

fork exec

Process suspension

wait sleep

Process removal

exit kill

Process environment

Process ID User ID User name Current directory

l8_2.html -Process Management

Process states

Process table

Process state Memory state Resource state

Process creation

Process scheduling

Stopping processes Round robin scheduling Priority scheduling Shortest job first Two level scheduling

Unix process startup

Intro to InterProcess Communication

Shared memory Pipeline Streams Sockets Signals

l9_1.html - IPC

Low level I/O

Pipes

Creating a pipe I/O with a pipe Fork and a pipe dup

Shared memory

A queue using an array

Implementing a pipe using a queue

Why it is wrong

l9_2.html - IPC

Mutual Exclusion

Critical section

Disabling interrupts

Lock

Lock file

Test and set instruction

Spin locks

Semaphores

Non-binary semaphores

Other mechanisms

Deadlock

Deadlock detection

Deadlock prevention

Deadlock avoidance

l12_1.html - User Networks

Logical view

UC Network

Some services

Network File System Passwords Remote access email File transfer Anonymous ftp

Higher level services

archie cwis wais xmosaic mudd IRC

Advantages

Disadvantages

Hardware Topology

Bus-based multiprocessor Bus-based multicomputer Switched multiprocessor Switched multicomputer

Some Concepts

Transparency Flexibility Reliability Performance Scalability State/stateless Blocking Buffered Conectionless

l12_2.html - Network Protocols

OSI PROTOCOL

Layered model

Physical layer

Data link layer

Network layer

Transport layer

Session layer

Presentation layer

Application layer

TCP/IP

Another protocol?

TCP/IP stack

IP datagrams UDP TCP

Client-Server Model

Internet adddresses

Network address Subnet address Host address Total address Symbolic names Programming interface

Port addresses

Berkeley sockets

Remote Procedure Call

Data representation

l13_1.html - Network API

Some foreign sites

Byte ordering

Address conversion

Addresses

Sockets

Connection oriented (TCP)

TCP time client

TCP time server

Connectionless (UDP)

Time client (UDP)

Socket controls

l14_1.html - Remote Procedure Call

Ordinary procedure call

Parameter types

Value parameters Reference parameters

Remote procedure call

Without RPC

What RPC should look like?

Stubs

Data representation

Valid data types

Generating stubs

Errors

Can't find the server Request to server is lost Reply from server is lost Server crashes

Sun RPC

XDR RPC specification rpcgen

Time Synchronisation

Distributed time

Logical clocks

l14_2.html - Distributed File Systems

File service

File server

Access model

upload/download Remote access

State

Stateful Stateless

Caching

File sharing

Unix semantics Session semantics Immutable files Transactions

File replication

Directory service

Location transparency Location independance Global name space Local name space

NFS

DCE