Entornos Operativos | Quizlet

0.0(0)
studied byStudied by 0 people
0.0(0)
full-widthCall with Kai
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
GameKnowt Play
Card Sorting

1/64

encourage image

There's no tags or description

Looks like no tags are added yet.

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced
Call with Kai

No study sessions yet.

65 Terms

1
New cards

Descripcion arquitectura cliente-servidor

Hay 2 tipos de nodos bien diferenciados: un nodo servidor y varios nodos clientes

2
New cards

Rol servidor en arquitectura cliente-servidor

Recibe peticiones de los clientes y lleva la mayoria del peso de computacion, almacenamiento y trafico de red

3
New cards

Rol cliente en arquitectura cliente-servidor

Son ligerios y delegan gran parte de la computacion al servidor. Hoy se suele desplazar parte de la carga al cliente para aligerar la carga del servidor

4
New cards

Ventajas arquitectura cliente-servidor

Sencillez y clara separacion de tareas

5
New cards

Desventajas arquitectura cliente-servidor

Punto unico de fallo y poca escalabilidad

6
New cards

Ejemplos arquitectura cliente-servidor

Cliente web

7
New cards

Descripcion arquitectura P2P

Todos los nodos son iguales e intercambian datos para realizar tareas de computacion y almacenamiento

8
New cards

Ventajas arquitectura P2P

Como los nodos son iguales, se puede hacer tolerancia a fallos y escalar facilmente

9
New cards

Desventajas arquitectura P2P

Muchas veces se necesita un protocolo de comunicacion y el algoritmo es mas complejo

10
New cards

Ejemplos arquitectura P2P

Grandes sistemas distribuidos, blockchain

11
New cards

Descripcion arquitectura hierarchy

Todos los nodos son iguales pero los nodos se organizan en una estructura por niveles para estratificar la computacion dando distintas tareas a distintos niveles

12
New cards

Que es el nodo raiz en arquitectura hierarchy

Nodo en la parte superior de la jerarquia que es el mas importante y se comporta como un servidor

13
New cards

Ventajas arquitectura hierarchy

Como combina caracteristicas de cliente-servidor y P2P, tiene clara separacion de tareas y se puede hacer tolerancia a fallos y escalabilidad

14
New cards

Desventajas arquitectura hierarchy

Fallo en el nodo raiz puede ser muy grave sin mecanismos adecuados para solucionarlo

15
New cards

Ejemplos arquitectura hierarchy

Proyectos cientificos, sistemas de alerta temprana

16
New cards

Descripcion cloud services

Se componen internamente de una red P2P y ofrece una API para que los clientes accedan, ofreciendo la ilusion de un unico servidor centralizado

17
New cards

Descripcion cloud service tipo IaaS

Infrastructure as a Service, ofrece recursos informaticos como computacion o almacenamiento

18
New cards

Descripcion cloud service tipo PaaS

Platform as a Service, ofrece computacion dentro de una plataforma

19
New cards

Descripcion cloud service tipo SaaS

Software as a Service, aplicacion ejecutada en la nube con todo los requerido

20
New cards

Ejemplos cloud service

Amazon Web Services, Google Cloud

21
New cards

Descripcion proceso

Una unidad de ejecucion de codigo creado y gestionado por el sistema operativo. Para lanzarlo se necesita un programa en codigo objeto como .exe

22
New cards

Como ejecuta el sistema operativo los procesos

El sistema operativo permite ejecutar un proceso durante un tiempo y luego pasa al siguiente. Son guardados en una estructura de datos junto su prioridad que se va ajustando segun pasa el tiempo

23
New cards

Como funciona la ejecucion de codgo en un proceso

Ejecuta sequencialmente una instruccion tras otra, ejecutanto solo una instruccion cada vez. El proceso vive en una sola maquina. El sistema operativo permite ejecutar varios procesos a la vez (multiproceso) para aprovechar mejor el hardware

24
New cards

