67
Sistemas Distribuidos UPCO ICAI Departamento de Electrónica y Automática 1 Prof. José A. Rodríguez Mondéjar Conceptos Básicos Conceptos Básicos Sistemas Distribuidos UPCO ICAI Departamento de Electrónica y Automática 2 Prof. José A. Rodríguez Mondéjar Conceptos Básicos Arquitectura de un Ordenador

NocionesBasicas comunicaciones electricas

Embed Size (px)

DESCRIPTION

rs232

Citation preview

Page 1: NocionesBasicas comunicaciones electricas

1

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 1Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Conceptos Básicos

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 2Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Arquitectura de un Ordenador

Page 2: NocionesBasicas comunicaciones electricas

2

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 3Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Modelo de ordenador: Lo que ve un programadorEscribir

programa enel editor

Compilar

Fuente

Objeto:Instrucciones

Variables

Ejecutar

INTRODUCIRDATOS

Variables

Instrucciones

Editor

Compilador

Memoria

CPUDatos

Direcciones

Ordenador

Sólo entiende de ristras de 1’s y 0’s:•Datos•Instrucciones

VERRESULTADOS

Sistema Operativo

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 4Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Modelo de ordenador: Ejecución

Page 3: NocionesBasicas comunicaciones electricas

3

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 5Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Modelo de ordenador: Hardware simple

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 6Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Modelo de Ordenador: Evolución de memoria y CPU

µProc60%/año

Memoria7%/año

1

10

100

1000

1980

1981

1983

1984

1985

1986

1987

1988

1989

1990

1991

1992

1993

1994

1995

1996

1997

1998

1999

2000

RAM

CPU

1982

Procesador-Memoriabrecha rendimiento:(crece 50% / año)

Ren

dim

ient

o

Año

“Ley de Moore”

D.A. Patterson “ New directions in Computer Architecture” Berkeley, June 1998

Page 4: NocionesBasicas comunicaciones electricas

4

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 7Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Modelo de ordenador: Jerarquía/Localidad• Compromiso entre velocidad de acceso al dato, capacidad

de almacenamiento y coste– La jerarquía de memoria de un servidor es diferente a la de un PC

• Resultado: memoria grande, rápida y barata

Datapath Memoria

Control

Memoria Memoria Memoria Memoria

Velocidad: RápidasCapacidad: PequeñasCoste: Alto

LentasGrandeBajo

ProcesadorCaché o buffer del nivel

siguiente más lento

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 8Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Modelo de Ordenador: Hardware jerarquizado

Page 5: NocionesBasicas comunicaciones electricas

5

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 9Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Modelo de ordenador: Jerarquía en el acceso

• El objetivo es conseguir un ordenador cuya velocidad de memoria sea equivalente a la más rápida y su capacidad de almacenamiento equivalente a la memoria más grande.

• Cada nivel actúa de memoria caché del nivel inferior más lento. También se utiliza el término buffer.

Registros

SRAM interna

SRAM externa

DRAM

Red (servidores)

Disco duro

Bus

Tamaño Velocidad Ancho de banda

32x4bytes CPU (<2ns) 1c ~10 GB/s

<64 KB CPU (<2ns) 1-2c ~2 GB/s

<1 MB 5 – 20 ciclos 100 MB/s a 2 GB/s

<1 GB 10 – 100 c. <500 MB/s

10 GB 10.000.000 c. 10-20 MB/s

100 – 100.000 c. 10MBit a 1GBit/s

10 – 1000 c. 132 MB/s

Caché nivel 1 (L1)

Caché nivel 2 (L2)

Memoria principal

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 10Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Tiempos de entrada/salida

Device Behavior Partner Data rate (KB/sec)Keyboard input human 0.01Mouse input human 0.02Voice input input human 0.02Scanner input human 400.00Voice output output human 0.60Line printer output human 1.00Laser printer output human 200.00Graphics display output human 60,000.00Modem input or output machine 2.00-8.00Network/LAN input or output machine 500.00-6000.00Floppy disk storage machine 100.00Optical disk storage machine 1000.00Magnetic tape storage machine 2000.00Magnetic disk storage machine 2000.00-10,000.00

Page 6: NocionesBasicas comunicaciones electricas

6

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 11Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

REDES

J. Kurose & K. Ross: Computer Networking, Addison Wesley, 2001.L. Peterson & B. Davie, Computer Networks: A Systems Approach (2nd ed.), Morgan Kaufman.W. Stallings, Data and Computer Communications(6th ed), MacMillan, 2000.A. Tanenbaum, Computer Networks, Prentice Hall

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 12Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Computer Networks• Computer Networks

"interconnected collection of autonomous computers" [Tanenbaum1996]

• Types of Networks– Local Area Networks (LANs)

• high-speed communication on proprietary grounds (on-campus)• most typical solution: Ethernet with 100 Mbps

– Metropolitan Area Networks• high-speed communication for nodes distributed over medium-range

distances, usually belonging to one organization• providing "back-bone" to interconnect LAN's • technology often based on ATM, FDDI or DSL• typical example: the University-network:

– ATM based– 155 Mbit/s– Transports data and voice (telephony)

Page 7: NocionesBasicas comunicaciones electricas

7

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 13Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Computer Networks• Types of Networks

– Wide Area Networks• communication over long distances• covers computers of different organizations• high degree of heterogeneity of underlying computing infrastructure• involves routers• speeds up to a few Mbps possible, but around 50-100 Kbps more typical• most prominent example: the Internet

– Wireless Networks• end user equipment accesses network through short or mid range radio- or

infrared signal transmission• Wireless WANs

– GSM (up to about 20 Kbps)– UMTS (up to Mbps)– PCS

• Wireless LANs/MANs– WaveLAN (2-11 Mbps, radio up to 150 metres)

• Wireless Personal Area Networks– Bluetooth (up to 2 Mbps on low power radio signal, < 10 m distance)

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 14Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Computer Networks• Network Type Performance Characteristics

© Pearson Education 2001

Page 8: NocionesBasicas comunicaciones electricas

8

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 15Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Computer Networks• Protocols

– Agreement between two communicating parties how the communication is to proceed• syntax

– message formats– data representation

• semantics: – when to send which message– appropriate responses– how to detect and handle failures

• Services– provide functions to invoker of service– use other services while providing abstraction from the particulars of the used services

party A

service

party B

service

protocol

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 16Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Computer Networks• Layered protocol architectures

layer n

layer n+1

n-service

n-1 -service

layer n-1

layer n

layer n+1

n-service

n-1 -service

layer n-1

n+1 - protocol

n - protocol

n-1 - protocol

file transfer (ftp)

tcp

ip

Page 9: NocionesBasicas comunicaciones electricas

9

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 17Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Computer Networks• Message formats

– header: sequence numbers, synchronization patterns, message types, etc.– data: user data– trailer: end sequence, error check sum

• Encapsulation

header data trailer

n+1-data

n+1-datan-header n-trailer

n+1-datan-header n-trailern-internalcontribution info

n-data

layer n

SAP

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 18Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Network Architectures• A generic protocol architecture: the ISO Open Systems

Interconnection Basic Reference Model (OSI-BRM)

© Prentice-Hall 1996PDU = protocol data unit

Page 10: NocionesBasicas comunicaciones electricas

10

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 19Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

OSI layer protocol model

Application

Presentation

Session

Transport

Network

