You are on page 1of 17

Early Computer Systems

First computer generation (1945 55)


Operating systems

Vacuum tubes A single group of people did all the work


design, construction, programming, operating, maintenance

Programming in machine language


plugboard, no programming languages

Users directly interact with computer system Programs directly interact with hardware No operating system
Computer Architecture WS 06/07 Dr.-Ing. Stefan Freinatis

Early Computer Systems


First computer generation (1945 55)
Operating systems

IBM 407 Accounting Machine


Electro mechanical tabulator

Wiring panel (plugboard)

Source: http://www.columbia.edu/acis/history/407.html
Computer Architecture WS 06/07 Dr.-Ing. Stefan Freinatis

Early Computer Systems


First computer generation (1945 55)
Operating systems

IBM 402 plugboard


Source: http://www.columbia.edu/acis/history/plugboard.html Computer Architecture WS 06/07 Dr.-Ing. Stefan Freinatis

Early Computer Systems


First computer generation (1945 55)
Operating systems

Vacuum tubes A single group of people did all the work


design, construction, programming, operating, maintenance

Programming in machine language


plugboard, no programming languages

Users directly interact with computer system Programs directly interact with hardware No operating system
Computer Architecture WS 06/07 Dr.-Ing. Stefan Freinatis

Batch Systems
Second computer generation (1955 65)
Operating systems

Transistors, Mainframe computers First high level programming languages


Fortran (Formula translation), Algol (Algorithmic language), Lisp (List Processing)

No direct user interaction with computer


Everything went via the computer operators.

Users submit job to operator


job = program + data + control information.

Operator batched jobs


Composition of jobs with similar needs
Computer Architecture WS 06/07 Dr.-Ing. Stefan Freinatis

Batch Systems
Second computer generation (1955 65)
Operating systems

Structure of a typical FMS (Fortran Monitor System) batch job

Figure from [Ta01 p.9]

Computer Architecture

WS 06/07

Dr.-Ing. Stefan Freinatis

Batch Systems
Second computer generation (1955 65)
Operating systems

Batch job processing scence [Tanenbaum]

IBM

IBM

IBM

Figure from [Ta01 p.8]

Computer Architecture

WS 06/07

Dr.-Ing. Stefan Freinatis

Batch Systems
Second computer generation (1955 65)
Operating systems

Resident monitor program in memory


Monitor program loading one job one after another (from tape).

Sequenced job input


Jobs from tape or from card reader. Monitor program cannot select jobs on its own. Monitor program

One job in memory at a time CPU often idle


waiting for slow I/O devices
Memory

job

Computer Architecture

WS 06/07

Dr.-Ing. Stefan Freinatis

Multiprogram Systems
Third computer generation (1965 80)
Operating systems

Integrated Circuits Disks


Direct access to several jobs on disk. Now the operating system can select jobs (job scheduling). Operating System job 1 job 2 job 3 job 4
Memory
WS 06/07 Dr.-Ing. Stefan Freinatis

Multiprogrammed Batch Systems


Several jobs in memory at the same time Operating system shares CPU time among the jobs (CPU scheduling). Better CPU utilization
Computer Architecture

Multiprogram Systems
Operating systems

Assume program A being executed on a single-program computer. The program needs two I/O operations.
CPU usage over time

A1
I/O A

A2
I/O A

A3

Assume program B being executed on the same computer at some other time. The program needs no I/O.
CPU usage over time

B1

B2

B3

t
WS 06/07 Dr.-Ing. Stefan Freinatis

Computer Architecture

Multiprogram Systems
Operating systems

Total execution time on a single-program computer:

Now assume program A and B being executed on a multi-program computer.


CPU usage over time

A1

B1
I/O A

A2

B2
I/O A

A3

B3

Total execution time on a multi-program computer:

Computer Architecture

WS 06/07

Dr.-Ing. Stefan Freinatis