Como funciona la memoria en los procesos

No se comparte memoria entre procesos aunque tengan el mismo codigo objeto. Se pueden intercambiar datos meditante otros procesos como sockets

25
New cards

Descripcion thread

Un flujo de ejecucion en el contexto de un proceso. Un proceso puede tener uno o varios threads (multithread) para aumentar su eficioncia. Los threads de un proceso comparten memoria y son mas ligeros que un proceso en terminos computacionales

26
New cards

Como se ejecuta un proceso en codigo

En Windows con CreateProcess() y en Unix con fork()

27
New cards

Diferencias entre CreateProcess() y fork()

CreateProcess() necesita el nombre del programa y ejecuta el proceso desde el principio mientras que fork() no necesita el nombre continua desde la linea donde es creado. Para que empieze desde el principio hay que hacer exec() despues del fork()

28
New cards

Descipcion socket

Permite comunicar procesos entre dos maquinas distintas o dentro de la misma maquina. Hay 2 tipos, UDP y TCP

29
New cards

Descripcion cliente-servidor UDP

Orientado al envio directo de datagramas UDP sin gestion de reordenacion, repeticion y perdida de mensajes.

30
New cards

Ventajas cliente-servidor UDP

No requiere un handshake y menor latencia por no gestionar perdidas, repeticion y reordenacion de mensajes

31
New cards

Desventajas cliente-servidor UDP

Al no gestionar perdidas, repeticion y reordenacion de mensajes el nivel de aplicacion tiene que adaptarse o gestionarlo

32
New cards

Como funciona el cliente en cliente-servidor UDP

1. Inicializar libreria WinSock2

2. Crear socket UDP

3. Crear struct con IP y puerto del servidor

4. Mandar mensaje con sendto a traves del socket a la direccion especificada

33
New cards

Como funciona el servidor en cliente-servidor UDP

1. Inicializar libreria WinSock2

2. Crear socket UDP

3. Crear struct con IP y puerto donde se va a quedar escuchando

4. Hacer bind el socket con dicha IP

5. En el bucle principal recibe usando recvfrom el mensaje a traves del socket

6. Al finalizar el bucle cerrar el socket y limpiar WinSock2

34
New cards

Descripcion cliente-servidor TCP

Orientado al envio de datagramas TCP que gestiona perdidas, reordenaciones y repeticiones de mensajes desde el nivel de transporte

35
New cards

Ventajas cliente-servidor TCP

Mas comodo para compartir ficheros o grandes cantidades de datos cuando la latencia no es prioritaria

36
New cards

Desventajas cliente-servidor TCP

Mayor latencia por el establecimiento de la conexion y la propia operacion del protocolo

37
New cards

Como funciona el cliente en cliente-servidor TCP

1. Inicializar libreria WinSock2

2. Crear socket TCP

3. Crear struct con IP y puerto del servidor

4. Establecer conexion con el servidor usando connect

5. Mandar mensaje con send a traves del socket a la direccion especificada

6. Cerrar el socket con closesocket

38
New cards

Como funciona el servidor en cliente-servidor TCP

1. Inicializar libreria WinSock2

2. Crear socket TCP

3. Crear struct con IP y puerto donde se va a quedar escuchando

4. Hacer bind el socket con dicha IP

5. Escuchar con listen en el socket para que la libreria puede establecer conexiones y añadirlas a la lista de conexiones pendientes

6. En el bucle principal usar accept para aceptar una conexion y obtener un nuevo socket con los datos de una de las conexiones pendientes

7. En un bucle anidado usar recv para recibir el mensajes a traves del socket de la conexion

8. Al finalizar el bucle cerrar el socket y limpiar WinSock2

39
New cards

Descripcion cliente-servidor UDP multithread

El servidor crea un socket nuevo para cada cliente cuando manda el primer mensaje y le delegara a un thread nuevo para servir a ese cliente

40
New cards

Descripcion cliente-servidor TCP multithread

