Inicio
20:30
| Publicado por
Delthax
|
Bienvenidos
Este blog fue creado con el propósito de dar a conocer en resumen los temas vistos en clase de Sistemas Operativos de la Universidad Popular Autónoma del Estado de Puebla.
A la derecha encontraran un menú con los capítulos del curso.
Este blog fue creado por:
Fernando Montoro Fierro
Matricula 24500137
Capitulo 7
20:05
| Publicado por
Delthax
|
Trabajos procesos y threads.
Todos los sistemas modernos pueden hacer varias cosas a la vez. Aunque, estrictamente hablando, en cualquier instante de tiempo la CPU sólo está ejecutando un programa, en el transcurso de 1 segundo ha podido estar trabajando sobre varios programas, dando entonces a los usuarios la impresión de un cierto paralelismo. Un trabajo simplemente es el conjunto de procesos.
Objetos
Contiene dos partes principales:
· Colección de atributos (que no pueden ser cambiados por el usuario)
· Conjunto de métodos ( los métodos conforman lo que se llama la 'interfaz' del objeto.)
Cliente - Servidor
Cliente es un proceso que necesita de algún valor o de alguna operación externa para poder trabajar.
Servidor es la entidad que prove el valor o realiza la operación que requiere el cliente.
Núcleo monolítico
Está programado de forma no modular, y tiene un rendimiento mayor que un micro núcleo. Cualquier cambio a realizar en cualquier servicio requiere la recompilación del núcleo y el reinicio del sistema para aplicar los nuevos cambios. Un error en una rutina puede propagarse a todo el núcleo.
Está dividido en dos partes estructuradas:
· El núcleo dependiente del hardware
· Maneja las interrupciones del hardware
· Hace el manejo de bajo nivel de memoria y discos
· Trabaja con los manejadores de dispositivos de bajo nivel
· El núcleo independiente del hardware
· Se encarga de ofrecer las llamadas al sistema
· Maneja los sistemas de archivos
· Planifica procesos
Microkernel(Micronúcleo)
Es el tipo de núcleo de un sistema operativo que provee un conjunto de primitivas o llamadas al sistema mínimas, para implementar servicios básicos como espacios de direcciones, comunicación entre procesos y planificación básica.
Aquél que contiene únicamente el manejo de procesos y threads, el de manejo bajo de memoria, da soporte a las comunicaciones y maneja las interrupciones y operaciones de bajo nivel de entrada-salida. En los sistemas operativos que cuentan con este tipo de núcleo se usan procesos 'servidores' que se encargan de ofrecer el resto de servicios (por ejemplo el de sistema de archivos) y que utilizan al núcleo a través del soporte de comunicaciones.
Hacer clic sobre las imagenes para agrandar
Hacer clic sobre las imagenes para agrandar
Capitulo 6
18:07
| Publicado por
Delthax
|
Principios en el manejo de Entrada / Salida
Los temas a tratar en este capítulo tienen que ver con los mismos dispositivos utilizados de entrada – salida, controladores de dispositivos, acceso directo a la memoria, Principios en el software para el tema y relojes.
La clasificación anterior no es perfecta, porque existen varios dispositivos que generan entrada o salida que no pueden englobarse en esas categorías. Aunque existan algunos periféricos que no se puedan categorizar, todos están administrados por el sistema operativo.
Controladores de Dispositivos
Los controladores de dispositivos son los que permiten al sistema operativo interactuar con un periférico, haciendo una abstracción del hardware y proporcionando una interfaz que se hace algo estándar para utilizarlo. En pocas palabras es como un manual para una persona para utilizar cierto objeto, pero esto referido a un sistema operativo se enfoca a poder utilizar dispositivos.
Lo importante en todos estos dispositivos es que se debe ejercer un mecanismo para sincronizar el envío y llegada de datos de manera concurrente.
Para intercambiar datos o señales entre la computadora y los controladores, muchas veces se usan registros o secciones predefinidas de la memoria de la computadora. A este esquema se le llama 'manejo de entrada - salida mapeado por memoria.
Los controladores de dispositivo son programas añadidos al núcleo del sistema operativo, concebidos inicialmente para gestionar periféricos y dispositivos especiales, estos procesan, como su propio nombre indica, bloques de cierta longitud en bytes. Los controladores de dispositivo, aparecidos con el DOS 2.0, permiten añadir nuevos componentes al ordenador sin necesidad de rediseñar el sistema operativo.
Acceso directo a memoria (DMA)
Permite a cierto tipo de componentes de ordenador acceder a la memoria del sistema para leer o escribir independientemente de la CPU principal. Muchos sistemas hardware utilizan DMA, incluyendo controladores de unidades de disco, tarjetas gráficas y tarjetas de sonido. DMA es una característica esencial en todos los ordenadores modernos, ya que permite a dispositivos de diferentes velocidades comunicarse sin someter a la CPU a una carga masiva de interrupciones.
Esto se inventó con el propósito de liberar al CPU de la carga de atender a algunos controladores de dispositivos.
Una transferencia DMA consiste principalmente en copiar un bloque de memoria de un dispositivo a otro. En lugar de que la CPU inicie la transferencia, la transferencia se lleva a cabo por el controlador DMA.
Principio en el software entrada-salida
·
Manejador de interrupciones:
Manejador de interrupciones:
Esto es que el programador o el usuario no debe darse cuenta de los manejos de bajo nivel para los casos en que el dispositivo está ocupado y se debe suspender el proceso o sincronizar algunas tareas.
· Manejador de dispositivos:
El sistema debe proveer los manejadores de dispositivos necesarios para los periféricos, así como ocultar las peculiaridades del manejo interno de cada uno de ellos.
Las diferencias técnicas entre ellos no le deben importar, y los manejadores le deben ofrecer el mismo conjunto de rutinas para leer y escribir datos.
· Software independiente del dispositivo:
El sistema deberá ser capaz de ofrecer un conjunto de utilerías para acceder periféricos o programarlos de una manera consistente.
· Software para usuario:
La mayoría de las rutinas de entrada - salida trabajan en modo privilegiado, o son llamadas al sistema que se ligan a los programas del usuario formando parte de sus aplicaciones y que no le dejan ninguna flexibilidad al usuario en cuanto a la apariencia de los datos.
· Relojes
Juegan un papel decisivo en la sincronización de procesos, se calendarizan trabajos por lote y se asignan turnos de ejecución entre otras tareas relevantes.
Se cuenta con dos relojes en el sistema: uno que lleva la hora y fecha del sistema y que oscila entre 50 y 60 veces por segundo y el reloj que oscila entre 5 y 100 millones de veces por segundo y que se encarga de enviar interrupciones al CPU de manera periódica.
El reloj de mayor frecuencia sirve para controlar el tiempo de ejecución de los procesos, para despertar los procesos que están 'durmiendo' y para lanzar o iniciar procesos que fueron calendarizados.
Para mantener la hora y fecha del sistema generalmente se usa un registro alimentado por una pila de alta duración que almacena estos datos.
A continuacion se muestran los mapas conceptuales, en relacion a los dispositivos de entrada - salida
Haga clic para agrandar las imagenes
Capitulo 5
17:27
| Publicado por
Delthax
|
Administración de Procesos
Para administrar los procesos hay dos puntos muy importantes:
· Planificación del procesador
· Problemas de concurrencia
PLANIFICACION DEL PROCESADOR
Hay técnicas que se usan para decidir el tiempo de ejecución y cuanto se le asignan cada proceso de sistema como se había visto en capítulos anteriores para eso existen niveles y a continuación se describirán:
· Alto: descarta procesos que no son capaces de ejecutarse debido a los recursos existentes.
· Intermedio: descarta procesos que ayuden a lograr metas de rendimiento
· Bajo: decide a que proceso le toca ejecutarse
OBJETIVOS DE LOS PROCESOS
Justicia o Imparcialidad: Todos los procesos son tratados de la misma forma.
Maximizar la Producción: Debe finalizar el mayor manejo de procesos por unidad de tiempo.
Minimizar el Tiempo de Respuesta: Cada usuario ó proceso debe observar que el sistema le responda consistentemente a sus requerimientos.
Evitar Aplazamiento Indefinido: Los procesos deben terminar en un plazo finito de tiempo.
El Sistema Debe de Ser Predecible: Ante cargas ligeras debe responder rápido y antes las pesadas debe ir degradándolas paulatinamente.
hacer clic en la imagen para agrandar
CARACTERISTICAS
Cantidad de Entrada/Salida: Existen procesos que realizan una gran cantidad de operaciones de entrada y salida
Cantidad de Uso de CPU: Existen procesos que usan intensivamente la unidad central de procesamiento.
Procesos de Lote o Interactivos: Un proceso de lote es más eficiente en cuanto a la lectura de datos, ya que generalmente lo hace de archivos, mientras que un programa interactivo espera mucho tiempo por las respuestas de los usuarios.
Procesos en Tiempo Real: Si los procesos deben dar respuesta en tiempo real se requiere que tengan prioridad para los turnos de ejecución.
Longevidad de los Procesos: Existen procesos que tipicamente requeriran varias horas para finalizar su labor, mientras que existen otros que solonecesitan algunos segundos.
PLANIFICACION
Apropiativa : Una vez que a un proceso le toca su turno de ejecución ya no se le puede ser suspendido, ya no se le puede arrebatar el cpu.
No Apropiativa : Existe un reloj que lanza interrupciones periódicas en las cuales el planificador toma el control y decide si el mismo proceso seguirá ejecutándose o se le sedera el turno a otro proceso.
ASIGNACIÓN DEL TURNO DE EJECUCIÓN
Por prioridad: El de mayor prioridad se ejecuta primero. Si hay procesos con igual prioridad se ejecuta en orden de llegada.
Trabajo más corto primero: Difícil de llevar a cabo, necesita estimación de cuanto tiempo necesitara el proceso para terminar.
Primero en llegar, primero en ejecutarse: Los procesos que llegan reciben su turno conforme llegan.
Round Robin: Consiste en darle a cada proceso un intervalo de tiempo de ejecución y cada vez que se vence ese intervalo se copia el contesto de este, en el lugar seguro y se le pasa el turno a otro.
Tiempo restante más corto: Parecido al “trabajo mas corto primero” pero aquí se calcula en todo momento cuando el tiempo restante para terminar a los procesos.
Tasa de respuesta más alta: castiga o premia uno o más atributos de los procesos. Se puede combinar con Round Robin. No hay aplazamiento indefinido, es justo. UNIX usa Round Robin + Prioridad(tasa de respuesta má alta).
Por política: Se establece un reglamento específico que el planificador debe obedecer,no es justo.
PROBLEMAS DE CONCURRENCIA
Concurrencia: dos o más entidades llegan a un sitio al mismo tiempo.
Condiciones de carrera o competencia: dos o más procesos quieren tener un mismo recurso. Se usan locks para que un proceso no pueda ejecutarse mientras otro este ejecutándose.
Test and set lock: revisa si el recurso está ocupado (0,1), en cuanto se checa el recurso, el proceso se apropia de él.
Aplazamiento indefinido: consiste en el hecho de que uno o varios procesos nunca reciban el suficiente tiempo de ejecución para terminar su tarea.
Condición de espera circular: dos o más procesos forman una cadena de espera que los involucra a todos. Si se respeta la exclusión mutua esta condición nunca acaba.
DEADLOCK
Para que se genere deadlock debe haber:
· Hold and Wait
· Circular Wait
· Mutual Exclusion
· No preemption
El deadlock está en el sistema, pero no involucra a todos los procesos no pierde toda la productividad.
En el deadlock, si se quiere quitar el hod & wait, ciruclar wait, no preemption y mutal exclusion genera información inconsistente y tiempo perdido
Hay ciertos algoritmos que previenen el deadlock que son los siguientes:
· Asignación lineal de recursos: se etiquen números a los recursos. Los procesos sólo pueden solicitar recursos de manera ascendente o descendente. No evita el hold & wait evita circular.
· Asignar todo o nada: desperdicia recursos, se preasignan todos los recursos al proceso.
· Algoritmo del banquero: se dan ecursos cuando al menos un proceso va a acabar con lo que tiene o lo que sobra de los recursos. Evita saturación.
Hacer clic en la imagen para agrandar
Capitulo 4
16:53
| Publicado por
Delthax
|
Administración de memoria
Los Sistemas Operativos usan distintas técnicas para administrar la memoria como lo son la Multiprogramación, la paginación, la segmentación entre otras.
MULTIPROGRAMACION
Empezamos con la multiprogramación que es una técnica que permite que dos o más procesos ocupen la misma unidad de memoria principal. Dentro de la multiprogramación se encuentra el concepto de tiempo compartido, en donde cada usuario tiene acceso a una única computadora a través de terminales.
En la actualidad el CPU siempre está ocupado ejecutando procesos consecutivamente esto se debe gracias al abaratamiento de la RAM se dice esto ya que con el tiempo la RAM se hace mucho más barata y así se puede conseguir más sin tanta dificultad. El grado de multiprogramación es el tiempo promedio que el CPU está ocupado.
EL PROBLEMA DE LA RELOCALIZACIÓN
Este problema consiste en que los programas que tienen que cargarse a memoria real ya están compilados y ligados, de manera que internamente contienen una serie de referencias a direcciones de instrucciones, rutinas y procedimientos que ya no son válidas en el espacio de direcciones de memoria real de la sección en la que se carga el programa estos problemas surgen después de haber sido compilados los programas y que se podrían solucionar de la siguiente manera.
· Solución estática - usada para programas largos, si el programa es muy grande tardará mucho en resolver las nuevas direcciones pero después se ejecutará de manera rápida,pero lento al principio.
· Solución dinámica - usada para programas cortos, se inicia muy rápido pero realiza más instrucciones para poder resolver las direcciones al tiempo de ser corrido.
PARTICIONES
· Fijas: se crean cunado se enciende el equipo y permanecen con los tamaños iniciales hasta que se apague el equipo.
· Variables: se crearon para mejorar las particiones fijas creando particiones contiguas de tamaño variable. Cuando un programa es cargado en memoria RAM el sistema analiza los huecos disponibles con el tamaño suficiente para el programa.
ALGORITMOS PARA HUECOS EN LA MEMORIA
Primer ajuste: busca un hueco donde quepa el proceso este va a ser el primero que encuentre
Mejor ajuste: busca el espacio que mejor se ajuste tomando en cuenta el menor espacio extra
Peor ajuste: busca el espacio que mejor se ajuste tomando en cuenta el mayor espacio extra
Siguiente ajuste: se combina con los 3 ajustes anteriores
Quickfit - Los espacios libres y procesos estarán en listas diferentes dependiendo del tamaño
Se puede combinar con los 3 primeros ajustes.
OVERLAYS
El programador dividía lógicamente un programa muy grande en secciones que puedan almacenarse en las particiones de RAM.
MULTIPROGRAMACIÓN EN MEMORIA VIRTUAL
Ya que los programas van siendo más grandes y Robustos se creó la memoria virtual.
La memoria virtual es una técnica de administración de la memoria real que permite al sistema operativo brindarle al software de usuario y a sí mismo un espacio de direcciones mayor que la memoria real o física. Se usa el swap para ejecutar fragmentos del programa y su espacio debe ser mayor al programa que se desea ejecutar.
Memoria Virtual = RAM + SWAP
PAGINACIÓN PURA
Manejo de memoria del sistema operativo que consiste en dividir dinámicamente los programas en unidades de tamaño fijo, para que se manipulen de RAM a disco y viceversa. A este proceso se le conoce como intercambio ó swapping.
SEGMENTACIÓN
La segmentación se aprovecha del hecho de que los programas se dividen en partes lógicas, como son las partes de datos, de código y de pila (stack).Asigna particiones de memoria a cada segmento de un programa buscando hacer fácil compartir segmentos intercambiarlos con memoria y los medios de almacenamiento secundarios.
Partes de los segmentos:
· texto
· datos
· stack
· heap
Dentro del tema de segmentación y paginación se estudia la Anomalía de Belady la cual es un efecto descubierto y demostrado en 1969 por el científico de la computación Laszlo Belady, por el cual es posible tener más fallos de página (Page Fault)al aumentar el número de marcos en la memoria física utilizando el método FIFO en sistemas de gestión de memoria virtual con paginación.
Se econtró que la anomalia de Belady está ma estudiada pues es normal que se tenga page fault al cargar por primera vez los segmentos a la RAM
Un esquema más sofisticado es la segmentación paginada. Puede hacerse una combinación de segmentación y paginación para obtener las ventajas de ambas. En lugar de tratar un segmento como una unidad contigua, este puede dividirse en páginas. Cada segmento puede ser descrito por su propia tabla de páginas.
haga clic sobre la imagen para agrandar
Capitulo 3
16:38
| Publicado por
Delthax
|
Tipos de Sistemas de Archivos
Los sistemas de archivos o ficheros estructuran la información guardada en una unidad de almacenamiento. La mayoría de los sistemas operativos manejan su propio sistema de archivos por eso es difícil que se puedan compartir archivos entre sistemas operativos. A continuación veremos los tipos de sistemas de archivos de acuerdo a su clasificación.
Almacenamiento Físico de Datos
El almacenamiento se relaciona con dos procesos:
Lectura de datos almacenados para luego transferirlos a la memoria de la computadora.
Escritura o grabación de datos para que más tarde se puedan recuperar y utilizar.
Los medios de almacenamiento así como la tecnología avanza, van evolucionando de manera constante.
Algoritmos de planificación de peticiones
Primero en llegar, primero en ser servido (FIFO): Las peticiones son encoladas de acuerdo al orden en que llegaron y de esa misma forma se van leyendo o escribiendo las mismas. La ventaja de este algoritmo es su simplicidad y no causa sobrecarga, su desventaja principal es que no aprovecha para nada ninguna característica de las peticiones, de manera que es muy factible que el brazo del disco se mueva muy ineficientemente, ya que las peticiones pueden tener direcciones en el disco unas muy alejadas de otras.
Primero el más cercano a la posición actual: En este algoritmo las peticiones se ordenan de acuerdo a la posición actual de la cabeza lectora, sirviendo primero a aquellas peticiones más cercanas y reduciendo, así, el movimiento del brazo, lo cual constituye la ventaja principal de este algoritmo. Su desventaja consiste en que puede haber solicitudes que se queden esperando para siempre, en el infortunado caso de que existan peticiones muy alejadas y en todo momento estén entrando peticiones que estén más cercanas.
Por exploración (algoritmo del elevador): En este algoritmo el brazo se estará moviendo en todo momento desde el perímetro del disco hacia su centro y viceversa, resolviendo las peticiones que existan en la dirección que tenga en turno. La ventaja de este algoritmo es que el brazo se moverá mucho menos que en FIFO y evita la espera indefinida; su desventaja es que no es justo, ya que no sirve las peticiones en el orden en que llegaron, además de que las peticiones en los extremos interior y exterior tendrán un tiempo de respuesta un poco mayor.
Por exploración circular: Es una variación del algoritmo anterior, con la única diferencia que al llegar a la parte central, el brazo regresa al exterior sin resolver ninguna petición, lo cual proveerá un tiempo de respuesta más cercana al promedio para todas las peticiones, sin importar si están cercas del centro o del exterior.
Asignación del espacio de almacenamiento
Con Asignación contigua: Cuando se crea un archivo se le asigna un unico conjunto contiguo de bloques. Esta es una estrategia de asignación previa que emplea secciones de tamaño variable. La tabla de asignación de archivos necesita solo una entrada por cada archivo, que muestre el bloque de comienzo y la longitud del archivo. La asignación contigua es la mejor desde el punto de vista de un archivo secuencias individual.
Con Asignación encadenada: La asignación normalmente se hace con bloques individuales. Cada bloque contendrá un puntero al siguiente bloque de la cadena. La tabla de asignación de archivos necesita de nuevo una sola entrada por cada archivo que muestre el bloque de comienzo y la longitud del archivo. No hay que preocuparse por la fragmentación externa porque solo se necesita un solo bloque cada vez. Este tipo de organización física se ajusta mejor a los archivos secuenciales que van a ser procesados secuencialmente.
La asignación indexada: Trata mucho de los problemas de las asignaciones contigua y encadenada. La tabla de asignación de archivos contienen un índice separado de un nivel para cada archivo; el índice posee una entrada para cada sección asignada al archivo. Los índices no están almacenados físicamente como parte de la tabla de asignación de archivos. El índice del archivo se guardara en un bloque aparte y la entrada del archivo en la tabla de asignación apuntada a dicho bloque. La asignación indexada soporta tanto el acceso secuencial como el acceso directo a los archivos.
Asignación con índices ( indexada ): En este esquema se guarda en el directorio un bloque de índices para cada archivo, con apuntadores hacia todos sus bloques constituyentes, de mabnera que el acceso directo se agiliza notablemente, a cambio de sacrificar varios bloques para almacenar dichos apuntadores. Cuando se quiere leer un archivo o cualquiera de sus partes, se hacen dos accesos: uno al bloque de índices y otro a la dirección deseada. Este es un esquema excelente para archivos grandes pero no para pequeños, porque la relación entre bloques destinados para índices respecto a los asignados para datos es incosteable..
Métodos de acceso en los sistemas de archivos
Metodo de Acceso Secuencial: El acceso secuencial significa que un grupo de elementos es accedido en un predeterminado orden secuencial. El acceso secuencial es a veces la única forma de acceder a los datos, por ejemplo en una cinta de cassette. También puede ser el método de acceso elegido, para simplemente procesar una secuencia de datos en orden.
Metodo de Acceso Secuencial Indexado: Método de acceso secuencial indexado. Método común de acceso a disco que almacena datos en forma secuencial, al tiempo que mantiene un índice de campos claves para todos los registros en el archivo para acceso directo. El orden secuencial sería el más comúnmente usado para el procesamiento por lotes y la impresión (número de cuenta, nombre, etc.).
Archivos Secuenciales: La forma mas común de estructura de archivo es el archivo secuencial. En este tipo de archivo, un formato fijo es usado para los registros. Todos los registros tienen el mismo tamaño, constan del mismo numero de campos de tamaño fijo en un orden particular. Como se conocen la longitud y la posición de cada campo, solamente los valores de los campos se necesitan almacenarse; el nombre del campo y longitud de cada campo son atributos de la estructura de archivos.
Operaciones soportadas por el subsistema de archivos
Crear : Permite crear un archivo sin datos, con el propósito de indicar que ese nombre ya está usado y se deben crear las estructuras básicas para soportarlo.
Borrar : Eliminar el archivo y liberar los bloques para su uso posterior.
Abrir : Antes de usar un archivo se debe abrir para que el sistema conozca sus atributos, tales como el dueño, la fecha de modificación, etc. _ Cerrar ( close ): Después de realizar todas las operaciones deseadas, el archivo debe cerrarse para asegurar su integridad y para liberar recursos de su control en la memoria.
Leer o Escribir : Añadir información al archivo o leer el caracter o una cadena de caracteres a partir de la posición actual. _ Concatenar ( append ): Es una forma restringida de la llamada `write', en la cual sólo se permite añadir información al final del archivo.
Localizar : Para los archivos de acceso directo se permite posicionar el apuntador de lectura o escritura en un registro aleatorio, a veces a partir del inicio o final del archivo.
Leer atributos: Permite obtener una estructura con todos los atributos del archivo especificado, tales como permisos de escritura, de borrado, ejecución, etc.
Poner atributos: Permite cambiar los atributos de un archivo, por ejemplo en UNIX, donde todos los dispositivos se manejan como si fueran archivos, es posible cambiar el comportamiento de una terminal con una de estas llamadas.
Renombrar : Permite cambiarle el nombre e incluso a veces la posición en la organización de directorios del archivo especificado. Los subsistemas de archivos también proveen un conjunto de llamadas para operar sobre directorios, las más comunies son crear, borrar, abrir, cerrar, renombrar y leer. Sus funcionalidades son obvias, pero existen también otras dos operaciones no tan comunes que son la de `crear una liga' y la de `destruir la liga'. La operación de crear una liga sirve para que desde diferentes puntos de la organización de directorios se pueda acceder un mismo directorio sin necesidad de copiarlo o duplicarlo. La llamada a `destruir nla liga' lo que hace es eliminar esas referencias, siendo su efecto la de eliminar las ligas y no el directorio real. El directorio real es eliminado hasta que la llmada a `destruir liga' se realiza sobre él.
Sistemas de Archivos Aislados
Los sistemas de archivos aislados son aquellos que residen en una sola computadora y no existe la posibilidad de que, aún estando en una red, otros sistemas puedan usar sus directorios y archivos.
Sistemas de Archivos Compartidos o de Red
Estos sistemas de archivos es factible accederlos y usarlos desde otros nodos en una red. Generalmente existe un `servidor' que es la computadora en donde reside el sistema de archivos físicamente, y por otro lado están los `clientes', que se valen del servidor para ver sus archivos y directorios de manera como si estuvieran localmente en el cliente.
Un Sistema de archivos de red (NFS) permite a los hosts remotos montar sistemas de archivos sobre la red e interactuar con esos sistemas de archivos como si estuvieran montados localmente. Esto permite a los administradores de sistemas consolidar los recursos en servidores centralizados en la red.
Todas las versiones de NFS pueden utilizar el Protocolo de control de transmisiones (TCP) ejecutándose sobre una red IP. En el caso de NFSv4, éste lo requiere. NFSv2 y NFSv3 pueden utilizar el Protocolo de datagrama de usuarios (UDP) sobre una red IP para proporcionar conexiones de red sin supervisión (stateless) entre el cliente y el servidor.
Capitulo 2
16:08
| Publicado por
Delthax
|
Sistemas Operativos por su Estructura
Estructura Monolítica
Estos sistemas tienen un núcleo grande y complejo y tiene que ver con todos los servicios del sistema. Está programado de forma no modular, y tiene un rendimiento mayor que un micronúcleo. Pero si se quiere realizar cualquier cambio en cualquier servicio se requiere de la recompilación del núcleo y el reinicio del sistema para aplicar los nuevos cambios.
Un sistema operativo con núcleo monolítico concentra todas las funcionalidades posibles como lo son la planificación, el sistema de archivos, las redes, los controladores de dispositivos,la gestión de memoria dentro de un programa y el mismo puede tener un tamaño considerable aunque deberá ser recompilado por completo al añadir una nueva funcionalidad. Todos los componentes funcionales del núcleo tienen acceso a todas sus estructuras de datos internas y a sus rutinas. Un error en una rutina puede propagarse a todo el núcleo.
Entre los sistemas operativos que cuentan con núcleos monolíticos se encuentran:
· Núcleo tipo Unix
o Linux
o Syllable
o Unix
o BSD (FreeBSD,NetBSD,OpenBSD)
o Solaris
· Núcleos tipo DOS
o DR-DOS
o MS-DOS
Estructura jerárquica
Máquina Desnuda
Que es una maquina desnuda? Pues son las características del hardware, sin ningún revestimiento lógico (software).
Máquina Extendida
Máquina virtual que se constituye a partir de la máquina desnuda dotada de módulos lógicos esto se representa en las siguientes dos ramas:
· Máquina Extendida Interna Operaciones elementales y comunes que actúan sobre algún elemento físico del sistema
· Máquina Extendida Externa Módulos físicos que pueden extraerse y funcionar sobre el nivel de máquina extendida interna
Máquina Virtual.
En informática una máquina virtual es un software que emula a una computadora y puede ejecutar programas como si fuese una computadora real. Este software en un principio fue definido como "un duplicado eficiente y aislado de una máquina física". La acepción del término actualmente incluye a máquinas virtuales que no tienen ninguna equivalencia directa con ningún hardware real.
Una característica esencial de las máquinas virtuales es que los procesos que ejecutan están limitados por los recursos y abstracciones proporcionados por ellas. Estos procesos no pueden escaparse de esta "computadora virtual".
Uno de los usos domésticos más extendidos de las máquinas virtuales es ejecutar sistemas operativos para "probarlos". De esta forma podemos ejecutar un sistema operativo que queramos probar (GNU/Linux, por ejemplo) desde nuestro sistema operativo habitual (Mac OS X por ejemplo) sin necesidad de instalarlo directamente en nuestra computadora y sin miedo a que se desconfigure el sistema operativo primario.
Cliente-servidor
Microkernel es un tipo de núcleo de un sistema operativo que provee un conjunto de primitivas o llamadas al sistema mínimas, para implementar servicios básicos como espacios de direcciones, comunicación entre procesos y planificación básica.
Todos los otros servicios (gestión de memoria, sistema de archivos, operaciones de E/S, etc.), que en general son provistos por el núcleo, se ejecutan como procesos servidores en espacio de usuario.
Las principales ventajas de su utilización son la reducción de la complejidad, la descentralización de los fallos (un fallo en una parte del sistema no lo colapsaría por completo) y la facilitación para crear y depurar controladores de dispositivos.
Por otro lado, sus principales dificultades son la complejidad en la sincronización de todos los módulos que componen el micronúcleo y su acceso a la memoria, la anulación de las ventajas de Zero Copy, la Integración con las aplicaciones. Además, los procesadores y arquitecturas modernas de hardware están optimizadas para sistemas de núcleo que pueden mapear toda la memoria.
Sistemas Operativos por Servicios
Monousuarios
Los sistemas operativos monousuarios son aquéllos que soportan a un usuario a la vez, sin importar el número de procesadores que tenga la computadora o el número de procesos o tareas que el usuario pueda ejecutar en un mismo instante de tiempo. Las computadoras personales típicamente se han clasificado en este renglón.
Multiusuarios
Los sistemas operativos multiusuarios son capaces de dar servicio a más de un usuario a la vez, ya sea por medio de varias terminales conectadas a la computadora o por medio de sesiones remotas en una red de comunicaciones. No importa el número de procesadores en la máquina ni el número de procesos que cada usuario puede ejecutar simultáneamente.
Monotareas
Los sistemas monotarea son aquellos que sólo permiten una tarea a la vez por usuario. Puede darse el caso de un sistema multiusuario y monotarea, en el cual se admiten varios usuarios al mismo tiempo pero cada uno de ellos puede estar haciendo solo una tarea a la vez.
Multitareas
Un sistema operativo multitarea es aquél que le permite al usuario estar realizando varias labores al mismo tiempo. Por ejemplo, puede estar editando el código fuente de un programa durante su depuración mientras compila otro programa, a la vez que está recibiendo correo electrónico en un proceso en background. Es común encontrar en ellos interfaces gráficas orientadas al uso de menús y el ratón, lo cual permite un rápido intercambio entre las tareas para el usuario, mejorando su productividad.
Uniproceso
Un sistema operativo uniproceso es aquél que es capaz de manejar solamente un procesador de la computadora, de manera que si la computadora tuviese más de uno le sería inútil. El ejemplo más típico de este tipo de sistemas es el DOS y MacOS.
Multiproceso
Un sistema operativo multiproceso se refiere al número de procesadores del sistema, que es más de uno y éste es capaz de usarlos todos para distribuir su carga de trabajo. Generalmente estos sistemas trabajan de dos formas: simétrica o asimétricamente. Cuando se trabaja de manera asimétrica, el sistema operativo selecciona a uno de los procesadores el cual jugará el papel de procesador maestro y servirá como pivote para distribuir la carga a los demás procesadores, que reciben el nombre de esclavos. Cuando se trabaja de manera simétrica, los procesos o partes de ellos (threads) son enviados indistintamente a cualesquira de los procesadores disponibles, teniendo, teóricamente, una mejor distribución y equilibrio en la carga de trabajo bajo este esquema.
Sistemas Operativos por la Forma de Ofrecer sus Servicios
Estos se clasifican claro como lo dice el título en la forma de ofrecer sus servicios en distintos ámbitos de la Tecnología.
Sistemas Operativos de Red
Es un componente software de una computadora que tiene como objetivo coordinar y manejar las actividades de los recursos del ordenador en una red de equipos. Consiste en un software que posibilita la comunicación de un sistema informático con otros equipos en el ámbito de una red.
Dependiendo del fabricante del sistema operativo de red, tenemos que el software de red para un equipo personal se puede añadir al propio sistema operativo del equipo o integrarse con él. Netware de Novell es el ejemplo más familiar y famoso de sistema operativo de red donde el software de red del equipo cliente se incorpora en el sistema operativo del equipo. El equipo personal necesita ambos sistema operativos para gestionar conjuntamente las funciones de red y las funciones individuales.
Sistemas Operativos Distribuídos
Los sistemas operativos distribuídos abarcan los servicios de los de red, logrando integrar recursos ( impresoras, unidades de respaldo, memoria, procesos, unidades centrales de proceso ) en una sola máquina virtual que el usuario accede en forma transparente. Es decir, ahora el usuario ya no necesita saber la ubicación de los recursos, sino que los conoce por nombre y simplementa los usa como si todos ellos fuesen locales a su lugar de trabajo habitual.
Todo lo anterior es el marco teórico de lo que se desearía tener como sistema operativo distribuído, pero en la realidad no se ha conseguido crear uno del todo, por la complejidad que suponen: distribuír los procesos en las varias unidades de procesamiento, reintegrar sub-resultados, resolver problemas de concurrencia y paralelismo, recuperarse de fallas de algunos recursos distribuídos y consolidar la protección y seguridad entre los diferentes componentes del sistema y los usuarios.
Hacer clic en la imagen para agrandar
Capitulo 1
14:37
| Publicado por
Delthax
|
Sistema operativo
Un sistema operativo es un conjunto de programas que administra los recursos para ofrecer distintos servicios a los usuarios. El usuario sería incapaz de poder trabajar con un computador sin un S.O. ya que se necesita que algo administre el hardware.
A finales de los años cuarenta el uso de las computadoras era específico para empresas que podían pagar precios elevados por ellas y además no existían los sistemas operativos. Aunque las tecnologías aplicadas en las computadoras digitales han cambiado mucho desde principios de las computadoras, la mayoría utiliza la arquitectura de Von Neumann. Pero los Sistemas operativos ahora son más fáciles de usar y son más amigables con los usuarios.
Para empezar podemos ver las generaciones de las computadoras, que están divididas en cuatro.
Primera Generación de Computadoras
La primera generación de computadoras estaban construidas a mano usando circuitos que contenían relés y tubos de vacío, y usaron tarjetas perforadas o cinta de papel perforado para la entrada de datos y como medio de almacenamiento principal. El almacenamiento temporal fue proporcionado por las líneas de retraso acústicas o por los tubos de William.
Segunda Generación de Computadoras
La segunda generación de computadoras reemplazó a las válvulas de vacío en los circuitos de las computadoras. El invento del transistor hizo posible una nueva generación de computadoras, más rápidas, más pequeñas, y con menores necesidades de ventilación. Las computadoras de la segunda generación también utilizaban redes de núcleos magnéticos en lugar de tambores giratorios para el almacenamiento primario. Estos núcleos contenían pequeños anillos de material magnético, enlazados entre sí, en los cuales podían almacenarse datos e instrucciones.
Las computadoras de la Segunda Generación eran sustancialmente más pequeñas y rápidas que las de bulbos, y se usaban para nuevas aplicaciones, como en los sistemas para reservación en líneas aéreas, control de tráfico aéreo y simulaciones de uso general. Las empresas comenzaron a aplicar las computadoras en las tareas de almacenamiento de registros, como manejo de inventarios, nómina y contabilidad. Las computadoras de segunda generación son más pequeñas y consumen menos electricidad que las anteriores, la forma de comunicación con estas nuevas computadoras es mediante lenguajes más avanzados que el lenguaje de máquina, y que reciben el nombre de "lenguajes de alto nivel" o lenguajes de programación.
Las características principales de las computadoras de la segunda generación son:
· Estaban construidas con transistores
· Se programaban con lenguajes de alto nivel
· Se inventa la microprogramación, y esto ayuda en el desarrollo de las CPU
· Se vende el primer sistema de disco magnético RAMAC. Usaba 50 discos de metal de 61 cm, con 100 pistas por lado. Podía guardar 5 megabytes.
· El primer lenguaje de programación de propósito general de alto-nivel, FORTRAN, también estaba desarrollándose en IBM alrededor de este tiempo.
Tercera Generación de Computadoras
La Tercera generación de computadoras (1964-1971) A mediados de los años 60 se produjo la invención del circuito integrado o microchip, por parte de Jack St. Claire Kilby y Robert Noyce. Después llevó a Ted Hoff a la invención del hols en Intel. A finales de 1960, investigadores como George Gamow notó que las secuencias de nucleótidos en el ADN formaban un código, otra forma de codificar o programar. A partir de esta fecha, empezaron a empaquetarse varios transistores diminutos y otros componentes electrónicos en un solo chip o encapsulado, que contenía en su interior un circuito completo: un amplificador, un oscilador, o una puerta lógica. Naturalmente, con estos chips (circuitos integrados) era mucho más fácil montar aparatos complicados: receptores de radio o televisión y computadoras. En 1965, IBM anunció el primer grupo de máquinas construidas con circuitos integrados, que recibió el nombre de serie 360. Estas computadoras de tercera generación sustituyeron totalmente a los de segunda, introduciendo una forma de programar que aún se mantiene en las grandes computadoras actuales.
Las principales características de la Tercera generación de computadoras:
· Menor consumo de energía
· Apreciable reducción del espacio
· Aumento de fiabilidad
· Teleproceso
· Multiprogramación
· Renovación de periféricos
· Minicomputadoras, no tan costosas y con gran capacidad de procesamiento. Algunas de las más populares fueron la PDP-8 y la PDP-11
Cuarta Generación de Computadoras
La denominada Cuarta Generación (1971 a la fecha) es el producto de la micro miniaturización de los circuitos electrónicos. El tamaño reducido del microprocesador de chips hizo posible la creación de las computadoras personales (PC). Hoy en día las tecnologías LSI (Integración a gran escala) y VLSI (integración a muy gran escala) permiten que cientos de miles de componentes electrónicos se almacenen en un chip. Usando VLSI, un fabricante puede hacer que una computadora pequeña rivalice con una computadora de la primera generación que ocupaba un cuarto completo. Hicieron su gran debut las microcomputadoras.
Suscribirse a:
Entradas
(Atom)
Fernando Montoro Fierro Sistemas Operativos 2011 UPAEP. Con la tecnología de Blogger.