Multiprogram Systems
Third computer generation (1965 80)
Operating systems

Multiprogram computers were still batch systems Desire for quicker response time
It took hours/days until output ready. A single misplaced comma could cause a compilation to fail, and the programmer wasted half a day [Ta01 p.11].

Desire for interactivity


Users wanted to have the machine for themselves, working online.

Requests paved the way for timesharing systems (still in third computer generation)
Computer Architecture WS 06/07 Dr.-Ing. Stefan Freinatis

Time Sharing Systems


Third computer generation (1965 80)
Operating systems

Direct user interaction


Many users share a computer simultaneously. Terminals Host.

Multiple job execution with high frequent switching


Operating system must provide more sophisticated CPU scheduling.

Disk as backing store for memory


Virtual memory

Operating System
Swapping, address translation, protecting memory (memory management)

Many jobs awaiting execution Disk as input / output storage

Need for the OS to manage user data (file system management)


Computer Architecture WS 06/07 Dr.-Ing. Stefan Freinatis

Time Sharing Systems


Assume program A and B as previously. Execution on a time sharing system:
CPU usage over time

Program B has finished

CPU idle

I/O A

I/O A

Small time slices allow for interactivity (quasi parallel execution)

Time sharing is not necessarily faster. Compare to the multiprogramming example:


CPU usage over time

A1

B1
I/O

A2

B2
I/O

A3

B3

Computer Architecture

WS 06/07

Dr.-Ing. Stefan Freinatis

Memory Layout
Operating System
program 1 program 2 program 3 program 4 program 5 program 6 program n

Time sharing system

Multi program system Operating System job 1 job 2 job 3

Batch system Monitor program

Working Memory

job job 4

Memory

Memory
Computer Architecture WS 06/07

Memory
Dr.-Ing. Stefan Freinatis

Modern Systems
Fourth computer generation (1980 present)
Operating systems

Single-chip CPUs Personal Computers Real-Time Systems Multiprocessor Systems Distributed Systems Embedded Systems

CP/M MS-DOS, DR-DOS Windows 1.0 ... Windows 98 / ME Windows NT 4.0 ... 2003, XP XENIX, MINIX, Linux, FreeBSD

Computer Architecture

WS 06/07

Dr.-Ing. Stefan Freinatis

Real Time Systems


Modern systems

Rigid time requirements Hard Real Time


Industrial control & robotics Guaranteed response times Slimmed OS features (no virtual memory)
RT System

Soft Real Time


Multimedia, virtual reality

RT System

Less restrictive time requirements


Computer Architecture WS 06/07 Dr.-Ing. Stefan Freinatis

Multiprocessor Systems
Modern systems

n processors in system (n > 1), tightly coupled


Resource sharing Symmetric Multiprocessing
Each CPU runs identical copy of OS All CPUs are peers (no master-slave)
CPU CPU User User User User Operating System

CPU

CPU

Asymmetric Multiprocessing
Each CPU is assigned specific task Task assignment by master CPU
Computer Architecture

User

User

User

User

Operating System

CPU

CPU

CPU

CPU

WS 06/07

Dr.-Ing. Stefan Freinatis

Distributed Systems
Modern systems

n computers/processors (n > 1), loosely coupled


Individual computers Autonomous operation Communication via network Network Operating System
File Sharing Message exchange

Computer Architecture

WS 06/07

Dr.-Ing. Stefan Freinatis

Embedded Systems
Modern systems

Dedicated to specific tasks Encapsulated in host device


invisible, usually not repaired when defect

Small in size, low energy Sometimes safety-critical


automotive drive by wire, medical apparatus

Custom(ized) operating system


Little or no file I/O, sometimes multitasking, no fancy OSs.
Computer Architecture WS 06/07 Dr.-Ing. Stefan Freinatis

Resource Management
File system management
Operating systems

