54
ESCUELA DE INGENIERIA DE SISTEMAS PROGRAMA DE EXPERIENCIA LABORAL CURSO: SISTEMAS OPERATIVOS Piura, 19 de Mayo de 2012

Modulo de Sistemas Operativos PROGRAMA EXPERIENCIA LABORAL

Embed Size (px)

DESCRIPTION

MODULO DE SISTEMAS OPERATIVOS PROGRAMA DE EXPERIENCIA LABORAL UNIVERSIDAD CESAR VALLEJO PIURA

Citation preview

Page 1: Modulo de Sistemas Operativos PROGRAMA EXPERIENCIA LABORAL

ESCUELA DE INGENIERIA DE SISTEMAS

PROGRAMA DE EXPERIENCIA LABORAL

CURSO:

SISTEMAS OPERATIVOS

Piura, 19 de Mayo de 2012

AUTOR ING. CIP GUIOMAR WILDER VILELA SALAZAR

Page 2: Modulo de Sistemas Operativos PROGRAMA EXPERIENCIA LABORAL

ESCUELA DE INGENIERIA DE SISTEMAS CURSO:PROGRAMA DE EXPERIENCIA LABORAL SISTEMAS OPERATIVOS

SILABO DE SISTEMAS OPERATIVOS

I. DATOS GENERALES

Programa curricular : PROGRAMA DE EXPERIENCIA LABORALMódulo : SISTEMAS OPERATIVOSCódigo del curso :Semestre Académico :Duración : 4 SEMANASCréditos : 5 CREDITOSHoras semanales : 15 HORAS SEMANALESDocente : ING CIP GUIOMAR WILDER VILELA SALAZAREmail : [email protected]

II. FUNDAMENTACIÓN

El curso consta de Teoría y Laboratorio. La parte teórica está orientada a brindar al estudiante una idea clara de los fundamentos de la operación de los Sistemas Informáticos y de la forma en la que los Sistemas operativos llevan a cabo la administración de los recursos del sistema. Asimismo se ocupa de afirmar los conocimientos teóricos con la presentación de casos hipotéticos y/o reales en los que se vea la aplicación de las diferentes técnicas estudiadas

III. COMPETENCIA Utiliza los conceptos básicos y avanzados del funcionamiento y administración

de los recursos de un sistema operativo valorando la importancia que este tiene para el entendimiento del funcionamiento de una computadora.

Identifica, Relaciona y Analiza los diferentes recursos de una computadora caracterizándola desde la perspectiva del sistema operativo.

Instala, configura, administra y utiliza de manera avanzada el sistema operativo de una computadora

Optimiza el funcionamiento

Página 2ING CIP GUIOMAR WILDER VILELA SALAZAR

Page 3: Modulo de Sistemas Operativos PROGRAMA EXPERIENCIA LABORAL

ESCUELA DE INGENIERIA DE SISTEMAS CURSO:PROGRAMA DE EXPERIENCIA LABORAL SISTEMAS OPERATIVOS

IV. PROGRAMACIÓN ACADEMICA

CAPACIDADES Y ACTITUDES

CONOCIMIENTOS ESTRATEGIAS DE APRENDIZAJE

FUEN

TES DE INFORMACIÓN

PRIMERA UNIDAD: SEMANA 1 EVOLUCION Y APLICACIÓN DE SISTEMAS OPERATIVOS

El estudiante explicará los componentes de un sistema operativo, así como el objetivo,la función y las características de diferentes sistemas operativos.

1.1 Definición y funciones de un S.O.1.2 Historia y evolución de los S.O.1.3 Estructuras de los sistemas operativos

Investigar y redactar los conceptos de la lista de palabras clave.• Realizar un trabajo de investigación acerca de un S.O comercial incluyendo: historia, objetivo, funciones, modo de funcionamiento de los administradores de los recursos (procesador, memoria, periféricos y archivos). Se recomienda equipos de 3 a 4 estudiantes.• Presentar el resultado de la investigación ante el grupo. De esa forma todos conocen de todos los sistemas operativos investigados.• Si es posible, realizar una visita a una instalación con ambiente multiusuario.

1, 2, 3, 6, 8

PRIMERA UNIDAD: SEMANA 1 ORGANIZACION DE PROCESOS.

Entenderá la alternancia del procesador durante la multiprogramación.

2.1 Descripción y control de procesos.2.2 Multitareas.2.3 Estructura de información de procesos.2.4 Estados del Proceso.2.5 Procesos ligeros.2.6 Planificación.2.7 Señales y

• Investigar y redactar los conceptos de la lista de palabras clave.• Identificar los conceptos investigados y su aplicación mediante un ejemplo de multiprogramación proporcionado en clase.

1, 2, 3, 4, 5,6, 7, 11

Página 3ING CIP GUIOMAR WILDER VILELA SALAZAR

Page 4: Modulo de Sistemas Operativos PROGRAMA EXPERIENCIA LABORAL

ESCUELA DE INGENIERIA DE SISTEMAS CURSO:PROGRAMA DE EXPERIENCIA LABORAL SISTEMAS OPERATIVOS

excepciones.2.8 Temporizadores.2.9 Servidores y demonios.

• Desarrollar las prácticas de esta unidad.

PRIMERA UNIDAD: SEMANA 2 PLANIFICACION DE PROCESOS.

Aplicará las diferentes técnicas de corto, mediano y largo plazo de asignación del procesador.

3.1 Planeación de trabajos (jobscheduling).3.2 Conceptos básicos.3.3 Tipos de planeación.3.3.1 First In First Out (FIFO).3.3.2 Round Robin (RR).3.3.3 Shortest Job First (SJF).3.3.4 Shortest Remaining Time (STR).3.3.5 Highest Response Ratio Next(HNR).3.4 Multiprocesamiento.3.5 Conceptos básicos.3.6 Paralelismo.3.7 Sistemas multiprocesamiento.3.8 Organización del multiprocesador.3.9 Sistemas operativos del multiprocesador.

Investigar y redactar los conceptos de la lista de palabras clave.• Identificar los conceptos investigados y su aplicación durante el ejemplo del multiproceso proporcionado en clase.• Desarrollar las prácticas de esta unidad.

1, 2, 3, 4, 5,6, 7, 11

PRIMERA UNIDAD : SEMANA 2 ORGANIZACION DE LA MEMORIA

Entenderá las diferentes estrategias de obtención colocación, asignación y reemplazo.

4.1 Gestión de memoria.4.1.1 Organización de la memoria.4.1.2 Administrador de la memoria.4.1.3 Jerarquía de la memoria.4.1.4 Estrategias para la administración de la memoria.4.1.5 Multiprogramación con particiones fijas y variables.4.2 Memoria real.4.2.1 Administración de la memoria con mapa de bits.4.2.2 Administración de la memoria con listas enlazadas.4.2.3 Distribución del espacio para intercambio.4.3 Memoria virtual.

Investigar y redactar los conceptos de la lista de palabras clave.• Integrar grupos de trabajo para desarrollar los temas de la unidad.• Investigar y exponer su tema.• Desarrollar las prácticas de esta unidad.

1, 2, 3, 4, 5,6, 9

Página 4ING CIP GUIOMAR WILDER VILELA SALAZAR

Page 5: Modulo de Sistemas Operativos PROGRAMA EXPERIENCIA LABORAL

ESCUELA DE INGENIERIA DE SISTEMAS CURSO:PROGRAMA DE EXPERIENCIA LABORAL SISTEMAS OPERATIVOS

4.3.1 Paginación.4.3.2 Segmentación.4.3.3 Algoritmos de sustitución de páginas.4.3.4 Aspectos de diseño para el sistema.4.3.5 Liberación de páginas.

PRIMERA UNIDAD: SEMANA 2 SISTEMAS DE ENTRADA/SALIDA

Explicará el objetivo, las funciones y los principios de Hardware y Software de los dispositivos deE/S con especial atención a discos y terminales.

5.1 Principios de hardware de I/O.5.1.1 Dispositivos de I/O.5.1.2 Controladores de dispositivos.5.2 Principios de software de I/O.5.2.1 Objetivos del software de I/O.5.2.2 Manejadores de interrupciones.5.2.3 Manejador de dispositivos.5.2.4 Software de I/O independiente de los dispositivos.5.2.5 Espacio del usuario para software de I/O.5.3 Discos RAM.5.4 Discos.5.4.1 Hardware de discos.5.4.2 Software para discos.5.5 Relojes.5.5.1 Hardware de discos.5.5.2 Software reloj.5.5.3 Manejador del reloj.5.6 Terminales.5.6.1 Hardware de terminales.5.6.2 Manejadores.

Investigar y redactar los conceptos de la lista de palabras clave.• Generar grupos de trabajo para desarrollar los temas de la unidad.• Investigar y exponer su tema.

1, 2, 3, 4, 6

SEGUNDA UNIDAD: SEMANA 3 SISTEMA DE ARCHIVOS.

Explicará el objetivo, las funciones y las características de diseño de un sistema de archivos e identificar el sistema

6.1 Sistema de archivos.6.2 Jerarquía de datos.6.3 tipos de archivos.6.4 Interfase con el usuario.6.4.1 El sistema de archivo visto por el usuario.

Investigar y redactar los conceptos de la lista de palabras clave.• Generar grupos de trabajo para desarrollar los temas de la unidad.• Investigar y exponer su tema.

1, 2, 3, 4, 5, 6

Página 5ING CIP GUIOMAR WILDER VILELA SALAZAR

Page 6: Modulo de Sistemas Operativos PROGRAMA EXPERIENCIA LABORAL

ESCUELA DE INGENIERIA DE SISTEMAS CURSO:PROGRAMA DE EXPERIENCIA LABORAL SISTEMAS OPERATIVOS

administrador de archivos de diferentes sistemas operativos.

6.4.2 Diseño del sistema de archivos.6.4.3 Servidor de archivos.6.4.4 Seguridad en los archivos.6.4.5 Mecanismos de protección.6.4.6 Implementación.6.5 Llamadas al sistema (systemcalls).6.6 Tipos de interfaz.6.7 Lenguaje de comunicación (comandos de control) y pipelines o conductos.

SEGUNDA UNIDAD: SEMANA 3 SISTEMAS OPERATIVOS DISTRIBUIDOS Y COMUNICACIONES.

Evaluará eldesempeño de los sistemas operativos distribuidos, así como las comunicaciones.

7.1 Sistemas Distribuidos7.1.1 Características de Sistemas Distribuidos7.1.2 Redes e interconexión7.1.3 Protocolos de comunicación7.2 Sistemas Operativos Distribuidos.7.3 Comunicación de Procesos en sistemas distribuidos7.3.1 Sockets.7.3.2 Llamadas a procedimientos remotos.7.3.3 Comunicación de grupos.

Investigar y redactar los conceptos de la lista de palabras clave.• Generar grupos de trabajo para desarrollar los temas de la unidad.• Investigar y exponer su tema.• Desarrollar las prácticas de esta unidad.

1, 2, 3, 4

SEGUNDA UNIDAD: SEMANA 3 MODELOS DE REFERENCIA (PROTOCOLOS ISO OSI – CLIENTE/SERVIDOR).

SEGUNDA UNIDAD: SEMANA 4 ADMINISTRACION DE SISTEMAS OPERATIVOSEvaluará en tiempo real las prestaciones de los sistemas operativos licenciados( Windows 2003 server) así como los sistemas operativos libres(Linux)

9.1 Top de los sistemas operativos9.2 Windows 2003 Server9.3 Linux

Investigar y exponer su tema.Expondrá las ventajas vividas de un sistema operativo para con otro

V.- ESTRATEGIAS METODOLOGICAS

Página 6ING CIP GUIOMAR WILDER VILELA SALAZAR

Page 7: Modulo de Sistemas Operativos PROGRAMA EXPERIENCIA LABORAL

ESCUELA DE INGENIERIA DE SISTEMAS CURSO:PROGRAMA DE EXPERIENCIA LABORAL SISTEMAS OPERATIVOS

Se aplicará la metodología constructiva y activa del aprendizaje, desarrollando sesiones teóricas y prácticas, con:

Exposición y diálogo Trabajo de investigación fuera de aula que se presentará y sustentará Análisis del contexto contable empresarial con activa participación del alumno. Debate para definir e intercambiar ideas, información y aportes del grupo.

VI.- MEDIOS Y MATERIALESEn el presente curso se emplearán materiales impresos proporcionados por el docente, como separatas, formatos, casos para desarrollo; equipos multimedia calculadora, pizarra y plumones de acuerdo a las circunstancias y desarrollo propio de la materia según la programación, así como libros de consulta obligatoria por parte de los participantes.También se empleara el laboratorio de computo, para sobre todo instalar los sistemas operativos de manera practica

VII.-EVALUACION 7.1.- CRITERIOS DE EVALUACION

Nota Actitudinal. AC=E1+E22

Nota de trabajo escrito. T= E1+E22

PROMEDIO DE UNIDAD 1:

P1=(0,2∗AC 1 )+(0,3∗T 1 )+(0,5∗EP1)

PROMEDIO DE UNIDAD 2:

P2=(0,2∗AC 2 )+ (0,3∗T 2 )+(0,5∗EP 2)

PROMEDIO FINAL: PF=(P1+P2)

2

7.2.- CONDICIONES DE EVALUACIÓN.

Estar matriculado en el módulo. El estudiante que haya acumulado más del 30% de inasistencias

durante el desarrollo del curso será INHABILITADO, salvo que justifique sus inasistencias con el soporte de pruebas documentaria, caso en el cual, la justificación operará hasta un límite que no exceda el 20% del número total de clases. (Según el artículo 29 del Reglamento de Evaluación del Aprendizaje de la Universidad César Vallejo).

