Mostrando entradas con la etiqueta Sistemas operativos. Mostrar todas las entradas
Mostrando entradas con la etiqueta Sistemas operativos. Mostrar todas las entradas

viernes, 20 de agosto de 2010

Mac OS X 10.6 Snow Leopard

0 comentarios
Mac OS X 10.6 Snow Leopard innova con nuevastecnologías que mejoran el rendimiento en todo el sistema. Snow Leopard es realmente un gran salto adelante en términos de hardware avanzado y la integración de software. Parece ser que tendrá una funcionalidad integrada de antivirus, es emocionante que Apple integre esta funcionalidad anti-virus en un sistema operativo que desde luego está considerado de nueva generación. Son buenas las impresiones que ha generado esta actualización de Apple. La instalación está en torno a los 60 minutos. Simplemente ponga el DVD de Snow Leopard en su Mac y haga doble clic en el icono del instalador que aparece. Eso es todo lo que hay para el proceso de actualización. Sólo tiene que esperar alrededor de una hora, y la máquina arrancará con todos sus archivos y programas exactamente en el lugar que estaban. El nuevo QuickTime X Player es visualmente muy atractivo. La edición de vídeo dentro de la misma aplicación es realmente sencilla. No es compatible con archivos MKV. Volveremos a cambiar impresiones con Mac OS X 10.6 Snow Leopard, mientras tanto estaría bien que dejarais vuestros comentarios para saber qué os ha parecido esta actualización.

El Sistema Operativo como un Gestor de Recursos

0 comentarios
El concepto de sistema operativo como algo que proporciona primordialmente a sususuarios una interfaz cómoda es un enfoque descendente (top-down). Un enfoque alternativo, ascendente (bottom-up), diría que el sistema operativo está ahí para administrar todos los elementos de un sistema complejo. Los ordenadores modernos constan de procesadores, memorias, timers, discos, ratones, interfaces de red, impresoras y una amplia gama de otros dispositivos. Según esta perspectiva alternativa, la tarea del sistema operativo consiste en asegurar un reparto ordenado y controlado de los procesadores, memorias y dispositivos de E/S, entre los diversosprogramas que compiten por obtenerlos.

Imaginemos qué sucedería si tres programas que se ejecutan en algún ordenador trataran de imprimir sus salidas al mismo tiempo por la misma
impresora. Las primeras líneas del listado podrían provenir del programa 1, dos o tres siguientes del programa 2, luego algunas del programa 3, y así. El resultado sería un caos. Elsistema operativo puede imponer orden en el caos potencial colocando en búferes de disco todas las salidas dirigidas a la impresora. Al terminar un programa, elsistema operativo podrá copiar sus salidas del fichero en disco donde las almacenó, a la impresora, y mientras tanto otro programa puede seguir generando más salidas, sin ser consciente de que no se están enviando (todavía) a la impresora.

Cuando un ordenador (o red de ordenadores) tiene múltiples usuarios, la necesidad de administrar y proteger la memoria, los dispositivos de E/S y los demás recursos es aún mayor, ya que en otro caso los usuarios podrían interferirse entre sí. Es común que los usuarios tengan que compartir no solo el hardware, sino también la información (ficheros, bases de datos, etcétera). En pocas palabras, esta perspectiva del sistema operativo dice que su tarea primordial es mantenerse al tanto de quién está utilizando cada recurso, conceder recursos solicitados, contabilizar el uso de los recursos y resolver los conflictos que se presenten entre las solicitudes de los diferentes programas y usuarios.

La administración de los recursos incluye la multiplexación de los recursos de dos formas:
en el tiempo y en el espacio. Cuando un recurso se multiplexa en el tiempo, eso significa que varios programas o usuarios se turnan para usarlo. Primero uno de ellos usa el recurso, luego otro, y así. Por ejemplo, si sólo hay una CPU y variosprogramas quieren ejecutarse, el sistema operativo asignará primero la CPU a un programa; luego, cuando considere que ya se ha ejecutado durante suficiente tiempo, le quitará la CPU y se la asignará a otro programa, luego a otro, y en algún momento al primero otra vez. La determinación de cómo se multiplexa el recurso en el tiempo – quién sigue y durante cuanto tiempo – es tarea del sistema operativo. Otro ejemplo de multiplexación en el tiempo es una impresora compartida.