Creation and organization of a logical storage location where data (user data, system data, programs) can be persistently stored in terms of files. Assigning rights and managing accesses. Maintentance.

Process management
Creation of processes (programs in execution) and sharing the CPU among them. Control of execution time. Enabling communication between processes.

Memory management
Assigning memory areas to processes. Organizing virtual memory.

Device management.
Low level administrative work related to the specifics of the I/O devices. Translations, low level stream processing. Usually by device drivers.
Computer Architecture WS 06/07 Dr.-Ing. Stefan Freinatis

Operating Systems
An operating system in the wide sense is the software package for making a computer operable.
Image source: Wikipedia on kernel, English

The operating system in the narrow sense is the one program running all the time on the computer (the kernel). It consists of several tasks and is asked for services through system calls.
Computer Architecture WS 06/07 Dr.-Ing. Stefan Freinatis

Operating Systems
Operating system categories
Single User - Single Tasking Single User - Multi Tasking Multi User - Single Tasking Multi User - Multi Tasking
MS-DOS Windows, MacOS

CP/M Unix, VMS

Computer Architecture

WS 06/07

Dr.-Ing. Stefan Freinatis

Computer Architecture

File System Management

Computer Architecture

WS 06/07

Dr.-Ing. Stefan Freinatis

File System Management


Storage Media Magnetic Disks Files and Directories File Implementation Directory Implementation Free Block Management File System Layout Disk Performance Floppy Disks
Computer Architecture WS 06/07 Dr.-Ing. Stefan Freinatis

Storage Media
Figure from [Sil00 p.31]
primary storage

Storage hierarchy

low

seconday storage

access time high


Computer Architecture WS 06/07 Dr.-Ing. Stefan Freinatis

Storage Media
Cost versus access time for DRAM and magnetic disks [HP06 p.359]

Flash

1ms
Computer Architecture WS 06/07

10ms

Dr.-Ing. Stefan Freinatis

Storage Media
Requirements for secondary storage

Store large amount of data


Much more data than fits into (virtual) memory

Persistent store
The information must survive the termination of the process creating or using it.

Concurrent access to data


Multiple processes should be able to access the data simultaneously.

Storage of data on secondary storage media in terms of files.


Computer Architecture WS 06/07 Dr.-Ing. Stefan Freinatis

File System Management


Storage Media Magnetic Disks Files and Directories File Implementation Directory Implementation Free Block Management File System Layout Disk Performance Floppy Disks
Computer Architecture WS 06/07 Dr.-Ing. Stefan Freinatis

Magnetic Disks
Magnetic disk drive principle
Figure from [Sil00 p.29]

disk controller

Disk drive

host controller

Computer

Computer Architecture

WS 06/07

Dr.-Ing. Stefan Freinatis

Magnetic Disks
Sector: Smallest addressable unit on magnetic disk.
Data size between 32 and 4096 bytes (standard 512 bytes).
512 bytes

A disk sector
Figure from [Ta01 p.315]

Several sectors may be combined to form a logical block. The composition is usually performed by a device driver. In this way the higher software layers only deal with abstract devices that all have the same block size, independent of the physical sector size. Such a block is also termed cluster.
Computer Architecture WS 06/07 Dr.-Ing. Stefan Freinatis

Magnetic Disks
Formatted Disk Capacity
= bytes per sector
x

number of tracks on a platter


x

sectors per track

cylinder

tracks per cylinder

capacity of a track capacity of one platter side capacity of all platter sides = disk capacity

CHS = (7, 2, 9), sector size: 512 byte Capacity = 63 kB C = cylinder H = Heads = tracks per S = sectors per track
Computer Architecture WS 06/07

cylinder

Dr.-Ing. Stefan Freinatis

Magnetic Disks
(heads)

Disk parameters for the original IBM PC floppy disk and a Western Digital WD 18300 hard disk [Ta01 p.301].
Computer Architecture WS 06/07 Dr.-Ing. Stefan Freinatis