Es deber del estudiante con respecto a la evaluación: Cancelar las tasas que correspondan por evaluaciones especiales y estar al día en el pago de sus pensiones para poder ser evaluados.

Página 7ING CIP GUIOMAR WILDER VILELA SALAZAR

Page 8: Modulo de Sistemas Operativos PROGRAMA EXPERIENCIA LABORAL

ESCUELA DE INGENIERIA DE SISTEMAS CURSO:PROGRAMA DE EXPERIENCIA LABORAL SISTEMAS OPERATIVOS

(Según Art. 40 inciso “d” del Capítulo II de los deberes y derechos de los estudiantes previsto en el Reglamento de Evaluación del Aprendizaje de la Universidad César Vallejo).

El primer y segundo promedio de unidad serán registrados considerando un (01) decimal y en el promedio final será redondeado, considerando el medio punto a favor del estudiante.

VIII.- CRONOGRAMA

FECHA DE INICIO 19 de mayo del 2012FECHA DE TERMINO 10 de junio del 2012

IX.- REFERENCIAS BIBLIOGRAFICAS/FUENTES DE CONSULTA1. Harvey M. Deitel. Introducción a los Sistemas Operativos. Addison Wesley Iberoamericana.2. Andrew S. Tanenbaum. Sistemas Operativos Modernos. Pearson. 3. Abraham Silberschatz y James L. Paterson. Sistemas Operativos. Addison Wesley.4. Stallings. Sistemas Operativos. Megabyte. Noriega Editores.5. Márquez García Francisco Manuel. UNIX. Programación Avanzada.Rama.6. Carretero Perez, Jesús; García Carballeira, Felix; Pérez Costoya Fernando. Prácticas Sistemas Operativos. De la base al diseño. Mc Graw Hill.7. Andrew S. Tanenbaum. Sistemas Operativos. Diseño e Implementación

MODULO DE SISTEMAS OPERATIVOS

La evolución del hardware ha sido constante: del monoprocesador a los multiprocesadores, memorias ultrarrápidas, incorporación de nuevos dispositivos, interconexión con otros sistemas... pero ¿qué ha pasado con los sistemas operativos? Los sistemas operativos debieron acompañar la evolución.Conceptos comunes de lo que es un sistema operativo es que es un manejador de recursos, un programa de control, el programa que se ejecuta constantemente en una computadora, etc.Tanenbaum lo expresa desde dos puntos de vista (complementarios): como máquina extendida o virtual más fácil de entender y programar que el hardware puro y como

Página 8ING CIP GUIOMAR WILDER VILELA SALAZAR

Page 9: Modulo de Sistemas Operativos PROGRAMA EXPERIENCIA LABORAL

ESCUELA DE INGENIERIA DE SISTEMAS CURSO:PROGRAMA DE EXPERIENCIA LABORAL SISTEMAS OPERATIVOS

