Sistemas Operativos
Por: 29-04-2009 por jpsarmiento | Categorías asociadas: Capitulo 1 y 2, Paralelo "C"

CAPITULO I

El papel de un sistema operativo se toma de dos puntos de vista: el del usuario y el del sistema.

Desde el Punto de Vista del Usuario: El objetivo es maximizar el trabajo que el usuario realiza. Se diseña principalmente para que sea de fácil uso, prestando cierta atención al rendimiento y ninguna a la utilización de recursos.

Vista del Sistema: El sistema operativo es el sistema más íntimamente relacionado con el hardware. Podemos ver un sistema operativo como un asignador de recursos que pueden ser necesarios para solucionar un problema.

Funcionamiento de una Computadora

Consta de una o más CPU y de una serie de controladores de dispositivo conectadas a través de un bus común que proporciona acceso a la memoria compartida, cada controladora de dispositivo se encarga de un tipo específico de dispositivo. Para que una computadora comience a funcionar, es necesario que tenga un programa de inicio que ejecutar.

Estructura de Almacenamiento: Los programas de la computadora deben hallarse en la memoria principal para ser ejecutados. Esta es la única área de almacenamiento de gran tamaño a la que el procesador puede acceder directamente.

Sistemas de un sólo Procesador: Van desde los PDA hasta los sistemas Mainframe. Es un sistema de un único procesador, hay una CPU principal capaz de ejecutar un conjunto de instrucciones de propósito general, incluyendo instrucciones de los procesos de usuario.

Sistemas Multiprocesador: Conocidos como sistemas paralelos o sistemas fuertemente acoplados. Disponen de dos o más procesadores que se comunican entre sí, compartiendo el bus de la computadora y, en ocasiones, el reloj, la memoria y los dispositivos periféricos.

Sistemas en Clúster: Utilizan múltiples CPU para llevar a cabo el trabajo, están formados por dos o más sistemas individuales acoplados. Comparten almacenamiento y se conectan entre sí a través de una red LAN.

Operaciones del sistema Operativo: Los SO modernos están controlados mediante interrupciones. Si no hay ningún proceso que ejecutar, ningún dispositivo de E/S al que dar servicio y ningún usuario al que responder, un SO debe permanecer inactivo esperando a que algo ocurra. Una excepción es una interrupción generada por software debido a un error o a una solicitud específica de un programa de usuario, de que se realice un servicio de sistema operativo.

Operación de Modo Dual: Como mínimo necesitamos de dos modos diferentes de operación (modo-usuario y modo-kernel). Cuando se arranca el sistema el hardware se inicia en el modo kernel, cuando el sistema operativo obtiene el control de la computadora también estará en modo de kernel. El sistema siempre cambia a modo de usuario antes de pasar el control a un programa de usuario. El modo dual de operación nos proporciona los medios para proteger el sistema operativo del usuario que puedan cometer errores.

Temporizador: Sirven para interrumpir a la computadora después de un período especificado, este período puede ser fijo o variable. Se implementa un temporizador variable mediante un reloj de frecuencia fija y un contador.

Gestión de Procesos: Un proceso necesita para llevar a cabo su tarea ciertos recursos, entre los que incluyen tiempo de CPU, memoria, archivos y dispositivos de E/S. Estos recursos proporcionan al proceso en el momento de crearlo o se le asignan mientras se están ejecutando.

Gestión de Memoria:

  • Controlar que parte de la memoria están actualmente en uso y por parte de quien

  • Decir que datos y procesos añadir o extraer de la memoria

  • Asignar y liberar la asignación de espacio de memoria según sea necesario

Gestión del Sistema de Archivos:

  • Creación y borrado de archivos

  • Creación y borrado de directorios para organizar los archivos

  • Soporte de primitivas para manipular archivos y directorios

  • Asignación de archivos a los dispositivos de almacenamiento secundario

  • Copia de seguridad de los archivos en medios de almacenamiento estables

Gestión de Almacenamiento Masivo

  • Gestión del espacio libre

  • Asignación del espacio de almacenamiento

  • Planificación del disco

Almacenamiento en Caché: Es una técnica importante en los sistemas informáticos. La información se mantiene en algún sistema de almacenamiento, como por ejemplo la memoria principal. Cuando se usa, esa información se copia de forma temporal en un sistema de almacenamiento más rápido, la caché. Cuando necesitamos una información particular primero comprobamos si está en la caché, y si no está usamos directamente esa información de la caché.

Protección y Seguridad: Protección es cualquier mecanismo que controle el acceso de procesos de usuarios a los recursos definidos por un sistema informático. Este mecanismo debe proporcionar los medios para la especificación de los controles que hay que imponer y para la aplicación de dichos controles. Es responsabilidad de los mecanismos de seguridad defender al sistema frente a ataques internos y externos (virus y gusanos). La protección y la seguridad requieren que el sistema pueda distinguir a todos sus usuarios.

Sistemas Distribuidos: Es una colección de computadoras físicamente separadas y posiblemente heterogéneas que están conectadas en red para proporcionar a los usuarios acceso a los diversos recursos que el sistema mantiene.

Sistemas de Propósito General

  • Sistemas Embebidos en Tiempo Real:

Disponen de una interfaz de usuario muy limitada o no disponen de ella en absoluto, prefiriendo invertir su tiempo en monitorizar y gestionar dispositivos hardware.

  • Sistemas en multimedia:

Abarcan todos los archivos de audio y video, como archivos convencionales

  • Sistemas de Mano: Incluyen los PDA, tales como los Palm y Pocket-PC, y los teléfonos móviles

ENTORNOS INFORMÁTICOS

Sistema Cliente-Servidor: Son aquellos sistemas actuales que actúan como sistemas servidor para satisfacer las solicitudes generadas por los sistemas clientes, pueden clasificarse de forma muy general, en servidores de cálculo y servidores de archivo. Los de cálculo proporcionan un interfaz a la que un cliente puede enviar una solicitud para realizar una acción, y los archivos proporcionan un interfaz de sistema de archivos mediante la que los clientes pueden crear actualizar, leer y eliminar archivos.

Sistemas Entre Iguales: Los clientes y los servidores no se diferencian entre sí, en su lugar todos los nodos del sistema se consideran iguales y cada uno puede actuar como cliente o como servidor, dependiendo de si solicita o proporciona un servicio.

CAPITULO II

Servicios del Sistema Operativo

Los servicios son aquellos que se proporcionan para comodidad del programador, con el fin de facilitar la tarea de desarrollo. Los servicios y funciones proporcionados por un sistema operativo pueden dividirse en dos categorías: ayudar al usuario y garantizar la eficiencia del propio sistema.

Funciones que ayudan al Usuario:

Interfaz de Usuario - Ejecución de Programas - Operaciones de E/S- Manipulación del Sistema de Archivos – Comunicaciones - Detección de Errores.

Funciones que ayudan al Sistema:

Asignación de Recursos - Responsabilidad - Protección y Seguridad

INTERFAZ DE USUARIO DEL SISTEMA OPERATIVO

Intérprete de Comandos: Es un programa especial que se ejecuta cuando se inicia un trabajo o cuando un usuario inicia una sesión. La función principal es obtener y ejecutar el siguiente comando especificado por el usuario.

Interfaz Gráfica de Usuario: Permite a los usuarios emplear un sistema de ventanas y menús controlable mediante el ratón.

LLAMADAS AL SISTEMA: Sirven para poder invocar los servicios que el sistema operativo ofrece. Puede agruparse de forma muy general en cinco categorías principales (tipos):

Control de Procesos:

terminar, abortar – cargar, ejecutar – crear procesos, terminar procesos – obtener atributos del proceso, definir atributos del proceso – esperar para obtener tiempo – esperar suceso, señalar suceso – asignar y liberar memoria.

Administración de archivos:

crear archivos, borrar archivos – abrir, cerrar – leer, escribir, reposicionar – obtener atributos de archivo, definir atributos de archivo.

Administración de Dispositivos:

solicitar dispositivo, liberar dispositivo – leer, escribir, reposicionar – obtener atributos de dispositivo, definir atributos de dispositivo – conectar y desconectar dispositivos lógicamente.

Mantenimiento de Información:

obtener la hora o la fecha, definir la hora o la fecha – obtener datos del sistema, establecer datos del sistema – obtener los atributos del proceso, archivos o dispositivos – establecer los atributos de proceso, archivos o dispositivos.

Comunicaciones:

crear, eliminar conexiones de comunicación – enviar, recibir mensajes – transferir información de estado – conectar y desconectar dispositivos remotos.

PROGRAMAS DEL SISTEMA

Proporcionan un cómodo entorno para desarrollar y ejecutar programas, algunos de ellos son simplemente, interfaces de usuarios para las llamadas del sistema; se dividen en: administrador de archivos - información de estado – modificación de archivos – soporte de lenguajes de programación – carga y ejecución de programas – comunicaciones.

DISEÑO E IMPLEMENTACIÓN DEL SISTEMA OPERATIVO

Objetivos del Diseño: Más allá del nivel superior del diseño tenemos, objetivos del usuario y objetivos del sistema. Usuarios: el sistema debe ser cómodo de utilizar, fácil de aprender y de usar, que hable seguro y rápido. Sistema: El sistema deberá ser fácil de diseñar, implementar y mantener, debería ser flexible, fiable, libre de errores y eficiente.

Mecanismos y Políticas: Los mecanismos determinan como hacer algo; las políticas determinan que hacer. La separación de políticas y mecanismos es importante por cuestiones de flexibilidad, las políticas probablemente cambian de un sitio a otro o con el paso del tiempo.

Implementación: Tradicionalmente los sistemas operativos tenían que escribirse en un lenguaje ensamblador, sin embargo ahora se escriben en lenguajes de alto nivel, como C o C++.

ESTRUCTURA DEL SISTEMA OPERATIVO

Estructura Simple: Comienzan siendo sistemas pequeños, simples y limitados y luego crecen más allá de su ámbito original.

Estructura en Niveles: Los sistemas operativos pueden dividirse en partes más pequeñas y más adecuadas, que lo que permitían los sistemas originales MS-DOS o UNIX. Los implementadores tenían más libertad para cambiar el funcionamiento interno del sistema y crear sistemas operativos modulares.

Microkernels: Este método estructura el sistema operativo eliminando todos los componentes no esenciales del kernel e implementándolos como programas del sistema y de nivel de usuario; el resultado es un kernel más pequeño.

