79
Operating System Chap. 1) Introduction 경희대학교 컴퓨터공학과 이승룡

Chap. 1) Introductionuclab.khu.ac.kr/lectures/2016_2_os/os-ch01.pdf · 2020. 11. 12. · Software Development Environment (compilers, loaders, editors, utilities Command interpreter,

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Chap. 1) Introductionuclab.khu.ac.kr/lectures/2016_2_os/os-ch01.pdf · 2020. 11. 12. · Software Development Environment (compilers, loaders, editors, utilities Command interpreter,

Operating System

Chap. 1) Introduction

경희대학교 컴퓨터공학과

이 승 룡

Page 2: Chap. 1) Introductionuclab.khu.ac.kr/lectures/2016_2_os/os-ch01.pdf · 2020. 11. 12. · Software Development Environment (compilers, loaders, editors, utilities Command interpreter,

Operating System 1

What is an Operating System?

A program that acts as an intermediary between a user of a computer and

the computer hardware

Operating system goals:

Execute user programs and make solving user problems easier

Make the computer system convenient to use

Use the computer hardware in an efficient manner

Page 3: Chap. 1) Introductionuclab.khu.ac.kr/lectures/2016_2_os/os-ch01.pdf · 2020. 11. 12. · Software Development Environment (compilers, loaders, editors, utilities Command interpreter,

Operating System 2

Abstract View of Computer System Components

Page 4: Chap. 1) Introductionuclab.khu.ac.kr/lectures/2016_2_os/os-ch01.pdf · 2020. 11. 12. · Software Development Environment (compilers, loaders, editors, utilities Command interpreter,

Operating System 3

Operating System Definitions

Resource allocator – manages and allocates resources

Control program – controls the execution of user programs and operations of

I/O devices

Kernel – the one program running at all times (all else being application

programs)

Page 5: Chap. 1) Introductionuclab.khu.ac.kr/lectures/2016_2_os/os-ch01.pdf · 2020. 11. 12. · Software Development Environment (compilers, loaders, editors, utilities Command interpreter,

Operating System 4

What is an OS?

OS is a resource manager

Abstraction

Sharing

Time multiplexing

Space multiplexing

Protection

Fairness

Performance

OS provides the program execution environment

CPU

Memory

I/O devices

Resources

Page 6: Chap. 1) Introductionuclab.khu.ac.kr/lectures/2016_2_os/os-ch01.pdf · 2020. 11. 12. · Software Development Environment (compilers, loaders, editors, utilities Command interpreter,

Operating System 5

System Software Layers

Operating System (Kernel)

Software Development Environment(compilers, loaders, editors, utilities

Command interpreter, libraries)

User applications

Middlewares

Computer System Architecture

Page 7: Chap. 1) Introductionuclab.khu.ac.kr/lectures/2016_2_os/os-ch01.pdf · 2020. 11. 12. · Software Development Environment (compilers, loaders, editors, utilities Command interpreter,

Operating System 6

Computer-System Architecture

Page 8: Chap. 1) Introductionuclab.khu.ac.kr/lectures/2016_2_os/os-ch01.pdf · 2020. 11. 12. · Software Development Environment (compilers, loaders, editors, utilities Command interpreter,

Operating System 7

Computer-System Operation

I/O devices and the CPU can execute concurrently

Each device controller is in charge of a particular device type

Each device controller has a local buffer

CPU moves data from/to main memory to/from local buffers

Cf) DMA (Direct Memory Access)

I/O is from the device to local buffer of controller

Device controller informs CPU that it has finished its operation by causing an

interrupt

