La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

PREPARARSE PARA EL CENEVAL SOFTWARE DE BASE Créditos a: Con la ayuda de Francisco Zaragoza (UAM Azcapotzalco) Cargadores, ligadores, etc Trimestre Q9P.

Presentaciones similares


Presentación del tema: "PREPARARSE PARA EL CENEVAL SOFTWARE DE BASE Créditos a: Con la ayuda de Francisco Zaragoza (UAM Azcapotzalco) Cargadores, ligadores, etc Trimestre Q9P."— Transcripción de la presentación:

1 PREPARARSE PARA EL CENEVAL SOFTWARE DE BASE Créditos a: Con la ayuda de Francisco Zaragoza (UAM Azcapotzalco) Cargadores, ligadores, etc Trimestre Q9P Introducción a los sistemas de cómputo. De los bits y compuertas al C y más allá. Mc Graw Hill.Revisión técnica M.C. Jesús García Fernández

2 CATEGORIAS DEL SOFTWARE ● SOFTWARE DE BASE ● SOFTWARE DE APLICACIÓN – Procesadores de texto – Hojas de cálculo – Navegadores, lectores de correo, etc,etc

3 Software de base una definicíon ● Existen otros programas que se consideran básicos para el uso de una ● computadora determinada independientemente de la aplicación que se ● le quiera dar. ● A estos los llamaremos software de base. ● La naturaleza de estos programas implica que su diseño está íntimamente ligado a la estructura de la máquina donde se ejecutan.

4 De lo que tú sabes cuáles podrán ser entonces ● Dependen de la máquina y hay que programar la máquina???? ● Espero tu respuesta

5 ejemplos ● Ensambladores. ● Cargadores. ● Ligadores. ● Macroprocesadores. ● Compiladores. ● Sistemas operativos.

6 Ensambladores ● Los ensambladores traducen instrucciones nemónicas a código máquina. ● La dependencia se debe a que los formatos de instrucciones, modos de direccionamiento, códigos de operación, etc., dependen por completo del procesador de la máquina. ¿Que te sugiere esta parte? ● A pesar de las diferencias, existen también muchas características del diseño de estos programas que no dependen del procesador empleado.¿Que te sugiere esto?

7 ¿Que se debe considerar al trabajar con un ensamblador? ● La memoria consta de bytes de 8 bits. ● Tres bytes consecutivos forman una palabra (word) de 24 bits. ● Cada byte tiene una dirección de 15 bits. ● Esto significa que la memoria tiene 2 15 bytes. ● Cada palabra tiene como dirección la dirección de su primer byte.

8 ¿tienes laptop o pc? ● ¿Cuántas direcciones tiene tu computadora? ● ¿Cuántas direcciones son posibles tener en tu celular? ● ¿Por qué te pregunto esto?

9 Organización de la memoria ● En este diagrama, cada cuadrito representa un byte de 8 bits y cada ● tres cuadritos consecutivos representan una palabra de 3 bytes. ● Es similar a un arreglo char mem[32768]

10 Hablemos de registros ● Tiene 5 registros de 24 bits, cada uno con un uso específico. ● Son similares a variables enteras int A,X,L,PC,SW

11 Empezamos a darle forma ● El registro PC contiene la dirección de la instrucción a ejecutar. ● El registro L almacena la dirección de regreso cuando se salta a una subrutina. ● El registro SW contiene información en sus bits (llamados banderas).

12 Tipos de datos ● Los enteros se almacenan como números ● binarios de 24 bits, usando el complemento a 2 para los valores negativos. ● Los caracteres se almacenan en ASCII usando 8 bits.

13 Instrucciones ● Todas las instrucciones de nuestra máquina tienen el siguiente formato de 24 bits,donde el bit de bandera x indica el modo de direccionamiento indexado y la D representa el campo de dirección:

14 Modos de direccionamiento ● Nuestra máquina tiene dos modos de direccionamiento. ● El modo queda indicado por la bandera x de la instrucción y ● determina la dirección objetivo con la que operará la instrucción. ● La dirección objetivo T se obtiene así