administrador de recursos, entendiendo por .recursos. a los componentes tanto físicos como lógicos: el procesador, memoria, discos, ratones o archivos. (Ver Tanenbaum & Woodhull .Sistemas Operativos, diseño e implementación. Un sistema operativo es un programa que actúa como intermediario entre el usuario (en su sentido amplio) de un computador y el hardware del computador. El propósito de un sistema operativo es crear un entorno en el que el usuario pueda ejecutar programas de forma cómoda y eficiente.Los sistemas operativos deben acompañar la evolución de los sistemas de cómputo, brindando: portabilidad, interoperabilidad, interconectividad, ambiente multitareas, multiusuario, seguridad, protección (entre usuarios y desde el exterior), fácil administración, independencia de dispositivo, abstracción del hardware.

EVOLUCION Y APLICACIONES DE LOS SISTEMAS OPERATIVOSDefinición de Sistemas Operativos Sistema tipo software que controla la computadora y administra los servicios y sus funciones como así también la ejecución de otros programas compatibles con éste. Ejemplos de familias de sistemas operativos: Windows, Unix, Linux, DOS, Mac OS, etc. Un sistema operativo permite interactuar con el hardware de computadoras, teléfonos celulares, PDAs, etc. y ejecutar programas compatibles en éstos. Permite controlar las asignaciones de memoria, ordenar las solicitudes al sistema, controlar los dispositivos de entrada y salida, facilitar la conexión a redes y el manejo de archivos.

Características Básicas.- En computadoras, el sistema operativo comienza a funcionar cuando finaliza el trabajo del BIOS al encenderse o reiniciar la computadora.Los sistemas operativos poseen una interfaz que puede ser gráfica (GUI) o de texto (línea de comandos). Los sistemas operativos forman una plataforma para que otros sistemas o aplicaciones la utilicen. Aquellas aplicaciones que permiten ser ejecutadas en múltiples sistemas operativos son llamadas multiplataforma.

La mayoría de los sistemas operativos actuales son también multiusuario, aunque existen los monousuario (por ejemplo, DOS). También pueden clasificarse en multitarea o monotarea. Cada programa que se ejecuta en un sistema operativo, ya sea aplicación o servicio de fondo, es llamado proceso. Los sistemas operativos pueden ser centralizados, si permiten utilizar recursos de una sola computadora, o distribuido si permiten utilizar recursos de más de una computadora al mismo tiempo.

Todos los sistemas operativos deben incluir un soporte para uno o más sistemas de archivos. Por ejemplo, el sistema operativo Windows XP soporta NTFS y FAT32, en tanto Windows Vista sólo soporta NTFS.

Otra característica de los actuales sistemas operativos es que poseen un gran conjunto de controladores (drivers) para permitir rápida compatibilidad con dispositivos de hardware.

Principales Funciones de los Sistemas Operativos Permitir la comunicación usuario-máquina.- Proporcionar ya sea una interfaz de línea de comando o una interfaz gráfica al usuario, para que este último se pueda comunicar con la computadora.

Gestión de recursos del ordenador.- Administrar los dispositivos de hardware en la computadora. Cuando corren los programas, necesitan utilizar la memoria, el monitor, las unidades de disco, los puertos de Entrada/Salida (impresoras, módems, etc). El sistema operativo sirve de intermediario entre los programas y el hardware.

Control de lo que hace el ordenador y de cómo lo hace., Organizar los datos y los

Página 9ING CIP GUIOMAR WILDER VILELA SALAZAR

Page 10: Modulo de Sistemas Operativos PROGRAMA EXPERIENCIA LABORAL

ESCUELA DE INGENIERIA DE SISTEMAS CURSO:PROGRAMA DE EXPERIENCIA LABORAL SISTEMAS OPERATIVOS

programas.

Administrar y mantener los sistemas de archivo de disco. Los Sistemas Operativos agrupan la información dentro de compartimientos lógicos para almacenarlos en el disco. Estos grupos de información son llamados archivos. Los archivos pueden contener instrucciones de programas o información creada por el usuario. El sistema operativo mantiene una lista de los archivos en un disco, y nos proporciona las herramientas necesarias para organizar y manipular estos archivos.

Evolución Histórica de los Sistemas Operativos

La primera computadora digital verdadera fue diseñada por el matemático inglés Charles Babbage (1792-1871). Como acotación histórica interesante, diremos que Babbage se dio cuenta de que necesitaría software para su máquina analítica, así que contrató a una joven mujer, Ada Lovelace, hija del famoso poeta británico, Lord Byron, como la primera programadora de la historia. El lenguaje de programación Ada® recibió su nombre en honor a ella.

Primera Generación (1945-1955): .- La lógica o software de los ordenadores se ha complicado conforme han evolucionado éstos. Los primeros ordenadores, a partir de 1944 en que Aiken construyó el Mark-I, sólo podían programarse en lenguaje máquina, y puede decirse que el Sistema Operativo aún no existía.

J. V. Neumann fue quien dio el primer paso en la informática y en las relaciones hombre-máquina con el concepto de programa almacenado, que consiste en archivar en el ordenador un conjunto de instrucciones máquina para posteriormente ejecutarlas. Apareció Assembler, lenguaje nemotécnico-simbólico.En 1948, con Noam Chomsky, surge la teoría de las gramáticas generativas transformacionales, que es la base de los traductores de lenguajes. En 1955 comenzó el desarrollo de los lenguajes de alto nivel, y al mismo tiempo se empezó a dividir el trabajo entre personas: operadores y programadores. Actualmente, al estar superado el concepto de mono programación, es frecuente que tengamos que familiarizarnos con los conceptos de multiprogramación, tiempo compartido, multiproceso y tiempo real.

Segunda Generación (1955-1965).-

Multiprocesamiento: Durante la segunda generación, al menos un proveedor ofrecía un sistema de multiprocesamiento, que era un sistema de cómputo que tenía más de una unidad central de proceso. En realidad el sistema consistía en dos computadoras completas; la computadora más pequeña tenía un sistema operativo y controlaba ambas máquinas. La computadora más grande era esclava de la más pequeña. La computadora pequeña procesaba la entrada de información y ordenaba e imprimía toda la salida utilizando todos los discos como entrada de almacenamiento temporal. Un sistema operativo ubicado en la computadora más grande indicaba a la máquina de control que necesitaba servicio.

Sistemas en línea: Los primeros sistemas en líneas presentaban programas de sistema operativo diseñados especialmente para controlar los recursos de la computadora. Los programas de aplicación de un sistema en línea expresan la lógica de aplicación y los llamados mediante programas de sistemasEl nacimiento del tiempo compartido: Los primeros sistemas de negocios también estaban utilizando sistemas operativos para sus equipos de segunda generación. Cuando fue anunciada la tercera generación de computadoras los fabricantes claramente habían abrazado la idea de un sistema operativo. La línea 360 de la IBM

Página 10ING CIP GUIOMAR WILDER VILELA SALAZAR

Page 11: Modulo de Sistemas Operativos PROGRAMA EXPERIENCIA LABORAL

ESCUELA DE INGENIERIA DE SISTEMAS CURSO:PROGRAMA DE EXPERIENCIA LABORAL SISTEMAS OPERATIVOS

no podía funcionar sin la ayuda de tal sistema operativo maneja toda la entrada/salida por medio de interrupciones. De hecho existen interrupciones especiales que la computadora solo puede ejecutar cuando está en estado supervisor, bajo el control de los sistemas operativos. Esta generación se caracteriza por la utilización de la tecnología que incluye transistores. La programación, en este período se ve apoyada por la creación de lenguajes ensambladores y lenguajes de alto nivel; como Fortran y Cobol.Para optimizar el tiempo de utilización del sistema computacional, se adoptó el Procesamiento por Lotes. Como consecuencia de la utilización de tecnología de mejores características, el procesamiento por lotes, la utilización de un operador de sistema y un sistema operativo primitivo se logró minimizar el tiempo ocioso de los computadoresTercera Generación (1965-1980): Multisistemas : El estudio del hardware se menciona el desarrollo de los canales de datos para absorber algo de carga de E/S de la CPU. Sin embargo, todavía existía un equilibrio entre la UCP y la E/S aún con la ayuda de los canales en la mayor parte de los sistemas comerciales que tienen mucha actividad de E/S se puede tener la UCP ociosa más del 50% del tiempo principalmente debido a la espera de la terminación de operaciones de entrada/salida.

No debe confundirse la multiprogramación con el multiprocesamiento. En un sistema de multiprogramación, la unidad central de procesamiento ejecuta solamente un programa a la vez. Varios programas están presentes en la memoria en un estado semiactivo; su ejecución ha sido suspendida temporalmente. Algunos sistemas de la tercera generación también presentan el multiprocesamiento, o sea la presencia de más de una unidad central de proceso. Estos procesadores están controlados por el sistema operativo y, por supuesto, son multiprogramados ya que por lo menos existe el potencial para ejecutar un programa en cada procesador al mismo tiempoSistemas en línea: Durante la tercera generación, los sistemas operativos vinieron con más módulos para facilitar el desarrollo de los sistemas en línea, especialmente para respaldar el procesamiento de terminales y telecomunicaciones. Los sistemas estaban diseñados para apoyar una mezcla de procesamiento batch y consultas en línea.

Tiempo compartido: Durante la tercera generación, el proyecto MAC del MIT desarrolló también un nuevo sistema de tiempo compartido llamado MULTICS. Este sistema presenta una importante innovación que influyó en los sistemas de cómputo posteriores. La tecnología utilizada en este período corresponde a la de circuitos integrados, lo cual permitió construir máquinas más baratas y con mejor rendimiento. La empresa IBM fue la primera en utilizar esta tecnología. Una de las principales características de los sistemas operativos de hoy, que aparecen en esta generación es la Multiprogramación. Esta técnica consiste en particionar la memoria de manera de contener simultáneamente muchos trabajos, lo que permite independencia en las acciones de la máquina. Por ejemplo, si un trabajo está esperando por Entrada/Salida, otro trabajo puede estar utilizando la CPU. Con la utilización de la multiprogramación, se mejora el tiempo de utilización de la CPU, pero se crean problemas de protección y seguridad, debido al particionamiento de la memoria. Otra característica importante de los sistemas operativos de esta generación es la aparición de la técnica de Spooling (Operación simultánea y en línea de periféricos). Esta consiste en la capacidad de leer los trabajos de cinta al disco,  haciendo posible que a medida que hubiera espacio en memoria se podía pasar al siguiente trabajo. De esta manera las operaciones de periféricos se realizan en paralelo con la utilización de la CPU.Durante esta generación aparecen los primeros sistemas de Tiempo compartido, esto consiste en que se le asigna a cada trabajo un tiempo fijo de utilización de CPU, este período de tiempo (denominado time slot) es pequeño, pues el uso de tiempo

Página 11ING CIP GUIOMAR WILDER VILELA SALAZAR

Page 12: Modulo de Sistemas Operativos PROGRAMA EXPERIENCIA LABORAL

ESCUELA DE INGENIERIA DE SISTEMAS CURSO:PROGRAMA DE EXPERIENCIA LABORAL SISTEMAS OPERATIVOS

compartido tiene como objetivo manejar a distintos usuarios mediante terminales que tengan la ilusión de estar ocupando la máquina como si fueran únicos. El primer sistema operativo importante de tiempo compartido es el (CTSS) y fue desarrollado en MIT (Massachusetts Institute of Technology).

Cuarta Generación (1980-1990).- Esta generación se caracteriza por la utilización de los microprocesadores para la construcción de computadores de menor tamaño, haciendo posible que una sola persona tuviera su propio computador personal. Los computadores personales con mayores capacidades y que se empezaron a utilizar en la empresa y en las universidades recibieron el nombre de estaciones de trabajo.Los sistemas operativos que cobran gran popularidad en este período son MS-DOS de Microsoft y UNIX. Este último tuvo sus primeros desarrollos en Berkeley y posteriormente en AT&T.

Quinta Generación (1990 - Actualidad): .- Desde aproximadamente mediados de los '80 surgió el crecimiento de las redes de computadores con sistemas operativos de red y sistemas operativos distribuidos. En los sistemas operativos de red cada computador tiene su propia copia de sistema operativo, los usuarios saben que existen varios computadores, pueden conectarse explícitamente a diferentes máquinas remotas para transferir archivos, hacer búsquedas, etc. En los sistemas operativos distribuidos existe una integración real de los recursos, la red es transparente a los usuarios, es decir, que éstos pueden no darse cuenta de la existencia de varias máquinas conectadas. Sobre este tipo de sistema operativo, una tarea puede ser ejecutada en varios nodos a la vez, pues existen facilidades de migración de procesos. Además este sistema computacional puede crecer fácilmente y la tolerancia a fallas se realiza en mejor forma (la tolerancia a fallas está relacionada con la confiabilidad, por ejemplo, si un computador falla puede seguir operando en su reemplazo). El desarrollo de los sistemas computacionales de los últimos tiempos ha generado un conjunto de estándares, que han servido de base para futuros desarrollos de fabricantes que trabajan en conjunto. Dentro de los estándares más conocidos se encuentran los siguientes:

• Estándares de comunicaciones abiertoo Modelo OSI (Open System Interconection), desarrollado por I SO.• Estándares de sistemas operativos abiertoso POSIX (IEEE standar 1003.1)o SVID (System V Interfase Definition)• Estándares de interfaces de usuarios abiertoso X Windows desarrollado por MIT• Estándares de aplicaciones de usuarios abiertos o X/Open

Sistemas Operativos para Celulares y Mobiles.- Los sistemas operativos para móviles van tomando un puesto, pues ya las aplicaciones y funciones que posee un sistema operativo móvil son un factor que los usuarios ven con atención. Los sistemas operativos para móviles adquieren terreno y cada vez más rápido. Cada vez tienen más utilidades, pero también son más difíciles de manejar, no se puede obviar la parte de que la tecnología móvil es muy usada por casi todo el mundo y así como hay personas que van de la mano con la tecnología también hay personas que no, y mientras más modernos son los sistemas operativos de los móviles menos personas lo entienden.

Entre los sistemas operativos para móviles las compañías que desarrollan softwares están como más populares como Symbian, Windows Mobile, Linux, Java y ANDROID por mencionar a algunos.

Página 12ING CIP GUIOMAR WILDER VILELA SALAZAR

Page 13: Modulo de Sistemas Operativos PROGRAMA EXPERIENCIA LABORAL

ESCUELA DE INGENIERIA DE SISTEMAS CURSO:PROGRAMA DE EXPERIENCIA LABORAL SISTEMAS OPERATIVOS

ESTRUCTURA DEL SISTEMA OPERATIVO Tenemos cuatro estructuras distintas que se han probado, a fin de tener una idea de la variedad de posibilidades. Éstas no son de ninguna manera las únicas estructuras posibles, pero nos darán una idea de algunos diseños que se han llevado a la práctica. Los cuatro diseños son los sistemas monolíticos, los sistemas por capas, las máquinas virtuales y los sistemas cliente-servidor.

Sistemas monolíticos.- Este enfoque, que es por mucho la organización más común, bien podría subtitularse “El Gran Desorden”. La estructura consiste en que no hay estructura. El sistema operativo se escribe como una colección de procedimientos, cada uno de los cuales puede invocar a cualquiera de los otros cuando necesita hacerlo. 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 está en libertad de invocar a cualquier otro, si este último realiza algún cálculo útil que el primero necesita.

Para construir el programa objeto real del sistema operativo cuando se adopta este enfoque, lo primero que se hace es compilar todos los procedimientos individuales, o archivos que contienen los procedimientos, y luego se vinculan en un solo archivo objeto usando el vinculador (linker) del sistema. En términos de ocultación de la información, prácticamente no hay tal; todos los procedimientos son visibles para todos los demás (en contraposición a una estructura que contiene módulos o paquetes, en la que gran parte de la información se oculta dentro de los módulos, y sólo se pueden invocar desde fuera del módulo los puntos de entrada designados oficialmente).

No obstante, incluso en los sistemas monolíticos es posible tener al menos un poco de estructura. Los servicios (llamadas al sistema) proporcionados por el sistema operativo se solicitan colocando los parámetros en lugares bien definidos, como en registros o en la pila, y ejecutando después una instrucción de trampa especial conocida como llamada al kernel o llamada al supervisor.

Esta organización sugiere una estructura básica para el sistema operativo:

Un programa principal que invoca el procedimiento de servicio solicitado. Un conjunto de procedimientos de servicio que llevan a cabo las llamadas al

sistema. Un conjunto de procedimientos de utilería que ayudan a los procedimientos de

servicio.

En este modelo, para cada llamada al sistema hay un procedimiento de servicio que se ocupa de ella. Los procedimientos de utilería hacen cosas que varios procedimientos de servicio necesitan, como obtener datos de los programas de usuario. Esta división de los procedimientos en tres capas se muestra en la Fig. 1-17.

Página 13ING CIP GUIOMAR WILDER VILELA SALAZAR

Page 14: Modulo de Sistemas Operativos PROGRAMA EXPERIENCIA LABORAL

ESCUELA DE INGENIERIA DE SISTEMAS CURSO:PROGRAMA DE EXPERIENCIA LABORAL SISTEMAS OPERATIVOS

Sistemas por capas.- Una generalización del enfoque de la Fig. 1-17 consiste en organizar el sistema operativo como una jerarquía de capas, cada una construida sobre la que está abajo de ella. El primer sistema que tuvo esta estructura fue el sistema THE construido en la Technische Hogeschool Eindhoven de los Países Bajos por E. W. Dijkstra (1968) y sus estudiantes. El sistema THE era un sencillo sistema por lotes para una computadora holandesa, la Electrologica X8, que tenía 32K de palabras de 27 bits (los bits eran costosos en esos tiempos).

Máquinas virtuales.- Las primeras versiones de OS/360 eran sistemas estrictamente por lotes. No obstante, muchos usuarios de 360 querían tener tiempo compartido, de modo que diversos grupos, tanto dentro como fuera de IBM, decidieron escribir sistemas de tiempo compartido para él. El sistema de tiempo compartido oficial de IBM, TSS/360, se entregó tarde, y cuando por fin llegó era tan grande y lento que pocos sitios realizaron la conversión. Finalmente, este sistema fue abandonado después de que su desarrollo había consumido unos 50 millones de dólares (Graham, 1970). Por otro lado, un grupo del Centro Científico de IBM en Cambridge, Massachusetts, produjo un sistema radical- mente diferente que IBM finalmente aceptó como producto, y que ahora se utiliza ampliamente en las macrocomputadoras IBM que quedan.

Este Sistema, llamado originalmente CP/CMS y que más adelante fue rebautizado como VM/ 370 (Seawright y MacKinnon, 1979), se basaba en una astuta observación: un sistema de tiempo compartido ofrece (1) multiprogramación y (2) una máquina extendida con una interfaz más cómoda que el hardware solo. La esencia de VM!370 consiste en separar por completo estas dos funciones.

El corazón del sistema, conocido como monitor de máquina virtual, se ejecuta en el hardware solo y realiza la multiprogramación, proporcionando no una, sino varias máquinas virtuales a la siguiente capa superior. Sin embargo, a diferencia de otros sistemas operativos, estas máquinas virtuales no son máquinas extendidas, con archivos y otras características bonitas; más bien, son copias exactas del hardware solo, incluido el modo de kernel/usuario, E/S, interrupciones y todo lo demás que la máquina real tiene.

Puesto que cada máquina virtual es idéntica al verdadero hardware, cada una puede ejecutar cualquier sistema operativo que se ejecutaría directamente en el hardware solo. Diferentes máquinas virtuales pueden, y con frecuencia lo hacen, ejecutar diferentes sistemas operativos.

Algunos ejecutan uno de los descendientes de OS/360 para procesamiento por lotes o de transacciones, mientras que otros ejecutan un sistema interactivo monousuario

Página 14ING CIP GUIOMAR WILDER VILELA SALAZAR

Page 15: Modulo de Sistemas Operativos PROGRAMA EXPERIENCIA LABORAL

ESCUELA DE INGENIERIA DE SISTEMAS CURSO:PROGRAMA DE EXPERIENCIA LABORAL SISTEMAS OPERATIVOS

llamado CMS (Sistema de Monitoreo de Conversaciones) para usuarios de tiempo compartido.

Cuando un programa de usuario ejecuta una llamada al sistema, la llamada se atrapa y se envía al sistema operativo de su propia máquina virtual, no al VM/370, tal como se haría si el programa se estuviera ejecutando en una máquina real en lugar de una virtual. A continuación, CMS emite las instrucciones de E/S del hardware normal para leer su disco virtual, o lo que sea que se necesite para llevar a cabo la llamada. Estas instrucciones de E/S son atrapadas por el VM/370, el cual, entonces, las ejecuta como parte de su simulación del hardware real. Al separar por completo las funciones de multiprogramación y de suministro de una máquina extendida, cada uno de los componentes puede ser mucho más sencillo, flexible y fácil de mantener.

El concepto de máquina virtual se usa mucho hoy día en un contexto diferente: la ejecución de viejos programas para MS-DOS en una Pentium (u otra CPU Intel de 32 bits). Al diseñar la Pentium y su software, tanto Intel como Microsoft se dieron cuenta de que habría una gran de- manda por ejecutar software viejo en el nuevo hardware. Por esta razón, Intel proveyó un modo 8086 virtual en la Pentium.

En este modo, la máquina actúa como una 8086 (que es idéntica a una 8088 desde la perspectiva del software) incluido direccionamiento de 16 bits con un límite de 1 MB.

Este modo es utilizado por WINDOWS, OS2 y otros sistemas operativos para ejecutar programas de MS-DOS. Estos programas se inician en modo 8086 virtual y, en tanto ejecuten instrucciones normales, operan en el hardware solo. Sin embargo, cuando un programa trata de entrar por una trampa al sistema operativo para efectuar una llamada al sistema, o trata de realizar E/S protegida directamente, ocurre una trampa al monitor de la máquina virtual.

En la capa más baja, ejecutándose en modo de kernel, hay un programa llamado exokernel, cuyo trabajo consiste en repartir recursos a las máquinas virtuales y luego verificar los intentos por usarlos para asegurarse de que ninguna máquina esté tratando de usar los recursos de alguien más. Cada máquina virtual en el nivel de usuario puede ejecutar su propio sistema operativo, como en VM/370 y el modo 8086 virtual de la Pentium, excepto que cada uno sólo puede usar los recursos que ha solicitado y que le han sido asignados.

La ventaja del esquema de exokernel es que ahorra una capa de mapeo. En otros diseños, cada máquina virtual cree que tiene su propio disco, cuyos bloques van desde O hasta algún máximo, de modo que el monitor de máquina virtual debe mantener tablas para establecer la correspondencia con las direcciones de disco reales (y todos los demás recursos). Con el exokernel, no es necesario realizar este segundo mapeo. Lo único que el exokernel tiene que hacer es mantenerse al tanto de qué recursos se han asignado a cada máquina virtual. Este método sigue teniendo la ventaja de separar la multiprogramación (en el exokernel) y el código de sistema operativo del usuario (en el espacio del usuario), pero el gasto extra es menor, ya que todo lo que el exokernel tiene que hacer es evitar que las máquinas virtuales tomen cosas que no les pertenecen.

Modelo cliente-servidor .- VM1370 se simplifica mucho al desplazar una parte importante del código de sistema operativo tradicional (que implementa la máquina extendida) a una capa superior, CMS. No obstante, el VM/370 en sí sigue siendo un programa complejo porque simular varias 370 virtuales no es tan fácil (sobre todo si se desea hacerlo con una eficiencia razonable).

Una tendencia en los sistemas operativos modernos es llevar aún más lejos esta idea de trasladar código a capas superiores y quitarle lo más que se pueda al

Página 15ING CIP GUIOMAR WILDER VILELA SALAZAR

Page 16: Modulo de Sistemas Operativos PROGRAMA EXPERIENCIA LABORAL

ESCUELA DE INGENIERIA DE SISTEMAS CURSO:PROGRAMA DE EXPERIENCIA LABORAL SISTEMAS OPERATIVOS

sistema operativo, dejando un kernel mínimo. El enfoque usual consiste en implementar la mayor parte de las funciones del sistema operativo en procesos de usuario. Para solicitar un servicio, como leer un bloque de un archivo, un proceso de usuario (ahora llamado proceso cliente) envía la solicitud a un proceso servidor, el cual realiza el trabajo y devuelve la respuesta.

Otra ventaja del modelo cliente-servidor es su adaptabilidad para usarse en sistemas distribuidos. Si un cliente se comunica con un servidor enviándole mensajes, el cliente no necesita saber si el mensaje será atendido localmente en su propia máquina o si se envió a través de la red a un servidor en una máquina remota. En lo que al cliente concierne, sucede lo mismo en ambos casos: se envía una solicitud y se obtiene una respuesta.

La otra solución consiste en incorporar una cantidad mínima de mecanismo en el kernel pero dejar las decisiones de política a los servidores en el espacio de usuarios. Por ejemplo, el kernel podría darse cuenta de que un mensaje enviado a cierta dirección especial implica que debe tomarse el contenido de ese mensaje y cargarlo en los registros de dispositivo de E/S de algún disco, a fin de iniciar una lectura de disco. En este ejemplo, el kernel ni siquiera inspeccionaría los bytes del mensaje para verificar si son válidos o significativos; sólo los copiaría ciegamente en los registros del dispositivo de disco. (Obviamente, debe utilizarse algún esquema para limitar tales mensajes sólo a los procesos autorizados.) La división entre mecanismo y política es un concepto importante; aparece una y otra vez en los sistemas operativos en diferentes contextos.

PROBLEMAS

1. Señale las dos funciones principales de un sistema operativo. 2. ¿Qué es la multiprogramación? 3. ¿Qué es el spooling ¿Cree usted que las computadoras personales avanzadas

contarán con spooling como capacidad estándar en el futuro? 4. ¿Cuáles de las siguientes instrucciones sólo deben permitirse en modo de

kernel? a) Inhabilitar todas las interrupciones. b) Leer el reloj de hora del día. c) Establecer el reloj de hora del día. d) Cambiar el mapa de memoria.

