viernes, 13 de febrero de 2015

CORTE I

Conceptos Básicos del Sistema Operativo

1) Definición de los siguientes conceptos:

  • Compiladores: Un compilador traduce o interpreta un programa escrito en lenguaje codificado a lenguaje de máquina, es decir, del lenguaje binario al ordenador de modo que el usuario lo pueda entender. Todo lenguaje orientado a los compiladores requiere su propio compilador. Así, un programa escrito en lenguaje C# necesita un compilador Visual Studio, no puede traducirse con un compilador Java. Además, es necesario asegurarse de que el compilador sea compatible con determinada computadora, de otro modo no podría utilizarse en otra distinta. Los desarrolladores de software se aseguran de generar versiones compiladas con sus respectivos sistemas operativos. Mozilla Firefox ha sido desarrollado para ser compatible con Windows XP, Windows 7, Distro Linux, entre otros, de 32 o 64 bits.

  • Ensambladores: Programa que traduce un lenguaje simbólico a lenguaje de maquina entendible por el ordenador. Trabaja como un compilador; de otra manera, un ensamblador se refiere a un tipo de programación informática que se encarga de interpretar un conjunto de instrucciones (código fuente) escrito en un lenguaje de ensamblador, a un fichero objeto (que es el resultado de la compilación del código fuente) que contiene código máquina.

  • Editores: El editor de texto es un programa esencial para el programador. Editores como Sublime Text, Visual Studio, Notepad++, Adobe Brackets, Eclipse, y aún el Blog de Notas, entre otros (de acuerdo a la preferencia), hacen de manera interactiva que el programador trabaje en el desarrollo del programa de manera eficaz. Las opciones al momento de elegir el "compañero optimo" para programar es de manera diversa, y en otros casos están optimizadas para diferentes tipos de elaboración de proyectos o lenguajes.

  • Utilerías de Archivo: Son los programas que comúnmente, son un complemente para la completa construcción de un sistema operativo, de acuerdo a las necesidades de los ordenadores en cada aspecto. Las utilerías mejoran tanto las funciones como el rendimiento del sistema operativo. Tenemos varias funciones en dichas utilerías:

- Utilería de Sistemas: Estos se ejecutan estrictamente bajo el sistema operativo; y se usa para preparar algunos de los recursos utilizados por el sistema.

- Utilería de Archivos: Se refiere al manejo de múltiples informaciones como abrir, editar, mover, copiar, pegar, cortar, imprimir, cerrar, clasificar etc.

- Utilería Independientes: Este realiza funciones en común al iniciar la ejecución de dicho dispositivo de entra/salida, cargar el sistema operativo, etc.

  • Bibliotecas: O Librería; ambos términos para la Real Academia Española, son correctos, pero en informática la definición correcta es "biblioteca", ya que esta palabra es traducida del ingles "library". Una biblioteca es un programa que contiene un conjunto de herramientas para el software con el proposio de lograr un beneficio al usuario, y no se espera que la biblioteca tenga una conducta de manera autónoma, sino que su fin es ser un complemento útil por otros programas, independientes y de manera simultanea, y no solo en un programa específicamente, es más, una biblioteca puede requerir de otras para funcionar como tambien puede ser de utilidad para otras bibliotecas que la requieren.

2) Gráfico según mi punto de vista intelectual de como funciona un sistema operativo multiusuario basado en la estructura jerárquica.

Multiusuario, quiere decir, que dos o varios usuarios pueden utilizar los programas de un sistema operativo.

Representación gráfica de un Sistema Operativo.
De tal modo, los sistemas operativos proporcionan el soporte o plataforma para que las aplicaciones puedan funcionar a la misma vez que dos o varios usuarios lo utilizan.


3) "Maquina Virtual" y su utilidad, según mi punto de vista como ingeniero.

Entiendo por "maquina virtual", aquel software que simula el sistema operativo de un ordenador determinado, en este caso la PC, en el cual se pueden ejecutar programas e instalaciones como si se tratase de una computadora real, uno de todos los programa de simuladores que hay, y que conozco hasta ahora es 'Virtual Box'.

En mi punto de vista como ingeniero (y por lo que he investigado), es necesario que cada "maquina virtual" sea compatible con toda diversidad de sistemas operativos, claro, sin dejar de lado la versión que indique la compatibilidad del programa. Considero que es necesario para evitar ciertos riesgos de que pueda ocurrir problemas en el sistema y sin hacer algún tipo de modificación en el equipo, ya que la disponibilidad y seguridad de las aplicaciones que se ejecutan en un entorno virtual son mayores que las aplicaciones que se ejecutan en un entorno no virtualizado.


4) Si me preguntaran... ¿Qué es un proceso en tiempo real?

Tengo entendido que, un proceso en tiempo real, es aquella respuesta inmediata que recibe por el estimulo externo en un periodo de tiempo determinado, respondiendo e interactuando así en el entorno dentro del plazo de tiempo establecido. Por ejemplo, el usuario al introducir datos en el equipo proporcionando entrada/salida de dichos datos en el tiempo predecible. No necesariamente la respuesta tiene que ser rápida, pues, no hay velocidad que considere que un proceso es en "tiempo real" ya que en algunos procesos tienen cierto retraso.

En un sistema, el "tiempo real" es cuando las actividades de procesamiento tiene un plazo establecido. Al no satisfacer con dicho plazo de tiempo incluso a una fecha límite indica un fallo en el sistema completo; no cumplir con el plazo indicado en el sistema, quiere decir que el sistema no esta funcionando de la mejor manera posible.


5) ¿Cuáles serían las prioridades de los procesos según el sistema operativo Línux?

Cada proceso en Linux, consta de distintas prioridades establecidas directamente por aquellas a la que el sistema considere más importantes, es decir, el sistema le dará más importancia a aquellos servicios que posean más prioridad. Sin embargo, el usuario o administrador puede establecer prioridades directamente en los procesos por medio de comandos que ofrece el sistema operativo Linux, para así llevar un mejor manejo de los procesos ejecutados. El comando para controlar las prioridades de estos procesos:

- nice; este comando es quien establece, según por el usuario, la prioridad de un proceso al ser ejecutado; el rango de prioridad que reciben este porcentaje numérico, siendo de menos veinte (-20) que recibe mayor prioridad, y diecinueve (+19) la de menor prioridad. Al iniciar un proceso con nice, este nos dará un valor por defecto -10.

- Renice; a diferencia de nice, este puede alterar los valores de prioridad de un proceso que ya está ejecutándoce.


Por Ricardo C.
Unidad Curricular: Fund. de Sistemas Operativos.

No hay comentarios:

Publicar un comentario