EEL 602 1 Introduction Reading: Silberschatz chapter 1 Additional Reading: Stallings chapter 1
EEL 602 1
Introduction
Reading:Silberschatzchapter 1
Additional Reading:Stallingschapter 1
EEL 602 2
OutlineComputer SystemWhat is an Operating SystemMainframe SystemDesktop SystemMultiprocessor SystemClustered SystemReal-Time System
Hard Real-TimeSoft Real-Time
Handheld System
EEL 602 3
Computer System
Hardware – Basic computing resources (CPU, memory, I/O devices)Users – People, machines and other computersApplication Programs – Usage of system resources to solve the computing problems (e.g. compilers, database systems, video games, business programs)Operating System – Controls and coordinates the use of the hardware among the various application programs for the various users
Computer System has roughly four components
EEL 602 4
OS DefinitionsResource allocator – manages and allocates resourcesControl program – controls the execution of user programs and operations of I/O devicesKernel – the one program running at all times (all else being application programs)Operating System Goals
ConvenienceEfficiencyAbility to evolve
A program that controls execution of application programs and acts as interface between applications and hardware
What is an Operating System?
EEL 602 5
Mainframe SystemsEarly computers
Growth from batch → time-shared systems
Batch SystemsBatch the jobs with similar needs and ran as groupFirst rudimentary operating systemMajor OS task – transfer control automatically from one job to nextSerial Card Reader -1200 CPMModern OS allow all jobs on disk rather than in serial card reader, job scheduling
EEL 602 6
Mainframe Systems
Memory layout for a simple batch system
MonitorResident Monitor → Always in main memory Each job → Instructions in JCL ($LOAD, $RUN)
EEL 602 7
Mainframe SystemsGenerally a single user cannot keep either CPU or I/O devices busy at all timesMultiprogrammed Systems
Increases CPU utilization Several jobs are kept in main memory at the same time and CPU is multiplexed among them
Memory layout for multiprogramming system
EEL 602 8
Mainframe SystemsSlow I/O
EEL 602 9
Mainframe SystemsUniprogramming
Processor must wait for I/O instruction to complete before preceding
MultiprogrammingWhen one job needs to wait for I/O, the processor can switch to the other job
EEL 602 10
Mainframe Systems
OS features for multiprogramming systemJob Scheduling Memory Management – the system must allocate the memory to several jobsCPU SchedulingProcess Scheduling
EEL 602 11
Mainframe Systems
Time-Sharing → Logical extension of multiprogramming
Time-Sharing SystemsTime-shared OS allows many users to share the computer simultaneouslyResponse timeJobs swapped in and out of memory to the diskCommon feature – Virtual Memory
EEL 602 12
Mainframe SystemsBirth of UNIX in 1960s; CTSS → MULTICS → UNIX
Dennis Ritchie (standing) and Ken Thompson begin porting UNIX to the PDP-11 via two Teletype 33 terminals http://www.bell-labs.com
EEL 602 13
Desktop SystemsPersonal computers → Computer system dedicated to a single user
Neither multiuser nor multitaskingEarlier Goals →Maximize CPU & Peripheral utilizationNow → User convenience and responsiveness
Earlier I/O devices – keyboards, mice, display screens, small printers
May run several different types of operating systems (Windows, MacOS, UNIX, Linux)
EEL 602 14
Parallel SystemsAlso known as multiprocessor systems or tightly coupled systemsOperate with more than one CPU in close communicationProcessors share memory and a clock; communication usually takes place through the shared memory
Advantages of Parallel Systems: Higher throughput – increases but less than NEconomical – SharingHigher reliability - graceful degradation, fault tolerant
EEL 602 15
Parallel SystemsSymmetric multiprocessing (SMP)
Each processor runs and identical copy of the operating systemMany processes can run at once without performance deteriorationMost modern operating systems support SMP (Windows NT, Solaris, Digital UNIX, OS/2, Linux)
Architecture of general SMP system
EEL 602 16
Parallel SystemsAsymmetric multiprocessing
Each processor is assigned a specific taskMaster processor schedules and allocated work to slave processorsMore common in extremely large systems
EEL 602 17
Clustered SystemsUnlike multiprocessor systems, two or more individual systems coupled togetherClustering allows two or more systems to share storage, definitionsService even if one or more cluster failsHigher reliability by adding redundancy
Asymmetric clusteringOne machine is in hot-standby while other running applicationsHot-standby machine only monitors the active serverIf server fails, hot-standby machine → active server
Symmetric clusteringTwo or more hosts are running applications and monitoring each otherMore efficient
Rapid advances in Cluster Technology, clustering over WANs, SANs
EEL 602 18
Real-Time SystemsSpecial purpose OS with rigid time constraintsUsed in dedicated application, e.g. control systems, imaging systems, display systemsFixed time constraints, returns the correct results within its time-constraintsTime-sharing systems, desirable but NOT mandatory Real-Time systems may be either hard or softreal-time
EEL 602 19
Real-Time SystemsHard realHard real--timetime
Guarantees completion of critical task in timeSecondary storage limited or absent, data stored in short term memory, or read-only memory (ROM)Conflicts with time-sharing systems, not supported by general-purpose operating systems
Soft realSoft real--timetimeLess restrictive, critical real-time task has priorityRetains this priority until its completionLack of deadline support, risky for robotics/controlUseful in applications (multimedia, virtual reality) requiring advanced OS features (not supported in hard real-time systems)
EEL 602 20
Handheld SystemsPersonal Digital Assistants (PDAs)Connectivity to Internet, cellular telephonesLimited size (typically 5’×3’)Issues:
Limited memory, no VM, 512KB - 8MBSlow processors, Less power availabilitySmall display screens, web clipping
EEL 602 21
Migration of OS Concepts and Features
EEL 602 22
Computing EnvironmentsTraditional ComputingWeb-Based ComputingEmbedded Computing