5. Cite algunas diferencias entre los sistemas operativos de las computadoras personales y los de las macro computadoras.

6. El modelo cliente-servidor es popular en los sistemas distribuidos. ¿Puede usarse también en los sistemas de una sola computadora?

ORGANIZACIÓN DE PROCESOS. PLANIFICACION DE PROCESOSUna primera definición sencilla: un proceso es un programa en ejecuciónDiferencias entre un programa y un proceso

PROGRAMA PROCESOES ESTATICO ES DINAMICONO TIENE CONTADOR DE PROGRAMA TIENE CONTADOR DE PROGRAMAEXISTE DESDE QUE SE EDITA HASTA QUE SE BORRA

SU CICLO DE VIDA COMPRENDE DESDE QUE SE LE DISPARA HASTA QUE TERMINA

Los tipos de llamadas al sistema referidas a los procesos, que un sistema operativo normalmente ofrece son:

Página 16ING CIP GUIOMAR WILDER VILELA SALAZAR

Page 17: Modulo de Sistemas Operativos PROGRAMA EXPERIENCIA LABORAL

ESCUELA DE INGENIERIA DE SISTEMAS CURSO:PROGRAMA DE EXPERIENCIA LABORAL SISTEMAS OPERATIVOS

Finalizar, abortar Cargar, ejecutar. Crear proceso, terminar proceso Obtener atributos de proceso, establecer atributos de proceso. Esperar un lapso de tiempo. Esperar suceso, indicar la ocurrencia del suceso. Asignar y liberar memoria.

Estados de un proceso: En su ciclo de vida el proceso pasa por diferentes estados.Básicamente:

Nuevo (new). Ejecutándose (running) En espera (waiting) Listo para ejecutar (ready) Terminado (terminated)

Bloque de control de procesos: Cada proceso se representa en el sistema operativo con un bloque de control de proceso (PCB, process control block) también llamado bloque de control de tarea.

Página 17ING CIP GUIOMAR WILDER VILELA SALAZAR

Page 18: Modulo de Sistemas Operativos PROGRAMA EXPERIENCIA LABORAL

ESCUELA DE INGENIERIA DE SISTEMAS CURSO:PROGRAMA DE EXPERIENCIA LABORAL SISTEMAS OPERATIVOS

Estado del proceso: El estado puede ser: nuevo, listo, en ejecución, en espera, detenido, etc.

Contador de programa: El contador indica la dirección de la siguiente instrucción que se ejecutará para este proceso.

Registros de CPU: El número y el tipo de los registros varía dependiendo de la arquitectura del computador. Los registros incluyen acumuladores, registros, índice, punteros de pila y registros de propósito general, así como cualquier información de códigos de condición que haya. Junto con el contador de programa, esta información de estado se debe guardar cuando ocurre una interrupción, para que el proceso pueda continuar correctamente después.

Información de planificación de CPU: Esta información incluye una prioridad del proceso, punteros a colas de planificación y cualquier otro parámetro de planificación que haya.

Información de gestión de memoria: Esta información puede incluir datos tales como el valor de los registros de base y límite, las tablas de páginas o las tablas de segmentos, dependiendo del sistema de memoria empleado por el sistema operativo.

Información contable: Esta información incluye la cantidad de tiempo de CPU y tiempo real consumida, límites de tiempo, números de cuenta, números de trabajo o proceso, y demás.

Información de estado de E/S: La información incluye la lista de dispositivos de E/S asignadas a este proceso, una lista de archivos abiertos, etc.

El PCB sirve como depósito de cualquier información que pueda variar de un proceso a otro.

Jerarquía de procesos: La secuencia de creación de procesos genera un árbol de procesos. Para referirse a las relaciones entre los procesos de la jerarquía se emplean los términos de padre, hermano o abuelo. Cuando el proceso A solicita al sistema operativo que cree el proceso B, se dice que A es padre de B y que B es hijo de A. Bajo esta óptica, la jerarquía de procesos puede considerarse como un árbol genealógico. Algunos sistemas operativos, como Unix, mantienen de forma explícita esta estructura jerárquica de procesos - un proceso sabe quién es su padre -, mientras que otros sistemas operativos como el Windows NT no la mantienen.

Página 18ING CIP GUIOMAR WILDER VILELA SALAZAR

Page 19: Modulo de Sistemas Operativos PROGRAMA EXPERIENCIA LABORAL

ESCUELA DE INGENIERIA DE SISTEMAS CURSO:PROGRAMA DE EXPERIENCIA LABORAL SISTEMAS OPERATIVOS

Planificador y activador: El planificador (scheduler) forma parte del núcleo del sistema operativo. Entra en ejecución cada vez que se activa el sistema operativo y su misión es seleccionar el proceso que se ha de ejecutar a continuación. El activador (dispatcher) también forma parte del sistema operativo y su función es poner en ejecución el proceso seleccionado por el planificador.Cambio de contexto: La activación del sistema operativo se realiza mediante el mecanismo de las interrupciones. Cuando se produce una interrupción se realizan las dos operaciones siguientes:Se salva el estado del procesador en el correspondiente PCB.Se pasa a ejecutar la rutina de tratamiento de interrupción del sistema operativo.Llamaremos cambio de contexto (context switch)al conjunto de estas operaciones. El tiempo de conmutación de contexto es exclusivamente gasto extra (overhead), porque el sistema no realiza trabajo útil durante la conmutación. Por ser un cuello de botella tan importante para el desempeño del sistema operativo se están empleando estructuras nuevas (hilos) para evitarla hasta donde sea posible.Procesos ligeros, hilos o threads: Un proceso ligero es un programa en ejecución (flujo de ejecución) que comparte la imagen de memoria y otras informaciones con otros procesos ligeros. Un proceso puede contener un solo flujo de ejecución, como ocurre en los procesos clásicos, o más de un flujo de ejecución (procesos ligeros). Desde el punto de vista de la programación, un proceso ligero se define como una función cuya ejecución se puede lanzar en paralelo con otras. El hilo de ejecución primario, o proceso ligero primario, corresponde a la función main. Todos los procesos ligeros de un mismo proceso comparten el mismo espacio de direcciones de memoria, que incluye el código, los datos y las pilas de los diferentes procesos ligeros.El proceso ligero constituye la unidad ejecutable en Windows NT.

Planificación en POSIX (Linux): POSIX especifica una serie de políticas de planificación, aplicables a procesos y procesos ligeros, que debe implementar cualquier sistema operativo que ofrezca esta interfaz.Planificación en Windows NT/2000: En Windows NT la unidad básica de ejecución es el proceso ligero y, por tanto, la planificación se realiza sobre este tipo de procesos.

Página 19ING CIP GUIOMAR WILDER VILELA SALAZAR

Page 20: Modulo de Sistemas Operativos PROGRAMA EXPERIENCIA LABORAL

ESCUELA DE INGENIERIA DE SISTEMAS CURSO:PROGRAMA DE EXPERIENCIA LABORAL SISTEMAS OPERATIVOS

PLANIFICACION

La planificación es una función fundamental del sistema operativo. Siendo la CPU uno de los principales recursos, la planificación de su uso es sumamente importante.En un ambiente de multiprogramación, el sistema operativo debe decidir a qué proceso le da la CPU entre los que están listos para ejecutarse. ¿Cuál es el criterio por el cual se prefiere la ejecución de uno sobre los otros?Existen diferentes algoritmos de selección, pero para escoger cuál es el que corresponde a nuestro sistema debemos tener claro bajo qué criterios nos interesa fijar las pautas. Por ejemplo:

Maximizar el uso de la CPU: que se mantenga ocupada el mayor tiempo posible.

Maximizar la Productividad (throughput), considerando que productividad (o rendimiento) es el número de procesos que se ejecutan por unidad de tiempo.

Minimizar el Tiempo de retorno (turnaround time), que es el tiempo transcurrido desde que el proceso ingresa hasta que termina, sumando espera para entrar en memoria, en cola de procesos listos, ejecutándose en CPU y haciendo E/S.

Minimizar el Tiempo de espera (waiting time), que es el tiempo que el proceso está en la cola de listos.

Minimizar el Tiempo de respuesta (response time), que es el tiempo que transcurre desde que se presenta una solicitud hasta que se tiene respuesta. Es el tiempo que tarda en comenzar a responder, no incluyendo el tiempo de la respuesta en sí.

Lo ideal es maximizar el uso de la CPU y la productividad y minimizar los tiempos de retorno, respuesta y espera.Son otros criterios:

La equidad: que todos los procesos tienen que ser tratados de igual forma y a todos se les debe dar la oportunidad de ejecutarse, para que ninguno sufra inanición.

Recursos equilibrados: la política de planificación que se elija debe mantener ocupados los recursos del sistema, favoreciendo a aquellos procesos que no abusen de los recursos asignados, sobrecargando el sistema y bajando la performance general.

Página 20ING CIP GUIOMAR WILDER VILELA SALAZAR

Page 21: Modulo de Sistemas Operativos PROGRAMA EXPERIENCIA LABORAL

ESCUELA DE INGENIERIA DE SISTEMAS CURSO:PROGRAMA DE EXPERIENCIA LABORAL SISTEMAS OPERATIVOS

Organización. Colas y schedulersColasEn un sistema operativo los recursos compartidos exigen la organización en colas de las solicitudes pendientes. Tenemos colas para la planificación del uso de la cpu como también colas para el uso de dispositivos, device queues, que son utilizadas para ordenar los requerimientos que varios procesos pueden tener sobre un dispositivo específico.Al ser creados, los procesos se colocan en la cola de trabajos, formada por los procesos que aún no residen en la memoria principal, pero listos para su ejecución.La residencia en memoria es imprescindible para la ejecución de un proceso. La cola de trabajos listos (ready queue) es aquélla formada por los procesos que están listos para la ejecución, en memoria principal. Son los procesos que compiten directamente por CPU.Un proceso que está en la cola de listos no puede estar en las colas de dispositivo, pues en este último caso está esperando por E/S, por lo tanto no puede estar compitiendo por cpu.Los elementos de cualquiera de estas colas no son los procesos en sí, sino sus PCB.s, que están en memoria.La cola de procesos listos (ready queue) se almacena como una lista enlazada donde la cabecera (header) de la ready queue tiene punteros al primer y al último PCB de los procesos de la lista. Cada PCB apunta al próximo en la lista.Schedulers, dispatchers . Planificadores, activadoresHay módulos del sistema operativo para elegir un proceso para su ejecución de entre los que están compitiendo por CPU. Esa elección dependerá del criterio adoptado (según lo explicado en el primer punto). La elección estará asociada al carácter del sistema. Por ejemplo, en un sistema batch no hay tanta exigencia en cuanto al tiempo de respuesta. En un sistema interactivo minimizar este tiempo es imprescindible.El algoritmo que se eligirá para la elección de procesos será diferentes en cada caso.Recordemos que los sistemas operativos modernos permiten la convivencia de las dos modalidades (batch e interactivo): ¿cómo lo solucionamos?Necesitamos que el sistema operativo, a través de sus módulos, elija un proceso de acuerdo al criterio elegido, haga el cambio de contexto, lo cargue en memoria y le dé la CPU. Cuando un proceso termina, normal ó anormalmente, debe elegirse otro proceso para cargar en memoria.¿Qué pasa cuando un proceso de mayor prioridad debe ejecutarse y no hay memoria suficiente? Un módulo debe encargarse de seleccionar uno de los procesos que está en memoria y sacarlo temporariamente a memoria secundaria para dar lugar (swapping), pero teniendo en cuenta que sigue compitiendo por CPU y que se debe resguardar su contexto.

