|
Por: 11-05-2009 por jpsarmiento |
Categorías asociadas: Paralelo "C", Tema Libre
Fué uno de los primeros sistemas operativos de tiempo compartido; fué desarrollado en el Centro de Computación del MIT. Se presentó en 1961, y se utilizó en el MIT hasta 1973. Durante parte de este tiempo, el Proyecto MAC del MIT tuvo una segunda copia de CTSS, pero el sistema no se expandió más allá de dos sitios. CTSS fue descrito en una publicación presentada en la Spring Joint Computer Conference de 1962. La palabra “Compatible” en el nombre se refiere a la compatibilidad con el sistema operativo por lotes estándar para el 7094, el Fortran Monitor System (FMS). CTSS ejecuta una copia sin modificar de FMS, procesando un flujo de lotes estándar, en un 7094 virtual proporcionado por su característica segundo plano. Los trabajos FMS en segundo plano pueden acceder a las cintas con normalidad pero no pueden interferir con los procesos de tiempo compartido en primer plano o los recursos utilizados para soportarlos. Aunque no fue un sistema operativo influyente en con sus aspectos técnicos, tuvo una gran influencia al mostrar que el tiempo compartido era viable, las nuevas aplicaciones de los ordenadores fueron planteadas por primera vez entonces, y gracias a su sucesor, Multics, del que todos los sistemas operativos modernos toman planteamientos teóricos. CTSS tuvo una de las primeras utilidades computerizadas para formatear texto, y una de las primeras implementaciones de correo electrónico entre usuarios. Louis Pouzin, miembro del Centro de Computación del MIT, creó un comando llamado RUNCOM para CTSS, que ejecutaba una lista de comandos contenidos en un fichero; esta habilidad es el ancestro directo del shell script de Unix. RUNCOM también permitía la substitución de parámetros. CTSS utilizó un mainframe IBM 7094 modificado que tenía dos bancos de 32768 palabras de 36 bits como memoria principal en lugar de tener sólo uno, como es normal. Un banco estaba reservado para el programa supervisor de tiempo compartido, el otro para los programas de usuario. También tuvo un hardware de gestión de memoria especial, una interrupción de reloj con la habilidad de capturar ciertas instrucciones. Por: 11-05-2009 por bfcorralesx |
Categorías asociadas: Paralelo "C", Tema Libre
Multics (Multiplexed Information and Computing Service) fue uno de los primeros sistemas operativos de tiempo compartido y tuvo una gran influencia en el desarrollo de los posteriores sistemas operativos. Multics fue un de los primeros sistemas operativos que implementó un único nivel de almacenamiento para el acceso a los datos, desechando la clara distinción entre los ficheros (llamados segmentos en Multics) y los procesos en memoria. La memoria de un proceso consistía solamente en segmentos que estaban mapeados en su espacio de direcciones; para leer o escribir en ellos, el proceso simplemente utilizaba instrucciones normales de la CPU, y el sistema operativo tenía cuidado de asegurarse que todas las modificaciones fueran guardadas en disco. En la terminología POSIX, era como si cada fichero fuese mapeado; sin embargo, en Multics no existía el concepto de memoria de proceso, separado del de la memoria utilizada para mantener mapeados sobre los ficheros, como hace Unix. Toda la memoria del sistema formaba parte de algún segmento, que aparecía en el sistema de archivos; incluida la memoria temporal del proceso, la pila del núcleo, etc. Por: 11-05-2009 por lfmontalvan |
Categorías asociadas: Paralelo "C", Resumen de conferencia
A mi punto de vista el personaje que nos dió la conferencia lo hizo de una mala manera ya que solo pasaba aclarando que la conferencia era dirigida para los de Comunicaciones, lo que probocó la reacción de los estudiantes de Sistemas Informáticos más de una vez, pero bueno, centrándonos en el tema de la conferencia las “La Tecnología en las Comunicaciones”, me pareció llamativa, ya que con la ayuda de diapositivas explicaron el avance cronologico de las comunicaciones, también lo que me llamó la atención ue unas cuantas frases que si ponían a reflexionar como “Se Emprendedor”, “Plasma tus ideas”, etc. Por: 11-05-2009 por lfmontalvan |
Categorías asociadas: Paralelo "C", Pelicula Paralelo C
La película fue una bonita explicación de como se fundaron las dos más grandes coorporaciones que gobiernan el mundo tecnológico, lo que hay que resaltar en Bill Gates es que nunca deja de lado a sus amigos, y se deja ayudar, mientras que Steven Jobs se encerraba en sus pensamientos y tenía un mal caracter empresarial, esa es la razón que Bill pudo obtener el hardware de Apple con mucha facilidad para luego acoplarle su software y así crear Microsoft que conquistó a muchos de los usuarios deApple. La lucha entre estas dos coorporaciones es grande pero al final de cuentas Steven Jobs tuvo que dejar a un lado su arrogancia y su personalidad dominadora y arrodillarse a Bill Gates que con la ayuda de sus amigos supo como sobresalir. Por: 30-04-2009 por jpsarmiento |
Categorías asociadas: Paralelo "C", Planificación de procesos
Linux: Usa dos algoritmos: tiempo compartido y tiempo real
Windows XP: Utiliza el algoritmo de planificación de modo apropiativo basado en prioridades. Solaris : Utiliza una planificación de hebras que está basada en prioridades, definiendo cuatro tipos para planificación que son por orden de prioridad:
AIX: El sistema parece que tiene provisión de Tiempo Real, tal como se anuncio en su aparición, porque las tareas por enzima de la prioridad del “shed” no se planifican de forma UNIX y se pueden planificar del usuario. De hecho no es así porque no se pueden controlar las tareas que son con prioridad más favorable que “shed” que hace el sistema no preemtive y no se pude controlar la inversión de prioridad. Se puede hacer solo tiempo real muy limitado, cambiando el nucleo (con kernel extension) y con prohibición de utilizar muchos recursos. Mac: Utiliza el algoritmo planificador round-robin. Por: 29-04-2009 por jpsarmiento |
Categorías asociadas: Paralelo "C", Pelicula Paralelo C
Esta historia inicia en el campus universitario, en la década de los 70, desarrollando en su trama las aflicciones de los amigos Steve Jobs y Steve Wozniak, quien formaría Apple Computer, y los estudiantes de Harvard, Bill Gates, Steve Ballmer y los amigos de Gates Paul Allen, con quien crearía más adelante Microsoft. La historia se desenvuelve mostrando el talento de estos jóvenes que haciendo gala de una gran inventiva bosquejan los inicios de las computadoras personales. Precisamente una de las reflexiones más importantes que surgen al ver la película se centra en un comentario que Steve Jobs, hace a sus amigos, el en una actitud desaviante y vanguardista dice que ha venido al mundo a marcar un punto en el universo, que de no ser así sentencia que no tendría sentido su existencia, seguidamente hace una apología del trabajo de un artista o de un poeta y la relevancia que tendría su trabajo en la evolución humana, siendo él el protagonista de una nueva historia que se escribira dentro de la evolución humana. Una actitud que denota un espíritu comprometido con los cambios y las grandes transformaciones que la sociedad moderna demanda. De la misma manera en la pelicula es posible identificar en el compartamiento de Jobs un alto grado de confianza en si mismo y quizá algún toque de soberbia, elementos que mal manejados en la conducta humana pueden ser los causantes de choques desavenencias y riesgos innecesarios por el exceso de confianza elmentos donde es posible encontrar las razones de su quiebra temporal no obstante de su invaluable talento que más adelante lo llevaran a inventar el MP3 y a convertirse en uno de los principales accionistas de Disney. Esta pelicula es bastante interesante ya que es la historia real, tal y como sucedío y por ello es facil darce cuenta que Steve Jobs tuvo en sus manos, en cierta medida, a Microsoft, y que si se hubiera dado cuenta, ahora las cosas serían muy distintas. Por si no conoces la historia, Bill Gates se aprovechó de Steve Jobs y le copió su sistema operativo, creando el tan conocido Windows. Por: 29-04-2009 por jpsarmiento |
Categorías asociadas: Capitulo 3 (Procesos), Paralelo "C"
<!– @page { size: 21cm 29.7cm; margin: 2cm } P { margin-bottom: 0.21cm } –> Capítulo III Procesos: Un proceso es un programa en ejecución que consta de los siguientes estados: Nuevo: El proceso está siendo creado En Ejecución: Se están ejecutando las instrucciones En Espera: El proceso está esperando a que se produzca un suceso Preparado: El proceso está en espera de que le asignen a un procesador Terminado: Ha terminado la ejecución del proceso Cada proceso se representa en el sistema operativo mediante un bloque de control de procesos, el cual contiene muchos elementos de información asociados con un proceso específico, entre los que se incluyen: estado del proceso – contador de programa – registros de la CPU – información de la planificación de la CPU – información de gestión de memoria – información contable – información del estado de E/S. PLANIFICACIÓN DE PROCESOS Colas de Planificación: A medida que los procesos entran al sistema se colocan en una cola de trabajos que contiene todos los procesos del sistema. Los procesos que residen en memoria principal y están preparados y en espera de ejecución se encuentran en la cola de procesos preparados (lista enlazada, contiene un puntero al primer y último PCB de la lista). Cada PCB incluye un campo de puntero que apunta al siguiente PCB de la cola de procesos preparados. El sistema también incluye otras colas como son las colas de dispositivos. Planificadores: Durante el tiempo de vida, los procesos se mueven entre las diferentes colas de planificación. El SO como parte de la planificación debe seleccionar un proceso que se encuentran en las colas. Este proceso se lo realiza a través de un Planificador. En un sistema de procesamiento por lotes, se envía más procesos de los que se puede ejecutar de forma inmediata. Estos procesos se guardan en dispositivos de almacenamiento masivo, donde se mantiene para su posterior ejecución. Cambios de Contexto: Cuando se produce una interrupción el sistema tiene que guardar el contexto actual del proceso que se esta ejecutado en la CPU, de modo que se pueda restaurar dicho contexto cuando su procesamiento concluya, suspendiendo el proceso y reanudándolo después. OPERACIONES SOBRE LOS PROCESOS Creación de Procesos: Un proceso puede crear nuevos procesos mientras se ejecuta, para ellos se realiza una llamada al sistema. El proceso creador se denomina padre y el creado hijo. A su vez los procesos hijos pueden crear otros procesos creando un árbol de procesos. Los procesos se pueden identificar mediante un PID (Process Identifier). Terminación de Procesos: Un proceso termina cuando ejecuta su última instrucción y pide al sistema operativo que lo elimine usando la llamada al sistema exit(). COMUNICACIÓN INTERPROCESOS Sistemas de Memoria Compartida: Requiere que los procesos que estén comunicando establezcan una región de memoria compartida. Hay que recordar el SO evita que otro proceso pueda ingresar a direcciones de memoria de otro procesos, por cual los procesos cooperativos deben eliminar esta restricción. Sistema de Paso de Mensajes: Proporciona un mecanismo que permite a los procesos comunicarse y sincronizar sus acciones sin compartir el mismo espacio de direcciones Sincronización: El paso de mensajes puede ser con bloque o sin bloqueo, mecanismos también conocidos como síncrono y asíncrono. Envío con bloqueo-envío sin bloqueo – recepción con bloqueo – recepción sin bloqueo. Almacenamiento en Búfer: Sea la comunicación directa o indirecta los mensajes intercambiados por los procesos que se están comunicando residen en una cola temporal. Básicamente, tales colas se pueden implementar de tres maneras: capacidad cero, la cola tiene una longitud máxima de cero; capacidad limitada, la cola tiene una longitud finita n; capacidad ilimitada, la longitud de la cola es potencialmente infinita. Sockets Se define como un punto terminal de una comunicación. Una pareja de procesos que se comunica a través de una red emplea una pareja de sockets, uno para cada proceso. 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:
Gestión del Sistema de Archivos:
Gestión de Almacenamiento Masivo
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
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.
Abarcan todos los archivos de audio y video, como archivos convencionales
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. Por: 28-04-2009 por rmrivera |
Categorías asociadas: Paralelo "C", Planificación de procesos
el proceso de planificacion de FIFO y los demas proviene desde c++ lo que permite c++ es un leguaje exelente para programar por que permite con experoencia manipular la memoria atraves de punteros, arboles y otros c++ ha cido un lenguaje exelente para el diseño de SO. de hay que es fundamental saber programar bien en c++ para saber ser un buen diseñador de SO. Por: 27-04-2009 por EstebanYomairo |
Categorías asociadas: Capitulo 1 y 2, Capitulo 1-2, Capitulo 3, Capitulo 5, Capitulo 7, Capítulos 1-2, Paralelo "C", Planificación de procesos, Resumen de conferencia, Taller_HILOS, Uncategorized
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/ |
