ITFN 3601 Operating Systems Computer Hardware Review OS Concepts Overview

Preview:

Citation preview

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

Recommended