Estos módulos del sistema operativo son rutinas especiales y dependerá de la implementación cómo las funciones que citamos se realizan en cada sistema.En un sistema hay procesos con mayor proporción de ráfagas E/S (I/O bound process) y otros con mayor necesidad de cpu que de E/S (CPU bound). Si cuando se seleccionan procesos para ejecutar se eligieran todos I/O bound, tendríamos las colas de dispositivo llenas de solicitudes y, probablemente, la CPU ociosa. Si se eligen muchos procesos limitados por CPU la cola de listos estará llena y las colas de dispositivo, vacías.Por eso es muy importante de qué manera se realiza la selección de trabajos para mantener el sistema en equilibrio.Esta selección la realizan los planificadores o schedulers.Hay distintos planificadores que participan en diferentes momentos:

El de largo plazo o long term, que elige entre la cola de listos, para cargarlo en memoria;

Página 21ING CIP GUIOMAR WILDER VILELA SALAZAR

Page 22: Modulo de Sistemas Operativos PROGRAMA EXPERIENCIA LABORAL

ESCUELA DE INGENIERIA DE SISTEMAS CURSO:PROGRAMA DE EXPERIENCIA LABORAL SISTEMAS OPERATIVOS

El de corto plazo o short term (también llamado CPU scheduler), que elige entre los que están listos en memoria para darle la CPU;

El de medio plazo o medium term, que selecciona un proceso de entre los que están en memoria para llevarlo temporariamente a memoria secundaria por necesidades de espacio en memoria.

Es importante aclarar que en las colas los registros son normalmente las PCB.s de los procesos.Otro módulo de importante participación en la planificación es el activador o dispatcher. Es el que da el control de la CPU al proceso elegido por el planificador de corto plazo. Debe ser muy rápido pues una de sus funciones es encargarse del cambio de contexto (context switch). Al tiempo entre detener un proceso y comenzar a correr otro se le llama dispatch latency. El dispatcher es también el que se encarga de pasar a modo usuario el proceso que está activando y .saltar. a la dirección de la instrucción que comienza la ejecución del programa.Análisis sobre la productividadHemos hablado que en un ambiente de multiprogramación cuando un proceso se bloquea a la espera de algún evento, la CPU atiende al primer proceso que se halle en la cola de procesos listos (ready) para su ejecución.Si un proceso P0 dura en total 11 segundos, intercalándose las ráfagas de cpu y de E/s, si no existiera la posibilidad de atender otro proceso P1 en los momentos que P0 hace E/S, P1 debería esperar hasta la culminación de P0 para ejecutarse.Si vamos en cambio intercalando el proceso de CPU de P0 con el de P1 (en el momento que P0 hace E/S) aumentaremos la productividad pues en un período menor de tiempo aumentamos la cantidad de trabajos realizadosIncidencia del Cambio de contexto (context switching)El tiempo del cambio de contexto varía según el hardware. La velocidad de memoria, número de registros y si hay o no instrucciones especiales, inciden en ese tiempo. En el análisis que haremos aquí no consideramos el tiempo para el context switching pues este debería ser despreciable en comparación con el quantum que se elija. Véase que un sistema donde este tiempo es considerable, el sistema operativo tendrá mucho tiempo dedicado a esta operación, en vez de dedicarlo a procesar.

Procesos orientados a la E/S y procesos orientados a la CPUHay procesos orientados a la E/S y procesos orientados a la CPU.Los procesos orientados a la CPU tienen proporcionalmente ráfagas de CPU mayores a las de E/S, siendo estas últimas además, pocas.Normalmente los procesos de este tipo utilizan toda su porción de tiempo o quantum al no tener que abandonar la CPU por E/S.Los procesos orientados a la E/S tienen proporcionalmente ráfagas de E/S mayores a las de CPU y muy seguidas. En un ambiente de multiprogramación donde haya preponderancia de estos procesos, habrá una intervención muy frecuente del planificador de corto plazo, y mucho cambio de contexto.

Página 22ING CIP GUIOMAR WILDER VILELA SALAZAR

Page 23: Modulo de Sistemas Operativos PROGRAMA EXPERIENCIA LABORAL

ESCUELA DE INGENIERIA DE SISTEMAS CURSO:PROGRAMA DE EXPERIENCIA LABORAL SISTEMAS OPERATIVOS

Algoritmos de planificaciónEstos algoritmos tratan sobre la decisión de elegir a cuál de los procesos que están en la cola de listos se le asignara la CPU. Veamos algunos de ellos:FCFS (first-come, first-serve) Primero en llegar, primero en ser atendido.- Se le asigna la CPU al proceso que la requirió primero. Se maneja a través de una cola FIFO (First In First Out), tal que cuando un proceso requiere CPU, su PCB se coloca la final de la cola. Cuando se debe elegir un proceso para asignarle CPU se elige el proceso cuya PCB esta primera en la cola.El código para implementar este algoritmo es simple y comprensible. Pero el tiempo promedio de espera puede ser largo.El efecto convoy del FCFS.- Una situación indeseable que puede ocurrir cuando se mezclan procesos CPU bound con proceso I/O bound es el efecto convoy. El proceso CPU bound toma la CPU y la mantiene pues el resto de los procesos al tener tanto I/O se la pasa circulando por las diferentes colas (de ready, de dispositivo) o en espera. El resultado es un bajo rendimiento de la CPU, que esta prácticamente atendiendo un solo proceso.Este efecto podría evitarse atendiendo procesos más cortos primero, aumentando la productividad.

Shortest-job-first Scheduling (SJF). Planificación .primero el trabajo mas corto.- Este algoritmo elige entre los procesos de la cola de listos, aquel que tenga la próxima ráfaga de CPU mas corta. Para ello este dato debe ser conocido, obviamente. Es un algoritmo que permite que el tiempo de espera promedio sea bajo. Se puede utilizar en planificadores de largo plazo, pero no en los de corto plazo pues no hay manera de conocer la medida de la próxima ráfaga. Se podría aproximar considerando el valor de la previa.Por prioridad.- Se le asocia un valor a cada proceso que representa la prioridad, y se le asigna la CPU al proceso de la cola de ready que tenga la mayor prioridad. Los valores asociados a la prioridad son un rango fijo, de 0 a n, según cada sistema. También lo determina cada sistema si el número mas bajo es la mas alta o la mas baja prioridad.La prioridad puede ser fija o variable, externa o internaSi es fija, ese valor no varia en el ciclo de vida del proceso. Si es variable, significa que ese valor puede cambiar dinámicamente de manera tal que haya factores, por ejemplo, el tiempo que lleva esperando en colas, que puedan .ayudar. a que haya un mejor nivel de competencia elevando la prioridad de procesos postergados y evitar una situación indeseable llamada starvation (inanición). A la técnica de elevar la prioridad a un proceso de acuerdo al tiempo que hace que esta en el sistema se le llama aging. Si la prioridad es interna, es determinada en función del uso de los recursos (memoria, archivos abiertos, tiempos). Si es externa, puede decidirse darle alta prioridad a un proceso de importancia, a consideración del operador.

Página 23ING CIP GUIOMAR WILDER VILELA SALAZAR

Page 24: Modulo de Sistemas Operativos PROGRAMA EXPERIENCIA LABORAL

ESCUELA DE INGENIERIA DE SISTEMAS CURSO:PROGRAMA DE EXPERIENCIA LABORAL SISTEMAS OPERATIVOS

POSIX proporciona planificación basada en prioridades.Round-Robin Scheduling (RR). Planificación por turno circular..- Se la asigna a cada proceso de la cola de listos un intervalo de tiempo de CPU. Ese intervalo es llamado time slice o quantum. Para implementar este algoritmo la cola de listos se mantiene como una cola FIFO. Y la CPU se va asignando dándole un máximo de 1 quantum a cada proceso. Si el proceso no va a usar todo ese tiempo, usa lo necesario y libera la CPU. Se elige entonces otro proceso de la cola. Si excede el quantum, se produce una interrupción. En ambos casos al dejar la CPU hay un cambio de contexto. El tiempo promedio de espera puede ser largo. Su performance depende fuertemente de la elección del quantum. Y el tiempo gastado en context switch es una variable que se debe tener muy en cuenta. Se debe determinar un quantum que sea mucho mayor que el tiempo de context switch.

Se utiliza en los sistemas time-sharing.Colas multinivel.- En un sistema conviven procesos mixtos. Puede haber requerimientos de tiempo de respuesta distintos si conviven procesos interactivos con procesos batch (o para aquellos que provienen del Unix, procesos en foreground y procesos en background). Existen algoritmos que contemplan esta situación dividiendo la cola de ready en distintas colas según el tipo de proceso, estableciendo una competencia entre las colas y entre los procesos del mismo tipo entre si. Cada cola puede tener su algoritmo de scheduling: los procesos batch pueden ser .planificados. por un algoritmo FCFS y la cola de procesos interactivos, por un RR.

Colas multinivelEn un sistema conviven procesos mixtos. Puede haber requerimientos de tiempo de respuesta distintos si conviven proceso interactivos con procesos batch (o para aquellos que provienen del Unix, procesos en foreground y procesos en background).Existen algoritmos que contemplan esta situación dividiendo la cola de ready en distintas colas según el tipo de proceso, estableciendo una competencia entre las colas y entre los procesos del mismo tipo entre si. Cada cola puede tener su algoritmo de scheduling: los procesos batch pueden ser .planificados. por un algoritmo FCFS y la cola de procesos interactivos, por un RR.

Colas multinivel con retroalimentacionEn el caso planteado anteriormente, un proceso permanecía en la cola asignada hasta su atención. En el modelo con retroalimentacion, un proceso puede .moverse. entre colas, es decir, según convenga puede llegar a asignarse a otra cola. Los procesos se separan de acuerdo a la ráfaga de CPU que usan. Si está usando mucha CPU se lo baja a una cola de menor prioridad. Se trata de mantener los procesos interactivos y de mucha I/O en las colas de mayor prioridad.Si además un proceso estuvo demasiado tiempo en una cola de baja prioridad puede moverse a una cola de mayor prioridad para prevenir inanición (starvation).Scheduling apropiativo, expropiativo o expulsivo (preemptive)Hay que considerar en el esquema de planificación en que momento se realiza la selección.Un algoritmo no apropiativo es aquel que una vez que le da la CPU a un proceso se ejecuta hasta que termina o hasta que se bloquea hasta la ocurrencia de determinado evento.En cambio, un algoritmo apropiativo es aquel en que un proceso que se está ejecutando puede ser interrumpido y pasado a cola de listos (ready queue) por decisión del sistema operativo. Esta decisión puede ser porque llego un proceso de mayor prioridad, por ejemplo.Si bien los algoritmos apropiativos tienen un mayor costo que los no apropiativos, el sistema se ve beneficiado con un mejor servicio pues se evita que algún proceso pueda apropiarse

Página 24ING CIP GUIOMAR WILDER VILELA SALAZAR

Page 25: Modulo de Sistemas Operativos PROGRAMA EXPERIENCIA LABORAL

ESCUELA DE INGENIERIA DE SISTEMAS CURSO:PROGRAMA DE EXPERIENCIA LABORAL SISTEMAS OPERATIVOS

de la CPU.No obstante si se utilizaran algoritmos apropiativos debe considerarse si el sistema operativo está preparado para desplazar en cualquier momento un proceso. Por ejemplo, si ese proceso en ese momento, a causa de una llamada al sistema (system call) esta modificando estructuras de kernel y se lo interrumpe, esas estructuras pueden quedar en un estado inconsistente. O puede ocurrir con procesos que comparten datos y uno de ellos está modificándolos al ser interrumpido.En Unix, por ejemplo se espera que se termine de ejecutar el system call para permitir apropiación.

Relacionemos la idea de apropiación con los diferentes algoritmos vistos. FCFS es no apropiativo. Cuando se le da la CPU a un proceso, este la

mantiene hasta que decide liberarla, porque termino, o porque requiere I/O. SJF puede ser apropiativo o no. Si mientras se está ejecutando un proceso

llega uno cuya próxima ráfaga de CPU es más corta que lo que queda de ejecutar del activo, puede existir la decisión de interrumpir el que se esta ejecutando o no. Al SJF apropiativo, se le llama shortest-remaining-time-first. (primero el de tiempo restante más corto).

Prioridades puede ser apropiativo o no. Si mientras se esta ejecutando un proceso llega a la cola de ready un proceso de mayor prioridad que el que se esta ejecutando puede existir la decisión de interrumpir el que se esta ejecutando o no. Si es no apropiativo, en lugar de darle la CPU al nuevo proceso, lo pondrá primero en la cola de ready.

RR es apropiativo pues si el proceso excede el tiempo asignado, hay una interrupción para asignarla la CPU a otro proceso.

POSIX (ver Carretero p. 137) especifica tres tipos de políticas de planificación: FIFO. Pero pueden ser expulsados por procesos de mayor prioridad y RR (round robin) (turno circular). Los procesos dentro del mismo nivel de

prioridad ejecutan según una política de planificación RR. Son expulsados de la CPU cuando acaba su rodaja de tiempo o cuando son expulsados por un proceso de mayor prioridad. El tercer tipo se denomina:

OTHER, que queda libre a la implementación y se debe documentar adecuadamente