El servidor delega directamente a un thread el nuevo socket obtenido con accept donde se ha conectado el cliente

41
New cards

Descripcion RPC

Remote Procedure Call, un modelo peticion-respuesta donde el cliente que invoca procedures remotos del servidor a traves de una API. El cienta envia el nombre y los argumentos de la funcion que se quiere realizar y el servidor devuelve al cliente el resultado

42
New cards

Descripcion libreria estatica

Una libreria que contiene todas las operaciones compartidas entre el cliente y el servidor para no repetir el codigo como las funciones de los sockets. Con esto se mejora la mantenibilidad y la reusabilidad del programa

43
New cards

Descripcion marshalling

Tecnica muy usada en sistemas distribuidos que permite la interoperabilidad de sistema hetereogeneos. La idea es utilizar un lenguaje comun intermedio para traducir el paquete a formato texto y que ambas maquinas lo puedan leer.

44
New cards

Lenguajes comunmente usados en marshalling

XML y JSON

45
New cards

Que hace esta linea: s = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);

Inicia un socket UDP

46
New cards

Que hace esta linea: s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);

Inicia un socket TCP

47
New cards

Como se envia un mensaje en UDP

sendtoMsg(socket, &dest_addr, packet, prefix);

48
New cards

Como se recibe un mensaje en UDP

recvfromMsg(socket, &sender_addr, response, prefix);

49
New cards

Como se envia un mensaje en TCP

sendMsg(socket, packet, prefix);

50
New cards

Como se recibe un mensaje en TCP

recvMsg(socket, response, prefix);

51
New cards

Como se crea un thread

std::thread thread = std::thread(function, ThreadInfo);

52
New cards

Como se inicia un thread

thread.join();

53
New cards

Como se acepta un socket del cliente en TCP

clientSocket = accept(socket, (sockaddr*)&client_addr, &client_len); Los punteros son nullptr si no es multithread

54
New cards

Como se conecta el cliente al servidor en TCP

connect(socket, (sockaddr*)&my_addr, sizeof(sockaddr_in);

55
New cards

Mezclas de enviar y recibir mensajes en UDP

sendtorecvfromMsg(socket, &dest_addr, packet, response, prefix);
recvfromsendtoMsg(socket, response, prefix);

56
New cards

Mezclas de enviar y recibir mensajes en TCP

sendrecvMsg(socket, packet, response, prefix);
recvsendMsg(socket, response, prefix);

57
New cards

Como se limpia un socket y la libreria

closesocket(socket); WSACleanup();

58
New cards

Como se limpia un thread

delete thInfo; thInfo = null;

59
New cards

Que hace la siguiente funcion: inet_pton(AF_INET, address, &(addr->sin_addr.s_addr));

Convierte una dirección IP en formato texto a su representación binaria para uso en sockets

60
New cards

Que hace la siguiente funcion: bind(s_server, (sockaddr*)my_addr, sizeof(sockaddr_in));

Asocia un socket a una dirección IP y un puerto locales para poder recibir conexiones o datos

61
New cards

Que hace la siguiente funcion: listen(s_server, 1);

Prepara un socket TCP del servidor para esperar conexiones de clientes y las coloca en una cola de conexiones entrantes

62
New cards

Que hace la siguiente funcion: accept(listeningSocket, (sockaddr*)&client_addr, &clientSize);

Acepta una conexión TCP de la cola creada por listen y devuelve un nuevo socket dedicado a la comunicación con el cliente

63
New cards

Que hace la siguiente funcion: connect(s, (sockaddr*)&server_addr, sizeof(server_addr));

Inicia y establece una conexión TCP desde el socket del cliente hacia un servidor remoto

64
New cards

Como compruebas si un array de char y un string son iguales

strcmp(charArray, string) == 0;

65
New cards

Como copias el valor de un string a una array de chars

memset(charArray, 0, arrayLength); string.copy(charArray, string.size(), 0);