Page 9: Chap. 1) Introductionuclab.khu.ac.kr/lectures/2016_2_os/os-ch01.pdf · 2020. 11. 12. · Software Development Environment (compilers, loaders, editors, utilities Command interpreter,

Operating System 8

Modern PC Architecture

MemoryControllerHub (MCH)

I/OControllerHub (ICH)

Page 10: Chap. 1) Introductionuclab.khu.ac.kr/lectures/2016_2_os/os-ch01.pdf · 2020. 11. 12. · Software Development Environment (compilers, loaders, editors, utilities Command interpreter,

Operating System 9

CPU

Registers

Program Counter (PC)

Instruction Register (IR)

Program Status Word (PSW)

General-purpose registers

Instruction Set Architecture

RISC vs. CISC

Intel, SPARC, MIPS, PowerPC, ARM, Alpha, …

Pipelining

Fetch, Decode, Execute, Write Back, etc.

Instruction-Level Parallelism(ILP)

Superscalar vs. VLIW

Simultaneous Multithreading

Page 11: Chap. 1) Introductionuclab.khu.ac.kr/lectures/2016_2_os/os-ch01.pdf · 2020. 11. 12. · Software Development Environment (compilers, loaders, editors, utilities Command interpreter,

Operating System 10

OS and Architecture

Mutual interaction

The functionality of an OS is limited by architectural features

Multiprocessing on DOS/8086?

The structure of an OS can be simplified by architectural support

Interrupt, DMA, etc.

Most proprietary OS’s were developed with the certain architecture in mind

Page 12: Chap. 1) Introductionuclab.khu.ac.kr/lectures/2016_2_os/os-ch01.pdf · 2020. 11. 12. · Software Development Environment (compilers, loaders, editors, utilities Command interpreter,

Operating System 11

Storage Structure

Main memory – only large storage media that the CPU can access directly

von Neumann architecture vs. Harvard architecture

SRAM vs. DRAM

DDR, QDR, RDRAM

Secondary storage – extension of main memory that provides large

nonvolatile storage capacity

Magnetic disks – rigid metal or glass platters covered with magnetic

recording material

Disk surface is logically divided into tracks, which are subdivided into sectors

The disk controller determines the logical interaction between the device and the

computer

Page 13: Chap. 1) Introductionuclab.khu.ac.kr/lectures/2016_2_os/os-ch01.pdf · 2020. 11. 12. · Software Development Environment (compilers, loaders, editors, utilities Command interpreter,

Operating System 12

Moving-Head Disk Mechanism

Page 14: Chap. 1) Introductionuclab.khu.ac.kr/lectures/2016_2_os/os-ch01.pdf · 2020. 11. 12. · Software Development Environment (compilers, loaders, editors, utilities Command interpreter,

Operating System 13

A Modern Disk Drive

IBM Deskstar 120GXP (120GB)

Disks/Head: 3/6

Max. areal density: 29.7 Gbits/sq.inch

Max. recording density: 524K BPI (bits/inch)

Track density: 56.7K TPI (tracks/inch)

Seek time: 8.5ms average

Rotational latency: 7200rpm (8.3ms/rotation)

Max. media transfer rate: 592 Mbits/sec

Max. interface transfer rate: 100MB/sec

Sustained data rate: 48 to 23 MB/sec

SAMSUNG HD203WI (2TB)

Seek time: 8.9ms

Rotational latency: 5400rpm

Max. media transfer rate: 300MB/sec

Max. interface transfer rate: 135MB/sec

Page 15: Chap. 1) Introductionuclab.khu.ac.kr/lectures/2016_2_os/os-ch01.pdf · 2020. 11. 12. · Software Development Environment (compilers, loaders, editors, utilities Command interpreter,

Operating System 14

Storage Hierarchy

Storage systems organized in hierarchy

Speed

Cost

Volatility

Caching

copying information into faster storage system

main memory can be viewed as a last cache for secondary storage

Page 16: Chap. 1) Introductionuclab.khu.ac.kr/lectures/2016_2_os/os-ch01.pdf · 2020. 11. 12. · Software Development Environment (compilers, loaders, editors, utilities Command interpreter,

Operating System 15

Storage-Device Hierarchy

Page 17: Chap. 1) Introductionuclab.khu.ac.kr/lectures/2016_2_os/os-ch01.pdf · 2020. 11. 12. · Software Development Environment (compilers, loaders, editors, utilities Command interpreter,

Operating System 16

Memory Hierarchy

Page 18: Chap. 1) Introductionuclab.khu.ac.kr/lectures/2016_2_os/os-ch01.pdf · 2020. 11. 12. · Software Development Environment (compilers, loaders, editors, utilities Command interpreter,

Operating System 17

Caching

Use of high-speed memory to hold recently-accessed data

Requires a cache management policy

Write-through vs. Write-back

Caching introduces another level in storage hierarchy. This requires data that

is simultaneously stored in more than one level to be consistent

Cache coherency

Page 19: Chap. 1) Introductionuclab.khu.ac.kr/lectures/2016_2_os/os-ch01.pdf · 2020. 11. 12. · Software Development Environment (compilers, loaders, editors, utilities Command interpreter,

Operating System 18

Migration of A From Disk to Register

Page 20: Chap. 1) Introductionuclab.khu.ac.kr/lectures/2016_2_os/os-ch01.pdf · 2020. 11. 12. · Software Development Environment (compilers, loaders, editors, utilities Command interpreter,

Operating System 19

I/O Structure

After I/O starts, control returns to user program only upon I/O completion

Wait instruction idles the CPU until the next interrupt

Wait loop (contention for memory access)

At most one I/O request is outstanding at a time, no simultaneous I/O processing

After I/O starts, control returns to user program without waiting for I/O

completion

System call – request to the operating system to allow user to wait for I/O

completion

Device-status table contains entry for each I/O device indicating its type, address,

and state

Operating system indexes into I/O device table to determine device status and to

modify table entry to include interrupt

Page 21: Chap. 1) Introductionuclab.khu.ac.kr/lectures/2016_2_os/os-ch01.pdf · 2020. 11. 12. · Software Development Environment (compilers, loaders, editors, utilities Command interpreter,

Operating System 20

How does the kernel notice an I/O has finished?

Polling

Hardware interrupt

I/O Control

Page 22: Chap. 1) Introductionuclab.khu.ac.kr/lectures/2016_2_os/os-ch01.pdf · 2020. 11. 12. · Software Development Environment (compilers, loaders, editors, utilities Command interpreter,

Operating System 21

I/O Control (Cont’d)

Device interrupts

CPU stops current operation, switches to kernel mode, and

saves current PC and other state on kernel stack

CPU fetches proper vector from vector table and branches to

that address (to routine to handle interrupt)

Interrupt routine examines device database and performs

action required by interrupt

Handler completes operation, restores saved (interrupt state)

and returns to user mode (or calls scheduler to switch to

another program)

Page 23: Chap. 1) Introductionuclab.khu.ac.kr/lectures/2016_2_os/os-ch01.pdf · 2020. 11. 12. · Software Development Environment (compilers, loaders, editors, utilities Command interpreter,

Operating System 22

Two I/O Methods

Asynchronous/Non-blocking

Synchronous/Blocking

From the perspective of applications

Page 24: Chap. 1) Introductionuclab.khu.ac.kr/lectures/2016_2_os/os-ch01.pdf · 2020. 11. 12. · Software Development Environment (compilers, loaders, editors, utilities Command interpreter,

Operating System 23

Interrupts and Exceptions

Interrupts

Generated by hardware devices

Triggered by a signal in INTR or NMI pins (Pentium)

Asynchronous

Exceptions

Generated by software executing instructions

INT instruction in IA32

Page fault, protection fault

Synchronous

Trap (expected) or fault (unexpected)

Page 25: Chap. 1) Introductionuclab.khu.ac.kr/lectures/2016_2_os/os-ch01.pdf · 2020. 11. 12. · Software Development Environment (compilers, loaders, editors, utilities Command interpreter,

Operating System 24

DMA

Data Transfer Modes in I/O

Programmed I/O (PIO)

By special I/O instructions

Memory-mapped I/O

DMA (Direct Memory Access)

Used for high-speed I/O devices able to transmit information at close to memory

speeds

Device controller transfers blocks of data from buffer storage directly to main memory

without CPU intervention.

Only an interrupt is generated per block

Page 26: Chap. 1) Introductionuclab.khu.ac.kr/lectures/2016_2_os/os-ch01.pdf · 2020. 11. 12. · Software Development Environment (compilers, loaders, editors, utilities Command interpreter,

Operating System 25

Hardware Protection

I/O Protection

Memory Protection

CPU Protection

Page 27: Chap. 1) Introductionuclab.khu.ac.kr/lectures/2016_2_os/os-ch01.pdf · 2020. 11. 12. · Software Development Environment (compilers, loaders, editors, utilities Command interpreter,

Operating System 26

Dual-Mode Operation

Sharing system resources requires operating system to ensure that an

incorrect program cannot cause other programs to execute incorrectly

Provide hardware support to differentiate between at least two modes of

operations

1. User mode

execution done on behalf of a user

2. Monitor mode (also kernel mode or system mode)

execution done on behalf of operating system

Page 28: Chap. 1) Introductionuclab.khu.ac.kr/lectures/2016_2_os/os-ch01.pdf · 2020. 11. 12. · Software Development Environment (compilers, loaders, editors, utilities Command interpreter,

Operating System 27

Dual-Mode Operation (Cont’d)

Privileged instructions can be issued only in monitor mode

monitor user

Interrupt/fault

set user mode

Mode bit added to computer hardware to indicate the current mode:

monitor (0) or user (1)

When an interrupt or fault occurs hardware switches to monitor mode

Page 29: Chap. 1) Introductionuclab.khu.ac.kr/lectures/2016_2_os/os-ch01.pdf · 2020. 11. 12. · Software Development Environment (compilers, loaders, editors, utilities Command interpreter,

Operating System 28

I/O Protection

All I/O instructions are privileged instructions

Must ensure that a user program could never gain control of the computer in

monitor mode (I.e., a user program that, as part of its execution, stores a new

address in the interrupt vector)

Page 30: Chap. 1) Introductionuclab.khu.ac.kr/lectures/2016_2_os/os-ch01.pdf · 2020. 11. 12. · Software Development Environment (compilers, loaders, editors, utilities Command interpreter,

Operating System 29

Use of A System Call to Perform I/O

Page 31: Chap. 1) Introductionuclab.khu.ac.kr/lectures/2016_2_os/os-ch01.pdf · 2020. 11. 12. · Software Development Environment (compilers, loaders, editors, utilities Command interpreter,

Operating System 30

user mode

kernel mode

Netscape: read( )

trap to kernel mode; save app state

find read( ) handler in vector table

restore app state, return to

user mode, resume

trap handler

read( ) kernel routine

System Call

Page 32: Chap. 1) Introductionuclab.khu.ac.kr/lectures/2016_2_os/os-ch01.pdf · 2020. 11. 12. · Software Development Environment (compilers, loaders, editors, utilities Command interpreter,

Operating System 31

Memory Protection

Must provide memory protection at least for the interrupt vector and the

interrupt service routines

In order to have memory protection, add two registers that determine the

range of legal addresses a program may access:

Base register – holds the smallest legal physical memory address

Limit register – contains the size of the range

Memory outside the defined range is protected

Page 33: Chap. 1) Introductionuclab.khu.ac.kr/lectures/2016_2_os/os-ch01.pdf · 2020. 11. 12. · Software Development Environment (compilers, loaders, editors, utilities Command interpreter,

Operating System 32

Use of A Base and Limit Register

Page 34: Chap. 1) Introductionuclab.khu.ac.kr/lectures/2016_2_os/os-ch01.pdf · 2020. 11. 12. · Software Development Environment (compilers, loaders, editors, utilities Command interpreter,

Operating System 33

Hardware Address Protection

Page 35: Chap. 1) Introductionuclab.khu.ac.kr/lectures/2016_2_os/os-ch01.pdf · 2020. 11. 12. · Software Development Environment (compilers, loaders, editors, utilities Command interpreter,

Operating System 34

MMU (Memory Management Unit)

Memory management hardware provides more sophisticated memory protection

mechanisms

base and limit registers

page table pointers, page protection, TLBs

virtual memory

segmentation

Manipulation of memory management hardware are protected (privileged)

operations

Memory Protection

Page 36: Chap. 1) Introductionuclab.khu.ac.kr/lectures/2016_2_os/os-ch01.pdf · 2020. 11. 12. · Software Development Environment (compilers, loaders, editors, utilities Command interpreter,

Operating System 35

CPU Protection

Timer – interrupts computer after specified period to ensure operating system

maintains control

Timer is decremented every clock tick

When timer reaches the value 0, an interrupt occurs

Timer commonly used to implement time sharing

Time also used to compute the current time

Load-timer is a privileged instruction

Page 37: Chap. 1) Introductionuclab.khu.ac.kr/lectures/2016_2_os/os-ch01.pdf · 2020. 11. 12. · Software Development Environment (compilers, loaders, editors, utilities Command interpreter,

Operating System 36

Timers

How does the OS take control of CPU from the running programs?

Use a hardware timer that generates a periodic interrupt

The timer interrupt transfers control back to OS

The OS preloads the timer with a time to interrupt. (“quantum”)

10ms for Linux

Cf) time slice or time quantum