La planificación de procesos en ambientes multiprocesadorEn el caso en que los procesadores son idénticos, cualquier procesador disponible puede usarse para atender cualquier proceso en la cola. No obstante, debemos tener en cuenta que puede haber dispositivos asignados de manera privada o única a un procesador, y si un proceso quiere hacer uso de ese dispositivo deberá ejecutarse en ese procesador. Otra ventaja es implementar load sharing (carga compartida), permitiendo que si un procesador esta ocioso puedan pasarse procesos de la cola de otro procesador a este, o hacer una cola común, y la atención se realiza de acuerdo a la actividad de cada uno.En ambientes de procesadores heterogéneos no olvidemos que un procesador podría ejecutar solo aquellos procesos que fueron compilados de acuerdo a su conjunto de instrucciones.En otros sistemas se asume un estructura de procesadores master-slave que asigna a un procesador la toma de decisiones en cuanto a scheduling y otras actividades, dedicándose los otros procesadores a ejecutar código de usuario. La ventaja es que solo el procesador master accede a estructuras del kernel, evitando inconsistencias.

Un ejemplo: Windows NTEl sistema operativo Windows NT es un ejemplo de diseño moderno que utiliza modularidad para incrementar la funcionalidad y reducir el tiempo necesario para implementar nuevas características. NT apoya múltiples entornos operativos o

Página 25ING CIP GUIOMAR WILDER VILELA SALAZAR

Page 26: Modulo de Sistemas Operativos PROGRAMA EXPERIENCIA LABORAL

ESCUELA DE INGENIERIA DE SISTEMAS CURSO:PROGRAMA DE EXPERIENCIA LABORAL SISTEMAS OPERATIVOS

subsistemas con los que los programas de aplicación se comunican empleando un sistema de transferencia de mensajes.Los programas de aplicación se pueden considerar como clientes del servidor de subsistemas NT.El recurso de transferencia de mensajes en Windows NT se llama Recurso de Llamada aProcedimiento Remoto (LPC, Local Procedure Call), y sirve para que se comuniquen entre sí dos procesos que están en la misma máquina. El mecanismo es similar al de llamada a procedimientos remotos estándar de uso general pero optimado y específico para NT.Windows NT, al igual que Mach, utiliza un objeto puerto para establecer y mantener una conexión entre dos procesos. Cada cliente que invoca un subsistema necesita un canal de comunicación, mismo que el objeto puerto proporciona y que nunca se hereda. NT maneja dos tipos de puertos, puertos de conexión y puertos de comunicación, que en realidad son iguales pero reciben diferentes nombres según la forma en que se usa. Los puertos de conexión son objetos con nombre, visibles para todos los procesos, y ofrecen a las aplicaciones una forma de establecer un canal de comunicación. La comunicación funciona como sigue:

El cliente abre un mando para el objeto puerto de conexión del subsistema. El cliente envía una solicitud de conexión. El servidor crea dos puertos de comunicación privados y devuelve el mando de

uno de ellos al cliente. El cliente y el servidor usan el mando de puerto correspondiente para enviar

mensajes o devoluciones de llamada y esperar respuestas.

ORGANIZACIÓN DE LA MEMORIA

La memoria es un recurso importante que se debe administrar con cuidado. Si bien hoy día la computadora casera media tiene cincuenta veces más memoria que la IBM 7094, que era la computadora más grande en el mundo a principios de los años sesenta, los programas están aumentando de tamaño con tanta rapidez como las memorias. Parafraseando la ley de Parkinson, "los programas se expanden hasta llenar la memoria disponible para contenerlos". Idealmente, lo que a todo programador le gustaría es una memoria infinitamente grande y rápida que además no sea volátil, es decir, que no pierda su contenido cuando se interrumpa la alimentación eléctrica. Ya entrados en materia, ¿por qué no pedimos también que sea económica? Desafortunadamente, la tecnología no proporciona tales memorias. En consecuencia, la mayor parte de las computadoras tienen una jerarquía de memoria, con una cantidad pequeña de memoria caché muy rápida, costosa y volátil, algunos megabytes de memoria principal (RAM) volátil de mediana velocidad y mediano precio, y cientos o miles de megabytes de almacenamiento en disco lento, económico y no volátil. Corresponde al sistema operativo coordinar el uso de estas memorias. La parte del sistema operativo que administra la jerarquía de memoria se denomina administrador de memoria. Su trabajo consiste en mantenerse al tanto de qué partes de la memoria |t8tánenuso y cuáles no lo están, asignar memoria a los procesos cuando la necesitan y recuperarla | cuando terminan, y controlar el intercambio entre la memoria principal y el disco cuando la primera es demasiado pequeña para contener todos los procesos.En los sistemas más sencillos no realizan intercambios ni paginación. Una vez que un programa se carga en la memoria, permanece ahí hasta terminar. Algunos sistemas operativos sólo permiten un proceso a la vez en la memoria, mientras que otros apoyan la multiprogramación. El siguiente paso hacia arriba es el intercambio. Cuando se usa intercambio, el sistema puede manejar más procesos que los que cabrían en la memoria. Los

Página 26ING CIP GUIOMAR WILDER VILELA SALAZAR

Page 27: Modulo de Sistemas Operativos PROGRAMA EXPERIENCIA LABORAL

ESCUELA DE INGENIERIA DE SISTEMAS CURSO:PROGRAMA DE EXPERIENCIA LABORAL SISTEMAS OPERATIVOS

procesos para los cuales no hay espacio se intercambian al disco. Puede seguirse la pista al espacio libre en la memoria y en el disco mediante un mapa de bits o una lista de agujeros. Las computadoras más avanzadas suelen tener alguna forma de memoria virtual. En la forma más simple, el espacio de direcciones de cada proceso se divide en bloques de tamaño uniforme llamados páginas, que se pueden colocar en cualquier marco de página que esté disponible en la memoria. Hay muchos algoritmos de reemplazo de páginas; dos de los más conocidos son el de segunda oportunidad y el de maduración. No basta escoger un algoritmo para lograr que los sistemas de paginación funcionen bien; deben cuidarse aspectos tales como la determinación del conjunto de trabajo, la política de asignación de memoria y el tamaño de las páginas. La segmentación ayuda a manejar estructuras de datos que cambian de tamaño durante 1 ejecución, y simplifica la vinculación y la compartición. Además, cuando se usan segmentos más fácil proporcionar distintos niveles de protección a los diferentes segmentos. En algunos casos se combina la segmentación con paginación para crear una memoria virtual bidimensional. El sistema MULTICS y el Pentium de Intel apoyan la segmentación y la paginación. Varias llamadas al sistema reconocen señales estilo POSIX, y puesto que la acción predeterminada de la mayor parte de las señales es terminar el proceso al que se envió la señal, resulta apropiado manejarlas en el administrador de memoria, que inicia la terminación de todos los procesos. El administrador de memoria también maneja varias llamadas al sistema que no están relacionadas directamente con la memoria, principalmente porque es más pequeño que el sistema de archivos, así que resultó más cómodo colocarlas ahí.

PROBLEMAS 1. Un sistema de computadora tiene suficiente espacio para contener cuatro programas en su memoria principal. La mitad del tiempo, estos programas están ociosos esperando E/S. ¿Qué fracción del tiempo de CPU se desperdicia? 2. Considere un sistema de intercambio en el que la memoria tiene agujeros con los siguientes tamaños en orden según su posición en la memoria: 10K, 4K, 20K, 18K, 7K, 9K, 12K y 15K. ¿Cuál agujero se toma cuando hay solicitudes de segmento sucesivas de (a) 12K (b) 10K (c) 9K si se usa primer ajuste? Repil;). usando mejor ajuste, peor ajuste y siguiente ajuste. 3. ¿Qué diferencia hay entre una dirección física y una dirección virtual? 4. Empleando la tabla de páginas de la Fig. 4-8, dé la dirección física que corresponde a cada una de las siguientes direcciones virtuales: (a) 20 (b) 4100 (c) 8300 5. El procesador Intel 8086 no apoya la memoria virtual. No obstante, algunas compañías vendieron previamente sistemas que contenían una CPU 8086 no modificada y realizaban paginación. Utilice lo que sabe para sugerir cómo lo hicieron. (Sugerencia: piense en la ubicación lógica de la MMU.) 6. Si una instrucción tarda 1 microsegundo y una falla de página tarda n microsegundos adicionales, deduzca una fórmula para el tiempo de instrucción efectivo si ocurren fallas de página cada k instrucciones. 7. Una máquina tiene un espacio de direcciones de 32 bits y páginas de 8K. La tabla de páginas está totalmente en hardware, con una palabra de 32 bits por cada entrada. Cuando un proceso inicia, la tabla de páginas se copia en el hardware desde la memoria, a razón de una palabra cada 100 ns. Si cada proceso se ejecuta durante 100

Página 27ING CIP GUIOMAR WILDER VILELA SALAZAR

Page 28: Modulo de Sistemas Operativos PROGRAMA EXPERIENCIA LABORAL

ESCUELA DE INGENIERIA DE SISTEMAS CURSO:PROGRAMA DE EXPERIENCIA LABORAL SISTEMAS OPERATIVOS

ms (incluido el tiempo que toma cargar la tabla de páginas), ¿qué fracción del tiempo de CPU se dedica a cargar las tablas de páginas? 8. Una computadora con direcciones de 32 bits usa una tabla de páginas de dos niveles. Las direcciones virtuales se dividen en un campo de tabla de páginas de nivel superior de nueve bits y un campo de tabla de páginas de segundo nivel de once bits, además de una distancia. ¿Qué tamaño tienen las páginas y cuántas de ellas hay en el espacio de direcciones? 9. Una computadora tiene cuatro marcos de página. A continuación se muestran el tiempo de carga, el tiempo de último acceso y los bits R y M para cada página (los tiempos están en tics del reloj): PáginaCargada Última ref. R MO 126 279 O O1 230 260 1 O2 120 272 1 13 160 280 1 1(a) ¿Cuál página se reemplazará si se usa NRU? (b) ¿Cuál página se reemplazará si se usa FIFO? (c) ¿Cuál página se reemplazará si se usa LRU? (d) ¿Cuál página se reemplazará si se usa segunda oportunidad?

SISTEMAS DE ARCHIVOSTodas las aplicaciones de computadora necesitan almacenar y recuperar información. Mientras un proceso se está ejecutando, puede almacenar una cantidad de información limitada dentro de su propio espacio de direcciones. Sin embargo, la capacidad de almacenamiento está restringida al tamaño del espacio de direcciones virtual. En el caso de algunas aplicaciones, este tamaño es adecuado, pero en el de otras, como las de reservaciones de líneas aéreas, las aplicaciones bancadas o las bases de datos corporativas, dicho tamaño resulta excesivamente pequeño. Un segundo problema de mantener la información dentro del espacio de direcciones de un proceso es que cuando el proceso termina la información se pierde. En muchas aplicaciones (como las bases de datos), la información debe retenerse durante semanas, meses, o incluso eternamente. No es aceptable que la información desaparezca cuando el proceso que la está usando termina. Además, la información no debe perderse cuando una caída de la computadora termina el proceso. Un tercer problema es que en muchos casos es necesario que múltiples procesos accedan a (partes de) la información al mismo tiempo. Si tenemos un directorio telefónico en línea almacenado dentro del espacio de direcciones de un solo proceso, únicamente ese proceso tendrá acceso a él. La forma de resolver este problema es hacer que la información misma sea independiente de cualquier proceso individual. Por tanto, tenemos tres requisitos esenciales para el almacenamiento de información a largo plazo: 1. Debe ser posible almacenar una gran cantidad de información. 2. La información debe sobrevivir a la terminación del proceso que la usa. 3. Múltiples procesos deben poder acceder a la información de forma concurrente. La solución usual a todas estas exigencias es almacenar la información en discos y otros medios externos en unidades llamadas archivos. Así, los procesos pueden leerlos y escribir archivos nuevos si es necesario. La información almacenada en archivos debe ser persistente, es decir, no ser afectada por la creación y terminación de procesos. Un archivo sólo debe desaparecer cuando su propietario lo elimina explícitamente. Los archivos son administrados por el sistema operativo. La forma como se estructuran, nombran, acceden, usan, protegen e implementan son temas importantes en el diseño de sistemas operativos. Globalmente, la parte del sistema operativo que se ocupa de los archivos se denomina sistema de archivos.

Página 28ING CIP GUIOMAR WILDER VILELA SALAZAR

Page 29: Modulo de Sistemas Operativos PROGRAMA EXPERIENCIA LABORAL

ESCUELA DE INGENIERIA DE SISTEMAS CURSO:PROGRAMA DE EXPERIENCIA LABORAL SISTEMAS OPERATIVOS

Desde el punto de vista del usuario, el aspecto más importante de un sistema de archivos es la cara que presenta ante él, es decir, qué constituye un archivo, cómo se nombran y protegen los archivos, qué operaciones pueden efectuarse con los archivos, etc. Los detalles de si se usan listas enlazadas o mapas de bits para mantenerse al tanto del espacio de almacenamiento disponible y de cuántos sectores hay en un bloque lógico tienen menos interés, aunque son de gran relevancia para los diseñadores del sistema de archivos. Visto desde fuera, un sistema de archivos es una colección de archivos y directorios, junto con operaciones para manejarlos. Podemos leer y escribir archivos, crear y destruir directorios, y pasar archivos de un directorio a otro. La mayor parte de los sistemas de archivos modernos utiliza un sistema de directorios jerárquico en el que los directorios pueden tener subdirectorios ad infinitum. Visto desde el interior, un sistema de archivos tiene un aspecto muy distinto. Los diseñadores de un sistema de archivos deben preocuparse por la forma de asignar almacenamiento, y del mecanismo para saber siempre qué bloque corresponde a cuál archivo. Los diferentes sistemas tienen diferentes estructuras de directorio. La confiabilidad y el rendimiento del sistema de archivos también son cuestiones importantes.La seguridad y la protección son asuntos vitales tanto para los usuarios como para los diseñadores de un sistema de archivos. Comentamos algunas fallas de seguridad en sistemas viejos y los problemas genéricos que muchos sistemas padecen. Además, estudiamos la verificación de autenticidad, con y sin contraseñas, listas de control de acceso y capacidades, así como un modelo de matriz para razonar acerca de la protección.