Data link

Physical

Message Sent

Communication Channel

OSI

Laye

red

Prot

ocol

M

odel

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 20Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Network Architectures• A generic protocol architecture: the ISO Open Systems

Interconnection Basic Reference Model (OSI-BRM)

© Prentice-Hall 1996

Page 11: NocionesBasicas comunicaciones electricas

11

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 21Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Network Architectures• Protocol suite/stack

– stacked combination of protocol implementation collaborating to provide application services

– there are no efficient implementations of protocol stacks conforming with OSI-BRM• Most actual protocol implementations follow the Internet Reference Model,

forming the Internet Protocol Suite / Stack

Application

Presentation

Session

Transport

Network

Data Link

Physical

Application

Transport

Internet

Host-to-network

OSI Internet RM

SMTP (simple mail transfer protocol)FTP (file transfer)

telnet (remote login)http (hypertext transfer protocol)

XDR (external data representation)

Internet Protocol Examples

Transmission Control Protocol (TCPUser Datagram Protocol (UDP)

Internet Protocol

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 22Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

OSI-BRM

• Application Layer– Provide services that support the various types of distributed applications– OSI protocols

• electronic mail (X.400, almost entirely extinct these days)• name/directory services (X.500, some residual interest and some

implementations)– Internet protocols

• SMTP (simple mail transfer protocol)• FTP (file transfer)• telnet (remote login)• http (hypertext transfer protocol)

Application Application

ComputerApplication

ComputerApplication

Page 12: NocionesBasicas comunicaciones electricas

12

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 23Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

OSI-BRM

• Presentation Layer– Problem: different computers represent data in different formats– Example: representation of unsigned short integer 1 in 2 bytes

• “big-endian” (e.g., Motorola 680x0) 0000000000000001• “little-endian” (e.g., Intel 80x86) 0000000100000000

– In the Internet: XDR (external data representation), fixed conventions for the representation of data

• all integers 4-byte big-endians• floating point numbers in IEEE format• texts in ASCII• all fields aligned on 4-byte word boundaries

– Big-endianness is also called as “network byte order”

Presentation Presentation

Application Application

ComputerApplication

ComputerApplication

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 24Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

OSI-BRM

• Session Layer– Support session oriented traffic (classical database applications, file

transfer, etc.)– Two main functions

• send token management• synchronization/resynchronization after failures

– Non-existent in Internet • functions are the responsibility of the application or the application layer protocols• example: resynchronization in ftp after failure

– maintain pointer to last transmitted byte in source file

Presentation Presentation

Application Application

ComputerApplication

ComputerApplication

Session Session

Page 13: NocionesBasicas comunicaciones electricas

13

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 25Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

OSI-BRM

• Transport Layer– Provide services for application message exchanges between peer application entities– Interface with the underlying network

• if application messages are too big for network layer, segment them and reassemble at the receiving end

• multiple network connections for one application connection (if higher bandwidth needed than what one network connection can deliver)

• multiplex multiple application connections via one network connection, if possible, to efficiently use network bandwidth

Presentation Presentation

Application Application

ComputerApplication

ComputerApplication

Session Session

Transport Transport

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 26Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

OSI-BRM

• Transport Layer– Provide connection across network with well-defined qualities (QoS, quality of service)

• connection establishment delay• connection establishment failure probability• throughput• transit delay• residual error ratio• protection• priority

Presentation Presentation

Application Application

ComputerApplication

ComputerApplication

Session Session

Transport Transport

Page 14: NocionesBasicas comunicaciones electricas

14

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 27Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

OSI-BRM• Transport Layer

– Provide connection-oriented as well as connection-less services• connection-oriented:

1. establish connection on a well-defined source service access point (or port) p and destination service access point q

2. send messages to ports without providing target address

Transport Transport

con(hostB) acc(hostB, q) con(hostB, q)acc(hostB, p)

Transport Transportp q

msg msg

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 28Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

OSI-BRM• Transport Layer

– Provide connection-oriented as well as connection-less services• connection-less:

send messages providing target address for each message sent

– connection-less vs. connection-oriented• connection-less

– no overhead for connection setup and release– potential bandwidth-loss due to complete address information– no possibility to perform error-correction (pushed into application)

• connection-oriented– overhead, but no bandwidth loss– need to reserve network resources– facilitates ensuring connection properties

» order preservation» retransmission

Transport Transport

send(hostB, msg) rec(hostB, msg)

Page 15: NocionesBasicas comunicaciones electricas

15

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 29Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

OSI-BRM

• Transport Layer– Ports

• link an application process to a transport connection• permit identifying a remote application process (or service)

– note: use of process id in target node would be unsuitable since pids are generated and destroyed dynamically in most operating systems

• The internet protocol architecture defines reserved port numbers, e.g.– FTP: 21 (ftp connection establishment etc.)– FTP-DATA: 20 (ftp data transfer)– TELNET: 23 (terminal connection)– SMTP: 25 (mail delivery)– HTTP: 80 (http requests)

Presentation Presentation

Application Application

ComputerApplication

ComputerApplication

Session Session

Transport Transport

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 30Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

OSI-BRM• Transport Layer

– Internet Protocols• UDP (User Datagram Protocol)

– provides unreliable, connectionless transport service» no guarantee of order preservation, delivery» message duplications are possible» facilitates multicast

– application areas: context-free protocols, simple client-server applications, i.e., one request - one reply

» Domain Name Server lookup» SNMP requests» NFS requests» Multimedia protocols that do not require error correction

– UDP header format:

© Prentice-Hall 1996

Page 16: NocionesBasicas comunicaciones electricas

16

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 31Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

OSI-BRM• Transport Layer

– Internet Protocols• TCP (Transport Control Protocol)

– provides connection-oriented transport service» error-correcting» order preserving» segmentation of application-layer data stream» duplex communication

– transport connection uniquely identified through» network (IP) addresses of sender and receiver» port addresses of sender and receiver» protocol identifier for TCP (=6)

– TCP header and pseudo-header:

© Prentice-Hall 1996

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 32Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

OSI-BRM• Transport Layer

– Internet Protocols• TCP (Transport Control Protocol)

– despite complexity, allows for high data rates (experimentally up to 100 Mbit/s)

– useable in LAN/MAN/WAN environments– provides reliability meaning that there is

» no data loss» no data disorder» no packet duplication

– typical applications» e-mail (SMTP)» file transfer (ftp)» remote terminal (telnet, ssh)» remote graphics terminal (X11 for X-Windows)» http

Page 17: NocionesBasicas comunicaciones electricas

17

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 33Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

The Programmer's Conceptual View

IP

Application Application

TCP UDP

TCP: Transmission control protocolUDP: User datagram protocol

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 34Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

OSI-BRM• Network Layer

Transport Transport

Physical

NetworkData Link

Physical

NetworkData Link

Physical

NetworkData Link Physical

NetworkData Link

Page 18: NocionesBasicas comunicaciones electricas

18

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 35Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

OSI-BRM• Network Layer

– Central questions:• addressing: how to identify the target computer• routing: how to route the message most effectively through the network• packet switching: will there be a new path for every packet, or will there be

predescribed paths from source to destination • connection setup and release• end-to-end error detection, ensuring packet ordering, flow-control

– General functionality: network transparency for the transport layer• provide for end-to-end transport connection independent of actual routing and

switching decisions

Transport Transport

Physical

NetworkData Link

Physical

NetworkData Link

Physical

NetworkData Link Physical

NetworkData Link

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 36Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

OSI-BRM• Network Layer

– Packet switching• virtual circuit: a fixed path for all packets of a connection will be determined at

connection setup time– facilitates order preservation– route determination costs only once per connection– inflexible to adapt to changing network loads and configurations

• datagram: routing decision for every packet in every node– full address information in every packet– less overhead for connection establishment, easier to implement– more flexible for short-lived connections

Transport Transport

Physical

NetworkData Link

Physical

NetworkData Link

Physical

NetworkData Link Physical

NetworkData Link

Page 19: NocionesBasicas comunicaciones electricas

19

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 37Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

OSI-BRM• Network Layer

– Routing algorithms• objectives

– minimize average packet delay– maximize total throughput– efficient implementation

• conflicting, therefore often used: minimize number of hops (visited nodes) per packet

– reduces delay– reduces needed bandwidth– increases throughput

Transport Transport

Physical

NetworkData Link

Physical

NetworkData Link

Physical

NetworkData Link Physical

NetworkData Link

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 38Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

OSI-BRM• Network Layer

– Routing algorithms• static (non-adaptive) algorithms

– determination of network routes for every pair of nodes at network setup time

– no consideration of current network status and load (average values used)

– no change of routes during network operation

Transport Transport

Physical

NetworkData Link

Physical

NetworkData Link

Physical

NetworkData Link Physical

NetworkData Link

Page 20: NocionesBasicas comunicaciones electricas

20

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 39Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

OSI-BRM• Network Layer

– Routing algorithms• dynamic (adaptive) algorithms

– determination of network routes based on measurement/estimation of current network load and configuration

» centralized: one central node makes routing decisions» isolated: decision on routing based solely on local traffic and

load information (backward learning, routing, delta-routing)» distributed: nodes are exchanging routing information

(distance vector routing, RIP)

Transport Transport

Physical

NetworkData Link

Physical

NetworkData Link

Physical

NetworkData Link Physical

NetworkData Link

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 40Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

• Data Link Layer

• Main functions• error detection and correction

– physical media are prone to signal distortions due to external impulses and material properties

– typical value for error probability of a 32 bit block over telephone wire: 0.0016

– error detection: using check sum (e.g., parity bits)» to detect e bit errors one needs code with Hamming distance of e+1

– error correction: check sum plus exact information, which bit flipped» to correct e bit errors, need 2e+1 Hamming distance

– often used: check sum generated through cyclic redundancy check» detects all error bursts of length of up to 16, 99.998% of all longer

bursts» based on polynome division

OSI-BRM

Transport Transport

Physical

NetworkData Link

Physical

NetworkData Link

Page 21: NocionesBasicas comunicaciones electricas

21

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 41Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

• Data Link Layer

• Main functions• frames: error-detecting and error-correcting codes need frame delimiters

– bit stuffing• acknowledgement and retransmission of erroneous frames

– sequence numbers – go-back-n

• flow control: nodes may receive more traffic than they can deliver to adjacent nodes, but have limited buffer capacity: buffer overflow

– sliding window protocol (of size n)» sending node may race ahead a number of n unacknowledged

messages» if last acknowledged packet is k, and new acknowledgement l>k

arrives, then sender may transmit up to sequence number l+n– includes acknowledgement/retransmission functionality

OSI-BRM

Transport Transport

Physical

NetworkData Link

Physical

NetworkData Link

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 42Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

• Data Link Layer

• Example– for WANs

• HDLC: High Level Data Link Control (ISO-standardized)– LAP-B: Link Access Procedure - Balanced (CCITT/ITU-T, for

X.25)– for LANs

• LLC 2: Logical Link Control Type 2– used in IEEE 802.3 Ethernet

OSI-BRM

Transport Transport

Physical

NetworkData Link

Physical

NetworkData Link

Page 22: NocionesBasicas comunicaciones electricas

22

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 43Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

• Physical Layer

• Features– defines the physical characteristics of the signal transmissions– example: bit encoding mechanisms

OSI-BRM

Transport Transport

Physical

NetworkData Link

Physical

NetworkData Link

© Prentice-Hall 1996

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 44Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Internet 5-Layer Model

Messages (UDP) or Streams (TCP)

Application

Transport

Internet

UDP or TCP packets

IP datagrams

Network-specific frames

MessageLayers

Underlying network

Network interface

Page 23: NocionesBasicas comunicaciones electricas

23

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 45Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Addressing• Addressing in the Internet Protocol

– addresses used in souce and destination fields of the Internet Protocol

– requirements• define a unique address for any node in the Internet

– no two nodes on the Internet may have the same address• define a sufficiently large address space

– IPv4 (1982): 32-bit addresses for 232 (appr. 4 billion) addresses– insufficient due to

» unforeseen growth of internet» inefficient use of address space

– IPv6 (1994): 128-bit addresses for 2128 (appr. 3x1038) addressable nodes

» max. 7x1023 IP addresses per m2 of entire earth surface» if as inefficiently allocated as phone numbers: 103 per m2

• support a flexible routing scheme, but addresses themselves should not contain routing information

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 46Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Addressing• Addressing in the Internet Protocol

– address class structure

for very large networks

for smaller networks with more than

255 nodes

for all other networks

for multicastcommunication

unallocatedfor future use

© Pearson Education 2001

Page 24: NocionesBasicas comunicaciones electricas

24

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 47Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Addressing• Addressing in the Internet Protocol

– decimal address representation

– problems:• network administrators cannot predict growth of their subnets• tend to apply for class B network addresses, even though subnets then

tend to be smaller than 255 nodes (i.e., class C would be sufficient)• leads to inefficient use of address space

for very large networks

for smaller networks with more than

255 nodes

for all other networks

for multicastcommunication

unallocatedfor future use

© Pearson Education 2001

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 48Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Addressing• Addressing in the Internet Protocol

– a typical intranet/subnet architecture

© Pearson Education 2001

Page 25: NocionesBasicas comunicaciones electricas

25

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 49Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

IP Header

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 50Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

ApplicationLayer

TransportLayer

NetworkLayer

Data LinkLayer

PhysicalLayer

HTTP Request

HTTP TCP

HTTP TCP IP

HTTP TCP IPEthernet

Sender Receiver

Request

Request

Request

ApplicationLayer

TransportLayer

NetworkLayer

Data LinkLayer

PhysicalLayer

HTTP Request

HTTP TCP

HTTP TCP IP

HTTP TCP IPEthernet

Request

Request

Request

Page 26: NocionesBasicas comunicaciones electricas

26

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 51Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Layering: The OSI Model

Session

Network

Link

PhysicalPhysicalPhysical

Application

Presentation

Transport

Network

Link Link

Network

Transport

Session

Presentation

Application

Network

Link

Physical

Peer-layer communication

layer-to-layer communication

Router Router

1

2

3

4

5

6

7

1

2

3

4

5

6

7

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 52Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Layering: Our FTP Example

Network

Link

Transport

Application

Presentation

Session

Transport

Network

Link

Physical

The 7-layer OSI Model The 4-layer Internet model

ApplicationFTP

ASCII/Binary

IP

TCP

Ethernet

Page 27: NocionesBasicas comunicaciones electricas

27

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 53Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Example: FTP over the Internet Using TCP/IP and EthernetApp

OS

R2R2 R3R3

R4R4

R1R1 R5R5

Ethernet

“A” Stanford “B” (MIT)

Ethernet

App

OS

1

234

67

20

191817

5

9108

121311 15

1614

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 54Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

In the sending host

1. Application-Programming Interface (API)• Application requests TCP connection with “B”

2. Transmission Control Protocol (TCP)• Creates TCP “Connection setup” packet• TCP requests IP packet to be sent to “B”

TCPData

TCPHeader

TCP Packet

Type = Connection Setup

Empty

Page 28: NocionesBasicas comunicaciones electricas

28

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 55Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

In the sending host (2)

3. Internet Protocol (IP)• Creates IP packet with correct addresses.• IP requests packet to be sent to router.

IPData

TCP Packet

Encapsulation

IPHeader

IP Packet

Destination Address: IP “B”Source Address: IP “A”Protocol = TCP

TCPData

TCPHeader

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 56Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

In the sending host (3)

4. Link (“MAC” or Ethernet) Protocol– Creates MAC frame with Frame Check Sequence (FCS). • Wait for Access to the line.• MAC requests PHY to send each bit of the frame.

EthernetData

IP Packet

EthernetFCS

EthernetHeader

Ethernet Packet

Destination Address: MAC “R1”Source Address: MAC ‘A”Protocol = IP

IPData

IPHeader

Encapsulation

Page 29: NocionesBasicas comunicaciones electricas

29

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 57Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

In Router 1

5. Link (“MAC” or Ethernet) Protocol– Accept MAC frame, check address and Frame Check Sequence

(FCS). • Pass data to IP Protocol.

EthernetData

IP Packet

EthernetFCS

EthernetHeader

Ethernet Packet

Destination Address: MAC “R1”Source Address: MAC ‘A”Protocol = IP

IPData

IPHeader

Decapsulation

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 58Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

In Router 1 (2)

6. Internet Protocol (IP)• Use IP destination address to decide where to send packet next

(“next-hop routing”).• Request Link Protocol to transmit packet.

IPData

IPHeader

IP Packet

Destination Address: IP “B”Source Address: IP “A”Protocol = TCP

Page 30: NocionesBasicas comunicaciones electricas

30

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 59Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

In Router 1 (3)

7. Link (“MAC” or Ethernet) Protocol– Creates MAC frame with Frame Check Sequence (FCS). • Wait for Access to the line.• MAC requests PHY to send each bit of the frame.

EthernetData

IP Packet

EthernetFCS

EthernetHeader

Ethernet Packet

Destination Address: MAC “R2”Source Address: MAC “R1”Protocol = IP

IPData

IPHeader

Encapsulation

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 60Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

In Routers 2,3,5 Same operations as Router 1

16. Link (“MAC” or Ethernet) Protocol– Creates MAC frame with Frame Check Sequence (FCS). • Wait for Access to the line.• MAC requests PHY to send each bit of the frame.

EthernetData

IP Packet

EthernetFCS

EthernetHeader

Ethernet Packet

Destination Address: MAC “B”Source Address: MAC “R5”Protocol = IP

IPData

IPHeader

Encapsulation

Page 31: NocionesBasicas comunicaciones electricas

31

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 61Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

In the receiving host

17. Link (“MAC” or Ethernet) Protocol– Accept MAC frame, check address and Frame Check Sequence

(FCS). • Pass data to IP Protocol.

EthernetData

IP Packet

EthernetFCS

EthernetHeader

Ethernet Packet

Destination Address: MAC “B”Source Address: MAC “R5”Protocol = IP

IPData

IPHeader

Decapsulation

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 62Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

In the receiving host (2)

18. Internet Protocol (IP)• Verify IP address.– Extract/decapsulate TCP packet from IP packet.– Pass TCP packet to TCP Protocol.

IPData

TCP Packet

Decapsulation

IPHeader

IP Packet

Destination Address: IP “B”Source Address: IP “A”Protocol = TCP

TCPData

TCPHeader

Page 32: NocionesBasicas comunicaciones electricas

32

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 63Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

In the receiving host (3)

19. Transmission Control Protocol (TCP)• Accepts TCP “Connection setup” packet• Establishes connection by sending “ack”.

20. Application-Programming Interface (API)• Application receives request for TCP connection with “A”.

TCPData

TCPHeader

TCP Packet

Type = Connection Setup

Empty

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 64Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Host Protocol Family

application

transport

network

link

physicalEthernet

IP

UDPTCP

Real-timeAppsFTPHTTP

WLANPPP

Connectionoriented C

onne

ctio

nles

s

ATMX.25 FrameRelay

Page 33: NocionesBasicas comunicaciones electricas

33

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 65Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Types of networks

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 66Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

ISP

Backbones + NAPs + ISPs

ISP

ISPISP

BusinessISP

ConsumerISP

LAN LANLAN

NAP NAPBackbones

Dial-up

Page 34: NocionesBasicas comunicaciones electricas

34

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 67Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

DNS: Domain Name System• People: many identifiers:

– SSN, name, Passport #• Internet hosts, routers:

– IP address (32 bit) - used for addressing datagrams– “name”, e.g., sal.cs.uiuc.edu - used by humans

• Q: map between IP addresses and name ?• Domain Name System:• distributed database implemented in the hierarchy of many

name servers• application-layer protocol that is responsible for resolving

names (address/name translation)

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 68Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

DNS Name Servers• Why not centralize DNS?

– single point of failure– traffic volume– distant centralized database– maintenance– doesn’t scale!

• no server has all name-to-IP address mappings• local name servers:

– each ISP, company has local (default) name server– host DNS query first goes to local name server

• authoritative name server:– for a host: stores that host’s IP address, name– can perform name/address translation for that host’s name

Page 35: NocionesBasicas comunicaciones electricas

35

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 69Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

DNS: Root Name Servers• contacted by local name

server that can not resolve name

• root name server:– contacts authoritative

name server if name mapping not known

– gets mapping– returns mapping to local

name server• ~ dozen root name

servers worldwide

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 70Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Simple DNS Example• host surf.eurecom.fr wants IP

address of dragon.cs.uiuc.edu

• 1. Contacts its local DNS server, dns.eurecom.fr

• 2. dns.eurecom.fr contacts root name server, if necessary

• 3. root name server contacts authoritative name server, dns.cs.uiuc.edu, if necessary

requesting hostsurf.eurecom.fr

dragon.cs.uiuc.edu

root name server

authorititive name serverdns.cs.uiuc.edu

local name serverdns.eurecom.fr

1

23

45

6

Page 36: NocionesBasicas comunicaciones electricas

36

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 71Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Three Key Enablers of Networks• Digitization of Signals• Economies of Scale• Network Externalities

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 72Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Digitization of Signals• Any information bearing signal can be represented by a

binary string with arbitrarily high accuracy.• Sample + quantize a Digital stream.• Digital data is cheaper to store, manipulate and, most

importantly, reliably communicate.

Page 37: NocionesBasicas comunicaciones electricas

37

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 73Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Economies of Scale• Cost of capacity grows slowly with increased capacity.• A network has fixed costs only: (almost) zero marginal

costs.

Capacity or # users

Cost

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 74Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Network Externalities• Value of the network increases as the number of users

increases, which in turn attracts more users.

CostBenefit

# Users

Boom!

Page 38: NocionesBasicas comunicaciones electricas

38

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 75Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Networking Issues for DS• Performance

– Latency (Lt)• Propagation delay: the time it takes for the first bit of a message to

reach the destination.• Processing delay: the time it takes for the OS to process/send/ receive

the message.• Queueing delay: the time it takes a message to be queued either at end

hosts or intermediate nodes waiting for transmission.– Data transfer rate (Tr)

– Bandwidth: the total amount of information that can be transmitted over a given time.

packet delay = Lt + packet size / Tr

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 76Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Other Networking Issues for DS• Scalability• Reliability• Security• Mobility• Quality of service• Multicasting

Page 39: NocionesBasicas comunicaciones electricas

39

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 77Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Sistemas Operativos

www.ise.gmu.edu/~obenland/infs601.htmlLancaster University, UK

www.stanford.edu/class/cs140

Operating Systems 4th Edition (Stallings)Silberschatz, Galvin, and Gagne, Operating System Concepts

(Sixth Edition)

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 78Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Operating Systems• An operating system has two primary purposes:

– Provide an interface to common functions– Manage shared resources

• The OS sits between the hardware and user programs (i.e. applications)

• The OS provides services at all levels– low-level HW control, e.g. device drivers– High-level, e.g. TCP

• The OS is just a large program

Page 40: NocionesBasicas comunicaciones electricas

40

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 79Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

OS - Interface to Common Functions • Interfaces to hardware• Interfaces to services• Error handling (HW, SW failure)

DiskNetwork

LAN

Device Drivers

TCP/IP SocketsFile System

GUI (X-Windows) Communication

OS API

Application

Synchronization Multi-threading

An applicationuses OS API to

access functions

Common library of services

Drivers control

hardware

Operating System

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 80Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

OS - Manages Shared Resources• Disk: Synchronizes file access/buffer data• Memory: Virtual memory• CPU: Scheduling multiple tasks

Disk open/closeand read/write

operations

ProcessA

ProcessB

ProcessC

Disk Manager

Schedule tasks on the CPU

Disk

Task Manager

Memory Manager

Memory

Virtual memorymapping

Page 41: NocionesBasicas comunicaciones electricas

41

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 81Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

CPU: Advantage of Multiprogramming• Memory holds several programs at once• CPU switches between programs

– Scheduler is needed to pick current program to run

Main MemoryFrame0123456789

101112131415

Process D (2)

Process B (1)

Process B (3)

Process F (1)

Process C (1)

Process C (4)

Process D (1)

Process D (4)

Process E (2)

Process E (3)

Process G (2)

Process H (11)

Process J (3)

Process I (1)

Process J (5)

Process A (1)Process A (2)Process A (1)Process A (2)

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 82Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Operating Systems Services

Hardware

Display Network Disk Keyboard

Device Drivers

File Subsystem Scheduler

MemoryManagement

Inter-processCommunication

ProcessControl

Inter-processSynchronization

Messaging

Middleware

Distributed

VMAbstraction

Monitors

System Utilities

Shell

Admin.SW dev.

Display

COTS

Editors

MailBrowser

Application

User

System Services (User API)

Internet Protocols

Multi-threading

NetworkFile Sys.

Window Manager

Timers/Clocks

User Manager Security Fault

HandlingRPC

OS Libraries

LanguageI/O

GraphicsMath

Page 42: NocionesBasicas comunicaciones electricas

42

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 83Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Low Level Services• Hardware device drivers

– Isolate the details of the HW from OS/application• Process management

– Manage virtual memory – Schedule which tasks run on the CPU– Creation and termination of processes – Provide communication and synchronization

• File System– Manage the organization of data on disk– Manage input/output devices– Provide a hierarchical directory structure

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 84Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

OS System Services• Internet protocols

– Connection to local or remote networks– e.g.: TCP/IP,UDP,FTP,telnet, PPP,ATM, FDDI

• Network file system– Allows files to be shared across a network– e.g. NFS, NIS, Microsoft Networking

• User manager– Manage user account information

• Window manager– Manage the Graphical User Interface (GUI)– e.g.: Microsoft Windows, X Windows, CDE

Page 43: NocionesBasicas comunicaciones electricas

43

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 85Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

OS System Services (continued)• Security

– Maintain independence amongst user accounts– Guard against external break-ins– e.g.: Firewalls, proxies, loopholes, encryption

• Remote Procedure Call– Allows an application to call a remote procedure

• Fault handling– Detection and recovery of hardware failures– Software error exceptions

• Multi-threading– Multiple threads of execution in a single process

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 86Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Higher Level Services• System utilities

– shell: command line interface, ls, find/search,man– monitors: CPU performance, disk utilization – Administrative: ps,shutdown,mount,mkdir– software development: compilers, debuggers

• OS libraries (supports users applications)– I/O: data buffering and formatting– Math: common utilities, APIs: (cos,sin,abs,sqrt)– Language (depends on the language): object creation, memory

management, garbage collection Graphics toolkits: i.e. Motif

Page 44: NocionesBasicas comunicaciones electricas

44

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 87Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Characteristics of Modern Operating Systems• Microkernel architecture• Multithreading• Symmetric multiprocessing• Distributed Operating systems• Object-oriented design

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 88Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Microkernel Design

HARDWARE

Primitive Process Management

Virtual Memory

Device Management

Inter-process Communication

File System

Users

HARDWARE

Microkernel

UserProcess

DeviceDriver

FileServer

Process

Server

Virtual

Memory

User

OSLayered OS Microkernel OS

Page 45: NocionesBasicas comunicaciones electricas

45

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 89Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Task scheduling: First-Come-First Served• Schedule tasks based on arrival time

– May delay shorter jobs– Simple to implement

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 90Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Task scheduling: Round Robin, Short quantum• Divide CPU time into time quantums

– A short quantum shares the CPU equally– Creates a large number of process switches

Page 46: NocionesBasicas comunicaciones electricas

46

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 91Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Multilevel Task Scheduling

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 92Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Solaris Scheduler• Scheduling Classes

– Each class has its own scheduling policy

– 160 total priority levels in the 3 lowest classes

– Kernel globally schedules thread of highest priority in all the classes

– ISRs are not scheduled, but are higher priority than all classes

Timesharing and Interactive

System/Kernel

Real-time

Interrupt Threads

Interrupt ServiceRoutines

Lowest Priority

Highest Priority

Page 47: NocionesBasicas comunicaciones electricas

47

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 93Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Why Threads? Process not enough?• Traditionally, processes interact very little

• This is not true in modern systems:– Some applications may want to have multiple, tightly-coupled

processes– Distributed measurement system: data adquisition, data

presentation

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 94Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Problems with traditional (heavy-weight) processes• Heavy-weight processes have

separate address space

– Process creation is expensive– Process switch is expensive– Sharing memory areas among

processes non-trivial

Page 48: NocionesBasicas comunicaciones electricas

48

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 95Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Threads• Threads share address space

– Thread creation much simpler• No create and initialized address space

– Thread switch is simple– Threads fully share the address space

• Convenient communication between threads

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 96Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Solaris 2 Threads

Page 49: NocionesBasicas comunicaciones electricas

49

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 97Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Shared data problem: monitor, semaphore

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 98Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Running Java Programs• Java programs do not run directly on HW

– Java programs are complied to byte codes– Byte codes are run on the JVM, i.e. interpreted

Hardware

Operating System

JavaProgram

JavaCompiler

JavaByte Codes

Java Virtual Machine (JVM)

Java Platform

Page 50: NocionesBasicas comunicaciones electricas

50

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 99Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

IO management: Various Disk-Caching Locations

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 100Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

File subsystem: NFS Application View

Client

root

usr

Server 1

root

export

users

kim lee park …

Server 2

root

export

users

kimd dmlee mckim …

facultystudentsremotemount

remotemount

Page 51: NocionesBasicas comunicaciones electricas

51

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 101Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

NFS Architecture

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 102Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Intercomputer Communications

Page 52: NocionesBasicas comunicaciones electricas

52

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 103Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Device-Functionality Progression

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 104Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Linux Kernel Architecture

System Call Interface

Buffer cache

Memory Manager

Filesystem Manager

1.Ext2fs2.proc3.nfs

Network Manager

1.Ipv62.ethernet

Process Manager1.Task Management2.Scheduler3.Signaling

Device Interface

Device Manager

1.block2.character

Process1 Process2 Processn…

Dev1 Dev2 Devn…

Page 53: NocionesBasicas comunicaciones electricas

53

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 105Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Windows 2000 Architecture

Executive Services APII/O

SystemSecurityMonitor

Win32GDI

ObjectServices

MemoryMgmt

Processes/Threads

Exec.RTL

DeviceDrivers

Hardware Abstraction Layer (HAL)

Kernel

Object ManagementFileSystems

I/ODevices

DMA/BusControl

CacheControl

Clocks/Timers

PrivilegedArchitecture

InterruptDispatch

Registry

UserKernel

SystemProcesses Services User Apps Environment

SubsystemsSubsystem DLLInterface DLL

Session MgrWinLogon

ReplicatorAlerter

Event Log

Win32POSIXOS/2

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 106Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Organización de la memoria en Windows 2000

Application

(User Process Space)

System

(Kernel, Executive, HAL)

0

2Gb

4Gb

Privileged Memory

Addresses

Unprivileged Memory

Addresses

Page 54: NocionesBasicas comunicaciones electricas

54

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 107Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Tipo de interrupciones

Interrupt service routines

System Services

Exception Handlers

Virtual memory

manger’s pager

Interrupt

Hardware/Software Exceptions

System service call

Virtual Address Exceptions

Exception Dispatcher

Trap Handlers

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 108Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Manejo de interrupciones

Tell device to stop interrupting

Interrogate device state, start next operation on device

Request a DPC

Return to caller

Disable Interrupts

Record machine state to allow resume

Mask equal- and lower-IRQL interrupts

Find and call appropriate ISR

Dismiss interrupt

Restore machine state (include mode and enabled interrupts)

Disable Interrupts

Record machine state to allow resume

Mask equal- and lower-IRQL interrupts

Find and call appropriate ISR

Dismiss interrupt

Restore machine state (include mode and enabled interrupts)

Interrupt Dispatch RoutineInterrupt Service

Routine

Kernel mode

Interrupt !

User/kernel mode code

Page 55: NocionesBasicas comunicaciones electricas

55

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 109Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Memoria virtual• El proceso cree que tiene toda la memoria disponible• El hardware convierte cada dirección virtual en una dirección

física.

Address translation (hardware)

Virtual page number Byte within page

Byte within pagePhysical page number

PageTables

TranslationLookaside

Buffer

PageDirectory

virtual address

physical address

If page not valid

Page fault

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 110Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Organización acceso a red en Windows 2000• OSI layers don’t correspond

to actual software

• Bottom 4 layers are “the transport”

• Top 3 layers are the “user of the transport”

1

2

3

4

5

6

7Networking application

Networking APIdriver - TDI client

Protocol driver -TDI transport

(TCP/IP, NetBEUI, IPX/SPX, ...)

NDIS library

Ethernet, IrDA, ATM, ....

NDIS miniport

Networking API DLL

TDI

NDIS

HAL

Page 56: NocionesBasicas comunicaciones electricas

56

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 111Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Programación Orientada a Objetos (OOP)Software en general

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 112Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Programación orientada a objetos• Programación estructurada

– La solución del problema se consigue construyendo un programa formado por funciones, cada una especializada en resolver una parte del problema.

– Los datos son intercambiados entre funciones bajo control del programa principal.

• Programación orientada a objetos

– La solución del problema es un conjunto de objetos que interactúan entre sí, a través de sus interfaces.

– Ninguno sabe como funciona el otro por dentro (OCULTAR).

Programa principal

Datos

Función1 Función3Función2

Objeto1

Objeto4

Objeto2

Objeto3

EXISTEN NIVELES INTERMEDIOS

Page 57: NocionesBasicas comunicaciones electricas

57

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 113Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Definición informal de objetos y clases• Una variable sólo puede almacenar valores• Un objeto, además de almacenar valores, tiene unas

funciones que permiten modificar esos valores: variables y funciones que trabajan sobre esas variables forman un conjunto indivisible: el objeto.

• Me interesa modificar el objeto, en vez de andar con triquiñuelas para modificar una variable o un miembro de una variable:– Si es un lista programada en C, tengo que tener en cuenta el

puntero anterior, el inicial, etc., para incluir un nuevo nodo.

– Con un objeto que fuese equivalente a una lista, directamente incluyo el alumno.

InsertarOrd(TNodoAlu **ppNodoIni, TNodo *pAlu);

ListaAlu.Inserta(Alumno);

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 114Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Más abstracción• En C hay que moverse con estructuras de bajo nivel

• C++ a través del mecanismo de objetos permite elevar el nivel de abstracción.

InsertarOrd(TNodoAlu **ppNodoIni, TNodo *pAlu);

Tengo que pensar que debo pasar la direcciónde la variable de tipo puntero al nodo inicial

de la lista por si tengo que modificarla

ListaAlu.InsertaOrd(Alumno);

Tengo una lista de alumnosy quiero insertar un nuevo alumno.

¡ Programo muyparecido a cómo

pienso !

Page 58: NocionesBasicas comunicaciones electricas

58

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 115Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Más formal: Programación orientada a objetos OOP• Elemento fundamental: Tipo

abstracto de datos (ADT)• Propiedades del ADT:

– Exporta un tipo– Exporta un conjunto de

operaciones: interfaz del ADT– Las operaciones de la interfaz

son el único método de acceso a la estructura de datos interna.

– Axiomas y precondiciones para definir el dominio de aplicación del ADT.

Tipo abstracto de datos (ADT)

Estructuraabstractade datos

Operaciones Interfaz

Encapsula los datos: nose pueden hacer operacionesdirectamente sobre los datosinternos del ADT desde fuera

¿Cómo se maneja el ADT?

Pueden haber varios elementoscon ese mismo tipo

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 116Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

¿Cómo transcurre la vida de un objeto?• Igual que un tipo básico• Creación de un objeto

– Se reserva en memoria espacio para los datos internos del objeto.– Se llama a una función para inicializar estos datos: Constructor

del objeto.– Hay siempre un constructor por defecto.– Se pueden definir más.

• Acceso al objeto a través de la funciones miembro visibles.• Acceso al objeto a través de operadores.

– Acceden al objeto de igual forma que una función miembro.– Los hay que siempre tienen una definición por defecto (=,&).

• Destrucción de un objeto– Al igual que después de reservar espacio se llama al constructor

del objeto, antes de destruirlo se llama al destructor del objeto.– Sólo hay un destructor.

Page 59: NocionesBasicas comunicaciones electricas

59

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 117Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Ejemplo: Clase vector de enteros

#include "assert.h"int& CVecI::operator[](int n){

assert((n>=0)&&(n<nEle));return pi[n];

}