The timer is privileged.

Only the OS can load it

Page 38: Chap. 1) Introductionuclab.khu.ac.kr/lectures/2016_2_os/os-ch01.pdf · 2020. 11. 12. · Software Development Environment (compilers, loaders, editors, utilities Command interpreter,

Operating System 37

Network Structure

Local Area Networks (LAN)

Relay, bridge, gateway, router, switch, hub

Wide Area Networks (WAN)

Page 39: Chap. 1) Introductionuclab.khu.ac.kr/lectures/2016_2_os/os-ch01.pdf · 2020. 11. 12. · Software Development Environment (compilers, loaders, editors, utilities Command interpreter,

Operating System 38

Local Area Network Structure

Page 40: Chap. 1) Introductionuclab.khu.ac.kr/lectures/2016_2_os/os-ch01.pdf · 2020. 11. 12. · Software Development Environment (compilers, loaders, editors, utilities Command interpreter,

Operating System 39

Wide Area Network Structure

Page 41: Chap. 1) Introductionuclab.khu.ac.kr/lectures/2016_2_os/os-ch01.pdf · 2020. 11. 12. · Software Development Environment (compilers, loaders, editors, utilities Command interpreter,

Operating System 40

Computer Systems

Mainframe systems

Multiprogramming systems

Time-sharing systems

Desktop systems

Parallel systems

Distributed systems

Clustered systems

Real-time systems

Embedded systems

Handheld systems

Page 42: Chap. 1) Introductionuclab.khu.ac.kr/lectures/2016_2_os/os-ch01.pdf · 2020. 11. 12. · Software Development Environment (compilers, loaders, editors, utilities Command interpreter,

Operating System 41

Mainframe Systems

Reduce setup time by batching similar jobs

Automatic job sequencing – automatically transfers control from one job to

another. First rudimentary operating system

Resident monitor

initial control in monitor

control transfers to job

when job completes,

control transfers back to monitor

IBM Supercomputer Watson

Page 43: Chap. 1) Introductionuclab.khu.ac.kr/lectures/2016_2_os/os-ch01.pdf · 2020. 11. 12. · Software Development Environment (compilers, loaders, editors, utilities Command interpreter,

Operating System 42

Memory Layout for a Simple Batch System

Page 44: Chap. 1) Introductionuclab.khu.ac.kr/lectures/2016_2_os/os-ch01.pdf · 2020. 11. 12. · Software Development Environment (compilers, loaders, editors, utilities Command interpreter,

Operating System 43

Multiprogrammed Batch Systems

Several jobs are kept in main memory at the same time, and the

CPU is multiplexed among them.

Page 45: Chap. 1) Introductionuclab.khu.ac.kr/lectures/2016_2_os/os-ch01.pdf · 2020. 11. 12. · Software Development Environment (compilers, loaders, editors, utilities Command interpreter,

Operating System 44

OS Features Needed for Multiprogramming

I/O routine supplied by the system

Memory management – the system must allocate the memory to several jobs

CPU scheduling – the system must choose among several jobs ready to run

Allocation of devices

Page 46: Chap. 1) Introductionuclab.khu.ac.kr/lectures/2016_2_os/os-ch01.pdf · 2020. 11. 12. · Software Development Environment (compilers, loaders, editors, utilities Command interpreter,

Operating System 45

Time-Sharing Systems–Interactive Computing

The CPU is multiplexed among several jobs that are kept in memory and on

disk (the CPU is allocated to a job only if the job is in memory)

A job swapped in and out of memory to the disk

On-line communication between the user and the system is provided; when

the operating system finishes the execution of one command, it seeks the

next “control statement” from the user’s keyboard

On-line system must be available for users to access data and code

Page 47: Chap. 1) Introductionuclab.khu.ac.kr/lectures/2016_2_os/os-ch01.pdf · 2020. 11. 12. · Software Development Environment (compilers, loaders, editors, utilities Command interpreter,

Operating System 46

Terminology

Batch, Multiprogramming, Time-sharing(or Multitasking)

Job scheduling vs. CPU scheduling

Job, Task, Process

Concurrent, Simultaneous, Parallel

Page 48: Chap. 1) Introductionuclab.khu.ac.kr/lectures/2016_2_os/os-ch01.pdf · 2020. 11. 12. · Software Development Environment (compilers, loaders, editors, utilities Command interpreter,

Operating System 47

Desktop Systems

Personal computers – computer system dedicated to a single user

I/O devices – keyboards, mice, display screens, small printers

User convenience and responsiveness

Can adopt technology developed for larger operating system

Individuals have sole use of computer and do not need advanced CPU

utilization of protection features

May run several different types of operating systems (Windows, MacOS,

UNIX, Linux)

Page 49: Chap. 1) Introductionuclab.khu.ac.kr/lectures/2016_2_os/os-ch01.pdf · 2020. 11. 12. · Software Development Environment (compilers, loaders, editors, utilities Command interpreter,

Operating System 48

Parallel Systems

Multiprocessor systems with more than one CPU in close communication

Tightly coupled system – processors share memory and a clock;

communication usually takes place through the shared memory

Advantages of parallel system:

Increased throughput

Economical

Increased reliability

graceful degradation

fail-soft systems (fault-tolerant systems)

Cf) Co-processor or controller

