itfn 3601 operating systems computer hardware review os concepts overview
TRANSCRIPT
ITFN 3601 Operating Systems
Computer Hardware Review
OS Concepts Overview
Agenda
OS Introduction
Flavors of OS Hardware Review OS Concepts Overview System Calls Various OS Approaches
So What is an OS?
And Ya’ Can’t Say
“Operating System”
OS PlacementApplications (Word, IE, Games, etc.)
Low-level apps (compilers, interpreters, editors)
Operating System
Machine Language (Binary)
Microarchitecture (processor-level)
Physical Devices (Hardware)
Use
rM
achi
ne
OS Defined
Abstract InterfaceService provider for hardwareAbstracts the details of the machineProvides an API (system calls) to user
Resource ManagerMultiple users, multiple resourcesOrderly, controlled allocation of resourcesFairness, protection, space-time, etc.
History of Operating Systems
Machine-centric Human-centric
Vacuum Tubes (1945-1955)All programming done in machine languageNo OS,Usage done by the same people who built the
machine
History of OS (cont)
Transistors & Batch (1955-1965)University, government, & big-businessMainframes & operators in dedicated roomsPunch cardsDeck readersInput/Output binsBatch processing onto tape
History of OS (cont)
Integrated Circuits (1965-1980)Software-compatible product linesBirth of the modern notion of the OSMulti-purpose machine w/ software (OS)
intermediaryMultiprogramming (multiple programs/jobs
sharing resources)UNIX
History of OS (cont)
Personal Computing (1980-present)LSI chipsCheap memory, disk space, processing, etc.DOS, Windows, Mac OS, XDistributed computingPDA/embedded-devices
Flavors of OS
Mainframe Server Multiprocessor Personal Computer Real-Time Embedded Smart Card
Mainframe OS
High-end I/O capacity1000+ disksGigabytes of data
High-end web servers B2B (business to business) E-commerce High-speed VR/FMV Rendering Many small, simultaneous jobs
Server OS
Large personal computers (kahuna, zidane, etc.) Print, file servers for small businesses Web servers Can load balance these to increase performance UNIX, Linux, Win2000 Server OS
Multiprocessor OS
Connect multiple computers together Share/distribute jobs among multiple
machines/processors Specialized protocols for managing communication Win2000 Advanced Server
Personal Computer OS
Focus on single user, multiple jobs What you’re running on your machine Windows XP/Vista, Win2003/2008 Pro, Linux
Real-Time OS
Time dominates these machines’ specs Data collection from production lines, factory
machinery Hard real-time: time critical in all instances Soft real-time:
OK to drop occasionally
Embedded OS
Personal Digital Assistants TVs, microwaves, mobile phones Very small OS, embedded on chip PalmOS, WinCE
Smart Card OS
Credit card sized devices Specialized OS for specialized purposes E-payment cards (e-cash cards) Some JVM coming into play
Hardware Review
CPU
Memory
DisplayController
KeyboardController
FloppyController
Hard DiskController
Display
Keyboard
Floppy
Hard Disk
Bus
Hardware Review
Processors Memory I/O Devices Bus
Processors
Brain of the computerFetch, decode, execute cycleRegistersProgram Counter (PC)Stack Pointer (SP)Pipelining improves performance, but
complexities of “rolling back” appearKernel vs. User Mode (enables establishing
limitations of instruction set available)
Memory
Trade off of speed vs. cost/size
Registers (on processor)Cache (processor)Cache (mainboard)Main MemoryDiskOther Network Cache/MachinesTape
Spe
ed d
ecre
ases
Cos
t inc
reas
es
Memory Allocation
We need a protective and fair way of allocating and resizing memory blocks for processes/jobs
Two sections of memoryCode (typically static)Data (volatile)
OS
Program Code
User 1 Data
User 2 Data
Limit
Base
Limit
Base
Limit
Base
I/O Devices
Typically consist of two parts:ControllerDevice
Controller manages & presents the API of the device to the OS
The software that “talks” to the controller is called a device driver
Invoking Device Actions
Busy wait – execute a kernel-level system call and wait (ties up the processor )
Ask the device to generate an interrupt (signal that it’s done or failed)Doesn’t tie up the processorAdds complexity
DMA – Direct Memory AccessBypasses the use of the processorAllows the device to write directly to memory once
the “rules of the road” are established
Bus
Communication “highway” for all data to travel upon
Multiple buses exist in modern machinesCache (fastest)Local (on mainboard –other busses connect to it)MemoryPCI (successor of ISA - high-speed I/O)SCSI (high-speed scanners & disks)USB (slow peripherals)IDE (disks, etc.)ISA (slowest – legacy)
OS Concepts
Processes Deadlock Memory Management I/O Files Security
Processes
Defined as a “program in execution”AKA a “job”Contain
Instructions (code segment)SP, PC, registers, file handlesData segment
Processes can spawn subprocesses & threadsThe OS must ensure fairness & protection,
timeslicing & managing multiple processes at a time
Deadlock
Two or more processes “stalemated” because they can’t make progress
Process AHas resource 1
Waiting on resource 2
Process BHas resource 2
Waiting on resource 1
Memory Management
Providing protection of one process’ memory section from another process (security)
Providing a fair allocation of memory to multiple processes
Swapping memory to disk as needed
Input/Output
All OS must manage I/O devices
Two categories:Device independentDevice dependant (device drivers)
Files
System callsCreate, remove, read, write, etc.
Directories & subdirectoriesCreate, remove, rename, move, etc.
Security
Allocate permissionsDirectoriesFiles
Example UNIX policies to consider:Read, Write, ExecuteUser, Group, World
System Calls
Services that the OS provides to the user Set of API that user-level programs may invoke
Flavors of System CallsUNIXWin32
UNIX System Calls
pid = fork() creates child process
exit() terminates process
fd = open(file, …) opens file
s = mkdir(name, mode) creates directory
s = chmod(name, mode) sets file/dir permissions
s = kill(pid, signal) sends signal to process
Win32 System Calls
CreateProcess(…) creates new process
ExitProcess(…) terminates process
CreateFile(…) opens file
CreateDirectory(…) creates directory
Approaches to OS
Monolithic
Virtual Machines
Client-Server (microkernel)
Monolithic OS Architecture
OS written as a set of procedures
Each procedure has well-defined interface (parameters)
Very little structure or information hiding
Virtual Machine OS Architecture
Replicate the hardware within software
Trap OS calls and translate/handle themBreaks down if you make direct I/O callsSlow
Other approach: JVM (define an alternate instruction set and translate to various OS)
Client-Server OS Architecture
Implement as much as possible in user-level modules The OS is as small as possible It only serves to translate and message pass OS-level
calls to service processes
Summary
Various levels of OS complexities/sizes exist (mainframe to smart cards)
Important to know your hardwareProcessors, memory, I/O, buses
Important topics in OS forthcomingProcesses, deadlock, mem mgmt, files, etc.
System calls provide an API to user-level programs
Varied OS architecture approachesMonolithic, VM, client-server
FIN