class CVecI {private:

int nEle;int *pi;

public:CVecI(int nEle=0) {Ini(nEle,0,0);}CVecI(const CVecI& o) {Ini(o.nEle,0,o.pi);}CVecI(int nEle, int iDef) {Ini(nEle,iDef,0);}~CVecI() {Borra();}int& operator[](int n);friend ostream& operator<<(ostream &o,CVecI& v);friend istream& operator>>(istream &o,CVecI& v);

private:void Ini(int nEle, int iDef, int *pi);void Borra();

};

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 118Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Ejemplo: Utilización de la clase vector

main(){

CVecI v1,v2;

cout<<"v1 ";cin>>v1;cout<<endl<<"v2 ";cin>>v2;

cout<<endl<<"v1*v2= "<<(v1*v2);

cout<<endl<<"v1+=v2= "<<(v1+=v2)<<endl;

cout<<"v1+v2= "<<(v1+v2)<<endl;}

Creado objeto CVecI 0Creado objeto CVecI 1v1 3 -2 4 5

v2 3 4 2 -5

v1*v2= -25v1+=v2= 3 2 6 0Creado objeto CVecI 2v1+v2= 3 6 8 -5Destruido objeto CVecI 2Destruido objeto CVecI 1Destruido objeto CVecI 0

Page 60: NocionesBasicas comunicaciones electricas

