0% found this document useful (0 votes)
56 views29 pages

Terminal Cycle

This document provides an introduction to the CSE 380 Computer Operating Systems course at the University of Pennsylvania for Fall 2003. It discusses what an operating system is, how it provides an interface between hardware and user programs and shares resources like CPU time, memory, and disks. It also outlines some of the key challenges in operating system design like performance, synchronization, scheduling, memory management, and security.

Uploaded by

Tamil Stocks
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
56 views29 pages

Terminal Cycle

This document provides an introduction to the CSE 380 Computer Operating Systems course at the University of Pennsylvania for Fall 2003. It discusses what an operating system is, how it provides an interface between hardware and user programs and shares resources like CPU time, memory, and disks. It also outlines some of the key challenges in operating system design like performance, synchronization, scheduling, memory management, and security.

Uploaded by

Tamil Stocks
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 29

CSE 380

Computer Operating Systems

Instructor: Insup Lee

University of Pennsylvania
Fall 2003
Lecture Note 1: Introduction

1
What is an Operating System?

Operating systems provides an interface between hardware and user


programs, and makes hardware usable

2
Resource Abstraction and Sharing

q It is an extended machine providing abstraction of the


hardware
ß Hides the messy details which must be performed
ß Presents user with a virtual machine, easier to use

q It is a resource manager
ß Time on CPU is shared among multiple users/programs
ß Space in memory and on disks is shared among multiple
users/programs

3
Pentium Architecture

4
Abstractions in OS

Hardware OS abstraction
q Disks q Files
q Memory q Programs
q Processors q Threads / Processes
q Network q Communication
q Monitor q Windows and GUI
q Keyboard q Input
q Mouse q Locator
5
Sharing of Memory

Issues

q Allocation schemes
Program 1
q Protection from each other
Free space q Protecting OS code

q Translating logical addresses to physical


Program 3
q Swapping programs
Program 2
q What if physical memory is small: Virtual
memory
OS

6
Timesharing

P1 OS P2 OS P1 OS P3 OS

q At any point, only one program can run on CPU

q Context switch: changing the program that has CPU

q When to switch (goal: to optimize the CPU usage)

ß When a program terminates

ß When a program has run “long enough”

ß When a program executes a system call or waits for I/O

ß When an external interrupt arrives (e.g. mouse click)

q OS must do all the book-keeping necessary for context switch, with minimum number
of instructions
7
Challenges in OS
Why can’t Microsoft still get rid of all bugs in Windows ?

q Performance is critical

ß How to reduce the memory and time overhead due to OS

q Synchronization and deadlocks due to shared resources

q Scheduling of multiple programs

ß Fairness, response time, real-time applications

q Memory management

ß Virtual memory, paging, segmentation

q Security and Protection

ß Authorization, authentication, viruses

q Interrupt management and error handling

q Marketability and backward compatibility


8
How does OS work?

q OS gets control of the CPU repeatedly

q Let’s look at two typical scenarios to get a glimpse of how


things work (we will get a more accurate and detailed
understanding as the course progresses)

q Basic knowledge about computer architecture is essential !


(Read Sec 1.4 to review CSE 240)

9
Inside a CPU
q State of a running program
ß Registers
ß Program counter (PC)
ß Stack pointer
ß Program status word (PSW)
q Key distinction in PSW: user mode vs kernel (OS) mode
q Key instruction for OS calls: TRAP (switch to kernel mode)
q Many operations (such as accessing I/O devices) are possible only in
the kernel mode

10
Different types of Memory

q Use of disks unavoidable (permanence and size)


q Access time is significantly slower for disks
11
Sample Scenario 1

q Consider a statement to read from a file in a user program P

q User program stores parameters such as file-id, memory-address, number-


of-bytes, and system-call number of read, and executes TRAP instruction
to invoke OS

q Hardware saves the state of current program, sets the mode-bit in PSW
register in CPU to 1, and transfers control to a fixed location in OS code

q OS maintains an internal file table that stores relevant information about all
open files

12
Sample Scenario 1 (continued)

q OS read routine examines the parameters, checks for errors (e.g. file must
be open), consults its file table, and determines the disk address from
where data is to be retrieved

q then it sets up registers to initiate transfer by the disk controller

q While disk controller is transferring data from disk to memory, OS can


suspend current program, and switch to a different program

q When OS routine finishes the job, it stores the status code, and returns
control to the user program P (hardware resets mode-bit)

q Note: Disk controller is accessed only by OS code (this is ensured by


hardware protection)
13
Sample Scenario 2

q Consider an assignment x:=y in a program P

q Compiler assigns logical addresses, say Add1 and Add2, for program
variables in P’s data space

q When P is loaded in memory, OS assigns a physical base address to store


