cis250 operating systems ch 1 – notes/review ch 2 ch 3

Post on 29-Dec-2015

230 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

CIS250

OPERATING SYSTEMS

Ch 1 – notes/review

Ch 2

Ch 3

Chapter 1 -Time-Sharing/Multi-Tasking System

• Jobs switch so quickly, user may interact• On-Line between user, system, keyboard and

CRT; TSO• Short response time, more complex• Jobs are swapped in and out of memory• Virtual Memory - job executes without being

completely in memory; programs can be larger than physical memory

Chapter 1 – life after mainframes: Personal Computers

Introduced• Single Processor - IBM DOS

• Multi-processors– many CPUs sharing the same bus and clock;

tightly coupled; increased throughput, overhead.

– Saved money, increased reliability– Graceful degradation - one CPU failure doesn’t

stop the systemic

Chapter 1 - Review

What is an Operating system?

What is a kernel?

Describe the evolution of computers.

What types of systems are there?

Chapter Two

Computer System Structures

Objectives

• Describe a computer system operation

• List and define the types of system structures

• Discuss hardware protection

• Review the general system architecture

A computer system consists of...

• A CPU and Device controllers– execute concurrently (not simultaneously)– compete for memory cycles– each device controller controls specific device (audio,

drives, video)

• CPU and Device controllers are connected by a system bus

• Memory Controller synchronizes access to Memory

When we turn on the computer...

• Bootstrap program locates the operating system kernel and loads it into memory

• CPU registers, device controllers, and memory are initialized

• Operating system waits for an interrupt– hardware interrupt gives a signal to the CPU– software interrupt is triggered by a system call

For example• Power up• bootstrap is loaded into memory• O/S runs the init• A request for I/O causes an interrupt in the form of a

signal • CPU stops and transfers execution to a fixed

location which contains the starting address of the appropriate service routine

• Control passed back to CPU upon completion

Interrupts

• To handle quickly, may use a table of pointers– Stored in low memory; routine called via the

table - Contains address of service routine– also known as array or interrupt vector

• Interrupted process must have its address saved on a system stack (so that it knows where to resume processing)– address is loaded onto the program counter

Array/Interrupt Vector Example

• O/S - running process with address FFF0D

• I/O requests to read; produces interrupt

• O/S saves the address of process on the system stack; disables other interrupts; gets the address of the I/O service from the vector; service routine is run

• Get FFF0D from stack; return to program counter; enable other interrupts

Operating SystemsArchitecture Definitions

• Array/Interrupt Vector - a table of pointers stored in low memory– purpose: handle interrupts quickly– bootstrap initializes at startup

• I/O Structure - controller can have multiple devices attached to it– device controller moves data between

peripheral devices and local buffer storage

Operating SystemsArchitecture Definitions

• I/O Interrupts - CPU loads registers within the device controller

• The device controller examines the register content to determine what to do: – read,– transfer data to buffer, – when complete, interrupts CPU

Operating SystemsArchitecture Definitions

• Interrupt Methods– Asynchronous - return control to the user

before I/O is complete• more efficient: while doing I/O, CPU can process or

schedule I/O

• uses device status table to keep track of I/O requests

– Synchronous - I/O started at completion• only one request at a time

• less overhead

Synchronous: Waiting for I/O completion

• Only one I/O request is pending– allows O/S to know exactly which I/O device

• Can be accomplished:– wait instruction - CPU is idle until the next

interrupt– Wait loop - waits in a loop until next interrupt

• generates instruction fetches

• can tie up memory

Asynchronous: Device Status Table

• Used when control is passed back to the user program before I/O is complete

• Still requires wait logic - done through a system call to the operating system

• Table contains status of all I/O devices

Process– Type a character at the keyboard– Causes an interrupt to the CPU– Wait until the process is finished– Saves address, calls service routine– Service routine saves the contents of the CPU registers– Stores characters in the buffer– Pointer, counter adjusted– Data is processed– Restore registers, interrupted instruction gains control

High-Speed I/O Devices

• When you are entering a series of characters at the keyboard, each character is stored contiguously in a buffer

• Asynchronous I/O is assigned a low priority and interrupted often

• High speed I/O devices can process as quickly as memory - too many interrupts make inefficient usage of the CPU

DMA- Direct Memory Access

– O/S finds an empty buffer– DMA controller takes over the I/O operation– CPU performs other tasks– DMA controller interrupts the CPU on

completion

• Little process execution time

• For high speed I/O devices

Memory

• Main memory - temporary, volatile– RAM/DRAM– I/O controller has registers which hold

commands/data (IBM PCs and MAC)– have memory mapped I/O - addresses

physically mapped to device registers DEVICE= [video controllers]