60

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 119Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Polimorfismo estático: Plantilla clase de vectorestemplate <class tipo> class TVec {private:

int nEle;tipo *p;

public:TVec(int nEleP=0);TVec(const TVec<tipo>& P);~TVec();TVec& operator=(const TVec<tipo>& P);tipo& operator[](int n);tipo& operator[](int n) const;friend ostream& operator<<(ostream &o,TVec<tipo>& v);friend istream& operator>>(istream &o,TVec<tipo>& v);

private:void Ini(int nEleP, tipo *pP);void Borra();#ifdef DEBUGVECTORvoid DebugCrea();#endif

};

tipo es el tipo genérico. Cuandose crea un objeto de dicha clasehay que concretar el tipo. Puede haber más de un tipo genérico.

TVec<tipo> es en general el tipode la clase mientras no haya que

concretar el tipo

Tipo genérico

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 120Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Prueba de la plantilla de vectores#include <iostream.h>#include "vector.h"

main() {TVec<int> vi1(2),vi2(3);vi1[0]=-2;vi1[1]=-30;vi2[0]=-4;vi2[1]=8;vi2[2]=104;cout<<"vi1: "<<vi1;cout<<"v12: "<<vi2;

TVec<double> vd(3);vd[0]=1.2;vd[1]=2.3;vd[2]=3.4;cout<<"vd: "<<vi2;

TVec< TVec<int> > vvi(2);vvi[0]=vi1;vvi[1]=vi2;cout<<vvi;

cin>>vvi;cout<<vvi;

}