SISTEMAS DE ENTRADA/SALIDA

Una de las principales funciones de un sistema operativo es controlar todos los dispositivos de E/S (entrada/salida) de una computadora. El sistema operativo debe enviar comandos a los dispositivos, detectar interrupciones y manejar errores; también debe proveer una interfaz entre los dispositivos y el resto del sistema que sea sencilla y fácil de usar. Se debe tratar al máximo que la interfaz sea la misma para todos los dispositivos (independencia respecto al dispositivo). El código de E/S representa una parte significativa del sistema operativo total. Primero se examinara brevemente algunos de los principios del hardware de E/S, y luego estudiaremos el software de E/S en general. El software de E/S puede estructurarse en capas, cada una de las cuales tiene una tarea bien definida que realizar. Analizará estas capas para ver qué hacen y cómo se relacionan entre sí. A continuación viene una sección sobre los bloqueos mutuos. Definiremos éstos de forma precisa, indicaremos sus causas, presentaremos dos mód para analizarlos y estudiaremos algunos algoritmos para prevenir su incidencia. Examinaremos cuatro dispositivos de E/S con detalle: el disco en RAM, el disco duro, el reloj y la terminal. La entrada/salida es un tema importante que muchas veces se descuida. Una fracción sustancia de todo sistema operativo se ocupa de E/S. Comenzamos por examinar el hardware de E/S y la relación entre los dispositivos de E/S y los controladores en hardware de E/S, que son los que deben manejar el software. Los cuatro niveles de software de E/S: las rutinas de interrupción, los controladores de dispositivos, el software de E/S independiente del dispositivo y las bibliotecas de E/S y los spoolers que se ejecutan en el espacio de usuario. Ocurre un bloqueo mutuo cuando se concede a cada uno de un grupo de procesos acceso exclusivo a ciertos recursos, y cada uno quiere además otro recurso que pertenece a otro proceso del grupo. Todo ellos se bloquean y ninguno puede ejecutarse jamás. Se puede evitar el bloqueo mutuo estructurando el sistema de modo que nunca pueda ocurrir, por ejemplo, decretando que un proceso sólo puede

Página 29ING CIP GUIOMAR WILDER VILELA SALAZAR

Page 30: Modulo de Sistemas Operativos PROGRAMA EXPERIENCIA LABORAL

ESCUELA DE INGENIERIA DE SISTEMAS CURSO:PROGRAMA DE EXPERIENCIA LABORAL SISTEMAS OPERATIVOS

adueñarse de un recurso a la vez. También puede evitarse el bloqueo mutuo examinando todas las peticiones de recursos para determinar si dan pie a una situación en la que es posible el bloqueo mutuo (un estado inseguro) y rechazar o diferir las peticiones que pudieran causar problemas. Los controladores de dispositivos tienen relaciones variables con el sistema de interrupciones. Los dispositivos que pueden completar su trabajo rápidamente, como el disco en RAM y la pantalla mapeados en la memoria, ni siquiera usan interrupciones. La tarea controladora del disco duro realiza la mayor parte de su trabajo en el código de la tarea mismo, y los manejadores de interrupciones se limitan a devolver información de estado. El manejador de interrupciones del reloj realiza varias operaciones de contabilidad por sí mismo y sólo envía un mensaje a la tarea del reloj cuando hay trabajo del que el manejador no se puede ocupar. El manejador de interrupciones del teclado guarda en buffers las entradas y nunca envía mensajes a su tarea; más bien, modifica una variable inspeccionada por el manejador de interrupciones del reloj, el cual envía posteriormente un mensaje a la tarea de la terminal.

LOS SISTEMAS OPERATIVOS EN AMBIENTES DISTRIBUIDOS.

Un sistema distribuido es un conjunto de computadoras independientes que se presenta a los usuarios como un sistema único. En el sistema distribuido cualquier computadora puede tener acceso a el software o hardware y el centralizado solo se encuentra en una computadora a la cual se le pide en servicio.

Ventajas y Desventajas de un sistema distribuido contra un sistema centralizadoDistribuidos

Ventajas Tiene procesadores mas poderosos y menos costosos Desarrollo de estaciones con mas capacidad Las estaciones satisfacen las necesidades de los usuarios Uso de nuevas interfaces

Desventajas Requerimientos de mayores controles de procesamiento Velocidad de programación de información (muy lenta) Mayores controles de acceso

Centralizado

Ventajas Mayor aprovechamiento de recursos

Desventajas El software es mucho más complejo

Ventajas de los sistemas distribuidos sobre los centralizados

Economía Velocidad global de la instalación Solución a problemas, pasan por el empleo de computadoras físicamente

distantes La seguridad ante la falla de un CPU puede reorganizarse y seguir operando

correctamente pero con menos precisión

Página 30ING CIP GUIOMAR WILDER VILELA SALAZAR

Page 31: Modulo de Sistemas Operativos PROGRAMA EXPERIENCIA LABORAL

ESCUELA DE INGENIERIA DE SISTEMAS CURSO:PROGRAMA DE EXPERIENCIA LABORAL SISTEMAS OPERATIVOS

Un sistema distribuido permite la aportación de nuevos recursos de computo a fin de elevar su potencial global y el crecimiento es muy util a las empresas y en computadora normal soporta continuamente un aumento de la carga de trabajo debido al crecimiento de la empresa y llegara el momento en que deberá ser sustituida e invertir en una nueva computadora.

Modelo Cliente Servidor

Arquitectura Cliente- Servidor.- Una arquitectura es un conjunto de reglas, definiciones, términos y modelos. Que se emplea para producir la arquitectura cliente-servidor agrupa conjuntos de elementos que efectúan procesos distribuidos y computo operativo.

Beneficios

Mayor aprovechamiento de la potencia de computo Reduce el tráfico en la red Opera bajo sistemas abiertos Permite el uso de interfaces graficas variadas

Cliente.- Conjunto de software y hardware que invoca los servicios de uno o varios servidores.

Características Hardware Sistemas Distribuidos.- Debemos considerar las diversas formas en que es posible interconectar varias computadoras o bien varias CPUS. Flynn propuso cuatro diferentes categorías en que se podrían clasificar lo sistemas hardware existen de acuerdo a dos parámetros número de flujo de instrucciones y números de flujos de datos.

SISD Un flujo de instrucción con flujo de datos SIMD Un flujo de instrucción varios flujos de datos MISD Varios flujos de instrucciones un flujo de datos (no se usa) MIMD Varios flujos de instrucciones y varios flujos de datos

Dentro de esta categoría se pueden encontrar dos tipos distintos de la forma en que se pueden interconectar el hardware. Es así, como tenemos los siguientes grandes grupos

MULTIPROCESADORES MULTICOMPUTADORES

Cada uno de estos tipos permite una interconexión de su componente tipo bus y tipo conmuta. Desde el punto de vista de las velocidades de comunicación que pueden alcanzar estos dos grandes grupos se tienen dos conceptos asociados.

Sistemas fuertemente acoplados

Sistemas débilmente acoplados

SFA Tasa de transmisión alta, retraso de mensajes alto (mensajes cortos) SDA retraso de mensajes entre maquines grande y tasa de transmisión baja

Página 31ING CIP GUIOMAR WILDER VILELA SALAZAR

Page 32: Modulo de Sistemas Operativos PROGRAMA EXPERIENCIA LABORAL

ESCUELA DE INGENIERIA DE SISTEMAS CURSO:PROGRAMA DE EXPERIENCIA LABORAL SISTEMAS OPERATIVOS

MULTIPROCESADOR.- Los multiprocesadores corresponden a un conjunto de CPUS conectadas entre sí que utilizan un espacio de direccionamiento virtual común.

MULTIPROCESADORES CON CONEXIÓN DE BUS.- En este caso los CPUS están interconectados entre sí, mediante un bus. Cada vez que una CPU quiere realizar un acceso de lectura o escritura debe acceder al bus.

MULTIPROCESADORES CON CONEXIÓN CONMUTA.- En este caso la memoria se divide en diversos bancos y las CPUS se interconectan con ellas no mediante un canal tipo bus, si no de otra manera.

MULTICOMPUTADORES.- Esto se refiere a sistemas de computa con memoria distribuida, en esta caso cada computadora pasee su propia memoria local.

MULTICOMPUTADORES CON CONEXIÓN DE BUS.- Esta sistema es similar al caso de los multiprocesadores. Con conexión tipo bus, solo que no se requiere que el canal de comunicación sea tan alto como en el caso de los multiprocesadores.

Características Software Sistemas Distribuidos

TRANSPARENCIA.- Se define como la ocultación al usuario y al programador de aplicaciones de la superación de los componentes de un sistema distribuido.

TOLERANCIA A FALLOS.- Esto se basa en dos Curt iones complementarías entre si. Redundancia hardware y recuperación del software.

COMPARTICIÓN DE RECURSOS.- El término “RECURSO” es bastante abstracto pero es el que mejor caracteriza el abanico de entidades que pueden compartirse en un sistema distribuido.

APERTURA (Openeness).- Un sistema puede ser abierto o cerrado con respecto a extensiones hardware o con respecto a las extensiones software.

CONCURRENCIA.- Cuando existen varios procesos en una única maquina decimos que se están ejecutando.

Direccionamiento Lógico Físico Sistemas Distribuidos

STUBS.- El stup se implementa en el cliente como una rutina de biblioteca

ESPECIFICACIÓN DE INTERFAZ.- El servidor RPC puede ser considerado como un módulo u objeto que implementa operaciones sobre datos ocultos y da a conocer estas operaciones a los clientes mediante lo que se denomina interface constituida por las declaraciones de los métodos que soporta. El primer paso es definir la interfaz es decir el conjunto de los prototipos de los procedimientos de servicios mediante un lenguaje determinado de interfaz, un compilador especial toma como estrada el fichero escrito en el lenguaje de interfaz y como salida genera el código objeto de los procedimientos que constituyen el stups del cliente, por una parte y el stup servidor por la otra, el programa cliente se enlaza con estos procedimientos objetos para generar el ejecutable, en cuanto al servidor los procedimientos de servicio escritos por el compilador se compilan previamente al lenguaje objeto y se enlazan con los procedimientos de stup en los que figura el procedimiento principal del servidor

Página 32ING CIP GUIOMAR WILDER VILELA SALAZAR

Page 33: Modulo de Sistemas Operativos PROGRAMA EXPERIENCIA LABORAL

ESCUELA DE INGENIERIA DE SISTEMAS CURSO:PROGRAMA DE EXPERIENCIA LABORAL SISTEMAS OPERATIVOS

Concepto Características Sor

Cada elemento de cómputo tiene su propia memoria y su propio sistema operativo.

Control de recursos locales y remotos. Sistemas abiertos (facilidades de cambio y crecimiento). No existe una plataforma estándar (unix, NT, Intel etc…). Medios de comunicación (Redes, protocolos, dispositivos etc…). Capacidad de procesamiento en paralelo. Dispersión y parcialidad.

Factores que han afectado el desarrollo del sistema distribuido

Avances tecnológicos Nuevos requerimientos Globalización Aspectos externos (culturales, políticos y económicos) Integración

Concepto Características del Sod

Características

El cliente pide servicios a un nodo denominado servidor Detecta e intersecta peticiones de otras aplicaciones y puede redireccionarlas Dedicado a la sección de usuario El método más común por el que se solicitan los servicios es através de RPC

(llamadas a procedimientos remotos)

FUNCIONES COMUNES DEL CLIENTE

Mantener y procesar todo el dialogo con el usuario Manejo de pantallas Menús e interpretación de comandos Entrada de datos y validación Procesamiento de ayuda Recuperación de errores

RPC Funcionamiento

Cliente:

- Proceso realiza llamada a función- Llamada empaqueta ID de función y argumentos en mensaje y los envía a otro

proceso- Queda a la espera del resultado

Servidor:

- Recibe mensajes con id de función y argumentos- Se invoca función en el servidor- Resultado de la función se empaqueta en mensaje que se retransmite al cliente

Página 33ING CIP GUIOMAR WILDER VILELA SALAZAR

Page 34: Modulo de Sistemas Operativos PROGRAMA EXPERIENCIA LABORAL

ESCUELA DE INGENIERIA DE SISTEMAS CURSO:PROGRAMA DE EXPERIENCIA LABORAL SISTEMAS OPERATIVOS

COMUNICACIÓN EN LOS SISTEMAS OPERATIVOS DISTRIBUIDOS

COMUNICACIÓN.- La comunicación entre procesos en sistemas con un único procesador se lleva a cabo mediante el uso de memoria compartida entre los procesos. En los sistemas distribuidos, al no haber conexión física entre las distintas memorias de los equipos, la comunicación se realiza mediante la transferencia de mensajes.

Comunicación Cliente-Servidor