15 Como ayudar a identificar direccionamientos ● Si x = 0 tenemos direccionamiento directo. La instrucción 18 07 D7 toma su operando de la dirección, T = D = 07D7 o 2007 en decimal, es decir, su operando es mem[2007]. ● Si x = 1 tenemos direccionamiento indexado. La instrucción 18 87 D7 toma su operando de la dirección T = D+X = 07D7+X o 2007+X ● en decimal, es decir, su operando es mem[2007+X] que claramente depende del valor actual del registro X.

16 Por lo tanto ayuda saber los tipos de instrucciones ● Nuestra máquinita proporciona un conjunto básico de instrucciones que contiene los siguientes tipos: – Carga y almacenamiento. – Operaciones aritméticas. – Comparación. – Saltos condicionales. – Subrutinas. – Entrada y salida.

17 Déjame presentarte mis posibles máquinas ● La arquitectura de programa almacenado Von Neuman ● La arquitectura de un microcontrolador

18 Arquitectura de Von Neuman

19

20 El ciclo es

21 A detalle el ciclo de una instrucción

22 Te pregunto: ¿Este ciclo aplicará a nuestros modelos? ● Regresemos a nuestras arquitecturas ● Si por que ● No, por qué

23 Ensambladores y traductores ● Un ensamblador es un programa que traduce un código fuente en lenguaje ensamblador a un código objeto en lenguaje máquina de un cierto procesador. ● De forma más general, un traductor es un programa que traduce un código fuente escrito en un lenguaje fuente a un código objeto escrito en un lenguaje objeto.

24 Cont. ● Además, un ensamblador suele interpretar algunas directivas como las siguientes: –. indica el inicio de un comentario. – START indica el nombre y (dir. de inicio). – END indica fin y (dir. de primera instrucción). – BYTE genera constantes de bytes. – WORD genera constantes de un word. – RESB reserva el número indicado de bytes. – RESW reserva el número indicado de words.

25 Ejemplo de código fuente y objeto

26 Un ensamblador simple ● Cada renglón del código fuente puede contar con hasta cuatro campos distintos que están separados por espacios: etiqueta, instrucción, operando y comentario. ● La etiqueta también se llama símbolo. ● La instrucción puede ser un nemónico de la máquina o una directiva del ensamblador. ● El operando puede ser una constante o una etiqueta.

27 Funciones necesarias para traducir 1.Convertir las instrucciones nemónicas a sus equivalentes en lenguaje máquina. 2.Convertir los operandos símbolicos a sus direcciones de máquina equivalentes. 3.Construir o ensamblar las instrucciones de máquina en el formato adecuado. 4.Convertir las constantes en el código fuente a su representación interna de máquina. 5. Escribir el código objeto (y posiblemente también el listado de ensamblado).

28 Más observaciones ● Es por eso que la mayoría de los ensambladores hacen dos pasos lecturas por el código fuente. ● En el primero se asignan valores a todas las etiquetas y en el segundo se realizan la mayoría de las funciones antes descritas. ● Además el ensamblador debe de procesar las directivas, las cuales no se traducen en instrucciones, pero pueden influir en el código objeto.

29 Descripción general del primer paso

30 Descripción general del segundo paso

31 Código objeto ● El ensamblador debe de escribir el código objeto generado en algún dispositivo. ● En nuestro caso, el formato del código objeto tiene tres tipos de ● registros: – Registro de encabezado. – Registro de texto. – Registro de fin. ● Los detalles de estos registros son irrelevantes pero la información que contienen debe estar en alguna parte. ● No los vamos a mencionar

32 Cargadores, ligadores y traductores ● Un cargador es un programa de sistema que realiza la función de llevar un programa objeto a la memoria para su ejecución. ● Un ligador es un programa de sistema que combina dos o más programas objeto y proporciona la información necesaria para resolver las referencias entre ellos. ● Casi todos los traductores del mismo sistema generan código objeto en el mismo formato, así se usa el mismo cargador y ligador independientemente del lenguaje original.

33 Algoritmo para un cargador básico

