ICOM 4015 - Advanced Programming
Download
Report
Transcript ICOM 4015 - Advanced Programming
Operating Systems - Administrivia
Prontuario - Please time-share and ask questions
Info is in my homepage amadeus/~noack/
Make bookmark for ICOM5007
Page contains
prontuario
Links to old exams and labs
Links to Minix and Linux source
Kernel Hacker’s guide
Links to current assignments as developed
Course includes
Exams and lecture material
Lab work
Project (described in course page)
Lab
Partly in OS/Networking lab
Individual programs, often using Linux source or Java threads
ICOM 5007 - Noack
Operating Systems - More Trivia
Accounts already exist for most students
Will be automatically created for others
Lab instructor - last year was Juan Carvajal Barreto
Please find me by e-mail - noack - or X3652
Projects
Info on course page
Try to form groups soon - three or four people
Project can be:
Device driver or module
Operating system utility
Operating system modification/improvement
ICOM 5007 - Noack
Operating Systems - Basics
An OS is a program that controls and shares the
resources of a computing system, which are:
CPU time (or allotment in distributed systems)
Memory allocation and swapping to background
I/O device handling - the dirty details
File systems
Network devices, layers and protocols
An OS is (after initial setup) an interrupt-driven program
Interrupts may come from:
I/O devices
Timer interrupts - time slicing and hangup recovery
Software interrupts - system call mechanism
ICOM 5007 - Noack
Operating Systems - Structures
Monolithic
One big complicated layer between users and hardware
Unix is a typical monolithic system
Layered - with microkernel
Example - Mach contains
Processes
Threads
Messages
Memory blocks
and everything else is implemented in higher layers using these highly
protected basics
Virtual Machine
VM360 (IBM) is an example
The virtual machine layer is:
between hardware and client machines
emulates a separate machine for each user session
ICOM 5007 - Noack
The basic layered structure
of all operating systems
Application layer
System call interface
Operating system
Hardware/software interface
Hardware components
The concentric shell picture
Layers – as usually drawn
ICOM 5007 - Noack
More OS Structures
The main OS program is often called the kernel
The Kernel
operates in privileged mode
contains the device drivers and modules
contains process, memory and file management
is protected by the system call interface - the INT instruction in 80x86
architecture
The system call interface
Is implemented by the INT or similar instruction
Is used when a user program makes a system call
Is the transition from user to kernel mode
Keeps users from running kernel code
ICOM 5007 - Noack
Monolithic operating system structure
e. g. Unix/Linux
Application layer
System call interface
Process
handling
File system
routines
Memory
management
Intermediate
routine
Device driver
Device driver
Hardware
ICOM 5007 - Noack
Microkernel-based system
e. g. Mach (used for distributed systems)
Application layer
Outer kernel I
Could be Posix
Compliant layer
Outer kernel II
Could be VMS
emulator
Outer kernel III
Experimental
OS?
Microkernel layer
Hardware entities (can be several)
ICOM 5007 - Noack
Virtual machine system
VM – first secure OS for IBM 360/370
User I
Application
layer
User II
Application
layer
User III
Application
layer
Kernel image
For
User I
Kernel image
For
User II
Kernel image
For
User III
Virtual machine layer
Hardware
ICOM 5007 - Noack
The shell is not the kernel
The shell is an ordinary user program
It operates by creating processes that in turn do
system calls or run programs
It is the equivalent of COMMAND.COM in MS/DOS
Shell programming is possible and is often done in
OS utilities
Extensions of shell programming include:
PERL
awk and sed
ksh, csh, bash and other enhanced shells
ICOM 5007 - Noack
The standard lies of OS
There is a separate processor for each process
The CPU is time-shared
You really have all that memory
Memory is loaded only when needed - demand paging
You are really doing all those disk operations
The operations are done when and if the OS pleases - the disk block
cache idea
That remote file system is really there
Remote file system utilities are a little unpredictable
The OS is really secure
Ask the big kids
ICOM 5007 - Noack
Concurrency
The theoretical core of OS
An OS creates a set of processes that run concurrently
A process is like a person - it has
a stream of consciousness
possessions - memory, files, data
is created, reproduces, dies
interacts with other processes
In actuality, it is a program in execution
Concurrent process misbehaviors
Race conditions - unpredictable results because processes simultaneously
modify data or devices
Deadlocks - Each has what the other wants, nobody gets anywhere
Starvation - some processes go hungry - others eat well
ICOM 5007 - Noack
Some operating system ideas
Everything is a file - even devices
This allows a program to work with human input, or a device, or a temporary or
permanent file or even a network connection
The file system provides access control for devices also – protects raw disk
operations from users
Interrupt-driven behavior
Example - windows - process is simultaneously sensitive to events from
mouse, keyboard, process subsystem, and window manager
Caching - Foreground and background copies
Used in
Cache memory
Swapping
The disk block cache - recent transactions are in memory
Networking utilities
Advantage – operations take place at memory speeds
ICOM 5007 - Noack