Operating Systems

Download Report

Transcript Operating Systems

Operating Systems
Brian Farrimond
Topics
• Introduction
• Overview of operating system tasks
• Operating systems in detail
Topics
• Introduction
• Overview of operating system tasks
• Operating systems in detail
Computers run software
• Computers
– built to run software
• Software
– consists of sets of instructions (programs)
Need for system software
• Computers very complex
• Come with large bundles of software to help
the non-specialist
• this software is called system software
Types of software
• System software
– operating systems
– language translators
Focus of this course
• Applications software
– special purpose programs
– e.g. Word, Paintbrush, Internet Explorer
Topics
• Introduction
• Overview of operating system tasks
• Operating systems in detail
Operating system tasks
•
•
•
•
•
managing files
running programs
memory management
control of peripherals
utility programs
Operating system tasks
•
•
•
•
•
managing files
running programs
memory management
control of peripherals
utility programs
Managing files
• Programs and data saved on disc as files
• Operating System file manager
– organises files
– enables user to add, update delete files
– controls file ownership in shared system
• e.g. network, mainframe
Operating system tasks
•
•
•
•
•
managing files
running programs
memory management
control of peripherals
utility programs
Running programs
• User requests a program
– mouse click
– program name at command line
• This triggers a sequence of actions
– ensure program is in main memory
– start fetch execute
– manage program’s file access
Operating system tasks
•
•
•
•
•
managing files
running programs
memory management
control of peripherals
utility programs
Memory management
• Managing space
• Simultaneous programs
– must not interfere with each other’s space
• Large programs
– possible to only load required parts
– may use use overlays
• e.g. Word with little used menu options
Operating system tasks
•
•
•
•
•
managing files
running programs
memory management
control of peripherals
utility programs
Control of peripherals
• Operating
system
– consists of
• kernel
• drivers
• Drivers
– plug and
play
Operating system tasks
•
•
•
•
•
managing files
running programs
memory management
control of peripherals
utility programs
Utility programs
•
•
•
•
•
Editors
Compilers
Clock
Calculator
Calendar
Topics
• Introduction
• Overview of operating system tasks
• Operating systems in detail
Operating systems in detail
• MS-DOS filing system
• Managing disc storage
• Multiprogramming
– sharing the processor
– sharing memory
Operating systems in detail
• MS-DOS filing system
• Managing disc storage
• Multiprogramming
– sharing the processor
– sharing memory
MS-DOS Filing System
• Micro Soft Disc Operating System
– operating system for first PCs
– Windows was a layer on top of the MS-DOS
– Now Windows replaces MS-DOS
• Shares characteristics of Unix (Linux)
– directory structure
– command line
MS-DOS Directories
• Access to files is through a directory
– Example:
– LETTER.TXT, POEM.TXT, JOKE.TXT
Directory is same as
a Windows folder
Directory also records: file size, date last changed
Organise with directory structure
root is top level
directory
• directory can hold:
– file names
– sub-directory names
File names
• Local name
– CHAPTR1
• Full name
– \BOOKS\LOSTLOVE\CHAPTR1
Path
Local name
Current directory
• User is always “in a directory”
• This is the Current Directory
• Example
– opening a file
– file dialog’s starting directory
Changing directory
• cd
• Example using full path
– cd \LETTERS\LOVELETT
Using short cuts with cd
• cd ..
– .. refers to parent directory
Operating systems in detail
• MS-DOS filing system
• Managing disc storage
• Multiprogramming
– sharing the processor
– sharing memory
Managing Disc Storage
• Two main types of secondary (permanent)
storage
– magnetic disc
• floppy disc
• hard disc
– optical disc
• CD-ROM
• DVD
Magnetic disc
• flat circular disc (platter)
• coated with magnetizable material
• same technology as
– audio cassettes
– video tape
Disc pack
• Several platters on same spindle
Formatted magnetic disc
• concentric tracks
• each track divided into sectors
Old Disc statistics
Format
Surfaces
Tracks
Sectors /
track
Capacity
DD (floppy)
2
80
9
720 Kb
HD (floppy)
2
80
18
1.44 Mb
IBM PS/2
7
583
36
70 Mb
Storing files on disc
• Two alternative strategies for allocating
sectors to a file
– contiguous allocation
• file stored on adjacent sectors
– non-contiguous allocation
• file scattered across disc
Contiguous allocation
• Advantages
– simple to implement
– fast
• Problems
– need to find large
enough slot on disc
– difficult to add to file
– fragmentation on
deletion
Non-contiguous allocation
• The most common approach
• Method:
– files chopped up into fixed size blocks
– blocks need not be stored in adjacent sectors
Non-contiguous allocation
• Disadvantages
– more complex to implement
– increased access time
– most files waste space in incompletely filled
blocks
• Advantage
– increased flexibility
Block size
• How big should blocks be ?
– too big then too much space wasted
– too small then considerable effort needed to
retrieve file
• MS-DOS
– block = 2 x 512 byte sectors
– known also as a cluster
Storing a file
• operating system ...
–
–
–
–
obtains a free block
starts filling it with data
when full, obtains another block
continue until all file is stored
• Problems to solve:
– recording sequence of blocks making up a file
– keeping track of free blocks
The MS-DOS Solution
Directory Entry
A directory
File Allocation Table (FAT)
Operating systems in detail
• MS-DOS filing system
• Managing disc storage
• Multiprogramming
– sharing the processor
– sharing memory
Multiprogramming
• First machines
– single user
• More modern machines
– multiple users
• e.g. bank system
– each user perhaps running several programs at
same time
• e.g. Windows PC
Achieving multiprogramming
• Single CPU
– Concurrent execution
– CPU continually switches between programs
– C.f. chess grandmaster playing lots of club
players “simultaneously”
• Multiple CPUs
– Parallel execution
– Each program runs on a separate CPU
Virtual machines
• Each user sharing a machine appears to
have machine to themselves
• One real machine
-> many virtual machines
• Two main issues:
– Sharing the processor
– Sharing main memory
Sharing the processor
• Original problem:
– expensive , fast CPU waiting for slow
peripherals – uneconomic
• Solution
– have CPU run another program while waiting
Other advantages
• Carry out tasks simultaneously
– E.g. control central heating and word process
• Share peripherals
– Mainframe and minis can centralise printers etc
– Dumb terminals are cheap
• Share data
– Users can access same files
• Concurrent programs on same machine
– This is how we use Windows
Disadvantages
•
•
•
•
Breakdowns affect everybody
Portability – need link to central machine
Expense – but getting cheaper
Security risks
Switching between programs
• Done by the kernel (part of operating
system)
• Known as a context switch
• Each program needs a control block
– Preserves program’s state
• CPU register contents
• Which data files are opened
Strategies for switching
• When program finished or blocked
– Simple to implement
– But, programs can hog the processor
• At regular intervals (time slicing)
– Programs cannot hog processor
– But, complex to control so time overhead
– This is the strategy in common use
Time slicing
Blocked programs (waiting
for a peripheral) are not
allocated time slices
Each interval is a
time slice
Scheduling – deciding which program runs next
Running programs are
“processes”
• Processes consist of:
–
–
–
–
–
The program (set of instructions)
Current state of data structures
Current state of CPU registers
Which I/O devices currently open
Which files are currently open
Process states
• Running
– During its timeslice
• Ready
– While some other process is running
• Blocked
– Unable to proceed e.g. waiting for input device
Context switching with interrupts
• Interrupt
– Signal to CPU to
stop what it is doing
and execute an
interrupt routine
– Clock interrupt
generated by clock at
fixed intervals
Operating systems in detail
• MS-DOS filing system
• Managing disc storage
• Multiprogramming
– sharing the processor
– sharing memory
Sharing the Memory
• Programs need to be in main memory when
executing
• May not all fit in
Sharing by swapping
• Program and data
– copied into memory at beginning of each time slice
– copied back to disc at end of time slice
• All main memory available to program
• But, high overhead of swapping time
Sharing by paging
• Divide program and data into pages
• Only swap in the pages needed during time
slice
• Memory divided into pageframes
– One page per pageframe
Loading pages
• Pages can be loaded in any order
• Use a page table to keep track
Translating addresses
• Given an instruction like JMP 314
• 314 means 314 locations from beginning of
program
• Assume each page 100 locations long
• JMP 314 means
– page 3 offset 14
• Where is the location in real memory ?
Carrying out the translation
JMP 314
Page
number
Real memory address: 2514
Page fault
• Interrupt generated when required page not
in main memory
• Causes
– Required page to be fetched from disc
– Page table updated
– Program continues
Thrashing
• Page faults are too frequent
• Most time spent swapping pages
• Caused by:
– Bad program design
– Too many programs attempting to run
concurrently
Paging strategies
• Fetch strategy
– When to fetch a page
• Replacement strategy
– When to swap page out
Fetch strategies
• Demand fetch
• Anticipatory fetch
Replacement strategies
•
•
•
•
Optimal page replacement
Longest resident
Least recently used
Least frequently used