Módulos: Usa las técnicas de programación orientada a objetos para crear un kernel modular. El kernel dispone de un conjunto de componentes fundamentales y enlaza dinámicamente los servicios adicionales, bien durante el arranque o en tiempo de ejecución.

MÁQUINAS VIRTUALES

La idea fundamental que subyace a una máquina virtual es la de abstraer el hardware de la computadora, formando varios entornos de ejecución diferentes, creando así la ilusión de que cada entorno de ejecución está operando en su propia computadora privada.

Beneficios:

Cada máquina virtual está completamente aislada de las demás por lo que no existen problemas de protección.

Es un medio perfecto para la investigación y el desarrollo de sistemas operativos.

Máquina Virtual JAVA

Es un programa nativo, es decir, ejecutable en una plataforma específica, capaz de interpretar y ejecutar instrucciones expresadas en un código binario especial (el Java bytecode), el cual es generado por el compilador del lenguaje Java.




CAPÍTULO I (Materia: SISTEMAS OPERATIVOS)

El Sistema Operativo

Un sistema operativo es aquel programa que se ejecuta continuamente en la computadora (usualmente denominado kernel), siendo todo lo demás programas del sistema y programas de aplicación.

El sistema operativo controla y coordina el uso del hardware entre los diversos programas de aplicación por parte de los distintos usuarios, por ello se suele decir que es la interfaz de comunicación entre el hardware y el usuario.

Existen sistemas operativos para mainframes, y para computadoras personales (PCs), los sistemas operativos para mainframe están diseñados principalmente para optimizar el uso del hardware, los sistemas operativos para PCs soportan desde complejos juegos hasta aplicaciones de negocios.

Punto de vista del usuario.

Desde el punto de vista de un monousuario un sistema debe ser rápido y fácil de manejar, se dice en este caso que el sistema operativo presta cierta atención al rendimiento y ninguna a la gestión de recursos.

En el caso de un mainframe, el sistema operativo se diseña para maximizar la utilización de recursos, asegurar que todo el tiempo de CPU, memoria y E/S disponibles se usen de forma eficiente, y que cada usuario disponga sólo de la parte equitativa que le corresponde.

Cuando se usan estaciones de trabajo conectadas a redes de otras estaciones de trabajo y servidores, el sistema operativo se diseña parar llegar a un compromiso entre la usabilidad individual y la utilización de recursos.

Vista del usuario.

Desde el punto de vista de la computadora, el OS está más íntimamente relacionado con el hardware. En este contexto podemos ver un sistema operativo como un asignador de recursos.

Un sistema operativo es un programa de control, y como tal gestiona la ejecución de los programas de usuario para evitar errores y mejorar el uso de la computadora. Tiene que ver recíprocamente con el funcionamiento y control de los dispositivos de E/S.

Organizacion de una computadora

Funcionamiento.- Para el funcionamiento de una computadora se necesita un programa de arranque, éste normalmente se almacena en la memoria ROM (read only memory), o en la memoria EEPROM (electrically erasable programable read-only-memory), y se conoce con el término de firmware, dentro del hardware de la computadora. Se inician todos los aspectos del sistema, desde los registros de la CPU hasta las controladoras de dispositivos y el contenido de la memoria. El programa de arranque debe saber cómo cargar el sistema operativo e iniciar la ejecución de dicho sistema, para conseguir este objetivo, el programa de arranque debe localizar y cargar en memoria el Kernel(núcleo) del sistema opertarivo. Después el sistema operativo comienza ejecutando el primer proceso, por ejemplo “init”, y espera a que se produzca algún suceso.

La ocurrencia de un suceso normalmente se indica mediante una interrupción.

Interrupción.- Da paso a un suceso, puede ser de hardware o de software. Cuando se interrumpe a la CPU, deja lo que está haciendo e inmediatamente transfiere la ejecución a una posición fijada.

Estructura de almacenamiento.- Los programas de computadora deben hallarse en la memoria principal (RAM - Random Access Memory) para ser ejecutados. El procesador puede acceder directamente a ésta.

La memoria principal es un dispositivo de almacenamiento volátil que pierde su contenido cuando se quita la alimentación (corriente eléctrica), normalmente la memoria principal es demasiado pequeña como para almacenar todos los programas y datos necesarios de forma permanente.

Por esta razón la mayor parte de los sistemas informáticos proporcionan almacenamiento secundario como una extensión de la memoria principal, aquí se almacenan grandes cantidades de datos de forma permanente.

Estructura de E/S.- Las unidades de E/S están conectadas con el procesador y la memoria principal, y cada una de ellas controla uno o más dispositivos periféricos.

Los dispositivos de E/S se pueden clasificar en:

De interacción con e usuario.-Permiten la comunicación con el usuario del computador.

De interacción con máquinas: Permite la comunicación con elementos del equipo.

De comunicación.- Permite la comunicación con dispositivos remotos.

Arquitectura de un sistema informático

Sistemas Multiprocesador.- En un sistema multiprocesador hay una CPU principal capaz de ejecutar un conjunto de instrucciones de propósito general, incluyendo instrucciones de los procesos de usuario.

Sistemas Multiprocesador.- Disponen de dos o más procesadores que se comunicación entre sí, compartiendo el bus de la computadora y en ocasiones el reloj, la memoria y los dispositivos periféricos.

Sistemas en clúster.- Es otro tipo de sistema multiprocesador. La diferencia con los sistemas multiprocesamiento es que éstos están formados por dos más sistemas individuales acoplados.

Las computadoras en clúster comparten el almacenamiento y se conectan entre sí a través de una LAN.

Normalmente la conexión en clúster se usa para proporcionar un servicio con alta disponibilidad, es decir un servicio que funcionará incluso si uno o más sistemas del clúster fallaran.

Estructura de un Sistema Operativo

Uno de los aspectos más importantes de los sistemas operativos es la capacidad para multi-programar.

Multiprogramación.- Permite organizar la ejecución de los trabajos a fin de mejorar el aprovechamiento de la CPU. Por ejemplo, al solicitar un trabajo E/S, mientras ésta se realiza se selecciona otro trabajo para ejecutarlo.

Sistemas Multitarea (tiempo compartido).- Pueden ejecutar varias tareas simultáneamente (o cuasi-simultáneamente), aprovechando los tiempos ociosos de la CPU. Alternan entre varias tareas, las que se procesan en partes durante pequeños intervalos de tiempo (quantums).

Operaciones Del So

Los SO están controlados mediante interrupciones, para cada interrupción diferentes códigos del sistema operativo determinan que acción hay que llevar a cabo.

Se debe asegurar que un error que se produzca en un programa de usuario solo genere problemas en el programa que se estuviera ejecutando.

Un SO diseñado apropiadamente debe asegurar que un programa incorrecto no pueda dar lugar a que otros programas se ejecuten incorrectamente.

Operación en modo dual

Para asegurar la correcta ejecución del sistema operativo, tenemos que poder distinguir entre la ejecución del código del sistema operativo y del código definido por el usuario.

Necesitamos dos modos diferentes de operación: modo usuario y modo kernel. Un bit denominado bit de modo, se añade al hardware de la computadora para indicar el modo actual kernel o usuario, también podemos diferenciar entre una tarea que se ejecute en nombre de sistema operativo y otra que se ejecute en nombre de usuario.

El modo dual de operaciones nos proporciona los medios para proteger el sistema operativo de los usuarios que puedan causar errores, y también para proteger a los usuarios de los errores de otros usuarios. Esta protección se consigue designando algunas de las instrucciones de máquina que pueden causar daño como instrucciones privilegiadas. Cuando se ejecuta una llamada al sistema, el hardware la trata como una interrupción software.

Temporizador

Se debe utilizar un temporizador para evitar que un único trabajo monopolice el uso del sistema. El temporizador se actualiza al comienzo de cada trabajo. Si el tiempo termina, se produce una interrupción, y el control vuelve al monitor.

Gestión de Procesos

Un programa no hace nada a menos que una CPU ejecute sus instrucciones. Un proceso necesita para llevar a cabo su tarea ciertos recursos, entre los que incluyen tiempo de CPU, memoria, archivos y dispositivos de E/S. Un proceso es un programa en ejecución puede ser un procesador de textos que ejecuta el usuario.

Un proceso es una unidad de trabajo en un sistema. Cada sistema consta de una colección de procesos, siendo algunos de ellos procesos del sistema operativo y el resto procesos de usuario. Todos estos procesos pueden, potencialmente, ejecutarse de forma concurrente.

Gestión de memoria.- Es uno de los elementos principales que caracterizan un proceso es la memoria que utiliza, la asignación de memoria es exclusiva para el proceso que la requiere, es decir, ésta es lógicamente separada de cualquier otro proceso del sistema.

La gestión de memoria es una tarea, cuya responsabilidad recae en el SO.

Consiste básicamente en cargar y descargar procesos en memoria principal para que sean ejecutados, para ello el SO gestiona lo que se conoce como Unidad de Administración de Memoria, el cual es un dispositivo hardware que transforma las direcciones lógicas en físicas.

Gestión de Almacenamiento

Gestión del sistema de archivos

La mayoría de los sistemas operativos tienen sistemas de archivos. Se usan para almacenar datos de manera segura. Están compuestos por particiones, archivos y directorios, y opcionalmente también de archivos de enlace (accesos directos en Windows). Los sistemas de archivos se deben montar, aunque esto lo hace automáticamente el sistema operativo al iniciar la sesión. Algunos SO de red permiten montar los sistemas de archivos de otras computadoras en directorios comunes.

Entre las estructuras que puede tener tenemos: estructura arbórea, grafo acíclico y grafo general. La estructura arbórea es la más sencilla de implementar. Internamente el disco está dividido en bloques físicos (por ej: 512 bytes) y bloques lógicos o clusters (por ej: 4KB). Es bueno que los clúster sean múltiplo del tamaño de los bloques físicos, por razones de eficiencia.

En la estructura de un sistema de archivos tenemos que considerar que, al igual que con la memoria principal, siempre se produce algo de fragmentación, que puede ser interna (dentro de cada clúster o bloque) o externa (entre archivos).

Cada nodo de la estructura se llama archivo o directorio, y tiene un nombre lógico que está directamente relacionado con una posición física dentro del disco. Es responsabilidad de este sistema recuperar los datos dado un nombre de archivo y su ruta de acceso. Esto lo hace usando tablas o punteros.

Por ejemplo el archivo c:materiasoperativos.doc está vinculado con la ubicación 227E-5294-FF12-437D dentro del disco.

Gestión del almacenamiento masivo

