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