Creado objeto TVec 0x0012ff84Creado objeto TVec 0x0012ff7cvi1: 2 -2 -30v12: 3 -4 8 104Creado objeto TVec 0x0012ff74vd: 3 -4 8 104Creado objeto TVec 0x0012ff6cCreado objeto TVec 0x00883214Creado objeto TVec 0x0088321c2 2 -2 -303 -4 8 104

Destruido objeto TVec 0x0088321cDestruido objeto TVec 0x008832142Creado objeto TVec 0x00883214Creado objeto TVec 0x0088321c3 -1 -2 -35 0 1 2 3 42 3 -1 -2 -35 0 1 2 3 4

Destruido objeto TVec 0x0012ff6cDestruido objeto TVec 0x0088321cDestruido objeto TVec 0x00883214Destruido objeto TVec 0x0012ff74Destruido objeto TVec 0x0012ff7cDestruido objeto TVec 0x0012ff84

Vector de vectores o de lo que quiera con una sola

línea de código

Page 61: NocionesBasicas comunicaciones electricas

61

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 121Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Introducción a la herencia• La herencia consiste en crear nuevas clases mediante la

modificación de clases que ya existen:– Se heredan las variables miembros y las funciones miembro definidas.– Se pueden incorporar nuevas variables miembro o nuevas funciones