Page 50: Chap. 1) Introductionuclab.khu.ac.kr/lectures/2016_2_os/os-ch01.pdf · 2020. 11. 12. · Software Development Environment (compilers, loaders, editors, utilities Command interpreter,

Operating System 49

Parallel Systems (Cont’d)

Symmetric multiprocessing (SMP)

Each processor runs and identical copy of the operating system

Many processes can run at once without performance deterioration

Most modern operating systems support SMP

Asymmetric multiprocessing

Each processor is assigned a specific task; master processor schedules and

allocated work to slave processors

More common in extremely large systems

Page 51: Chap. 1) Introductionuclab.khu.ac.kr/lectures/2016_2_os/os-ch01.pdf · 2020. 11. 12. · Software Development Environment (compilers, loaders, editors, utilities Command interpreter,

Operating System 50

Symmetric Multiprocessing Architecture

Page 52: Chap. 1) Introductionuclab.khu.ac.kr/lectures/2016_2_os/os-ch01.pdf · 2020. 11. 12. · Software Development Environment (compilers, loaders, editors, utilities Command interpreter,

Operating System 51

Distributed Systems

Distribute the computation among several physical processors

Loosely coupled system – each processor has its own local memory;

processors communicate with one another through various communications

lines, such as high-speed buses or telephone lines

Advantages of distributed systems

Resources Sharing

Computation speed up – load sharing

Reliability

Communications

Page 53: Chap. 1) Introductionuclab.khu.ac.kr/lectures/2016_2_os/os-ch01.pdf · 2020. 11. 12. · Software Development Environment (compilers, loaders, editors, utilities Command interpreter,

Operating System 52

Distributed Systems (Cont’d)

Requires networking infrastructure

Local area networks (LAN) or Wide area networks (WAN)

May be either client-server or peer-to-peer systems

Page 54: Chap. 1) Introductionuclab.khu.ac.kr/lectures/2016_2_os/os-ch01.pdf · 2020. 11. 12. · Software Development Environment (compilers, loaders, editors, utilities Command interpreter,

Operating System 53

General Structure of Client-Server

Page 55: Chap. 1) Introductionuclab.khu.ac.kr/lectures/2016_2_os/os-ch01.pdf · 2020. 11. 12. · Software Development Environment (compilers, loaders, editors, utilities Command interpreter,

Operating System 54

Clustered Systems

Clustering allows two or more systems to share storage

Provides high reliability (or high availability)

Asymmetric clustering: one server runs the application while other servers

standby

Symmetric clustering: all N hosts are running the application

Cf) Grid Computing