Cuando hay varios trabajos de impresión esperando para imprimirse en una mismaimpresora, es preciso decidir qué trabajo se imprimirá a continuación.

El otro tipo de multiplexación es en el espacio. En lugar de que los clientes se turnen, cada uno recibe una parte del recurso. Por ejemplo, la memoria principal normalmente se reparte entre los programas que están en ejecución, de forma que todos estén residentes al mismo tiempo (por ejemplo para poder turnarse en el uso de la CPU). Suponiendo que haya suficiente memoria para contener variosprogramas, suele ser más eficiente tener varios programas en la memoria a la vez, que asignarle toda la memoria a uno de ellos, sobre todo si cada programa sólo necesita una pequeña fracción del total de la memoria. Desde luego, esto hace surgir problemas de equidad, protección, etcétera, y corresponde al sistema operativoresolverlos. Otro recurso que se multiplexa en el espacio es el disco (duro) En muchos sistemas, un único disco puede contener ficheros de muchos usuarios al mismo tiempo. Repartir el espacio de disco y mantenerse al tanto de quién está usando cada bloque del disco es una tarea de administración de recursos típica delsistema operativo.

El Sistema Operativo como una Máquina Extendida

0 comentarios
Como se mencionó anteriormente, la arquitectura (repertorio de instrucciones, organización de la memoria, E/S y estructura del bus) de la mayoría de losordenadores al nivel del lenguaje máquina es primitiva y muy difícil de programar, especialmente en lo que respecta a la entrada/salida. Para hacer este punto más concreto, veamos brevemente cómo se realiza la E/S desde la disquetera utilizando un chip controlador compatible con el NEC PD765 como el que se utiliza en la mayoría de los ordenadores personales basados en Intel. El controlador PD765 tiene 16instrucciones, cada una de las cuales se especifica cargando entre uno y nueve bytes en un registro de dispositivo. Estas instrucciones son para leer y escribir datos, mover el brazo del disco y formatear pistas, así como para inicializar, detectar, resetear y recalibrar el controlador y las unidades de disco.

Las instrucciones más básicas son
read y write, cada una de las cuales requiere 13 parámetros, comprimidos en 9 bytes. Estos parámetros especifican la dirección del bloque de disco a leer, el número de sectores por pista, el modo de grabación empleado sobre el medio físico, la separación entre sectores, qué hacer con una marca de dirección de datos borrada, y cosas por el estilo. Si el lector no entiende esta jerga, no debe preocuparse; de hecho, eso es precisamente lo que se quiere poner de manifiesto: que todo el asunto es un tanto esotérico. Una vez que se lleva a cabo la operación, el controlador devuelve 23 campos de estado y error comprimidos en 7 bytes. Por si no fuera suficiente, en todo momento el programador de la disquetera debe preocuparse también de saber si el motor está encendido o apagado. Si está apagado, habrá que encenderlo (con un largo retraso hasta que el disquete adquiera la velocidad adecuada) antes de poder leer o escribir los datos. Pero el motor no puede quedarse encendido demasiado tiempo, ya que en ese caso el disquete se desgastaría rápidamente. Así, el programador se ve forzado a encontrar una solución de compromiso entre tener largos retrasos de arranque o permitir peligrosos desgastes del disquete (con la posibilidad de perder datos grabados).

Sin entrar en los detalles reales, debe quedar claro que es probable que el programador medio no quiera involucrarse demasiado íntimamente con los pormenores de la programación de los disquetes (o discos duros, que son igual de complejos aunque muy diferentes). En vez de eso, lo que el programador quiere es trabajar con una abstracción de alto nivel sencilla. En el caso de los discos, una abstracción típica sería que el disco contiene una colección de ficheros con nombre. Cada fichero puede abrirse para
lectura o escritura, para luego leer o escribir en él, debiendo finalmente cerrarse. Los detalles de si la grabación debe realizarse por modulación de frecuencia modificada o si el motor está encendido o apagado, no deben aparecer en la abstracción que se presenta al usuario.