34 Consideraciones prácticas ● En la práctica el código objeto se puede guardar en binario (y no en hexadecimal y ASCII como con otras máquinitas ). ● En este caso, cada byte en el código objeto corresponde con un byte en la memoria. ● Además, los formatos de registros deben cambiar puesto que cualquier byte puede formar parte de un registro (normalmente, los registros deberán indicar claramente su longitud en un encabezado).

35 Analizamos otro software de base SISTEMAS OPERATIVOS ● Sistemas operativos por su estructura interna ● Sistemas operativos por los servicios que ofrecen ● Sistemas operativos por la forma que ofrecen sus servicios. ● Adaptado de http://dis.um.es/~jfernand/docencia/si/tiposso. pdf

36 Por estructura ● Monolítica: primeros SO

37 Estructura jerárquica: ¿Qué sistemas operativos conoces en esta categoría?

38 Organización jerárquica

39 Máquina virtual

40 Máquina Virtual

41 Sistemas operativos por servicios

42 Monousuarios

43 Multiusuarios

44 Monotareas

45 Multitareas Un sistema operativo multitarea es aquél que le permite al usuario estar realizando varias labores al mismo tiempo. Por ejemplo, puede estar editando el código fuente de un programa durante su depuración mientras compila otro programa, a la vez que está recibiendo correo electrónico en un proceso en background. Es común encontrar en ellos interfaces gráficas orientadas al uso de menús y el ratón, lo cual permite un rápido intercambio entre las tareas para el usuario, mejorando su productividad.

46 Uniproceso y multiproceso

47 Sistemas operativos por servicios ● Sistemas operativos de red ● Sistemas operativos distribuidos ● Veamos al interior de los SO

48 QUE SE DESPRENDE DE TODO ESTO ● ADMINISTRAR MEMORIA ● ADMINISTRAR CPU ● ADMINISTRAR SISTEMA DE ARCHIVOS ● ¿PARA QUE? QUE SE BUSCA Y COMO SE DEFINE

49 QUE ES ● El sistema operativo (a veces también citado mediante su forma abreviada OS en inglés) se encarga de crear el vínculo entre los recursos materiales, el usuario y las aplicaciones (procesador de texto, videojuegos, etcétera). ● Cuando un programa desea acceder a un recurso material, no necesita enviar información específica a los dispositivos periféricos; ● simplemente envía la información al sistema operativo, el cual la transmite a los periféricos correspondientes a través de su driver (controlador). Si no existe ningún driver, cada programa debe reconocer y tener presente la comunicación con cada tipo de periférico.

50 EN BREVE

51 CARACTERISTICAS

52 BIEN ADENTRO núcleo o kernel software que constituye una parte fundamental del sistema operativo

53 LINUX

54 WINDOWS

55 ADMINISTRACION DE PROCESOS

56

57

58

59

60

61

62 GESTION DE MEMORIA

63 PARA ESTO ● Particiones continuas de tamaño fijo – Fragmentación Interna: Malgasta memoria principal. El espacio que se pierde en la partición da que el programa no llega a aprovechar el espacio de la partición. – Fragmentación Externa: Se produce cuando hay suficiente espacio libre pero no podemos asignar memoria a un proceso en espera porque las particiones vacías son muy pequeñas y las adecuadas no están vacías (en las particiones que los puedes juntar y tendrías espacios suficientes para ubicar otros procesos, pero que sin juntar estos espacios, no puedes inserta).

64 Particiones continuas de tamaño variable ● La memoria se crea las particiones que necesita el proceso. Se crean según el tamaño de los procesos que se ubicarán. Para evitar la fragmentación exterior, en este caso se hará servir la compactación para recorrer los datos, pero esto tiene un elevado costO de T. ● PAGINACIÓN

65 RECOMENDACION ● REVISAR PLAN DE ESTUDIOS EN PARTICULAR LOS MAPAS CONCEPTUALES


Descargar ppt "PREPARARSE PARA EL CENEVAL SOFTWARE DE BASE Créditos a: Con la ayuda de Francisco Zaragoza (UAM Azcapotzalco) Cargadores, ligadores, etc Trimestre Q9P."

Presentaciones similares


Anuncios Google