Cf) Distributed Lock Manager (DLM), Storage Area Network (SAN)

Page 56: Chap. 1) Introductionuclab.khu.ac.kr/lectures/2016_2_os/os-ch01.pdf · 2020. 11. 12. · Software Development Environment (compilers, loaders, editors, utilities Command interpreter,

Operating System 55

Large-scale Server in Data Center

Page 57: Chap. 1) Introductionuclab.khu.ac.kr/lectures/2016_2_os/os-ch01.pdf · 2020. 11. 12. · Software Development Environment (compilers, loaders, editors, utilities Command interpreter,

Operating System 56

Real-Time Embedded Systems

Often used as a control device in a dedicated application such as controlling

scientific experiments, medical imaging systems, industrial control systems,

and some display systems

Well-defined fixed-time constraints

Real-Time systems may be either hard or soft real-time

Page 58: Chap. 1) Introductionuclab.khu.ac.kr/lectures/2016_2_os/os-ch01.pdf · 2020. 11. 12. · Software Development Environment (compilers, loaders, editors, utilities Command interpreter,

Operating System 57

Real-Time Embedded Systems (Cont’d)

Hard real-time:

Secondary 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 real-time

Limited utility in industrial control of robotics

Useful in applications (multimedia, virtual reality) requiring advanced operating-

system features

Page 59: Chap. 1) Introductionuclab.khu.ac.kr/lectures/2016_2_os/os-ch01.pdf · 2020. 11. 12. · Software Development Environment (compilers, loaders, editors, utilities Command interpreter,

Operating System 58

Handheld Systems

Personal Digital Assistants (PDAs)

Cellular telephones

Issues:

Limited memory

Slow processors

Small display screens

Page 60: Chap. 1) Introductionuclab.khu.ac.kr/lectures/2016_2_os/os-ch01.pdf · 2020. 11. 12. · Software Development Environment (compilers, loaders, editors, utilities Command interpreter,

Operating System 59

Computing Environments

Traditional computing

Client-Server computing

Peer-to-Peer computing

Web-based computing

Page 61: Chap. 1) Introductionuclab.khu.ac.kr/lectures/2016_2_os/os-ch01.pdf · 2020. 11. 12. · Software Development Environment (compilers, loaders, editors, utilities Command interpreter,

Operating System 60

Migration of Operating-System Concepts and Features

Page 62: Chap. 1) Introductionuclab.khu.ac.kr/lectures/2016_2_os/os-ch01.pdf · 2020. 11. 12. · Software Development Environment (compilers, loaders, editors, utilities Command interpreter,

Operating System 61

1st Generation (1945-55)

Vacuum Tubes and Plugboards

No OS

No Programming Languages

No Assembly Languages

Page 63: Chap. 1) Introductionuclab.khu.ac.kr/lectures/2016_2_os/os-ch01.pdf · 2020. 11. 12. · Software Development Environment (compilers, loaders, editors, utilities Command interpreter,

Operating System 62

2nd Generation (1955-65)

Transistors and Mainframes

Batch systems

One job at a time

Card readers, tape drives, line printers

OS is always resident in memory and merely transfers

a control.

CPU is underutilized due to the bottleneck in I/O

Page 64: Chap. 1) Introductionuclab.khu.ac.kr/lectures/2016_2_os/os-ch01.pdf · 2020. 11. 12. · Software Development Environment (compilers, loaders, editors, utilities Command interpreter,

Operating System 63

3rd Generation (1965-80)

Integrated Circuits (ICs)

Architectural Advances

Using ICs: better price/performance

Disk drives

On-line terminals

The notion of “Computer Architecture”

IBM System/360 family

Page 65: Chap. 1) Introductionuclab.khu.ac.kr/lectures/2016_2_os/os-ch01.pdf · 2020. 11. 12. · Software Development Environment (compilers, loaders, editors, utilities Command interpreter,

Operating System 64

3rd Generation (1965-80)

Multiprogrammed Systems

Increase CPU utilization

OS features

Job scheduling

Memory management

CPU scheduling

Protection

Spooling (Simultaneous

Peripheral Operation On-Line)

Page 66: Chap. 1) Introductionuclab.khu.ac.kr/lectures/2016_2_os/os-ch01.pdf · 2020. 11. 12. · Software Development Environment (compilers, loaders, editors, utilities Command interpreter,

Operating System 65

3rd Generation (1965-80)

Time-sharing Systems

Improve response time

OS features

Swapping

Virtual memory

File system

Sophisticated CPU scheduling

Synchronization

Interprocess communication

Interactive shell

More protection, …

Page 67: Chap. 1) Introductionuclab.khu.ac.kr/lectures/2016_2_os/os-ch01.pdf · 2020. 11. 12. · Software Development Environment (compilers, loaders, editors, utilities Command interpreter,

Operating System 66

4th Generation (1980-)

LSIs & VLSIs

Architectural Advances

Microprocessors: smaller and faster

Storages: larger and faster

Personal computers

CPU work is offloaded to I/O devices

Modern OS Features

GUI (Graphical User Interface)

Multimedia

Internet & Web

Networked / Distributed, etc.

Page 68: Chap. 1) Introductionuclab.khu.ac.kr/lectures/2016_2_os/os-ch01.pdf · 2020. 11. 12. · Software Development Environment (compilers, loaders, editors, utilities Command interpreter,

Operating System 67

OS History

A long time ago,in a galaxy far, far away, …

IBM OS/360: Multiprogramming

MIT CTSS (Compatible Time-Sharing System)

MIT, Bell Labs, GE, MULTICS(MULTiplexed Information and Computing Service)

And UNIX was born in 1969

Page 69: Chap. 1) Introductionuclab.khu.ac.kr/lectures/2016_2_os/os-ch01.pdf · 2020. 11. 12. · Software Development Environment (compilers, loaders, editors, utilities Command interpreter,

Operating System 68

OS History: UNIX (1969-85)

USG/USDL/ATTIS

DSG/USO/USL

Bell Laboratories

ResearchBerkeley Software

Distributions

1969 First Edition

1973 Fifth Edition

1976 Sixth Edition

1977 PWB MERT CB UNIX 1BSD

1977 UNIX RT Seventh Edition 2BSD

32V

1979 3BSD

3.0

4.0BSD

1980 XENIX

3.0.1

1981 4.0.1 4.1BSD

1982 5.0 System III 4.1aBSD

1983 5.2 System V XENIX 3 Eighth 4.1cBSD

Edition

2.9BSD

2.8BSD

1984 System V SunOS 4.2BSD

Release 2

1985

Figure 1.1 The UNIX system family tree, 1969-1985

Page 70: Chap. 1) Introductionuclab.khu.ac.kr/lectures/2016_2_os/os-ch01.pdf · 2020. 11. 12. · Software Development Environment (compilers, loaders, editors, utilities Command interpreter,

Operating System 69

OS History: UNIX (1985-96)

System V Eighth

1985 Release 2 XENIX 3 SunOS Edition 4.2BSD 2.9BSD

1986 MACH 4.3BSD

System V1987 Release 3 Ninth 2.10BSD Chorus Edition

XENIX 5

1988 MACH 2.5 4.3BSD-Tahoe

System V1989 Release 4 NeXT SunOS4 Tenth 2.11BSD

Step Edition

SunOS3

Chorus NET/1 V3

1990 OSF/1 Plan 9 4.3BSD-Reno

1991 NET/2

386BSD

1992 Solaris NetBSD 0.8

DEC UNIX BSDI 1.0 FreeBSD 1.0 Novell

1993 Linux UNIX Solaris 2 Ware

4.4BSD

1994 4.4BSD Lite-1

1995 SCO FreeBSD 2.0 BSDI 2.0

UNIX 4.4BSD Lite-2

1996

Figure 1.2 The UNIX system family tree, 1986-1996

Page 71: Chap. 1) Introductionuclab.khu.ac.kr/lectures/2016_2_os/os-ch01.pdf · 2020. 11. 12. · Software Development Environment (compilers, loaders, editors, utilities Command interpreter,

Operating System 70

OS History: UNIX (Current)

Sun Solaris

HP HP-UX

IBM AIX

Caldera (SCO) Unixware

Compaq (Digital) Tru64

SGI Irix

Linux, FreeBSD, NetBSD

Apple Mac OS X, etc.

Cf) POSIX