El programa que oculta al programador la verdad acerca del hardware y presenta una visión bonita y sencilla de ficheros con nombre que se pueden leer y en los que se puede escribir, es por supuesto, el
sistema operativo. Así como el sistema operativo separa al programador del hardware del disco y presenta una interfaz sencilla orientada hacia los ficheros, también oculta muchos otros asuntos desagradables relacionados con las interrupciones, timers, gestión de memoria y otras características de bajo nivel. En cada caso la abstracción que ofrece el sistema operativo es más sencilla y más fácil de usar que la que ofrece el hardware subyacente.

Desde esta perspectiva, la función del sistema operativo es presentar al usuario el equivalente de una
máquina extendida o máquina virtual que es más fácil deprogramar que el hardware subyacente. La forma en la que el sistema operativologra este objetivo es una larga historia, que estudiaremos en detalle a lo largo del libro. En pocas palabras, el sistema operativo presta una variedad de servicios que los programas pueden obtener empleando instrucciones especiales que se conocen como llamadas al sistema. Examinaremos algunas de las más comunes en una sección posterior de este capítulo.

Clasificación de los sistemas operativos

0 comentarios
Podemos realizar una clasificación de los diversos sistemas operativos que existen atendiendo a varios criterios o características de estos. Estos criterios pueden ser atendiendo a las tareas, a la planificación o a la gestión de memoria.

Tareas
En este punto clasificamos los sistemas operativos atendiendo al número de tareas que puede atender simultáneamente. Tenemos dos tipos:
•
Monotarea: el sistema operativo solamente puede atender una tarea en un momento dado. Un ejemplo de S.O. de este tipo es MS-DOS.
•
Multitarea: el sistema operativo puede atender varias tareas a la vez. A su vez estas tareas pueden provenir de un único usuario o de varios usuarios, lo cual dependerá de las capacidades del sistema operativo. Dentro de los sistemasoperativos multitarea, existen los S.O. monousuario (por ejemplo, Windows NT) y multiusuario (por ejemplo, VMS y UNIX), donde el S.O. puede atender a un único usuario o a varios en la misma máquina, respectivamente.

Planificación
La planificación de un S.O. define cómo se reparte el tiempo de CPU entre los diversos procesos. Por supuesto, esto sólo tendrá sentido en S.O. multitarea donde puede ocurrir que en unmomento dado varios procesos quieran utilizar el microprocesador y como este es único, debe especificarse la política de acceso. Existen varias formas de realizar esta planificación:

•
Tiempo compartido (Round-Robbin): se asigna el mismo tiempo para cada
uno de los procesos.
•
Prioridades: cada proceso tiene asignada una prioridad y hasta que no
termina un proceso su ejecución, no se cede la CPU al siguiente. Estas
prioridades pueden ser a su vez estáticas (fijas, no se modifican) o
dinámicas (existen ciertos criterios para cambiarlas implementados en el
S.O.).
•
Mixtas: existe una planificación concreta a base de asignar tiempos en
función de prioridades; en el caso de que dos procesos tengan asignada la
misma prioridad, se comparte el tiempo entre los dos.

Lo habitual es tener planificación mixta, lo cual ocurre en los sistemas operativos VMS y UNIX. En estos casos, a aquellos procesos poco activos se les suele dar una prioridad máxima (por ejemplo, un editor de textos) y aquellos que exigen mucho tiempo de computación, una baja prioridad (por ejemplo, una inversión de matrices). Esto tiene sentido porque un proceso
poco activo como un editor de textos consume muy pocos recursos de CPU, es decir, dentro de un intervalo de tiempo dado, el tiempo de CPU que va a usar es muy poco ya que desde que el usuario pulsa una tecla hasta que pulsa la siguiente, el ordenador ha tenido tiempo de realizar otras muchísimas tareas. Sin embargo, sería incómodo para el usuario que desde que pulsa una tecla hasta que aparece el resultado en la pantalla, pasara mucho tiempo; esa es la razón para darle máxima prioridad. En el otro extremo están los procesos que requieren mucho tiempo de computación, es decir, mucho tiempo de acceso a la CPU, como una inversión de matrices, una integral numérica, etc. Con el objeto de no saturar la máquina con estos cálculos, y debido a que
habitualmente no existe una restricción temporal para acabar los cálculos, se le asigna una prioridad baja.