miembro.– Se pueden redefinir o sobrecargar las variables y funciones miembro

ya existentes.– Es un tipo de la clase ...

• Es un método alternativo a la definición de nuevas clases mediante la inclusión de clases ya definidas.– Es una clase independiente dentro de otra clase– Forma parte de la clase ...

• Clase base, clase hija (o clase derivada)– Las clases hijas añaden más información a la clase base.– Las clases base son más genéricas.

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 122Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Ejemplo de herencia• Clase base de alumnos (CAlu)

que sólo incluye los datos personales de los alumnos:

• Clases derivadas:– CAluAct: Alumnos que tienen

asignaturas cursadas y sin cursas.

– CAluActIng: Alumnos actuales en ingeniería.

– CAluAnt: Antiguos alumnos que sólo tienen asignaturas cursadas.

• Aunque los datos personales son los mismos, la forma de procesarlos, especialmente las asignaturas, es diferentes:

– CAluAnt.Imp() funciona de forma diferente a CAluAct.Imp()

CAlu

CAluAct CAluAnt

CAluActIng

Page 62: NocionesBasicas comunicaciones electricas

62

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 123Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Ejemplo de herencia: clase alumnosclass CAlu {public:

CAlu();CAlu(char *psNomP, char *psProvP);CAlu(const CAlu& a);~CAlu() {}

CAlu& operator=(const CAlu& a);void Imp(ostream& o);

private:char sNom[20];char sProv[20];

void Rellena(const char *psNomP, const char *psProvP);};class CAluAnt: public CAlu {private:

TLista< CAsig > lAsigCur;void ConvierteAnt(CAluAct& a);

public:CAluAnt(CAluAct& a) : CAlu(a) { ConvierteAnt(a);}void Imp(ostream& o);

};

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 124Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Prueba del ejemplo con alumnos #include "alu.h"#include "lista.h"