La mayoría de sistemas informáticos modernos usan discos como principal medio de almacenamiento en línea, tanto para los programas como para los datos. Por tanto, la apropiada gestión del almacenamiento en disco tiene una importancia crucial en un sistema informático. El sistema operativo es responsable de las siguientes actividades:

Gestión del espacio libre

Asignación del espacio de almacenamiento

Planificación del disco

El almacenamiento terciario no es crucial para el rendimiento del sistema, aunque también es necesario gestionarlo, algunos SO realizan esta tarea, mientras que otros dejan el control de almacenamiento terciario a los programas de aplicación.

Sistemas de E/S

Uno de los propósitos de un sistema operativo es ocultar al usuario las peculiaridades de los dispositivos hardware específico. El subsistema de E/S consta de varios componentes:

Un componente de gestión de memoria que incluye almacenamiento en búffer, gestión de caché y gestión de colas.

Una interfaz general para controladores de dispositivo.

Controladores para dispositivos hardware específicos.

Almacenamiento en Cache

Para amortiguar la lentitud del almacenamiento en dispositivos E/S se usa un almacenamiento de soporte que evita al procesador solicitar byte por byte, y en vez de ello se leen muchos datos con una sola solicitud. Son los buffers y la caché. Los buffers se usan tanto para lectura y escritura de disco, para impresora, monitor, para placa de red, etc. SU misión es agilizar la transferencia emitiendo una sola petición e interrupción para un conjunto de datos. Los tipos de buffers son:

· buffer sencillo

· buffer doble

· circular

La función de la caché es similar a la de los buffers, pero está implementada con circuitos de muy alta velocidad y tienen algunas ventajas tecnológicas como la búsqueda por asociación (que busca en muchas entradas al mismo tiempo).

Nos puede ser muy útil para mejorar el rendimiento poner partes del sistema de archivos en la caché, y cualesquier otros datos que usemos con frecuencia.

Protección y Seguridad

Un mecanismo que controla el acceso de procesos y usuarios a los recursos definidos por un sistema informático. Los mecanismos de protección pueden mejorar la fiabilidad, permitiendo detectar errores en las interfaces entre componentes del sistema.

Un sistema con protección tiene la capacidad de distinguir entre un uso autorizado y no autorizado. Un sistema puede tener la protección adecuada pero estar expuesto a fallos y permitir accesos inapropiados.

Es responsabilidad de los mecanismos de seguridad defender al sistema frente a ataques internos y externos y los ataques incluyen virus, gusanos, denegación de servicios, etc.

La protección y la seguridad requieren que el sistema pueda distinguir a todos sus usuarios y grupos de usuarios.

Sistemas Distribuidos

Un sistema distribuido es una colección de computadoras físicamente separadas y posiblemente heterogéneas que están conectadas en red para proporcionar a los usuarios acceso a los diversos recursos que el sistema mantiene. Acceder a un recurso compartido incrementa la velocidad de cálculo, la funcionalidad, la disponibilidad de los datos y la fiabilidad. Algunos sistemas operativos generalizan el acceso a red como una forma de acceso a archivo, manteniendo los detalles de la conexión de red en el controlador de dispositivos de la interfaz de red.

Un sistema operativo distribuido proporciona un entorno menos autónomo. Los diferentes sistemas operativos se comunican de modo que se crea la ilusión de que un único sistema operativo controla la red.

Sistemas de Propósito General

Sistemas embebidos en tiempo real

Computadoras predominantes actualmente (motores de automóviles, robots para fabricación), tienen tareas específicas. Los sistemas en los que operan son primitivos, disponen de interfaz limitada. Por lo general se encargan de monitorizar y gestionar dispositivos hardware.

Los sistemas embebidos casi siempre ejecutan sistemas operativos en tiempo real. Las computadoras con sistemas embebidos pueden ser:

• De propósito general que ejecuta sistemas operativos estándar, con aplicaciones de propósito especial para implementar la funcionalidad.

• Sistemas de hardware con sistemas operativos embebidos de propósito especial que sólo proporcionan la funcionalidad deseada.

Dispositivos de hardware con circuitos integrados específicos de la aplicación, que realizan sus tareas sin ningún SO.

Sistemas Multimedia

La mayor parte de los sistemas operativos están diseñados para gestionar datos convencionales, como archivos de texto, programas. Surgen con la incorporación de datos multimedia.

Las aplicaciones multimedia incluyen archivos de audio, películas de DVD, videoconferencia, webcats.

Sistemas de Mano

Los sistemas de mano incluyen PDA, tales como los Palm muchos de los cuales usan sistemas operativos embebidos de propósito especial. Los desarrolladores de aplicaciones y sistemas de mano se enfrentan a muchos retos, la mayoría de ellos debidos al tamaño.

Los dispositivos tienen muy poca memoria, procesadores lentos y pantallas de visualización pequeñas. Usan SO embebidos de propósito especial. Los problemas básicos que enfrentan son la poca memoria, los procesadores lentos y la E/S.

Entornos informáticos

Sistema informático tradicional

Actualmente proporciona más formas de acceso a estos entornos informáticos. La tecnología web se está extendiendo Portales Servicios, acceso a internet, con cómodos.

Hoy en día, los sistemas tradicionales de tiempo compartido no son habituales. Las mismas técnicas de planificación se usan todavía en estaciones de trabajo y servidores, aunque frecuentemente los procesos son todos propiedad del mismo usuario.

Estructuras De Sistemas Operativos

El sistema operativo presta ciertos servicios a los programas y a los usuarios de dichos programas. Estos servicios del sistema operativo se proporcionan para comodidad del programador, con el fin de facilitar la tarea de desarrollo.

Un cierto conjunto de servicios del sistema operativo proporciona funciones que resultan útiles al usuario:

Interfaz de usuario.- tipos existentes es la interfaz de línea de comandos, que usa comandos de texto, otro tipo es la interfaz de proceso por lotes. Habitualmente se utiliza una interfaz grafica de usuario.

Ejecución de programas.- Para ejecutar un programa es preciso realizar una serie de tareas. Las instrucciones y los datos deben cargarse en memoria principal, los dispositivos de E/S y los ficheros deben iniciarse, y deben prepararse otros recursos. El sistema operativo proporciona todo eso al usuario.

Operaciones de E/S.- Cada dispositivo de E/S necesita su conjunto particular de instrucciones y señales de control para poder operar. El sistema operativo se encarga de esos detalles para que el programador pueda pensar simplemente en términos de lecturas y escrituras.

Manipulación del sistema de archivos.- los programas necesitan ejecutar algunas operaciones sobre archivos y directorios como pueden ser: leer, escribir, crear, borrar, buscar; estos incluyen mecanismos de gestión de permisos para conceder o denegar el acceso a los archivos o directorios.

Comunicaciones.- los procesos necesitan intercambiar información con otros procesos, estas comunicaciones se pueden realizar a través de memoria compartida o por paso de mensajes.

Detección de errores.- El SO necesita detectar los posibles errores que surjan ya sea en el Hardware del procesador y de memoria, en un dispositivo de E/S o en programas de usuario.

Otros servicios orientados a garantizar la eficiencia del propio sistema entre los cuales están:

Asignación de recursos.- El SO gestiona muchos tipos diferentes de recursos; algunos pueden disponer de código software especial que gestione su asignación, otros pueden tener código que gestione de forma general.

Responsabilidad.- Conviene hacer un seguimiento de que usuarios emplean que clase de recursos de la computadora y en que cantidad.

Protección y seguridad.- La protección es asegurar que todos los accesos a los recursos del sistema estén controlados y garantizar la seguridad del sistema frente a posibles intrusos, mediante una contraseña.

Interfaz de usuario del sistema operativo

Interprete de comandos

Estos se conoce también como Shell, la función principal es obtener y ejecutar el siguiente comando especificado por el usuario. Algunos SO lo incluyen en el Kernel otros lo tratan como un programa especial que se ejecuta cuando se inicia un trabajo o una sesión.

Interfaz grafica de usuario

Los usuarios emplean un sistema de ventanas y menús controlables por medio del ratón.

Permite que el usuario interactue con el Sistema Operativo a través de una interfaz

Llamadas al sistema

Las llamadas al sistema proporcionan una interfaz con la que poder invocar los servicios que el sistema operativo ofrece. Es la única forma en la que un programa puede solicitar operaciones al SO.

Programas del sistema

Los programas del sistema proporcionan un cómodo entorno para desarrollar y ejecutar programas, pueden dividirse en las siguientes categorías.

Administración de Archivos: Estos programas crean, borran, copian, cambian de nombre, imprimen etc. De forma general manipulan archivos.

Información de Estado: Algunos programas solicitan al sistema la fecha, la hora, cantidad de memoria, espacio en disco, usuario.

Modificación de Archivos: editores de texto para crear y modificar el contenido de los archivos almacenados en el disco o en otros dispositivos.

Soporte de Lenguajes de Programación: Se proporcionan compiladores, ensambladores, depuradores en intérpretes para los lenguajes de programación (C, C++, Java).

Carga y Ejecución de Programas: los programas compilados deben cargarse en memoria para poder ejecutarse.

Comunicaciones: Proporcionan los mecanismos para crear conexiones virtuales entre procesos, usuarios y computadores.

Diseño e implementación del sistema operativo

Objetivos del diseño

Objetivos de Usuario: los usuarios desean ciertas propiedades como: sistema sea cómodo, fácil de utilizar y aprender, fiable, seguro y rápido.

Objetivos del Sistema: el sistema debería ser fácil de diseñar, implementar y mantener, flexible, fiable, libre de errores y eficiente.

Mecanismos y políticas

Un principio importante es el de separar las políticas de los mecanismos. Los mecanismos determinan como hacer algo, las políticas determinan que hacer.

La separación de políticas y mecanismos es importante por cuestiones de flexibilidad.

Implementación

Tradicionalmente los SO tenían que escribirse en lenguaje ensamblador hoy en día se escriben en Lenguaje de Alto Nivel como C o C++.

La Ventajas de usar un lenguaje de alto nivel:

El código puede escribirse más rápido, es más compacto y es más fácil de entender y depurar.

Las posibles desventajas de implementar un SO es un lenguaje de alto nivel se reducen a los requisitos de velocidad y de espacio de almacenamiento.

Estructura del sistema operativo

Un método habitual consiste en dividir la tarea en componentes más pequeños, en lugar de tener un Sistema Monolítico. Cada uno de estos módulos debe ser una parte bien definida del sistema, con entradas, salidas y funciones cuidadosamente especificadas.

Estructura simple