Page 72: Chap. 1) Introductionuclab.khu.ac.kr/lectures/2016_2_os/os-ch01.pdf · 2020. 11. 12. · Software Development Environment (compilers, loaders, editors, utilities Command interpreter,

Operating System 71

OS History: Windows & Linux

1.0 2.0 3.0 3.2 4.0

3.0 3.1

5.0 6.0

3.1 3.51

7.0

95

4.0

98

2K XP

1981 82 84 86 88 90 91 93 94 95 98 00 01

ME

0.01 0.99 1.0 1.2 2.0

96 97 99

1.0

92

98SE

2.0

3.1 3.11

2.1 2.2 2.4

MS-DOS Family

Windows Family

Windows for WorkGroup Family

Windows NT Family

Linux

Page 73: Chap. 1) Introductionuclab.khu.ac.kr/lectures/2016_2_os/os-ch01.pdf · 2020. 11. 12. · Software Development Environment (compilers, loaders, editors, utilities Command interpreter,

Operating System 72

OS History: Windows & Linux (Cont’d)

07 09

2.6.33

10 ?

A.B.CA: Kernel versionB: Major revisionC: Minor revision

04

2.6.0

Windows 8

12

3.2.0

Page 74: Chap. 1) Introductionuclab.khu.ac.kr/lectures/2016_2_os/os-ch01.pdf · 2020. 11. 12. · Software Development Environment (compilers, loaders, editors, utilities Command interpreter,

Operating System 73

Multi-user

Multi-taskMulti-process

Multi-thread

Multi-processor

MS-DOSWindows

98Windows

NTLinux

X

X

X

X

X

O

O

X

O

O

O

O

O

O

O

O

OS Classification (1)

Page 75: Chap. 1) Introductionuclab.khu.ac.kr/lectures/2016_2_os/os-ch01.pdf · 2020. 11. 12. · Software Development Environment (compilers, loaders, editors, utilities Command interpreter,

Operating System 74

OS Classification (2)

Monolithic Kernel

Function calls

Unixware, Solaris, AIX,

HP-UX, Linux, etc.

Micro kernel

Multiple servers

Message passing

Mach, Chorus, Linux mk,

etc.

Hardware

IntegratedKernel

API

Hardware

Microkernel

API

server server server

Page 76: Chap. 1) Introductionuclab.khu.ac.kr/lectures/2016_2_os/os-ch01.pdf · 2020. 11. 12. · Software Development Environment (compilers, loaders, editors, utilities Command interpreter,

Operating System 75

OS Classification (3)

Mainframe systems

CTS, MULTICS, IBM MVS, VM

Desktop systems

DOS, Windows, MacOS, Unix/Linux

Multiprocessor systems

Cluster systems

Distributed systems

Amoeba(Vrije Univ.), Locus(UCLA), Grapevine(Xerox), V(Stanford), Eden(U. of

Washington), Chorus/Nucleus(Inria)

Embedded systems

Vertex, pSOS, VxWorks, OSE, Windows-CE, Embedded Linux

Company-proprietary OS (Cisco, Qualcomm, Palm, Cellvic)

Real-time systems

Real-Time Linux, Spring(U. of Massachusetts), HARTS(U. of Michigan),

MARUTI(U. of Maryland)

Page 77: Chap. 1) Introductionuclab.khu.ac.kr/lectures/2016_2_os/os-ch01.pdf · 2020. 11. 12. · Software Development Environment (compilers, loaders, editors, utilities Command interpreter,

Operating System 76

Summary

Operating system

An intermediary software between users and computer hardware

Goals of operating system

Use the computer hardware in efficient manners

Convenient programming & use through encapsulation of complexity of H/Ws

Maximization of performance of computer hardware resources

Page 78: Chap. 1) Introductionuclab.khu.ac.kr/lectures/2016_2_os/os-ch01.pdf · 2020. 11. 12. · Software Development Environment (compilers, loaders, editors, utilities Command interpreter,

Operating System 77

Summary (Cont’d)

Computer system architecture & Operation

CPU, Memory, I/O devices

Instructions

Arithmetic instructions: add, subtract, …

Logical instructions: and, or, not, …

Control flow instructions: goto, if, call, return, …

Data instructions: load, store, move, input, output, …

Interrupt

When I/O events occur, I/O devices trigger an interrupt

CPU saves its operation and runs the corresponding interrupt service routine (ISR)

DMA

Transfers blocks of data from I/O devices to main memory without CPU intervention

Storage hierarchy

Register / Cache / Main memory / Secondary storage / Tertiary storage

Page 79: Chap. 1) Introductionuclab.khu.ac.kr/lectures/2016_2_os/os-ch01.pdf · 2020. 11. 12. · Software Development Environment (compilers, loaders, editors, utilities Command interpreter,

Operating System 78

Summary (Cont’d)

Computer system architecture & Operation (Cont’d)

System call

An interface to the service made available by operating system

When a user process calls a system call, controls are transferred from the user process

to operating system user mode vs. kernel mode

Protection

I/O protection: Dual-mode operation

Memory protection: MMU (Memory Management Unit)

CPU protection: Timer interrupt

History of computer systems

Mainframe systems or batch systems

Multiprogramming systems

Time-sharing systems

Desktop systems

Parallel / Distributed / Clustered / Cloud systems

Real-time / Embedded / Handheld systems