main () {CAluAct a1("Pedro","Madrid");CAluAct a2("Juan","Murcia");

CAsig s1("INFORMATICA INDUSTRIAL");CAsig s2("ARQUITECTURA DE ORDENADORES");

a1.IncAsig(s1);a1.IncAsig(s2);a2.IncAsig("AUTOMATIZACION INDUSTRIAL");a2.IncAsig("ELECTRONICA");a2.IncAsig("MATEMATICAS");

a1.Imp(cout);a2.Imp(cout);a1.ActCursadas();a1.IncAsig("TELEPROCESO");

a1.Imp(cout);

a2.ActCursadas();CAluAnt ant1(a2);ant1.Imp(cout);

}

ACTUAL-> Pedro MadridAsignaturas cursadas:Asignaturas actuales:INFORMATICA INDUSTRIALARQUITECTURA DE ORDENADORESACTUAL-> Juan MurciaAsignaturas cursadas:Asignaturas actuales:AUTOMATIZACION INDUSTRIALELECTRONICAMATEMATICASACTUAL-> Pedro MadridAsignaturas cursadas:INFORMATICA INDUSTRIALARQUITECTURA DE ORDENADORESAsignaturas actuales:TELEPROCESOANTIGUO-> Juan MurciaAsignaturas cursadas:AUTOMATIZACION INDUSTRIALELECTRONICAMATEMATICAS