• Secondary Storage - magnetic disk, tape– storage area for programs, data

Cache

• Even faster than main memory

• More expensive

• Copy can be in main memory and then cache (after it is used)

• Cache management - keep copies in sync

Cache Management

• Should be designed so that 80-90% of all access is in cache

• Single Process - not an issue

• Multitasking Environment - CPU is switched between multiple processes - must ensure that each process accessing something has the correct copy

Cache Management

• Distributive/Multitasking - CPU is switched between processes – if multiprocessor accesses a counter, make sure

increment counter is in all caches– handled by the hardware, below the O/S

• Known as cache coherency

Hardware Protection

• Multi-users, tasking and processors has made this a challenge

• Sharing resources has made this harder to do - an error by one program may affect other processes

Hardware Protection

• Time-sharing, Auto Job sequencing - infinite loop could affect several programs/files

• DOS, Multi-programming - program can change program/data of another program

• Hardware error - trap - uses interrupt vector

Protection Types• Dual mode operation

– user mode– monitor mode - when there is a trap, O/S

switches to this mode; has privileged instructions– Requires a mode bit: NT and OS/2 have– DOS does not

• I/O Protection - all I/O instructions are privileged

Protection

• Memory Protection– user can’t touch interrupt vector or service

routines - based on base/range addressing

• CPU Protection - prevent a program from “hogging” the system– via a timer/time slice

Trap

• Since I/O is privileged, user program must ask monitor to do I/O– done via a system call

– usually done as a trap to a specific location in the interrupt vector

– hardware treats a trap as a software interrupt, checks if a valid request, sets mode bit to monitor mode

– resets to user mode when complete

HCL

• Hardware Compatibility List– List of all hardware know to work properly

with WIN2K• can obtain on install CD, documentation with

software OR download from web:– www.microsoft.com/hwtest/hcl

• newer machines - not an issue; older adapters (8bit) are an issue

• MS will not support hardware that is not on the list

Windows 2000 Boot

• BIOS checks hardware and loads O/S– checks either floppy (boot sector) or hard drive

(master boot record) for instructions on location of O/S

• In WIN2K, BIOS calls boot loader (NTLDR) and it loads OS

Boot Sequence

• NTLDR reads the BOOT.INI file (contains WIN menu and instructions on the kernel location)

• User selects a menu item; NTDETECT.COM program loads – detects hw, tells NTLDR

• NTLDR loads NTOSKRNL (kernel) and passes it info from NTDETECT; kernel loads WIN2K files

Network Structure

• LAN– Ethernet, FDDI, token-ring– Multiple Oss, links, gateways

• WAN– Arpanet was the first (1960s)– Communication processors, routers/switches

and router Oss– PPP replaced by PPTP

Chapter 3 - OS Structures

• Examine an operating system via– System Components– Services provided– User Interfaces and System Calls

System Components

• Process Management

• Main Memory Management

• Secondary Storage Management

• I/O System Management

• File Management

• Protection

• Networking

• Command-Interpreter

Process Management

• A process is a program in execution

• System calls can split a process into subprocesses

• Each program requires initialization and resources– CPU, memory– may be given at start of execution or as needed

Process

• Active entity– program counter keeps track of next instruction

• A unit of work in the system– system processes– user processes

• Processes execute concurrently by multiplexing the CPU

O/S tasks for Process Management

• Create/delete processes

• Suspend/resume processing

• Synchronize processes

• Process communication

• Handle deadlocks

Main Memory Management• Main memory is an array of bytes, each has an

addressable location• Place where data and instructions are stored; I/O

and CPU access quickly• Efficient to keep many programs in memory• O/S must:

– keep track of what is in memory– decide what to load– allocate and deallocate

Secondary Storage Management

• Back up to main memory (not enough main memory to store everything)– compilers, editors, sorters et.

• O/S is responsible for:– managing free space– allocating storage– disk scheduling

I/O System Management

• Prevent direct access to hardware devices from user programs– specifics are built into the I/O system

• Must manage:– buffer-caching– device driver interfaces– hardware device drivers

File Management• Files are part of storage devices such as magnetic tape,

disk and optical disk• These devices are made up of a physical media and a

software driven device driver– files are mapped to the media via the devices

• O/S must handle:– creation, deletion of files and directories– support for manipulating files, directories– mapping files to storage– backup and recovery of files, directories

Protection

• The O/S must ensure that resources are accessed by the appropriate processes– a process must have proper authorization

• Examples– memory protection: process within an address

space– CPU protection via a time– I/O cannot be performed directly by a user prog

Networking

• Distributed systems (do not share memory, clock), communicate with each other via a communications network– routing, connection, contention and security

must be managed

Command-Interpreter System