Proporciona la máxima funcionalidad en el menor espacio posible, por lo que no fue dividido en módulos de forma cuidadosa.

El kernel se divide en una serie de interfaces y controladores de dispositivo, que se han ido añadiendo y ampliando a lo largo de los años. El kernel proporciona el sistema de archivos, los mecanismos de planificación de la CPU, la funcionalidad de gestión de memoria y otras funciones del sistema operativo, a través de las llamadas al sistema.

Estructura en niveles

El sistema operativo se divide en una serie de capas, El nivel inferior (nivel 0) es le Hardware y el nivel superior (Nivel N) es la interfaz de usuario, también puede mantener un control mayor sobre la computadora y sobre las aplicaciones que hacen uso de dicha computadora.

Los niveles se seleccionan de manera que cada uno usa sus funciones y servicios de los niveles inferiores. Un nivel no necesita saber cómo se implementan las operaciones solo necesitan saber que hacen esas operaciones. Un problema con la implementación por niveles es que tiende a ser menos eficientes a ser menos que otros tipos de implementación

Microkernels

Normalmente los microkernels proporcionan una gestión de memoria y de procesos mínima, además un mecanismo de comunicaciones.

Su función principal es proporcionar un mecanismo de comunicaciones entre el programa cliente y los distintos servicios que se ejecutan en el espacio de usuario. Otra ventaja del microkernel es la facilidad para ampliar el sistema operativo, proporciona mas seguridad y fiabilidad, dado que la mayor parte de los servicios se ejecutan como procesos de usuario, en lugar de procesos de kernel.

Los microkernel pueden tener un rendimiento peor que otras soluciones debido a la carga de procesamiento adicional impuesta por las funciones del sistema.

Módulos

La mejor metodología es usar técnicas de programación orientada a objetos para crear un kernel modular, Tal estrategia utiliza módulos que se cargan dinámicamente y resulta habitual en las implementaciones modernas de UNIX.

Maquinas Virtuales

La idea fundamental que subyace a una maquina virtual es la de abstraer el hardware de la computadora formando varios entornos de ejecución diferentes, creando así la ilusión de que cada entorno de ejecución esta operando en su propia computadora privada.

Compartir el mismo hardware pero poder operar con entornos de ejecución diferentes (distintos SO) de forma concurrente ya que este proporcionan una interfaz idéntica a la del propio SO.

Implementación

Las acciones que dan lugar a la transferencia del modo usuario al modo kernel en una maquina real también tienen que hacer que se pase del modo usuario virtual al modo kernel virtual en una maquina virtual.

Tal transferencia puede conseguirse cuando se hace una llamada al sistema por parte de un programa que se este ejecutando en una maquina virtual en modo usuario virtual, se produce una transferencia al monitor de la maquina virtual en la maquina real.

Beneficios

Existe una protección completa de los diversos recursos del sistema. Cada maquina esta completamente aislada de las demás, por lo que no existen problemas de protección. Un sistema de maquina virtual es un medio perfecto para la investigación y el desarrollo de SO.

Ejemplos

VMware

Es una popular aplicación comercial que abstrae el hardware de Intel creando una serie de maquinas virtuales aisladas. Permite al sistema Host ejecutar de forma concurrente varios sistemas operativos huésped diferente como máquinas virtuales independientes.

Máquina Virtual Java:

La JVM es una especificación de una computadora abstracta, puede implementarse por software encima de un SO host (Windows, Linux, Mac OS X) o como parte de un explorador Web.


Resumen de cap1 y 2 : POR Esteban Chamba Jiménez

Libro: Fundamentos de sistemas operativos <SILBERSCHAT – GALVIN - GAGNE>

Otras Referencias

STALLINGS Organización y arquitectura de computadores.

PUENTE P. Andrés G. Universidad del BíoBío

http://www.alipso.com/monografias4/Sist_operativos/




Por: 22-04-2009 por bjcoronel | Categorías asociadas: Capitulo 1 y 2, Paralelo "C"

Introducción.

Los sistemas operativos, han ido evolucionado una enormidad, desde su interfaz, hasta su programación; debemos considerar, que antiguamente y actualmente, un sistema operativo, es algo muy difícil de programar, todos estos sistemas, ha experimentado un cambio radical desde la aparición de la Interfaz gráfica.

¿Qué es un Sistema Operativo?

Un sistema operativo, es una especie de intermediario, entre los componentes electrónicos del computador y los dispositivos electrónicos, ya sean discos, placa madre, tarjetas de video, sonido, captura de tv etc.

Características de los Sistemas Operativos.

Los sistemas operativos presentan características generales, que son:

Conveniencia: Un Sistema Operativo hace más conveniente el uso de una computadora.

Eficiencia. Un Sistema Operativo permite que los recursos de la computadora se usen de la manera más eficiente posible.

Habilidad para evolucionar. Un Sistema Operativo deberá construirse de manera que permita el desarrollo, prueba o introducción efectiva de nuevas funciones del sistema sin interferir con el servicio.

Encargado de administrar el hardware. El Sistema Operativo se encarga de manejar de una mejor manera los recursos de la computadora en cuanto a hardware se refiere, esto es, asignar a cada proceso una parte del procesador para poder compartir los recursos.