Sockets.- Es un mecanismo de comunicación, Permite a los sistemas cliente/servidor ser desarrollados Localmente en una sola máquina A través de redes. Funciones tales como impresión, utilerías de red, tales como rlogin y ftp, usualmente usan sockets para comunicarse.

Socket designa un concepto abstracto por el cual dos programas (posiblemente situados en computadoras distintas) pueden intercambiarse cualquier flujo de datos, generalmente de manera fiable y ordenada.

Un socket queda definido por una dirección IP, un protocolo y un número de puerto.

Explicación detallada

Para que dos programas puedan comunicarse entre sí es necesario que se cumplan ciertos requisitos:

Que un programa sea capaz de localizar al otro. Que ambos programas sean capaces de intercambiarse cualquier secuencia

de octetos, es decir, datos relevantes a su finalidad. Para ello son necesarios los tres recursos que originan el concepto de socket: Un protocolo de comunicaciones, que permite el intercambio de octetos. Una dirección del Protocolo de Red (Dirección IP, si se utiliza el Protocolo

TCP/IP), que identifica una computadora. Un número de puerto, que identifica a un programa dentro de una computadora.

Los sockets permiten implementar una arquitectura cliente-servidor. La comunicación ha de ser iniciada por uno de los programas que se denomina programa cliente. El segundo programa espera a que otro inicie la comunicación, por este motivo se denomina programa servidor.

Un socket es un fichero existente en la máquina cliente y en la máquina servidora, que sirve en última instancia para que el programa servidor y el cliente lean y escriban la información. Esta información será la transmitida por las diferentes capas de red.

Comunicación RPC.- Otro paso en el diseño de un sistema operativo distribuido plantea las llamadas a procedimientos remotos o RPCs. Los RPC amplían la llamada local a procedimientos, y los generalizan a una llamada a un procedimiento localizado en cualquier lugar de todo el sistema distribuido. En un sistema distribuido no se debería distinguir entre llamadas locales y RPCs, lo que favorece en gran medida la transparencia del sistema. Una de las dificultades más evidentes a las que se enfrenta el RPC es el formato de los parámetros de los procedimientos. Un ejemplo es la posibilidad de que en un sistema distribuido formado por diferentes tipos de

Página 34ING CIP GUIOMAR WILDER VILELA SALAZAR

Page 35: Modulo de Sistemas Operativos PROGRAMA EXPERIENCIA LABORAL

ESCUELA DE INGENIERIA DE SISTEMAS CURSO:PROGRAMA DE EXPERIENCIA LABORAL SISTEMAS OPERATIVOS

ordenadores, un ordenador con formato little endian llamara a un procedimiento de otro ordenador con formato big endian, etc. Este problema se podría solucionar si tenemos en cuenta que ambos programas conocen el tipo de datos de los parámetros, o estableciendo un estándar en el formato de los parámetros, de forma que sea usado de forma única. Por último queda por solucionar la tolerancia a fallos. Una llamada a un procedimiento remoto puede fallar por motivos que antes no existían, como la pérdida de mensajes o el fallo del cliente o del servidor durante la ejecución del procedimiento. La limitación del RPC más clara en los sistemas distribuidos es que no permite enviar una solicitud y recibir respuesta de varias fuentes a la vez, sino que la comunicación se realiza únicamente entre dos procesos. Por motivos de tolerancia a fallos, bloqueos, u otros, sería interesante poder tratar la comunicación en grupo.

Comunicación en grupo.- La comunicación en grupo tiene que permitir la definición de grupos, así como características propias de los grupos, como la distinción entre grupos abiertos o que permiten el acceso y cerrados que lo limitan, o como la distinción del tipo de jerarquía dentro del grupo. Igualmente, los grupos han de tener operaciones relacionadas con su manejo, como la creación o modificación.

Tolerancia a fallos.- Que el sistema de archivos sea tolerante a fallos implica que el sistema debe guardar varias copias del mismo archivo en distintos ordenadores para garantizar la disponibilidad en caso de fallo del servidor original. Además, se ha de aplicar un algoritmo que nos permita mantener todas las copias actualizadas de forma consistente, o un método alternativo que sólo nos permita acceder al archivo actualizado, como invalidar el resto de copias cuando en cualquiera de ellas se vaya a realizar una operación de escritura. El uso de memorias cache para agilizar el acceso a los archivos también es recomendable, pero este caso requiere analizar con especial atención la consistencia del sistema.

SINCRONIZACIÓN.- El modelo cliente-servidor basa la comunicación en una simplificación del modelo OSI. Las siete capas que proporciona producen un desaprovechamiento de la velocidad de transferencia de la red, con lo que sólo se usarán tres capas: física (1), enlace de datos (2) y solicitud/respuesta (5). Las transferencias se basan en el protocolo solicitud/respuesta y se elimina la necesidad de conexión.

Relojes físicos.- El algoritmo de Lamport proporciona un orden de eventos sin ambigüedades, pero:

Los valores de tiempo asignados a los eventos no tienen por qué ser cercanos a los tiempos reales en los que ocurren.

En ciertos sistemas (ej.: sistemas de tiempo real), es importante la hora real del reloj:

Se precisan relojes físicos externos (más de uno).

Se deben sincronizar:

Con los relojes del mundo real.

Entre sí.

Página 35ING CIP GUIOMAR WILDER VILELA SALAZAR

Page 36: Modulo de Sistemas Operativos PROGRAMA EXPERIENCIA LABORAL

ESCUELA DE INGENIERIA DE SISTEMAS CURSO:PROGRAMA DE EXPERIENCIA LABORAL SISTEMAS OPERATIVOS

La medición del tiempo real con alta precisión no es sencilla.

Desde antiguo el tiempo se ha medido astronómicamente.

Se considera el día solar al intervalo entre dos tránsitos consecutivos del sol, donde el tránsito del sol es el evento en que el sol alcanza su punto aparentemente más alto en el cielo.

El segundo solar se define como 1 / 86.400 de un día solar.

Como el período de rotación de la tierra no es constante, se considera el segundo solar promedio de un gran número de días.

Los físicos definieron al segundo como el tiempo que tarda el átomo de cesio 133 para hacer 9.192.631.770 transiciones:

Se tomó este número para que el segundo atómico coincida con el segundo solar promedio de 1958.

Relojes Lógicos.- Las computadoras poseen un circuito para el registro del tiempo conocido como dispositivo reloj. Es un cronómetro consistente en un cristal de cuarzo de precisión sometido a una tensión eléctrica que:

Oscila con una frecuencia bien definida que depende de: La forma en que se corte el cristal. El tipo de cristal. La magnitud de la tensión.

A cada cristal se le asocian dos registros: Registro contador. Registro mantenedor.

Cada oscilación del cristal decrementa en “1” al contador. Cuando el contador llega a “0”:

Se genera una interrupción. El contador se vuelve a cargar mediante el registro mantenedor.

Se puede programar un cronómetro para que genere una interrupción “x” veces por segundo.

Cada interrupción se denomina marca de reloj.Para una computadora y un reloj:

No interesan pequeños desfasajes del reloj porque: Todos los procesos de la máquina usan el mismo reloj y tendrán

consistencia interna. Importan los tiempos relativos.

Para varias computadoras con sus respectivos relojes:

Es imposible garantizar que los cristales de computadoras distintas oscilen con la misma frecuencia.

Habrá una pérdida de sincronía en los relojes (de software), es decir que tendrán valores distintos al ser leídos.

Uso de la sincronización

Página 36ING CIP GUIOMAR WILDER VILELA SALAZAR

Page 37: Modulo de Sistemas Operativos PROGRAMA EXPERIENCIA LABORAL

ESCUELA DE INGENIERIA DE SISTEMAS CURSO:PROGRAMA DE EXPERIENCIA LABORAL SISTEMAS OPERATIVOS

La Oficina Internacional de la Hora en París (BIH) recibe las indicaciones de cerca de 50 relojes atómicos en el mundo y calcula el tiempo atómico internacional (TAI).

Como consecuencia de que el día solar promedio (DSP) es cada vez mayor, un día TAI es 3 mseg menor que un DSP:

La BIH introduce segundos de salto para hacer las correcciones necesarias para que permanezcan en fase:

El sistema de tiempo basado en los segundos TAI. El movimiento aparente del sol. Surge el tiempo coordenado universal (UTC). El Instituto Nacional del Tiempo Estándar (NIST) de EE. UU. y de otros países:

Operan estaciones de radio de onda corta o satélites de comunicaciones.

Transmiten pulsos UTC con cierta regularidad establecida (cada segundo, cada 0,5 mseg, etc.).

Se deben conocer con precisión la posición relativa del emisor y del receptor:

Se debe compensar el retraso de propagación de la señal.

Si la señal se recibe por módem también se debe compensar por la ruta de la señal y la velocidad del módem.

Se dificulta la obtención del tiempo con una precisión extremadamente alta.

TOP 10 DE SISTEMAS OPERATIVOS

Chrome OS obtiene el puesto Nº 10 por su velocidad, simplicidad y tecnología nos muestran lo que verdaderamente van a ser los SO, igual, para lo que está hecho es una verdad, todo lo podemos tener almacenado en la internet ya que es eso lo que está ocurriendo y para que desperdiciar dinero pagando en discos duros, si tan solo lo que necesitamos es una buena conexión a internet.

Windows XP a pesar de que XP es tecnología del principio de siglo, ha sido uno de los SO más usados, incluso todavía muchas personas lo usan, y las cualidades de que usa pocos recursos y permite hacer las mismas tareas que cualquier sistema operativo moderno lo convierten en un gran so y por eso ocupa el puesto Nº 9.

Linux Mint ocupa el puesto Nº 8 de nuestra lista porque contiene un paquete de software que permiten al usuario promedio tener un uso más fácil de este y lograr poder sacar el mayor provecho a nuestras maquinas.

Debian ocupa el puesto Nº 7 de la lista porque ha sido un software que ha sido desarrollada por una gran comunidad de gente y se ha probado que tiene una muy excelente estabilidad y utilidad, además que ha sido la base de más de 125 distribuciones lo que han hecho un so muy aclamado por las personas.

Windows Vista es un gran so aunque muchos no lo consideren ya que el error que cometió microsoft fue el de la compatibilidad y el rendimiento ya que para el año en que salio windows vista eran muy caras las pc que tenían capacidad para correr bien el so así el hecho de que muchas persona hayan migrado a windows vista y vuelto a xp es porque sus pc no tenian la capacidad parar el uso de este so y por eso recibió tan malas críticas, por eso yo nombro aquí el windows vista service pack 1 ya que es un so muy estable (para maquinas que tienen el rendimiento requeridos) y su tecnología y su interfaz han ello que este so se muy fácil su uso y su compatibilidad y por windows vista sp1 llega al puesto Nº 6.

Página 37ING CIP GUIOMAR WILDER VILELA SALAZAR

Page 38: Modulo de Sistemas Operativos PROGRAMA EXPERIENCIA LABORAL

ESCUELA DE INGENIERIA DE SISTEMAS CURSO:PROGRAMA DE EXPERIENCIA LABORAL SISTEMAS OPERATIVOS

Archlinux llega al puesto Nº 5 porque es un so de una ligera estructura base sin agregados innecesarios, modificaciones, o complicaciones, que permite a un usuario individual modelar el sistema de acuerdo a sus propias necesidades.

OpenSUSE incluye todo aquello que ha hecho tan grande a SUSE durante años, como su gestor de sistema YaST, desde el que controlar hardware, preferencias del sistema y qué programas queremos tener, y el instalador gráfico YaST2, uno de los más sencillos y automatizados. lo que lo ha convertido en el so Nº 4 de nuestra Lista.

Ubuntu ocupa el puesto Nº 3 de nuestra lista porque es uno de los sos más estables existentes y no solo eso sino su gestor de instalación (synaptec) ha hecho que instalar un programa sea tan o incluso más fácil que en windows, además de ser un so muy rápido.

Windows 7 se ha convertido en el so mas rápido, eficaz y estable de todos los windows, ya que con su interfaz Aero ha hecho que las tareas sean más fáciles de hacer y más rápidas, Y no solo eso sino que también ha mejorado su inicio haciéndole mas rápido logrando llegar al puesto Nº 2 de nuestra lista.

Mac os X se ha convertido en el puesto Nº 1 de nuestra lista porque es el so más estable, fácil de usar, y muy rápido todo esto gracias a la combinación hardware-software, y que para los que lo han usado en pc se han dado cuenta de que es un so muy intuitivo y con los mejores programas para uso diario.

INSTALACION Y ADMINISTRACION DE SISTEMAS OPERATIVOS

LINUX

Introducción Paquete RPM sudo Paquete RPM openldap-clients

Arranque y parada

Usuarios y grupos

Recursos del sistema (mulmatrices.c)

Sistemas de ficheros

Impresión

Copias de seguridad

NFS y NIS

WINDOWS

Administración del Equipo W2003

Procesos, Servicios y Sucesos

Configuración del Active Directory

Configuración de cuentas de grupo, equipo y usuario. Directivas

Administración de discos

Impresoras

Página 38ING CIP GUIOMAR WILDER VILELA SALAZAR

Page 39: Modulo de Sistemas Operativos PROGRAMA EXPERIENCIA LABORAL

ESCUELA DE INGENIERIA DE SISTEMAS CURSO:PROGRAMA DE EXPERIENCIA LABORAL SISTEMAS OPERATIVOS

Copias de seguridad

Para la instalación de estos programas, emularemos máquinas virtuales según sea el caso, para cargar los programas arriba descritos, para el mejor desenvolvimiento del alumno.

Página 39ING CIP GUIOMAR WILDER VILELA SALAZAR