Upload
alejandroherreraguridechile
View
218
Download
2
Embed Size (px)
DESCRIPTION
rs232
Citation preview
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
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
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
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
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
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)
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
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
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
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
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
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
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
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)
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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.
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!
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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…
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
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
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
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
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 !
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.
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
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
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
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
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
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;}
};
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
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)
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