Page 63: NocionesBasicas comunicaciones electricas

63

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 125Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Clases virtuales• Polimorfismo a través de clases derivadas de una clase

base donde una o varias funciones son virtuales:– Mediante un puntero de tipo de la clase base se puede recorrer las

funciones miembros de las clases derivadas que han sido declaradas como virtuales en la clase base.

• Definir la interfaz mínima de las clases derivadas:– La clase no lleva código. O parte de las funciones miembro no

llevan código. Por eso se llaman clases abstractas. – No se pueden declarar objetos de la clase base porque falta el

código de algunas funciones.– Cada vez que se crea una clase derivada de esas clases virtuales

que ya no sean virtuales hay que codificar las funciones que faltan.• Una función miembro se declara virtual con el modificador

virtual.

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 126Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Ejemplo de clase virtual con los alumnos (I)

class CAlu {public:

CAlu();CAlu(char *psNomP, char *psProvP);CAlu(const CAlu& a);~CAlu() {}

CAlu& operator=(const CAlu& a);virtual void Imp(ostream& o);

private:char sNom[20];char sProv[20];

void Rellena(const char *psNomP, const char *psProvP);};

Imp es una función virtual

Page 64: NocionesBasicas comunicaciones electricas

64

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 127Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Ejemplo de clase virtual con los alumnos (II)#include "alu.h"#include "lista.h"#include "vector.h"

main () {CAluAct a1("Pedro","Madrid");CAluAct a2("Juan","Murcia");

a1.IncAsig("INFORMATICA INDUSTRIAL");a1.IncAsig("ARQUITECTURA DE ORDENADORES");a1.ActCursadas();a1.IncAsig("TELEPROCESO");a2.IncAsig("AUTOMATIZACION INDUSTRIAL");a2.IncAsig("ELECTRONICA");a2.IncAsig("MATEMATICAS");a2.ActCursadas();

CAluAnt ant1(a2);

TVec< CAlu *> vpa(3);vpa[0]=&a1;vpa[1]=&a2;vpa[2]=&ant1;for (int i=0;i<3;i++)

vpa[i]->Imp(cout);}

ACTUAL-> Pedro MadridAsignaturas cursadas:INFORMATICA INDUSTRIALARQUITECTURA DE ORDENADORESAsignaturas actuales:TELEPROCESOACTUAL-> Juan MurciaAsignaturas cursadas:Asignaturas actuales:ANTIGUO-> Juan MurciaAsignaturas cursadas:AUTOMATIZACION INDUSTRIALELECTRONICAMATEMATICAS

Al dereferenciar el puntero, el programasabe a qué clase derivada tiene que ir,

de forma dinámica

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 128Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Ejemplo de clase abstracta• Es una clase base que

define que cualquier clase derivada de ella tiene que tener una salida.

• Con ella se va a construir una lista capaz de imprimir información de nodos totalmente diferentes.

• Cada clase derivada de CBase tiene que definir el código de Imp si no quiere seguir siendo una clase abstracta.

class CBase {public:

virtual void Imp(ostream& o)=0;};

class CInt: public CBase {public:

int i;void Imp(ostream& o) {o<<i;}

};

class CDouble: public CBase {public:

double d;void Imp(ostream& o) {o<<d;}

};

class CVecI: public CBase {public:

TVec<int> vi;void Imp(ostream& o) {o<<vi;}

};

Page 65: NocionesBasicas comunicaciones electricas

65

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 129Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Ejemplo: Lista de objetos con salida heterogénea (II)main() {

CInt oi;oi.i=2;

CDouble od;od.d=-3.5;

TVec< int > vi(2);vi[0]=-3;vi[1]=-6;CVecI ovi;ovi.vi=vi;

TLista< CBase *> lpb;lpb.MeteIni(&oi);lpb.MeteIni(&od);lpb.MeteIni(&ovi);

while (!lpb.Vacia()) {(lpb.SacaIni())->Imp(cout);cout<<endl<<endl;

}}

2 -3 -6

-3.5

2

¡ Esto es la bomba !

130

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 130Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Calidad del Software• Factores Externos

– Pueden ser detectados por los usuarios– Calidad externa es la que realmente preocupa

• Factores Internos– Sólo los perciben los diseñadores e implementadores– Medio de conseguir la calidad externa

• La POO es un conjunto de técnicas para obtener calidad interna como medio para obtener calidad externa (Reutilización y Extensibilidad)

Buenas propiedadesinternas

OBJETIVO

Satisfacer factoresexternas

Page 66: NocionesBasicas comunicaciones electricas

66

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 131Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Factores de calidad del Software (I)• Factores Externos

– Corrección– Eficiencia– Economía– Robustez – Portabilidad – Integridad– Extensibilidad– Facilidad de uso– Facilidad de reparación– Reutilización– Funcionalidad– Facilidad de verificación– Compatibilidad– Oportunidad

• Factores Internos– Modularidad– Legibilidad

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 132Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Factores de la calidad del software (II)• Corrección

– Es la capacidad de los productos software de realizar con exactitud su tarea, tal y como es definida en la especificación

• Robustez– Es la capacidad de los productos software de reaccionar

adecuadamente ante situaciones excepcionales• Extensibilidad

– Es la facilidad de adaptación de los productos software a los cambios en la especificación.

• Simplicidad de la arquitectura del software• Descentralización: módulos autónomos

• Reutilización– Es la capacidad de un producto software de ser utilizado en la

construcción de diferentes aplicaciones• No reinventar soluciones para problemas ya resueltos.• Se escribe menos software, luego se puede dedicar mas tiempo a mejorar otros

factores (fiabilidad)

Page 67: NocionesBasicas comunicaciones electricas

67

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 133Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Factores de la calidad del software (III)• Compatibilidad

– Es la facilidad de combinar unos elementos software con otros• Los sistemas necesitan interactuar con otros• Convenciones estándar de comunicación inter-módulos

• Eficiencia– Es la capacidad de un sistema software de requerir la menor

cantidad posible de recursos hardware.• Los mecanismos OO deben ser implementados de un modo eficiente

tanto en tiempo como en espacio

• Portabilidad– Es la facilidad de transferir productos software a diferentes

plataformas (entornos hw y sw)

Sistemas Distribuidos

UPCO ICAI Departamento de Electrónica y Automática 134Prof. José A. Rodríguez Mondéjar

Conceptos Básicos

Factores de la calidad del software (IV)• Facilidad de uso

– Es la facilidad con la que personas con diferentes niveles de experiencia pueden aprender a usar los productos software y aplicarlos a resolver problemas. También incluye la facilidad de instalación, operación y supervisión.

• Funcionalidad– Conjunto de posibilidades ofrecido por un sistema

• Oportunidad– Es la capacidad de un sistema software de ser lanzado cuando los usuarios

lo desean, o antes• Economía:

– Completarse con el presupuesto asignado• Integridad:

– Proteger contra modificaciones y accesos no autorizados• Facilidad para reparaciones (de defectos)• Facilidades de verificación:

– Datos de prueba y procedimientos para detectar fallos