Professional Documents
Culture Documents
Primer Parcial
Actividades de Aprendizaje - 40%
Examen Escrito - 40% 35%
Participaciones - 20%
Segundo Parcial
Actividades de aprendizaje - 20%
Reporte de Practica – 50% 35%
Examen Escrito - 30%
Los trabajos serán revisados con Safe Assign, programa especializado para identificar
PLAGIO. En caso los trabajos no este citados con Formato APA este será acreedor de la
calificación más baja 0 (CERO).
Todos los trabajos deberán ser entregados a computadora de manera impresa salvo
excepción acordada entre el docente y el alumno.
No existe tolerancia de entrega posterior.
Traductores de Bajo Nivel
Unidad I
Introducción
PROGRAMA
Conjunto de instrucciones convenientemente ordenadas que indican al ordenador qué
procesos y tareas debe seguir. Cada una de las instrucciones tiene un función específica y
está escrita en un lenguaje que el ordenador entiende. Conjunto de actividades implicadas en
la descripción, el desarrollo y la implementación eficaz de soluciones algorítmicas a problemas
bien especificados
Algoritmo 1. m. Conjunto ordenado y finito de operaciones que permite hallar la solución de
un problema.
(Extraído del Diccionario de la RAE, 22ª edición)
Un algoritmo es, por tanto, una sistemática que transforma un estado inicial en un estado final
La entrada del programa: Precondiciones
Descripción del estado inicial (datos y situación de partida)
La salida del programa: Postcondiciones
Descripción del estado final (datos y situación deseada al acabar)
Algoritmo
Componentes:
Entrada: datos del problema a resolver
Salida: el resultado de la resolución
Proceso: pasos a seguir para la resolución
Propiedades:
Preciso: orden estricto + expresiones precisas
Definido: con la misma entrada, siempre resulta la misma salida
Finito: número finito de pasos
Algoritmos
Cálculo i, res
Entrada
Salida (pantalla)
i=i+1
SI NO
Fin i>5
Comparación 15
Algoritmos
ENTRADA/SALIDA
ASIGNACION
leer(edad)
longitud = 2 * 3.14 * radio
imprimir(valor)
x=x+1
CONDICION
si (edad < 18) entonces
imprimir(“No puedes votar”)
si no
voto = leer(“Elija su voto”)
fin si
16
Algoritmos
ITERACION
mientras (num <> 8) hacer
num = leer(“Otra vez. Número:”)
fin mientras
repetir
x=x+2
17
hasta que (x > 50)
Actividad de Clase
El código escrito en lenguaje ensamblador posee una cierta dificultad de ser entendido ya que su estructura se
acerca al lenguaje máquina, es decir, es un lenguaje de bajo nivel.
El lenguaje ensamblador es difícilmente portable, es decir, un código escrito para un microprocesador, puede
necesitar ser modificado, para poder ser usado en otra máquina distinta. Al cambiar a una máquina con
arquitectura diferente, generalmente es necesario reescribirlo completamente.
Los programas hechos, por un programador experto, en lenguaje ensamblador, son generalmente mucho más
rápidos y consumen menos recursos del sistema (memoria RAM y ROM.) que el programa equivalente compilado
desde un lenguaje de alto nivel. Al programar cuidadosamente en lenguaje ensamblador se pueden crear
programas que se ejecutan más rápidamente y ocupan menos espacio que con lenguajes de alto nivel.
Con el lenguaje ensamblador se tiene un control muy preciso de las tareas realizadas por un microprocesador por
lo que se pueden crear segmentos de código difíciles y/o muy ineficientes de programar en un lenguaje de alto
nivel, ya que, entre otras cosas, en el lenguaje ensamblador se dispone de instrucciones del CPU que generalmente
no están disponibles en los lenguajes de alto nivel.
También se puede controlar el tiempo en que tarda una rutina en ejecutarse, e impedir que se interrumpa durante
su ejecución.
Características de Traductores de bajo
nivel
Unidad 2
Traductores de Alto Nivel: Definición
Los lenguajes de programación de alto nivel son aquellos en los que las instrucciones o
sentencias a la computadora son escritas con palabras similares a los lenguajes humanos,
lo que facilita la escritura y la fácil comprensión por el programación Los lenguajes de
programación son -en general- transportables, esto significa que un programa escrito en
un lenguaje de alto nivel se puede escribir con poca o ninguna modificación en
diferentes tipos de computadora, otra propiedad es que son Independientes
de la maquina, esto es, las sentencias del programa no dependen del diseño o hardware
de una computadora especifica.
Traductores de alto nivel
Los programas escritos en lenguaje de alto nivel no son entendibles directamente por la
maquina, necesitan ser traducidos a instrucciones en lenguaje maquina. Los
programas que realizan esta traducción se llaman compiladores, y los programas
escritos en un lenguaje de alto nivel se llaman programas fuente.
El proceso de traducción de un programa fuente se denomina compilación y tras
la fase de enlace se obtiene un programa ejecutable directamente por la computadora.
Aplicaciones y usos principales de los
traductores de alto nivel
Compilador:
INTERPRETE: Es un programa que lee línea a línea un programa escrito en un lenguaje; en lenguaje fuente y
lo va traduciendo a un código intermedio, para ejecutarlo.
COMPILADOR: Es un programa que lee totalmente un programa escrito en un lenguaje; el lenguaje fuente,
y lo traduce a un programa equivalente a otro lenguaje, lenguaje objeto.
Ventajas:
La principal ventaja del proceso de compilación frente al de interpretación es que los programas se
ejecutan mucho más rápidamente una vez compilados; por el contrario, es más cómodo desarrollar un
programa mediante un intérprete que mediante un compilador puesto que en el intérprete las fases de
edición y ejecución están más integradas. La depuración de los programas suele ser más fácil en los
intérpretes que en los compiladores puesto que el código fuente está presente durante la ejecución. Estas
ventajas pueden incorporarse al compilador mediante la utilización de entornos de desarrollo y
depuradores simbólicos en tiempo de ejecución.
Diferencia entre un intérprete y
compilador:
• La ejecución es más lenta, pues cada instrucción debe ser traducida a código
máquina tantas veces como sea ejecutada.
• No son adecuados en la fase de explotación del programa ya que el proceso de
interpretación se ha de repetir cada vez que se ejecuta el programa, mientras que con la
compilación, una vez obtenido el programa en leguaje máquina éste puede ser
ejecutado sin necesidad de compilarlo de nuevo.
Sistemas Operativos
Unidad 3
Introducción
Definiciones:
El software y/o firmware que hace utilizable al hardware [Deitel].
Es un programa que controla la ejecución de los programas de
aplicación y que actúa como interfaz entre los usuarios y el
hardware [Satllings].
Es un programa que actúa como intermediario entre el usuario y
el hardware. El primer objetivo es la comodidad, el segundo la
eficiencia [Silberschatz].
Es un programa que tiene encomendada una serie de funciones
diferentes cuyo objetivo es simplificar el manejo y utilización de
la computadora, haciéndolo seguro y eficiente [Carretero].
Concepto, historia y evolución … (2)
ENIAC
Prehistoria (años cuarenta)
Máquinas como la ENIAC o la EDVAC.
No existía un S.O. La interacción se
daba directamente con el hardware.
El usuario debía codificar su programa
en código máquina, introducirlo
mediante tarjetas perforadas y recibir
la salida de forma impresa.
EDVAC
El procesamiento se dice que se realiza
en serie por que refleja el hecho de
que los usuarios tenían que acceder
en serie al computador.
Con el paso del tiempo, para hacer
más eficiente el proceso en serie, se
desarrollaron bibliotecas de funciones
comunes, montadores, cargadores,
depuradores, etc.
Ciclo Escolar 2013-2014B
cincuenta) interrupciones
Monitor
Dispositivos
trabajos en lotes.
Secuenciamiento
Disponían de un conjunto de de trabajos
Monoprogramación
Solo un programa Ejecutar Ejecutar
Esperar E/S Esperar E/S
en ejecución a la vez
Tiempo
?
Ciclo Escolar 2013-2014B
Concepto,historia y evolución
¿Cuál SO móvil … (15)
es el más utilizado?
Ciclo Escolar 2013-2014B
Clasificación y estructura
Gestor de procesos
Un proceso es un programa en ejecución que consume
recursos (memoria, archivos, etc.)
El SO debe gestionar lo siguiente de los procesos:
Creación y destrucción.
Suspensión y reanudación.
Asignación de los recursos al proceso.
Mecanismos de comunicación y sincronización
Gestor de memoria
La memoria se visualiza como un vector enorme de
bytes (direcciones) y es compartida por el CPU y
dispositivos de E/S.
El SO debe gestionar lo siguiente:
Qué partes están en uso y quién las esta ocupando.
Qué procesos se deben cargar y dónde.
Asigna y libera espacio cuando se requiere
Gestiona la memoria virtual
Ciclo Escolar 2013-2014B
Programas de sistema
Proporcionan un entorno adecuado para el desarrollo y ejecución de
programas.
Existen diversas categorías:
Manipulación de archivos y directorios: copiar, mover, renombrar, etc.
Información de estado: monitores, bitácoras.
Programación: compiladores, enlazadores, ensambladores, bibliotecas, etc.
Carga y ejecución: cargador.
Comunicaciones: ssh, sftp, etc.
Aplicaciones: navegadores, editores, etc.
Ciclo Escolar 2013-2014B
Núcleo (kernel)
El núcleo o kernel es la parte fundamental del SO.
Es el código responsable de controlar y administrar los servicios y
peticiones de recursos y hardware con respecto a uno o varios procesos.
Para esquematizar las estrategias de diseño se suele mostrar el
SO como una serie de niveles partiendo del hecho de que el
kernel esta directamente en contacto con el hardware.
Ciclo Escolar 2013-2014B
Núcleo
grandes debido a su popularidad
(MS-DOS, UNIX en sus orígenes).
El problema que plantean estos Gestor de memoria
sistemas radica en lo complicado
que es modificar el SO para añadir Controladores
nuevas funcionalidades y servicios.
Además no existe el principio de
ocultación de la información.
Hardware
Ciclo Escolar 2013-2014B
Aplicaciones de Usuario
Niveles en un sistema con diseño
modular. Programas
Shell
El núcleo esta dividido en módulos de Sistema
con interfaces y funcionalidades
claramente definidas. Interfaz de llamadas al sistema
Son sistemas altamente
estructurados y modulares donde se Núcleo Gestor de
E/S
pueden sustituir componentes por
otros con el mismo interfaz
(controladores, manejo de archivos,
etc. Gestor de Facilidades Gestor de
Memoria Comunes Procesos
Estos sistemas se consideran como
de kernel monolítico hibrido debido
a la capacidad de cargar y
descargar los controladores y Controladores de Controladores de
extensiones del sistema mientras el disp por bloques disp por flujo
sistema continúa trabajando sin ser
interrumpido.
Hardware
Ciclo Escolar 2013-2014B
Aplicaciones
Gestor de de usuario
Procesos
Kernel Gestor de
(Administración
del CPU) Memoria
Gestor de
E/S
Interfaz de
Llamadas al
Sistema
Ciclo Escolar 2013-2014B
Micronúcleo
Hardware
Ciclo Escolar 2013-2014B
Máquina virtual
El corazón del sistema, conocido
como monitor de la máquina virtual, Aplicaciones Aplicaciones Aplicaciones
se ejecuta directamente en el De De De
hardware y realiza la Usuario Usuario Usuario
multiprogramación, presentando no
una, sino varias máquinas virtuales al
usuario donde cada máquina virtual
puede estar ejecutando un SO
diferente.
Llamadas Llamadas Llamadas
La máquina virtual que se presenta al al Sistema al Sistema al Sistema
usuario pretende ser idéntica a la que
en realidad se tiene. Sin embargo no
es sencillo lograr duplicados exactos.
Núcleo 1 Núcleo 2 Núcleo 3
Compartir recursos se torna
complicado. Monitor de Máquina Virtual
Estos principios se utiliza para emular
SO sobre otros SO y en Sistemas Hardware
Distribuidos.
Ciclo Escolar 2013-2014B
Programas de
Aplicación
Interfaz de
Llamadas al Sistema
Hardware
Hardware
Hardware
Shell
Comandos y
Librerías
Componentes
del compilador
Compilador
Ciclo Escolar 2013-2014B
Subsistema de Comunicación
Archivos entre procesos
Sistema
de control Planificador
Buffer cache de procesos
Nivel Kernel Gestor de
memoria
Caracter Bloque
Controladores
Unix/Linux
de dispositivos
Modo
Arquitectura simplificada de Windows (NT)
Usuario Subsistema de DLL’s
Modo Ejecutor
Kernel Sistema de
Controladores de Ventanas
Kernel
Dispositivos y Gráficos
Capa de Abstracción de Hardware (HAL)
Ciclo Escolar 2013-2014B
Subsistema de DLL’s
Para aplicaciones de 16 bits NTVDM 7FFFFFFF
carga “WOW”, un traductor de API de
16 a 32 bits.
Procesos de Procesos Aplicaciones Subsistemas
Soporte del de de de
Sistema Servicio Usuario Ambiente
Modo
Usuario Subsistema de DLL’s
System NTDLL.DLL
Threads
Kernel
System Service Dispatcher
Mode
(kernel mode callable interfaces) Windows
USER,
I/O Mgr
GDI
Configura-
Processes
Procedure
Reference
Play Mgr.
(registry)
Plug and
tion Mgr
Security
Threads
Memory
Monitor
System
Object
Virtual
Power
Cache
Local
Mgr.
Mgr.
Call
File
&
Device & Graphics
File Sys. Drivers
Drivers
Kernel
Hardware Abstraction Layer (HAL)
hardware interfaces (buses, I/O devices, interrupts, Original copyright by Microsoft Corporation.
interval timers, DMA, memory cache control, etc., etc.) CRK.
Ciclo Escolar 2013-2014B
Application
X-Windows
Windows Linux
User Mode User Mode
Kernel Mode Kernel Mode
System Services System Services
Process Management, Process Management,
Device Device
Win32 Memory Management, Memory Management,
Drivers Drivers
Windowing I/O Management, etc. I/O Management, etc.
Casos de estudio …
Ciclo Escolar 2013-2014B
Arranque y activación
El arranque de una computadora actual tiene dos fases:
La fase de arranque del hardware
La fase de arranque del SO
S.O
(Wnd, Linux, Mac OS X)
Bajo el control del Bajo el control del Inicialización bajo el control
Inicador ROM Cargador del SO de la parte residente del SO
S.O.
ROM HDD
-Test del sistema de
archivos
-Creación de ED internas
RAM CPU
Programa de usuario 2
Los programas de
Programa de usuario 1 usuario se ejecutan
Llamada al kernel en modo usuario.
Memoria principal 4
Procedimiento
3 de servicio El sistema operativo
1 se ejecuta en modo
de kernel
2 Tabla de despacho
Instalar Windows 7. Manual de instalación del sistema
operativo