Gestión de memoria
Existen dos maneras básicas de gestionar la memoria:
• Memoria real
• Memoria virtual

El S.O. que sólo utiliza memoria real quiere decir que el único lugar donde le es posible cargar el código de un programa es en la memoria física real, es decir, en la RAM. En implementaciones de S.O. que utilizan memoria virtual, es posible hacer uso de espacio de almacenamiento en disco como si fuera memoria adicional de la que dispone el ordenador, es decir, la memoria
efectiva puede ser mayor que la real.

¿Qué es un sistema operativo?

0 comentarios

Antes de pasar a estudiar un sistema operativo en particular, debemos contestar a la pregunta de ¿qué es un sistema operativo? y ¿para qué nos sirve?
Podríamos dar varias definiciones posibles, sin embargo, vamos a ver el sistema operativo en sus dos aspectos más habituales: como gestor del
ordenador y como mediador entre el usuario y el ordenador.

En primer lugar, debe quedar claro que un sistema operativo es un conjunto de
programas, es decir, nos encontramos ante varios elementos software programados para un máquina específica. Estos programas se encargan de varias tareas.

En su papel de gestor del ordenador, el sistema operativo debe gestionar los recursos del
sistema informático (procesadores, memoria, discos, etc), entre los diferentes procesos (programas en ejecución) que compiten por ellos. Esto lo podemos ver más claramente en un sistema multitarea donde las tareas de gestión son más complicadas: supongamos que tenemos un par de programasejecutándose; en un navegador de Internet estamos cargando una página y
como tarda mucho, aprovechamos para ejecutar un programa de cálculo científico. Dado que existen dos programas en ejecución simultánea y el microprocesador de unordenador habitualmente es único y por él tienen que pasar todas las instrucciones, queda claro que “alguien” debe decidir cuál de los dos programas tiene acceso, en un momento dado, al microprocesador. Lo mismo podemos decir del resto de los recursos como memoria, discos, etc. Si pensamos en un sistema operativomultiusuario y suponemos que dos usuarios quieren imprimir simultáneamente en la misma impresora, el sistema operativo deberá decidir que uno de los usuarios puede imprimir en ese momento y que el trabajo del otro usuario quede almacenado en una cola de impresión para cuando la impresora quede libre.

En su papel de mediador, el sistema operativo ofrece al usuario que utiliza elordenador una especie de “máquina virtual” o “máquina extendida” más fácil de utilizar que si tuviera que acceder directamente al hardware. Pongamos como ejemplo un comando como copy que permite copiar un archivo de una ubicación a otra dentro de un disco o entre diferentes discos. Para realizar estas operaciones de forma correcta, deberíamos ser capaces de encontrar el archivo
dentro del disco, una vez encontrado posicionar la cabeza lectora del disco en el punto correcto y comenzar a transmitir la información a la memoria y de la memoria a la ubicación destino. Pues bien, todas estas tareas de bajo nivel y que requieren un conocimiento del funcionamiento hardware del ordenador están ya programadas y nosotros, como usuarios del ordenador, no tenemos que preocuparnos, ya que elsistema operativo se encarga de ello; en el ejemplo que poníamos, el usuario sólo debe usar el comando copy dando como parámetros la ubicación origen y la ubicación destino. Este procedimiento por el cual el usuario “ve” una máquina virtual más fácil de utilizar que el hardware subyacente se conoce como “Principio de embellecimiento”.

Como resumen, podemos definir el sistema operativo de la siguiente manera:

El sistema operativo es un conjunto de programas cuyas misiones son:
a)
Gestionar los recursos del sistema informático
(procesadores, memoria, discos, etc), entre los
diferentes procesos que compiten por ellos, y
b) Ofrecer al usuario una especie de “máquina virtual” o
“máquina extendida”, más fácil de usar que el hardware
subyacente (“Principio de embellecimiento”).


redireccion