Relacionar dispositivos (gestionar a través del kernel. El Sistema Operativo se debe encargar de comunicar a los dispositivos periféricos, cuando el usuario así lo requiera.

Organizar datos para acceso rápido y seguro.

Manejar las comunicaciones en red. El Sistema Operativo permite al usuario manejar con alta facilidad todo lo referente a la instalación y uso de las redes de computadoras.

Procesamiento por bytes de flujo a través del bus de datos.

Facilitar las entradas y salidas. Un Sistema Operativo debe hacerle fácil al usuario el acceso y manejo de los dispositivos de Entrada / salida de la computadora.

Técnicas de recuperación de errores.

Evita que otros usuarios interfieran. El Sistema Operativo evita que los usuarios se bloqueen entre ellos, informándoles si esa aplicación esta siendo ocupada por otro usuario.

Generación de estadísticas.

Permite que se puedan compartir el hardware y los datos entre los usuarios.

El software de aplicación son programas que se utilizan para diseñar, tal como el procesador de palabras, lenguajes de programación, hojas de cálculo, etc.

El software de base sirve para interactuar el usuario con la máquina, son un conjunto de programas que facilitan el ambiente plataforma, y permite el diseño del mismo.

El Software de base está compuesto por:

Cargadores.

Compiladores.

Ensambladores.

Macros.

Interfaces del usuario

Es la parte del sistema operativo que permite comunicarse con él, de tal manera que se puedan cargar programas, acceder archivos y realizar otras tareas. Existen tres tipos básicos de interfaces: las que se basan en comandos, las que utilizan menús y las interfaces gráficas de usuario.

Administración de recursos

Sirven para administrar los recursos de hardware y de redes de un sistema informático, como el CPU, memoria, dispositivos de almacenamiento secundario y periféricos de entrada y de salida.

Administración de archivos

Un sistema de información contiene programas de administración de archivos que controlan la creación, borrado y acceso de archivos de datos y de programas. También implica mantener el registro de la ubicación física de los archivos en los discos magnéticos y en otros dispositivos de almacenamiento secundarios.

Administración de tareas

Los programas de administración de tareas de un sistema operativo administran la realización de las tareas informáticas de los usuarios finales. Los programas controlan que áreas tiene acceso al CPU y por cuánto tiempo. Las funciones de administración de tareas pueden distribuir una parte específica del tiempo del CPU para una tarea en particular, e interrumpir al CPU en cualquier momento para sustituirla con una tarea de mayor prioridad.




Por: 17-04-2009 por jlleon | Categorías asociadas: Capitulo 1 y 2

Capitulo 1

Conjunto de programas que se integran con el hardware para facilitar al usuario, el aprovechamiento de los recursos disponibles. Algunos de sus objetivos principales son:
    • Provee de un ambiente conveniente de trabajo.
    • Hace uso eficiente del Hardware.
    • Provee de una adecuada distribución de los recursos.
Para un Sistema Operativo real deberá satisfacer las siguientes funciones:
    • Gobierna el Sistema.
    • Asigna los recursos.
    • Administra y controlar la ejecución de los programas.
Un sistema de computo en muchos casos cuenta con demasiados recursos para ser utilizados por un solo usuario, es en estos casos cuando se puede dar servicio a varios procesos.

Sistema Operativo

Llamadas al Sistema


El Sistema Operativo en conjunto con el Hardware aparecen al usuario como un solo dispositivo con un conjunto de instrucciones más flexibles y variadas a las que se conoce como Llamadas al Sistema (System Callings).

Intérprete de Comandos


También conocido por su nombre en inglés, Shell, es un programa que interpreta las órdenes del usuario y las convierte en Llamadas al Sistema.

Núcleo (o Kernel)


Es la parte del Sistema Operativo que se encarga de sincronizar la activación de los procesos y definir prioridades.

Programas del Sistema


Son programas de servicio que debe ser solicitados explícitamente por los usuarios. Como ejemplos de estos tenemos:

    1. Compiladores
      Son programas que traducen Programas Fuente en programas Objeto.
    2. Ensambladores
      Traducen programas escritos con mnemónicos a lenguaje de máquina.
    3. Editores
      Son programas que permiten escribir textos y guardarlos en memoria secundaria.
    4. Utilerías de Archivos
      Programas para dar mantenimiento a los archivos.
    5. Bibliotecas
      Programas que contienen rutinas para realizar funciones frecuentemente requeridas. Estas funciones pueden ser ligadas a los programas escritos por el usuario.

Programas de Aplicación


Programas externos al sistema, utilizados para realizar tareas específicas como simulación, creación y edición de gráficas e imágenes, etc..

Sistema Operativo

Es el programa o programas que tienen todas las computadoras modernas, el usuario de un equipo de computo no tiene que preocuparse de como funciona, por ejemplo, una unidad lectora de disco, sólo necesita pedirle al sistema operativo que lo lea o escriba en el disco mediante un comando. El más comúnmente usado es el MS-DOS.

Conjunto de programas que sirven como interfaz entre el usuario (Sirve como agente de intercambio de información entre la computadora y el usuario.) y la computadora, además de que administran los recursos de la misma (Entendiéndose como recursos: Memoria, Disco Duro, Procesador, Monitor, Etc.).

TIPOS DE SISTEMAS OPERATIVOS

Existen dos tipos generales de sistemas operativos: Los basados en caracteres y los de interfaz gráfica (ambientes amigables). El sistema basado en caracteres es ejemplificado perfectamente con el sistema operativo utilizado por las computadoras IBM y compatibles. El MS-DOS está listo para recibir un comando desplegando el tipo de indicador (A> o C>) en la pantalla; en donde el usuario escribe carácter por carácter el comando que se desea ejecutar.

Ante las justificadas quejas de los usuarios por la falta de programas amigables, los desarrolladores de software respondieron añadiendo menús y mensajes en pantalla. Los menús mejoran en mucho la cordialidad de los programas, reduciendo el número de comandos que se necesitan conocer.

La Macintosh logró crear la primera interfaz gráfica, posteriormente Microsoft introdujo la interfaz gráfica Windows para las computadoras IBM y compatibles.

Cada programa en Windows tiene reservada un área de la pantalla conocida con el nombre de ventana.

Un sistema operativo que se opera mediante el uso de imágenes y símbolos en vez de palabras se denomina interfaz gráfica para el usuario, o GUI (Graphic User Interface).

Capitulo 2

Interfaz de Usuario: Existen tres tipos básicos de interfaces: las que se basan en comandos, las que utilizan menús y las interfaces gráficas de usuario.
Ejecución de Programas: El sistema operativo debe poder cargar un programa en memoria y ejecutar dicho programa.
Operaciones de E/S: Un programa en ejecución puede ejecutar operaciones de E/S sobre un archivo o un dispositivo de E/S.
Manipulación de Archivos: Los programas necesitan ejecutar algunas operaciones sobre archivos y directorios.
Detección de errores: Detectar errores y actuar de modo apropiado en caso de que se produzcan.
Comunicación: Compartir los recursos entre unos y otros procesos.
Asignación de Recursos: asigna a programas y usuarios específicos s tareas, la asignación se realiza de una manera justa y eficiente.
Responsabilidad: Controlar el acceso a los recursos de un sistema de computadoras.
Protección y Seguridad: asegurar que todos los accesos a los recursos del sistema estén controlados y garantizar la seguridad del sistema frente a posibles intrusos y evitar que las acciones de un usuario afecten el trabajo que está realizando otro usuario.

Sistemas monolíticos

Este tipo de organización es, con diferencia, la más común. El sistema operativo se escribe como una colección de procedimientos, cada uno de los cuales puede llamar a los demás cada vez que así lo requiera. Cuando se usa esta técnica, cada procedimiento del sistema tiene una interfaz bien definida en términos de parámetros y resultados, y cada uno de ellos es libre de llamar a cualquier otro, si éste último proporciona un cálculo útil para el primero.

Para construir el programa objeto real del sistema operativo siguiendo este punto de vista, se compilan de forma individual los procedimientos, o los ficheros que contienen los procedimientos, y después se enlazan en un sólo fichero objeto con el enlazador. En términos de ocultación de la información, ésta es prácticamente nula: cada procedimiento es visible a los demás (en contraste con una estructura con módulos o paquetes, en la que la mayoría de la información es local a un módulo, y donde sólo los datos señalados de forma expresa pueden ser llamados desde el exterior del módulo).

Modelo cliente-servidor

Una tendencia de los sistema operativos modernos es la de trasladar el código a capas superiores, y eliminar la mayor parte posible del sistema operativo para mantener un núcleo mínimo. El punto de vista usual es el implantar la mayoría de las funciones del sistema operativo como procesos de usuario. Para solicitar un servicio, como la lectura de un bloque de cierto fichero, un proceso de usuario (denominado en este caso proceso cliente) envía la solicitud a un proceso servidor, que realiza el trabajo y devuelve la respuesta.




Por: 16-04-2009 por plaguilar | Categorías asociadas: Capitulo 1 y 2

Capitulo 1

Introduccion

Un Sistema Operativo (SO) es una colección organizada de rutinas o extensiones de software del hardware. Consiste en rutinas de control que hacen funcionar una computadora y proporcionan un entorno para la ejecución de los programas. Existen otros programas que se apoyan en el SO para poder acceder a los recursos que necesitan. Esto se lleva a cabo a través de llamadas sistema operativo. También el SO debe brindar una forma de que el usuario se pueda comunicar con él a través de una interfaz que le brinde una vía de comunicación con el hardware del sistema informático.

El objetivo principal del SO es lograr que el sistema informático es el lograr que el hardware de la computadora se emplee de modo eficiente, y el objetivo secundario se use de manera cómoda.

El SO debe asegurar el correcto funcionamiento del sistema informático. Para lograr esto el hardware debe brindar algún mecanismo apropiado que impida que los usuarios intervengan en el funcionamiento del sistema y así mismo el SO debe poder utilizar este recurso de hardware de modo que esto se cumpla.

El SO debe ofrecer servicios a los programas y sus usuarios para facilitar la tarea de programación.

Puede haber varias clases de usuarios usando el sistema, como ser personas, programas y otras computadoras, tratando de resolver diversos problemas. El SO controla y coordina el uso del hardware entre los diversos programas de aplicación y los distintos usuarios, administrando todos los recursos como disco, memoria, impresoras, monitor, etc. El SO determina los tiempos en que un determinado programa utilizará un recurso dado.

Al comienzo de la era informática, los sistemas no utilizaban SO’s. Estas computadoras de hace 40 años ejecutaban un programa a la vez que era cargado por un programador. Este cargaba el programa y lo ejecutaba. Si existía algún error que hiciera que el programa se detuviera antes de lo esperado, se tenía que comenzar de nuevo con todo el proceso. Recordemos que en esa época no había muchas computadoras en funcionamiento, así que el programador tenía que esperar de varios días hasta tener nuevamente su turno enfrente de la computadora. Los SO’s existen porque son una solución razonable al problema de crear un sistema informático útil. El objetivo fundamental de los sistemas informáticos es ejecutar los programas de los usuarios y facilitar la resolución de sus problemas. Todo esto se hacía a través de tarjetas perforadas que una persona encargada cargaba en la computadora y luego de algunas horas devolvía la salida impresa al programador.

Al avanzar la tecnología informática, muchos de estos programas se cargaban en una sola cinta, otro programa residente en la memoria de la computadora, cargaba y manipulaba los programas de esa cinta. Este es el ancestro de los SO’s de hoy en día. En la década del 60 la tecnología de SO’s avanzo mucho y se podían tener múltiples programas al mismo tiempo en la memoria. Así surgió el concepto de multiprogramación. Si un programa necesitaba esperas a que ocurriera algún evento externo, como que una cinta se rebobinara, otro podría tener acceso a la CPU para así poder utilizar el 100% del poder de procesamiento con que contaba la computadora. Esto ahorraba mucho dinero ya que en aquel entonces todo en lo referente a cómputo (memoria, espacio en disco, etc) costaba cientos de miles de dólares. A finales de los 60’s, en 1969, nació UNIX, SO que trataremos más adelante, y es la base de muchos de los SO’s de hoy en día, aunque muchos no lo admitan.

Definir que forma parte de un SO y que no sería difícil, dada la gran variedad existente, pero una definición para los SO que nos compete en estos momentos seria que el SO es el programa que ejecuta todo el tiempo en la computadora (conocido usualmente como kernel o núcleo), siendo los programas de aplicación todo lo demás. En general un SO intenta incrementar la productividad de un recurso de proceso tal como el hardware de la computadora, o de los usuarios de los sistemas informáticos. Ahora bien, en lo referente a la utilización eficiente de un sistema informático no siempre se puede lograr que un SO lo logre. Casi siempre resulta contradictorio la comodidad y la eficiencia.

Capitulo 2

Estructura del Sistema Operativo

Las funciones más importantes que debe cumplir un Sistema Operativo son los siguientes:

Interfaz de Usuario: Existen tres tipos básicos de interfaces: las que se basan en comandos, las que utilizan menús y las interfaces gráficas de usuario.
Ejecución de Programas: El sistema operativo debe poder cargar un programa en memoria y ejecutar dicho programa.
Operaciones de E/S: Un programa en ejecución puede ejecutar operaciones de E/S sobre un archivo o un dispositivo de E/S.
Manipulación de Archivos: Los programas necesitan ejecutar algunas operaciones sobre archivos y directorios.
Detección de errores: Detectar errores y actuar de modo apropiado en caso de que se produzcan.
Comunicación: Compartir los recursos entre unos y otros procesos.
Asignación de Recursos: asigna a programas y usuarios específicos s tareas, la asignación se realiza de una manera justa y eficiente.
Responsabilidad: Controlar el acceso a los recursos de un sistema de computadoras.
Protección y Seguridad: asegurar que todos los accesos a los recursos del sistema estén controlados y garantizar la seguridad del sistema frente a posibles intrusos y evitar que las acciones de un usuario afecten el trabajo que está realizando otro usuario.

LLAMADAS AL SISTEMA

Es un procedimiento que se realiza para solicitar o pedir algún servicio al Sistema Operativo. Cada sistema operativo implementa un conjunto propio de llamadas al sistema. Ese conjunto de llamadas es el interfaz del sistema operativo frente a las aplicaciones. Constituyen el lenguaje que deben usar las aplicaciones para comunicarse con el sistema operativo. Por ello si cambiamos de sistema operativo, y abrimos un programa diseñado para trabajar sobre el anterior, en general el programa no funcionará, a no ser que el nuevo sistema operativo tenga la misma interfaz. Para ello:

  1. Las llamadas correspondientes deben tener el mismo formato.
  2. Cada llamada al nuevo sistema operativo tiene que dar los mismos resultados que la correspondiente del anterior.

Sistemas Monolíticos:El sistema operativo se escribe como una colección de procedimientos,cada uno de los cuales puede llamar a los demas cada vez que lo requiera.Cuando se usa esta técnica,cada procedimiento del sistema tiene una interfaz bien definida en términos de parámetros y resultados,y cada uno de ellos es libre de llamar a cualquier otro,si éste último proporciona un cálculo útil para el primero.

Cliente Servidor:Una tendencia de los sistemas operativos modernos es la de trasladar el código a capas superiores y eliminar la mayor parte posible del sistema operativo para mantener un núcleo mínimo.EL punto de vista usual es el implantar la mayoría de las funciones del sistema operativo como procesos de usuario.Para solicitar un servicio,como de lectura de un bloque de cierto fichero,un proceso de usuario(denominado en este caso proceso cliente)envía la silicitud a un proceso servidor,que realiza el trabajo y devuelve la respuesta.




Por: 16-04-2009 por jgcalero | Categorías asociadas: Capitulo 1 y 2, Paralelo "C"

Capítulo I

Introducción de los Sistemas Operativos

  • SO, programa que controla la ejecución de programas de aplicación y actúa como interfaz entre el usuario y el hardware de un computador.
  • Es un medio de interacción entre el usuario y los recursos del maquina, permitiéndonos abstraernos de su administración.
  • SO, conjunto de programas destinados a permitir la comunicación del usuario con un ordenador y gestionar sus recursos de una manera eficiente.
  • La memoria principal es la única área de almacenamiento de gran tamaño al que el procesador puede acceder directamente
  • El computador moderno consta de una o más CPU y de un serie de controladores de dispositivo conectadas a través de un bus común que proporciona acceso a la memoria compartida.
  • Para que un computador comience a funcionar necesita de un programa de arranque, que se almacena en la memoria ROM(Read Only Memory, memoria solo de lectura) o en una memoria EEPROM(electrically erasable programable read-only memory, memoria de solo lectura programable y eléctricamente borrable) y se conoce con el termino general de firmware.
  • La ocurrencia de un suceso normalmente se indica mediante una interrupción bien hardware o bien software, el hardware puede activar una interrupción enviando una señal al CPU. El software puede activar una interrupción ejecutando una operación denominada llamada del sistema (llamada de monitor)
  • Un ciclo típico instrucción-ejecución, cuando se ejecuta es un sistema con una arquitectura de Von Neumann, primero extrae una instrucción de memoria y almacena dicha instrucción en el registro de instrucciones.
  • ü Los sistemas informáticos proporcionan almacenamiento secundario como una extensión de la memoria principal, tenemos disco magnetico.
  • Existen sistemas de almacenamiento volátiles y no volátiles, el almacenamiento volátil pierde su contenido cuando se retira la alimentación del dispositivo, por eso los datos deben escribirse en almacenamiento no volátil para salvaguardar la información.
  • Hay sistemas de un solo procesador, hay una CPU principal capaz de ejecutar un conjunto de instrucciones de propósito general, incluyendo instrucciones de los procesos de usuario.
  • También hay sistemas multiprocesador (conocidos sistemas paralelos o sistemas fuertemente acoplados), estos sistemas disponen de dos o más procesadores que se comunican entre sí, compartiendo el bus de la computadora y, en ocasiones el reloj, la memoria y los dispositivos periféricos. Estos sistemas prestan un mayor rendimiento, economía de escala y una mayor fiabilidad
  • Otro tipo de sistema con múltiples CPU es el sistema de cluster, es decir utilizan múltiples CPU para llevar a cabo el trabajo, se diferencian de los sistemas multiprocesamiento en que están formados por dos o más sistemas individuales acoplados. Este sistemas de cluster comparten el almacenamiento y se conectan entre si a través de una red local (LAN).
  • Un aspecto importante de los SO es la capacidad para la multiprogramación, dado que incrementa el uso de la CPU, organizándolos trabajos de modo que la CPU siempre tenga uno que ejecutar.
  • Los SO están controlados mediante interrupciones, es decir si no hay ningún proceso que ejecutar, ningún dispositivo de E/S al que dar servicio y ningún usuario al que responder, el SO debe permanecer inactivo, esperando a que algo ocurra.
  • En el SO de da modo dual, es decir dos modos diferentes de operación mido usuario y modo kernel, es decir con el modo de bit se puede diferenciar entre una tarea que se ejecute en nombre del sistema operativo y otra que se ejecute en nombre del usuario.
  • Se debe asegurar que el SO mantenga el control de la CPU, para esto debemos utilizar un temporizador para que un programa de usuario no entre en un ciclo repetitivo o que no llame a los servicios del sistema y nunca devuelva el control al sistema.
  • Dentro de las actividades de gestión de procesos se tiene: crear y borrar procesos de usuario y del sistema, suspender y reanudar procesos, proporcionar mecanismo para la sincronización, proporcionar mecanismos para la comunicación y proporcionar mecanismos para el tratamiento de los interbloqueos.
  • Dentro de las actividades de gestión de memoria tenemos: controlar que partes de la memoria están actualmente en uso y por parte de quien, decidir qué datos y procesos añadir o extraer de la memoria, asignar y liberar la asignación de espacio de memoria según sea necesario.
  • Dentro de las actividades de la gestión de almacenamiento en referencia a archivos tenemos: creación y borrado de archivos, creación y borrado de directorios para organizar los directorios, soporte de primitivas para manipular archivos y directorios, asignación de archivos a los dispositivos de almacenamiento secundario y copia de seguridad de los archivos en medios de almacenamiento estables.
  • Dentro de las actividades de la gestión de almacenamiento masivo tenemos: gestión del espacio libre, asignación del espacio de almacenamiento, planificación del disco.
  • El almacenamiento en cache es una técnica importante, la información se mantiene en algún sistema de almacenamiento, por ejemplo memoria principal, cuando se usa esa información se copia de forma temporal es un sistema de almacenamiento más rápido, la cache.
  • La protección y la seguridad requieren que el sistema distinga a todos sus usuarios, la mayoría de los SO mantienen una lista con los nombres y sus identificadores de usuario asociados.
  • Un sistema distribuido es una colección de computadores físicamente separadas y posiblemente heterogéneas que están conectadas en red para proporcionar a los usuarios acceso a los diversos recursos que el sistema mantiene, esta red puede ser red de área local, red de área extendida, red de área metropolitana.
  • Sistemas de propósito general embebidos en tiempo real, son aquellos que cumple una determinada función estos están en automóviles, robots, un microondas, etc.
  • Sistemas de propósito general multimedia son aquellos que soportan archivos de audio y video, o los dos a la vez, estos se difunden a través de la web.
  • Sistemas de mano como los PDA, los Palm, y Pocket-PC, los teléfonos móviles los cuales utilizan SO embebidos de propósito especial.
  • La influencia de la internet y la World Wide Web ha llevado al desarrollo de sistemas operativos modernos que integran exploradores web y software de red y comunicaciones.

Capítulo II

Estructuras de SO

  • Servicios del SO que resultan útiles al usuario:

o interfaz de usuario (tenemos interfaz de línea de comando y interfaz de proceso por lotes)

o Ejecución de programas

o Operaciones de E/S

o Manipulación del sistema de archivos

o Comunicaciones

o Detección de errores

  • Servicios que no están pensados para ayudar al usuario:

o Asignación de recursos

o Responsabilidad

o Protección y seguridad

  • En los sistemas que disponen de varios intérpretes de comandos entre los que elegir, los intérpretes se conocen como shells, la función principal es obtener y ejecutar el siguiente comando especificado por el usuario.
  • Una interfaz grafica de usuario (GUI), proporciona una especie de escritorio en el que el usuario mueve el ratón para colocar el puntero sobre imágenes, o iconos que se muestran en la pantalla y que estos representan programas, archivos, directorios y funciones del sistema.
  • Las llamadas al sistema proporcionan una interfaz con la que poder invocar los servicios que el sistema operativo ofrece. Son la interfaz entre el programador en ejecución y el SO.
  • Las llamadas al sistema se implementan habitualmente, mediante una instrucción especial de la máquina (syscall, int, trap,…).
  • La instrucción cambia automáticamente a modo privilegiado.
  • Tipos de llamadas al sistema

o Control de procesos

§ Terminar, abortar

§ Cargar, ejecutar

§ Crear, terminar procesos

§ Obtener atributos del proceso, definir atributos del proceso

§ Esperar para obtener tiempo

§ Esperar suceso, señalizar suceso

§ Asignar y liberar memoria

o Administración de archivos

§ Crear, borrar archivos

§ Abrir, cerrar

§ Leer, escribir, reposicionar

§ Obtener atributos del archivo, definir atributos de archivo

o Administración de dispositivos

§ Solicitar, liberar dispositivo

§ Leer, escribir, reposicionar

§ Obtener atributos de dispositivo, definir atributos de dispositivo

§ Conectar y desconectar dispositivos lógicamente

o Mantenimiento de información

§ Obtener la hora o la fecha, definir la hora o la fecha

§ Obtener datos del sistema, establecer datos del sistema

§ Obtener los atributos de procesos, archivos o dispositivos

§ Establecer los atributos de procesos, archivos o dispositivos

o Comunicaciones

§ Crear, eliminar conexiones de comunicación

§ Enviar, recibir mensajes

§ Transferir información de estado

§ Conectar y desconectar dispositivos remotos

  • Los programas del sistema proporcionan un cómodo entorno para desarrollar y ejecutar programas, algunos son sencillas interfaces de usuario para las llamadas al sistema, otras son complejas como:

o Administración de archivos

o Información de estado

o Modificación de archivos

o Soporte de lenguajes de programación

o Carga y ejecución de programas

o Comunicaciones

  • Métodos para el diseño e implementación del SO, primeramente definir los objetivos y especificaciones del sistema, en un nivel más alto, el diseño del sistema se verá afectado por la elección del hardware y el tipo de sistema: de procesamiento por lotes, de tiempo compartido, mono usuario entre otros; también definir mecanismos para determinar cómo hacer algo y las políticas determinan que hacer, es para cuestiones de flexibilidad; y en la implementación los SO se implementaban en lenguaje ensamblador, ahora se escriben el lenguajes de alto nivel como C++.
  • Estructuras del SO:

o Estructura simple, ejemplo MS-DOS

o Estructura en niveles (se divide en capas)

o Microkernels (reside en memoria, atiende las llamadas del sistema)

o Módulos

  • Las maquinas virtuales mediante software proporcionan la emulación de un hardware que no existe. El software emulador convierte las peticiones hechas a la maquina virtual en operaciones sobre la maquina real.
  • Se pueden ejecutar varias maquinas virtuales al mismo tiempo. Los recursos reales se reparten entre las distintas maquinas virtuales.



Por: 13-04-2009 por xeastudillo | Categorías asociadas: Capitulo 1 y 2, Paralelo "C"

ESTRUCTURA DE LOS SISTEMAS OPERATIVOS

SERVICIOS DEL SISTEMA OPERATIVO

Las funciones más importantes que debe cumplir un Sistema Operativo son los siguientes: 

Interfaz de Usuario: Existen tres tipos básicos de interfaces: las que se basan en comandos, las que utilizan menús y las interfaces gráficas de usuario.
Ejecución de Programas: El sistema operativo debe poder cargar un programa en memoria y ejecutar dicho programa.
Operaciones de E/S: Un programa en ejecución puede ejecutar operaciones de E/S sobre un archivo o un dispositivo de E/S.
Manipulación de Archivos: Los programas necesitan ejecutar algunas operaciones sobre archivos y directorios.
Detección de errores: Detectar errores y actuar de modo apropiado en caso de que se produzcan.
Comunicación: Compartir los recursos entre unos y otros procesos.
Asignación de Recursos: asigna a programas y usuarios específicos s tareas, la asignación se realiza de una manera justa y eficiente.
Responsabilidad: Controlar el acceso a los recursos de un sistema de computadoras.
Protección y Seguridad: asegurar que todos los accesos a los recursos del sistema estén controlados y garantizar la seguridad del sistema frente a posibles intrusos y evitar que las acciones de un usuario afecten el trabajo que está realizando otro usuario.

LLAMADAS AL SISTEMA

Es un procedimiento que se realiza para solicitar o pedir algún servicio al Sistema Operativo. Cada sistema operativo implementa un conjunto propio de llamadas al sistema. Ese conjunto de llamadas es el interfaz del sistema operativo frente a las aplicaciones. Constituyen el lenguaje que deben usar las aplicaciones para comunicarse con el sistema operativo. Por ello si cambiamos de sistema operativo, y abrimos un programa diseñado para trabajar sobre el anterior, en general el programa no funcionará, a no ser que el nuevo sistema operativo tenga la misma interfaz. Para ello:

  1. Las llamadas correspondientes deben tener el mismo formato.
  2. Cada llamada al nuevo sistema operativo tiene que dar los mismos resultados que la correspondiente del anterior.

Sistemas monolíticos:El sistema operativo se escribe como una colección de procedimientos,cada uno de los cuales puede llamar a los demas cada vez que lo requiera.Cuando se usa esta técnica,cada procedimiento del sistema tiene una interfaz bien definida en términos de parámetros y resultados,y cada uno de ellos es libre de llamar a cualquier otro,si éste último proporciona un cálculo útil para el primero.

Modelo cliente-servidor:Una tendencia de los sistemas operativos modernos es la de trasladar el código a capas superiores y eliminar la mayor parte posible del sistema operativo para mantener un núcleo mínimo.EL punto de vista usual es el implantar la mayoría de las funciones del sistema operativo como procesos de usuario.Para solicitar un servicio,como de lectura de un bloque de cierto fichero,un proceso de usuario(denominado en este caso proceso cliente)envía la silicitud a un proceso servidor,que realiza el trabajo y devuelve la respuesta.

 

 





Por: 13-04-2009 por xeastudillo | Categorías asociadas: Capitulo 1 y 2, Paralelo "C"

SISTEMAS OPERATIVOS

Un sistema operativo es un programa que actúa como intermediario entre el usuario y el hardware de un computador y su propósito es proporcionar un entorno en el cual el usuario pueda ejecutar programas. El objetivo principal de un sistema operativo es lograr que el sistema de computación se use de manera cómoda, y el objetivo secundario es que el hardware del computador se emplee de manera eficiente resaltando la administración de sus recursos.

Un sistema operativo es una parte importante de casi cualquier sistema de computación y puede dividirse en cuatro componentes: el hardware, el sistema operativo, los programas de aplicación y los usuarios.

Un sistema operativo está también formado por componentes que se dividen en los siguientes módulos:

GESTION DE PROCESOS

Un proceso es simplemente, un programa en ejecución que necesita recursos para realizar su tarea. El sistema operativo es el encargado de las siguientes actividades en la gestión de procesos:

  1. Crear y destruir los procesos.
  2. Parar y reanudar los procesos.
  3. Ofrecer mecanismos para que se comuniquen y sincronicen.

GESTION DE MEMORIA

Es vital en la operación de un sistema informático. La memoria es una gran tabla de palabras o bytes que se referencian cada una mediante una dirección única. Este almacén de datos de rápido accesos es compartido por la CPU y los dispositivos de E/S, es inconstante y pierde su contenido en los fallos del sistema. El sistema operativo es el encargado de:

  1. Conocer qué partes de la memoria están utilizadas y por quién.
  2. Decidir qué procesos se cargarán en memoria cuando haya espacio disponible.
  3. Asignar y reclamar espacio de memoria cuando sea necesario.

GESTION DE ALMACENAMIENTO

Un sistema de almacenamiento es necesario, ya que la memoria principal es inconstante y además muy pequeña para almacenar todos los programas y datos. También es necesario mantener los datos que no convenga mantener en la memoria principal.

El sistema operativo se encarga de:

  1. Planificar los discos.
  2. Gestionar el espacio libre.
  3. Asignar el almacenamiento.

SISTEMAS DE E/S

Consiste en un sistema de almacenamiento temporal (caché), una interfaz de manejadores de dispositivos y otra para dispositivos concretos. El sistema operativo debe gestionar el almacenamiento temporal de E/S y servir las interrupciones de los dispositivos de E/S.

El subsistema de E/S consta de varios componentes:

  • Un componente de gestión de memoria que incluye almacenamiento en buffer, gestión de caché y gestión de colas.
  • Una interfaz general para controladores de dispositivo.
  • Controladores para dispositivos hardware específicos.

SISTEMAS DE PROTECCION Y SEGURIDAD

Mecanismo que controla el acceso de los programas o los usuarios a los recursos del sistema. El sistema operativo se encarga de:

  1. Distinguir entre uso autorizado y no autorizado.
  2. Especificar los controles de seguridad a realizar.
  3. Forzar el uso de estos mecanismos de protección.

SISTEMA DE COMUNICACIÓN

  1. Gestionar los accesos a la red.
  2. Conexión a través de la red de los distintos procesadores.
  3. Acceso a los recursos compartidos.



Por: 13-04-2009 por cmchamba | Categorías asociadas: Capitulo 1 y 2, Paralelo "C"

Introducción Sistemas Operativos

Un sistema operativo es un programa o software que permite administra el hardware de una computadora y proporciona un entorno para ejecutar distintas aplicación. Un computador debe realizar programas, pero para que estos se realicen deben estar en la memoria principal (RAM). Otro dispositivo de almacenamiento secundario es el disco magnético, este dispositivo proporciona un almacenamiento de información permanente.

Uno de los aspectos más importantes de los sistemas operativos es la multiprogramación, lo que permite tener en memoria a la vez varios trabajos. El tiempo compartido es una extensión lógica de la multiprogramación, en la que los algoritmos de planificación de la CPU ejecutan múltiples trabajos.

Parar asegurar la correcta ejecución del sistema operativo, el hardware soporta dos modos de trabajo:

  • modo usuario (1), como su palabra lo dice son todas las operaciones que realiza el usuario
  • modo kernel (0), se refiere a todas las operaciones que realiza el sistema operativo. Un temporizador impide los bucles infinitos.

Los sistemas distribuidos es una colección de computadoras físicamente separadas y posiblemente heterogéneas que están conectadas en red para proporcionar a los usuarios acceso a los diversos recursos que el sistema posee. Los servicios se pueden dar mediante el modelo cliente-servidor o el modelo entre iguales. Las redes LAN y WAN son los dos tipos básicos de redes. Las redes LAN conectan una serie de computadoras que se encuentran en una misma habitación u edificio, y una red WAN conecta varios edificios.

Existen diferentes clases de sistemas informáticos cuyas funciones son más limitadas o específicas como los sistemas operativos entiempo real diseñados para entornos embebidos. Los sistemas multimedia implican el suministro de datos multimedia.

Estructuras de los Sistemas Operativos.

Los sistemas operativos proporcionan el entorno en el que se ejecutan los programas, proporcionan una serie de servicios. En el nivel mas bajo las llamadas al sistema permiten que un programa en ejecución haga solicitudes directamente al sistema operativo. En un nivel más alto, el intérprete de comandos o shell proporciona un mecanismo para que el usuario ejecute una solicitud sin tener que escribir un programa.

Los tipos de solicitudes varían de acuerdo con el nivel. En el nivel de gestión de las llamadas al sistema debe proporcionar funciones básicas, como las de control de procesos y de manipulación de archivos y dispositivos. Las solicitudes de nivel superior, se traducen a una secuencia de llamadas del sistema

Al diseñar un sistema operativo debemos tener presente los objetivos y las especificaciones. El tipo de sistema dictará las opciones que se elijan, entre los distintos algoritmos y estrategias necesarios.

Existen dos técnicas adecuadas para la implementación y el diseño de un sistema operativo que son diseñar al sistema como una secuencia de niveles o usando un microkernel. El concepto de máquina virtual se basa en una arquitectura en niveles y trata tanto al kernel del sistema operativo como al hardware como si fuera hardware.

Los sistemas operativos se escriben en un lenguaje de alto nivel o en un lenguaje de implementación de sistemas. Esto ha hecho que las tareas de implementación, mantenimiento y portabilidad se hagan en tareas fáciles de desarrollar.




Por: 12-04-2009 por bfcorralesx | Categorías asociadas: Capitulo 1 y 2, Paralelo "C"

 

CAPITULO I

 Introducción.-

 Un sistema operativo es un programa que administra el hardware de una computadora. Proporciona la base para los programas de aplicación y actúa como intermediario entre el usuario y el hardware de una computadora.

Un sistema informático puede dividirse en 4 componentes: el hardware, el sistema operativo, los programas de aplicación y los usuarios.

 El papel de un sistema operativo se toma de dos puntos de vista: el del usuario y el del sistema.

Desde el Punto de Vista del Usuario: Un sistema así se diseña para que un usuario monopolice sus recursos. El objetivo es maximizar el trabajo que el usuario realiza. Se diseña principalmente para que sea de fácil uso, prestando cierta atención al rendimiento y ninguna a la utilización de recursos.

Vista del Sistema: El sistema operativo es el sistema más íntimamente relacionado con el hardware.

Podemos ver un sistema operativo como un asignador de recursos que pueden ser necesarios para solucionar un problema: tiempo de CPU, espacio de memoria, espacio de almacenamiento de archivos, dispositivos de E/S, etc. El SO actúa como administrador de  éstos recursos.

Funcionamiento de una Computadora

 Consta de una o más CPU y de una serie de controladores de dispositivo conectadas a través de un bus común que proporciona acceso a la memoria compartida, cada controladora de dispositivo se encarga de un tipo específico de dispositivo.

Para que una computadora comience a funcionar, es necesario que tenga un programa de inicio que ejecutar.

 Estructura de Almacenamiento

 Los programas de la computadora deben hallarse en la memoria principal para ser ejecutados. Esta es la única área de almacenamiento de gran tamaño a la que el procesador puede acceder directamente.

 Sistemas de un sólo Procesador

Van desde los PDA hasta los sistemas Mainframe. Es un  sistema de un único procesador, hay una CPU principal capaz de ejecutar un conjunto de instrucciones de propósito general, incluyendo instrucciones de los procesos de usuario.

 Sistemas Multiprocesador

Conocidos como sistemas paralelos o sistemas fuertemente acoplados. Disponen de dos o más procesadores que se comunican entre sí, compartiendo el bus de la computadora y, en ocasiones, el reloj, la memoria y los dispositivos periféricos. Ventajas:

Mayor rendimiento, porque al aumentar el número de procesadores, es de esperar que se realice más trabajo en menos tiempo.

Economía de escala, porque resultan más baratos que su equivalente con múltiples sistemas de un sólo procesador.

 Mayor fiabilidad, porque las funciones se pueden distribuir en forma apropiada entre varios procesadores.

 Sistemas en Clúster

 Utilizan múltiples CPU para llevar a cabo el trabajo, están formados por dos o más sistemas individuales acoplados. Comparten almacenamiento y se conectan entre sí  a través de una red LAN.

 Operaciones del sistema Operativo

Los SO modernos están controlados mediante interrupciones. Si no hay ningún proceso que ejecutar, ningún dispositivo de E/S al que dar servicio y ningún usuario  al que responder, un SO debe permanecer inactivo esperando a que algo ocurra.  Una excepción es una interrupción generada por software debido a un error o a una solicitud específica de un programa de usuario, de que se realice un servicio de sistema operativo.

Operación de Modo Dual: Como mínimo necesitamos de dos modos diferentes de operación (modo-usuario y modo-kernel). Cuando se arranca el sistema el hardware se inicia en el modo  kernel, cuando el sistema operativo obtiene el control de la computadora también estará en modo de kernel. El sistema siempre cambia a modo de usuario antes de pasar el control a un programa de usuario.

El modo dual de operación nos proporciona los medios para proteger el sistema operativo del usuario que puedan cometer errores.

 Temporizador

 Sirven para interrumpir a la computadora después de un  período especificado, este período puede ser fijo o variable. Se implementa un temporizador variable mediante un reloj de frecuencia fija y un contador.

 Gestión de Procesos

 Un proceso necesita para llevar a cabo su tarea ciertos recursos, entre los que incluyen tiempo de CPU, memoria, archivos y dispositivos de E/S. Estos recursos proporcionan al proceso en el momento de crearlo o se le asignan mientras se están ejecutando.

 Gestión de Memoria:

 Controlar que parte de la memoria están actualmente en uso y por parte de quien

 Decir que datos y procesos añadir o extraer de la memoria

 Asignar y liberar la asignación de espacio de memoria según sea necesario

 Gestión del Sistema de Archivos:

  Creación y borrado de archivos

 Creación y borrado de directorios para organizar los archivos

 Soporte de primitivas para manipular archivos y directorios

 Asignación de archivos a los dispositivos de almacenamiento secundario

 Copia de seguridad de los archivos en medios de almacenamiento estables

 Gestión de Almacenamiento Masivo

  Gestión del espacio libre

 Asignación del espacio de almacenamiento

 Planificación del disco

Almacenamiento en Caché

Es una técnica importante en los sistemas informáticos. La información se mantiene en algún sistema de almacenamiento, como por ejemplo la memoria principal. Cuando se usa, esa información se copia de forma temporal en un sistema de almacenamiento más rápido, la caché. Cuando necesitamos una información particular primero comprobamos si está en la caché, y si no está  usamos directamente esa información de la caché.

Protección y Seguridad

Protección es cualquier mecanismo que controle el acceso de procesos de usuarios a los recursos definidos por un sistema informático. Este mecanismo debe proporcionar los medios para la especificación de los controles que hay que imponer y para la aplicación de dichos controles.

Es responsabilidad de los mecanismos de seguridad defender al sistema frente a ataques internos y externos (virus y gusanos).

La protección y la seguridad requieren que el sistema pueda distinguir a todos sus usuarios.

Sistemas Distribuidos

Es una colección de computadoras físicamente separadas y posiblemente  heterogéneas que están conectadas en red para proporcionar a los usuarios acceso a los diversos recursos que el sistema mantiene.

Sistemas de Propósito General

 Sistemas Embebidos en Tiempo Real:

Disponen de una interfaz de usuario muy limitada o no disponen de ella en absoluto, prefiriendo invertir su tiempo en monitorizar y gestionar dispositivos hardware.

 Sistemas en multimedia:

Abarcan todos los archivos de audio y video, como archivos convencionales

 Sistemas de Mano: Incluyen los PDA, tales como los Palm y Pocket-PC, y los teléfonos móviles

ENTORNOS INFORMÁTICOS

Sistema Cliente-Servidor

Son aquellos sistemas actuales que actúan como sistemas servidor para satisfacer las solicitudes generadas por los sistemas clientes, pueden clasificarse de forma muy general, en servidores de cálculo y servidores de archivo. Los de cálculo proporcionan un interfaz a la que un cliente puede enviar una solicitud para realizar una acción, y los archivos proporcionan un interfaz de sistema de archivos mediante la que los clientes pueden crear actualizar, leer y eliminar archivos.

Sistemas Entre Iguales

Los clientes y los servidores no se diferencian entre sí, en su lugar todos los nodos del sistema se consideran iguales y cada uno puede actuar como cliente o como servidor, dependiendo de si solicita o proporciona un servicio.

CAPÍTULO II

 Servicios del Sistema Operativo

 Los servicios son aquellos que se proporcionan para comodidad del programador, con el fin de facilitar la tarea de desarrollo.

Los servicios y funciones proporcionados por un sistema operativo pueden dividirse en dos categorías: ayudar al usuario  y garantizar la eficiencia del propio sistema.

 Funciones que ayudan al Usuario:

 Interfaz de Usuario - Ejecución de Programas - Operaciones de E/S- Manipulación del Sistema de Archivos – Comunicaciones - Detección de Errores.

 Funciones que ayudan al Sistema:

Asignación de Recursos - Responsabilidad - Protección y Seguridad

 INTERFAZ DE USUARIO DEL SISTEMA OPERATIVO

 Intérprete de Comandos: Es un  programa especial que se ejecuta cuando se inicia un trabajo o cuando un usuario inicia una sesión. La función principal es obtener y ejecutar el siguiente comando especificado por el usuario.

Interfaz Gráfica de Usuario: Permite a los usuarios emplear un sistema de ventanas y menús controlable mediante el ratón.

LLAMADAS AL SISTEMA

Sirven para poder invocar los servicios que el sistema operativo ofrece. Puede agruparse de forma muy general en cinco categorías principales (tipos):

Control de Procesos:

terminar, abortar – cargar, ejecutar – crear procesos, terminar procesos – obtener atributos del proceso, definir atributos del proceso – esperar para obtener tiempo – esperar suceso, señalar suceso – asignar y liberar memoria.

Administración de archivos:

crear archivos, borrar archivos – abrir, cerrar – leer, escribir, reposicionar – obtener atributos de archivo, definir atributos de archivo.

Administración de Dispositivos:

 solicitar dispositivo, liberar dispositivo – leer, escribir, reposicionar – obtener atributos de dispositivo, definir atributos de dispositivo – conectar y desconectar dispositivos lógicamente.

Mantenimiento de Información:

obtener la hora o la fecha, definir la hora o la fecha – obtener datos del sistema, establecer datos del sistema – obtener los atributos del proceso, archivos o dispositivos – establecer los atributos de proceso, archivos o dispositivos.

Comunicaciones:

crear, eliminar conexiones de  comunicación – enviar, recibir mensajes – transferir información de estado – conectar y desconectar dispositivos remotos.

PROGRAMAS DEL SISTEMA

Proporcionan un cómodo entorno para desarrollar y ejecutar programas, algunos de ellos son simplemente, interfaces de usuarios para las llamadas del sistema; se dividen en:

administrador de archivos - información de estado – modificación de archivos – soporte de lenguajes de programación – carga y ejecución de programas – comunicaciones.

DISEÑO E IMPLEMENTACIÓN  DEL SISTEMA OPERATIVO

Objetivos del Diseño: Más allá del nivel superior del diseño tenemos, objetivos del usuario y objetivos del sistema. Usuarios: el sistema debe ser cómodo de utilizar, fácil de aprender y de usar,  que hable seguro y rápido. Sistema: El sistema deberá ser fácil de diseñar, implementar  y mantener, debería ser flexible, fiable, libre de errores y eficiente.

Mecanismos y Políticas: Los mecanismos determinan como hacer algo; las políticas determinan que hacer. La separación de políticas y mecanismos es importante por cuestiones de flexibilidad, las políticas probablemente cambian de un sitio a otro  o con el paso del tiempo.

Implementación: Tradicionalmente los sistemas operativos tenían que escribirse en un lenguaje ensamblador, sin embargo ahora se escriben en lenguajes de alto nivel, como C o C++.

ESTRUCTURA DEL SISTEMA OPERATIVO

Estructura Simple: Comienzan siendo sistemas pequeños, simples  y limitados y luego crecen más allá de su ámbito original.

Estructura en Niveles: Los sistemas operativos pueden dividirse en partes más pequeñas y más adecuadas, que lo que permitían los sistemas originales MS-DOS o UNIX. Los implementadores tenían más libertad para cambiar el funcionamiento interno del sistema y crear sistemas operativos modulares.

Microkernels: Este método estructura el sistema operativo eliminando todos los componentes no esenciales del kernel e implementándolos como programas del sistema y de nivel de usuario; el resultado es un kernel más pequeño.

Módulos: Usa las técnicas de programación orientada a objetos para crear un kernel modular. El kernel dispone de un conjunto de componentes fundamentales y enlaza dinámicamente los servicios adicionales, bien durante el arranque o en tiempo de ejecución.

MÁQUINAS VIRTUALES

La idea fundamental que subyace a una máquina virtual es la de abstraer el hardware de  la computadora, formando varios entornos de ejecución diferentes, creando así la ilusión de que cada  entorno de ejecución está operando en su propia computadora privada.

Beneficios:

Cada máquina virtual está completamente aislada de las demás por lo que no existen problemas de protección.

Es un medio perfecto para la investigación y el desarrollo de sistemas operativos.

Máquina Virtual JAVA

Es un programa nativo, es decir, ejecutable en una plataforma específica, capaz de interpretar y ejecutar instrucciones expresadas en un código binario especial (el Java bytecode), el cual es generado por el compilador del lenguaje Java.