• Command interpreter is a system program which provides the interface between the user and the O/S– DOS, UNIX shell commands

• Types of commands: process creation, execution...

Operating System Services

• makes programming task easier– Program Execution– I/O Operations– File-system manipulation– Communications– Error detection

• ensures system efficiency– accounting, resource allocation, protection

Operating Systems Services• Must be easy to execute programs and programs should end

• O/S must provide a way to do I/O

• Must have some type of file-system manipulation - for reading, writing, deletes

• Provide a means for process communication - either on the same computer or over a NW

• Error detection and correction

• Allocate resources

• Accounting

• Security and Protection

System Calls• Interface between a process and the O/S

• Usually in Assembler or C

• Example: copy data from one file to another

– need two file names

• how is this handles? Prompts, control cards

– program opens I/P and creates O/P files

– error message handles

– loop: read data and write to O/P

– error handles (hw failures)

– exit loop, close files

• Each step is a series of system calls

Operating SystemsTypes of System Calls

• Process and Job Control

• File Manipulation

• Device Management

• Information Maintenance

• Communication

* refer to page 68, Figure 3.2

System Programs

• In the hierarchy, between operating system and application programs

• Designed to provide an easier environment for program development

• User interface to system call programs

• More complex programs

• Most important system program is the command interpreter - gets and executes next command

Command Interpreter

• May contain the actual execution code

• or it may identify a file and execute (UNIX)– less maintenance: change file containing code,

don’t have to change all of your system commands

– overhead: must pass parameters to system pgm

System Programs: Categories• File manipulation - create, delete, copy

• Status information - memory, date

• File modification - text editors• Programming-language support - comilers,

assemblers, interpreters

• Program loading and execution - linkers, loaders

• Communications - file transfers, virtual connections, email

• Application Programs - databases

• System call is the program interface

• System program is the user interface

System Structure

• The way components are interconnected and melded into a kernel

• Types of structure– Simple– Layered

System Structure

• Simple - interfaces and level of functionality are not well separated; limited by hardware– MS-DOS - no dual mode operation– original UNIX - two parts: kernel and system

programs

System Structure• Layered - broken down into smaller parts;

allows for greater control over each part– less efficient (overhead between layers) – modularity - break the O/S into layers on top of one

another; each module communicates with the one below it; simplifies debugging

– information hiding-system programmers can change lower levels without affecting external interface

– layer does not need to know about other layers

Layered Approach• Disadvantages

– less efficient - traversing multiple layers to accomplish a task

– must plan layers carefully - ensure that ALL of the needed resources are layered below

• backing store must be below memory, because memory accesses it

• should backing store be above or below CPU? Normally above, waits for I/O, but CPU could use it as auxiliary storage

Ideal System Structure

• Best approach: fewer layers, prohibit direct access to lower level, allow multi-tasking, dual mode

Virtual Machine

• Uses layered approach• Application program regards everything below it

as part of the hardware• O/S creates the illusion of multiple processes,

each executing its own processor, each with its own (virtual) memory– other operating systems can be loaded on top of the

virtual machine (SUN and DEC have a virtual INTEL machine on top of their proc)

Virtual Machine Structure

Application Programs - can call system pgms

System Programs - can use system calls, hw instructions; treats sys calls and hw as same level

Kernel - translates hw instructions to sys calls

HW

Virtual Machine

• Can create virtual card readers and line printers, disks

• Difficult to implement– virtual machine sw requires a lot of disk space– virtual machine can only run in monitor mode -

so you must create a virtual user and virtual monitor mode

– need exact duplication of configuration

Virtual Machine - dual mode• Virt. Mach sw runs in monitor

• Machine runs in user mode

• Create a virtual user and monitor mode which run in user mode

• When I/O request (sys. Call) transfers from virtual user to virtual monitor

• Virt. Monitor changes register contents and pgm cntr to simulate a system call

• Privileged I/O instructions is executed

• Virt. Mach. Monitor will simulate I/O instr.

IBM VM

• Has privileged instructions on virtual machine and all others directly on the hw

• Program can execute even though it is not entirely in memory

• The CPU is spread across multiple virtual machines

• Advantage: Protection. Machines are isolated; good for testing; no security probl.

System Design and Generation• Design Goals - safe, fast, reliable, flexible, error-free

• Mechanisms - how to do something– timer is a mechanism

• Policies - what will be done– time splice is policy

• Implementation - which language to use– Assembly is fast; C is more portable

– Ideal: memory management and CPU scheduling in Assembly; rest in C

SYSGEN

• Running the O/S at multiple sites

• Can configure specifically for each site– CPU, devices, memory, CPU scheduling

algorithm– What CPU will be used? How much memory?

Which devices are available? Which O/S?

top related