P and its data

q Compiled code looks like

Load (R, Add1); Store (R, Add2)

q While executing Load instruction the hardware translates the logical


address Add1 to a physical memory location (this is done by Memory
Management Unit MMU)
14
Sample Scenario 2 (continued)

q However, OS may not keep all of P in memory all the time

q OS maintains an internal table, called page table, that keeps track of which blocks
of P are in memory

q If Add1 is not in memory, MMU generates a page fault, and transfers control to OS

q OS examines the cause, and initiates a disk transfer to load in the relevant block of
P

q OS needs to decide memory allocation for the block to be fetched (page


replacement algorithms)

q While this block is being fetched, P may be suspended using a context switch

15
Brief History of Operating Systems

q 1940's -- First Computers


q 1950's -- Batch Processing
q 1960's -- Multiprogramming (timesharing)
q 1970's -- Minicomputers & Microprocessors
q 1980's -- Networking, Distributed Systems, Parallel
(multiprocessor) Systems
q 1990's and Beyond -- PCs, WWW, Mobile Systems,
embedded systems

16
1940's -- First Computers

q Computer dedicated to one user/programmer at a time. Program


loaded manually by programmer, using console switches.
Debugging using console lights.
q Advantages:
ß Interactive (user gets immediate response)
q Disadvantages:
ß Expensive machine idle most of time, because people are slow.
ß Programming & debugging are tedious.
ß Each program must include code to operate peripherals -- error
prone, device dependencies.
q Libraries of subroutines to drive peripherals are example of
typical OS service.

17
1950's -- Batch Processing

q User/programmer submits a deck of cards that describes a job to be


executed.
q Jobs submitted by various users are sequenced automatically by a
resident monitor.
q Tape drives available for batching of input and spooling of output.
q Advantages:
ß Computer system is kept busier.
q Disadvantages:
ß No longer interactive; longer turnaround time.
ß CPU is still idle for I/O-bound jobs.
q OS issues -- command processor (JCL), protection of resident monitor
from user programs, loading of user programs after monitor.

18
Typical Batch System

Early batch system


ß bring cards to 1401
ß read cards to tape
ß put tape on 7094 which does computing
ß put tape on 1401 which prints output

19
1960's -- Multiprogramming
(timesharing)
q The advent of the I/O processor made simultaneous I/O and CPU processing
possible.
q CPU is multiplexed (shared) among a number of jobs -- while one job waiting for
I/O, another can use CPU.
q Advantages:
ß Interactiveness is restored.
ß CPU is kept busy.
q Disadvantages:
ß Hardware and O.S. required become significantly more complex.
q Timesharing - switch CPU among jobs for pre-defined time interval
q Most O.S. issues arise from trying to support multiprogramming -- CPU scheduling,
deadlock, protection, memory management, virtual memory, etc.
q CTSS (Compatible Time Sharing System), Multics

20
1970's - Minicomputers &
Microprocessors

q Trend towards many small to mid-range personal computers,


rather than a single mainframe.
q Early minicomputers and microprocessors were small, so there
was some regression to earlier OS ideas.
ß e.g. DOS on PC is still essentially a batch system similar to those
used in 1960, with some modern OS ideas thrown in (e.g.,
hierarchical file system).
q This trend changing rapidly because of powerful new
microprocessors.
q Also, the user interface (GUI) became more important.
q UNIX, DOS
21
1980's - Networking

q Powerful workstations (e.g., PDP, VAX, Sunstations, etc.)


q Local area networks (e.g., Ethernet, Token ring) and long-distance
network (Arpanet)
q Networks organized with clients and servers
q Decentralization of computing requires more communication (e.g.,
resource sharing)
q O.S. issues -- network communication protocols, data encryption,
security, reliability, consistency of distributed data
q Real-Time Systems – timing constraints, deadlines, QoS (quality of
service)

22
1990's and Beyond

q Parallel Computing (tera-flops)

q Powerful PCs, Multimedia computers

q High-speed, long-distance communication links to send large amounts of


data, including graphical, audio and video

q World Wide Web

q Electronic notebooks and PDAs using wireless communication


technologies

q Embedded computers: medical devices, cars, smartcards

q O.S. issues -- Large heterogeneous systems, mobile computing, utilization


of power, security, etc.
23
Operating System Structure

q Monolithic Systems
q Layered Systems
q Virtual Machines
q Client-Server Model

24
Operating System Structure (1)

Simple structuring model for a monolithic system

25
Operating System Structure (2)

Structure of the THE operating system


26
Operating System Structure (3)

Structure of VM/370 with CMS

27
Operating System Structure (4)

The client-server model

28
Operating System Structure (5)

The client-server model in a distributed system

29

You might also like