PORTAFOLIO DE EVIDENCIAS SISTEMAS OPERATIVOS 1 ALUMNO: CARLOS MORALES LÓPEZ MATERIA: REDES 1 MAESTRA: M.C. I.S.C MARÍA GUADALUPE ENRÍQUEZ A. CICLO: 20 DE JULIO AL 20 DE AGOSTO DE 2009 (292-3) MODULO # 3 CARRERA: LICENCIATURA EN INGENIERIA EN SISTEMAS COMPUTACIONALES CICLO 293 PLANTEL 33 TORREON PLAN DE ESTUDIOS LISC –FED-07 HORARO LUNES A JUEVES 8:00 AM A 11:00 AM AULA 17 MATRICULA: 33091033 GRUPO TORLISC2M Índice Introducción Un Sistema Operativo (SO) es una colección organizada de rutinas o extensiones de software del hardware. Consiste en rutinas de control que hacen funcionar una computadora y proporcionan un entorno para la ejecución de los programas. Existen otros programas que se apoyan en el SO para poder acceder a los recursos que necesitan. Esto se lleva a cabo a través de llamadas sistema operativo. También el SO debe brindar una forma de que el usuario se pueda comunicar con él a través de una interfaz que le brinde una vía de comunicación con el hardware del sistema informático. El objetivo principal del SO es lograr que el sistema informático es el lograr que el hardware de la computadora se emplee de modo eficiente, y el objetivo secundario se use de manera cómoda. El SO debe asegurar el correcto funcionamiento del sistema informático. Para lograr esto el hardware debe brindar algún mecanismo apropiado que impida que los usuarios intervengan en el funcionamiento del sistema y así mismo el SO debe poder utilizar este recurso de hardware de modo que esto se cumpla. El SO debe ofrecer servicios a los programas y sus usuarios para facilitar la tarea de programación. Misión “formar profesionales de éxito que cuenten con las actitudes, habilidades y conocimientos que demanda el sector productivo de la región.” Visión Brindar servicios de educación superior de calidad, en las áreas administrativas y sociales Ofrecer programas de licenciatura, profesional asociado, diplomados y cursos a la comunidad del noroeste de México Incorporar en tres meses a sus egresados al mercado de trabajo Modelo educativo profesionalizarte Flexibilidad de su oferta académica impartida en ciclos continuos y por horarios y cuotas accesibles Contar con profesores de amplia experiencia profesional y educativa Filosofía institucional Lealtad Los integrantes de la comunidad universitaria consideramos la fidelidad como un valor excelso que enaltecemos en nuestro quehacer diario. Justicia Los integrantes de la comunidad universitaria actuamos con la constante y perpetua voluntad de dar a cada cual lo que le corresponde conforme a sus méritos o actos. Honestidad Los integrantes de la comunidad universitaria actuamos con sinceridad y honradez en nuestras tareas y en congruencia entre los pensamientos, palabras y acciones. Responsabilidad Los integrantes de la comunidad universitaria llevamos a cabo nuestras actividades con integridad, con sentido del propósito y apegados a los objetivos institucionales. Esfuerzo Los integrantes de la comunidad universitaria usamos nuestra máxima energía para cumplir con los objetivos trazados. Creatividad Los integrantes de la comunidad universitaria resolvemos los problemas con imaginación, conocimientos y con un espíritu de mejora continua. PERFIL DESCRIPTIVO DE CLASE MATERIA: Sistemas Operativos I CICLO: MAESTRO: M.C. I.S.C María Guadalupe Enríquez A. HORARIO: 20 de Julio al 20 de Agosto del 2009 8:00 a 10:00 a.m. Mail: lupita_unidep@yahoo.com.mx OBJETIVO DEL CURSO: AL TÉRMINO DEL PROGRAMA DE ASIGNATURA EL ALUMNO: El alumno será capaz de identificar los elementos de programación que conforman al sistema operativo. BIBLIOGRAFÍA: Sistemas Operativos. Silberchatz, Abraham; Galvin Baer , Peter. Pearson Educacion Sistemas Operativos. Wiliam, Stallings. Pearson Educacion Conceptos de Sistemas Operativos. Jimenez Torres Jose. Editorial Trillas CALIFICACIÓN ORDINARIA (PONDERACIÓN) CRITERIOS PARA EVALUACIÓN LA Página Web Prácticas Laboratorio Tareas 20% Examen Escrito 15% Portafolio 1 0 % Exposición TOTAL 30% 10% 15% 100% REGLAS 1. El alumno es responsable de enterarse de su número de faltas y retardos. 2. El alumno que se sorprenda copiando en exámenes, tareas o trabajos, se le sancionará conforme al criterio del docen te sin afectarle el 100% de su calificación final. 3. Es responsabilidad del estudiante hablar inmediatamente con el maestro cuando tenga problemas con el material de clase, sus calificaciones, etc. De esta manera evitaremos problemas en el fin del ciclo. 4. Es requisito para la acreditación de la materia la entrega del portafolio de evidencias del alumno. 5. Sólo se justifican inasistencias por un evento organizado por la Universidad. 6. Prohibido traer encendidos teléfonos celulares dentro del aula, ni prendido en mo do silencioso. 7. No se permite la salida del aula mientras no ha terminado la clase. 8. La clase es de 2 horas con receso de 10 minutos en cada hora o de una hora con cuarenta minutos si no hay receso. 9. No se permiten alimentos ni bebidas dentro del aula. C ALENDARIZACIÓN S ESIÓN 1. F ECHA Lun 20 Marzo Mar 21 Julio Mi 22 Julio Tema Bienvenida. Encuadre del curso Jueves 23 Julio Lun 27 Julio Sistemas paralelos Sistemas distribuidos. Mar 28 Julio Mi 29 Julio Sincronización de procesos. Bloqueos mutuos) 8. Jueves 30 Julio Interfaz con el sistema de archivos, Implementación del sistema de archivos) 9. Lun 3 Agosto Sistemas E/S (Dispositivos y controladores. Acceso directo a memoria (DMA) (Tercera exposición) 10. Mar 4 Agosto Mie 5 Agosto Jueves 6 Agosto Lun 10 Agosto Estructura del almacenamiento secundario, Estructura del almacenamiento terciario) Sistemas distribuidos (Estructura de Redes, Estructura de sistemas distribuidos. (Cuarta Exposición) Sistemas de archivos distribuidos, coordinación distribuida) primer parcial Casos de estudio ( Sistema Unix, Sistema Linux, (Quinta Exposición) Mar 11 Agosto Mie 12 Agosto Jue 13 Agosto Lunes 17 Agosto Mar 18 Agosto Mier 19 Agosto Jueves 20 Agosto Windows ) MacOs X 2. 3. 4. 5. 6. 7. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. ¿Qué es un Sistema Operativo? Sistemas por lotes sencillos Sistemas por lotes multiprogramados. Sistemas de tiempo compartido Gestión de procesos (Procesos. Planificación del CPU (Primera Exposición) Gestión de almacenamiento (Gestión de memoria. Memoria virtual. (Segunda Exposición) Presentación Pagina web equipo 1 Presentación Pagina web equipo 2 Presentación Pagina web equipo 3 Presentación Pagina web equipo 4 Presentación Pagina web equipo 5 Examen Final. El alumno será capaz de identificar los elementos de programación que conforman un sistema operativo “cada uno tenemos una identidad personal propia, somos únicos, irrepetibles. Hemos sido creado artesanalmente, no en serie y no tenemos porque compararnos con nadie” Un sistema operativo (OS. por sus siglas en ingles) es un programa de software, pero es distinto de los programas de procesamiento de texto, hojas de calculo y todos los demás programas de software que hay en su computadora. Como recordara del capitulo 1, el sistema operativo es un ejemplo de software de sistema: el software que controla el hardware del sistema e interactúa con el usuario y el software de aplicaciones. En pocas palabras, el sistema operativo es el programa de control maestro de la computadora. El OS le proporciona las herramientas (comandos) que le permite interactuar con PC. Cuando usted emite un comando, el OS lo traduce en código que la maquina puede utilizar. El OS asegura que los resultados de sus acciones se desplieguen en la pantalla, se impriman y otras cosas mas. El sistema operativo también actúa como el mecanismo de control principal del hardware de la computadora. Despliega los elementos de la pantalla con los cuales usted interactúa: la internas del usuario Carga los programas (por ejemplos, programas de procedimientos de textos y de hojas de cálculo) en la memoria de la computadora de manera que pueda utilizarlas. Coordina la forma en que los programas trabajan con el hardware de la computadora y otros tipos de software Controla la manera en que se almacenan y recupera la información de los discos CLASIFICACIÓN DE SOFTWARE Software aplicación: de uso cotidiano que ayuda a resolver problemas Software sistema: controla y administra el hardware Software programación: realiza programas DEFINICIÓN DEL SISTEMA OPERATIVO Software básico que controla y administra los recursos de una computadora según Andrew taneabaun es un administrador de procesos, memoria, ficheros, y dispositivos de entrada y salida. FUNCIONES DEL SISTEMA OPERATIVO Interpreta los comandos que permita al usuario comunicarse al ordenador, coordina y manipula el hardware de la computadora como la memoria, las impresoras, las unidades de disco, el teclado y el Mouse. Organiza los archivos en diversos dispositivos de almacenamiento como discos duros, CD, memorias USB etc. Gestiona los errores de hardware y la perdida de datos Sirve de base para la creación de software logrando que equipos de diferentes marcas funcionen de manera análoga salvando diferencias existentes Configura el entorno para el uso de software y los periféricos, dependiendo de la maquina que se emplea debe establecer en forma lógica la disposición y características del equipo HISTORIA DE SISTEMAS OPERATIVO Años 50s A finales de los años 50s las computadoras masivas eran controladas por tubos al vacío inestables toda la programación se hacia directamente en lenguaje maquina porque no existían aun los SO se trabajaba con tarjetas perforadas. Años 60s IBM introdujo la computadora Systems-360 pero era un sistema operativo complejo luego AT&T trato de desarrollar multies, pero fallo, después se creo Unix que era el sistema uniusuario eso marco el nacimiento de Unix 1969 Años 80s Aparecen los circuitos LSI (large scale integration) dando una nueva generación de computadoras (PC) aparece el sistema operativo dos (disk operation system) Años 90s Este periodo aumenta el uso de conexiones de red y tiene nacimiento el protocolo http con la llegada de la WWW (World, Wide, Web) se trabaja con los sistemas operativos como Unix, Windows NT, Lantoxtic, Periodo actual siglo XXI Las computadoras se caracterizan por una mayor movilidad y reducción en tamaño por uso del Wi-fi y mayor resolución de pantalla los sistemas operativos han evolucionados han evolucionado y se encuentra una mayor cantidad de sistemas operativos de código abierto Microsoft ha manejado Windows XP, 2000, VISTA y 2007 CLASIFICACIÓN DE LOS SISTEMAS OPERATIVOS Sistema de interfaz de línea de comando Es el sistema operativo en el que el usuario escribe los comandos utilizando un lenguaje de comando especial (GUI) graphical user interfaz. Estos sistemas se consideran más difíciles de entender pero por lo general son más programables. Sistema interfaz grafica del usuario (GUI) Son los sistemas operativos con representación visual y ofrecen un entorno que se encarga de la comunicación con el ordenador Sistemas mono tareas Son aquellos que solo permiten una tarea a la vez por usuarios Sistemas multitareas Son los sistemas que permiten mas de una tarea a la vez por lo general son los sistemas de interfases graficas, esto sistemas mejoran la productividad. Sistema multiproceso Se refiere al número de procesador en el sistema que es más de 1 y es capaz de usarlas todas para distribuir su área de trabajo Sistema de secuencias por lote La secuencia por lote es la ejecución de una lista de comandos del sistema operativos una tras otra sin la intervención del usuario. Los sistemas operativos por lote también se conocen por Bath RISC+1 CISC Sistema de tiempo real Es aquel sistema que procesa las instrucciones recibidas al instante y una vez procesadas muestra el resultado. Su característica principal es dar muestras graficas Sistema de tiempo compartido Consiste en el uso de un sistema por mas de una persona al mismo tiempo por lo general son computadoras grandes y en organizaciones de servicio PROCESO Las tareas que se están ejecutando en una computadora en los cuales intervienen los valores corrientes del contador de programa registro y variables SISTEMAS DISTRIBUIDOS Son los sistemas que están diseñados para que muchos usuarios en forma conjunta. SISTEMAS PARALELOS Están diseñados para lograr una mayor rapidez en un único problema Ejemplos de sistemas distribuidos Internet Puntos de venta Ventajas del sistema distributivo contra sistema independiente y centralizado 1 el intercambio de datos e información ejemplo reservaciones de líneas aéreas 2 compartir recursos, programas, y periféricos ejemplo al compartir impresora, scanner, la memoria 3 mejor comunicación entre los usuarios intranet Desventajas de sistemas distribuidos 1 La administración del sistema se centra en la vulnerabilidad de una persona o un departamento 2 Software con alto precio PARTES DE UN PROCESO - código de programa área de datos program counter registros prioridad alta o baja TAREAS DE UN SO Creación Destrucción Suspensión Retomarlo Sincronización Concurrencia System calls (llamadas de sistema) Conjunto de primitivos que brinda el sistema operativo y sirven para comunicarse con el hardware de forma entendible. Para la creación de procesos existen system calls para crear procesos destruir procesos, suspender procesos, retomar procesos, sincronizar procesos, manejo concurrencia. ESTADOS DE 1 PROCESO New proceso que esta siendo creado Running proceso de ejecución Waiting proceso en espera Ready proceso esperando por la CPU listo para iniciar Terminated proceso que a terminado PCB PROCESS CONTROL BLANK Lista encadenada donde se almacenan los procesos la lista esta compuesta por nodos. Cada nodo contiene la siguiente información. Estado del proceso Program counter Registros del CPU Información de schedulling del CPU Información de uso (tiempo de uso de la CPU, hora despacho etc.) Información de E/S (lista de dispositivo asignados, archivos abiertos etc.) COLAS DE SCHEDULLING Los procesos que están en estado de espera quedan en una lista llamada “lista de cola” o “cola Ready”. Los procesos que hacen uso de E/S se guardan en una cola de E/S hay una cola de E/S para cada dispositivo SCHEDULLERS Componente del SO responsable de decir quien hará uso del CPU. ALGORITMO SCHEDULLERS FCFS (first come first served) Cuando un proceso llega a la cola ready su PSB es agregado al final de la lista el uso del CPU es otorgado al primero de la lista y una vez que el proceso empieza a ejecutar no deja de hacerlo hasta que termina el tiempo que de espera suele ser bastante alto. SIF (shortes job first) Una vez que en un proceso ejecuta no deja de hacerlo hasta que voluntariamente cambia de estado asocia a cada proceso el tiempo de CPU que abra de usar en su próxima vuelta y va a decidir por el mas pequeño. Si hubiera más de uno utiliza el FCFS para desempatar. El FST se divide en 2 tipos de algoritmos PREEPTIVO Y NO PREEPTIVO PREEPTIVO si mientras un proceso se esta ejecutando entra a la cola Ready un proceso mas corto, el proceso en la cola Ready se apropia del CPU y comienza su ejecución NO PREEPTIVO no existe la situación anterior Dead locks si un conjunto de procesos esta en estado de espera por recursos y nunca cambia de estados porque los recursos que ha estado esperando están siendo utilizado por otros procesos en espera. Round Robin Asocia a cada proceso una prioridad. Luego selecciona el proceso con más prioridad para desempatar. En caso de que hubiera dos o más procesos con la misma prioridad, se usa FCFC para desempatar. Hay dos tipos de prioridad en los procesos: la prioridad externa definida a través del sistema operativo y la prioridad interna definida por el tiempo de uso de la CPU, el control de E/S, etc. Este algoritmo también, se puede ejecutar de dos maneras: preemptivo y no preemptivo. El algoritmo soluciona el problema del looping pero el problema es que los procesos con prioridad muy baja tienen chance de no ejecutarse nunca. Para solucionar este problema de espera infinita el envejecimiento de un proceso eleva su prioridad. Si el proceso es menor a QUANTUM entonces es FCFS Overhead en caso de que el proceso es mas grande que quantum GESTIÓN DE ALMACENAMIENTO Memoria principal RAM Memoria virtual paginación Memoria secundaria USB, discos, discos duros. Priority schedullings Asocia a cada proceso una prioridad. Luego selecciona el proceso con más prioridad para desempatar. En caso de que hubiera dos o más procesos con la misma prioridad, se usa FCFC para desempatar. Hay dos tipos de prioridad en los procesos: la prioridad externa definida a través del sistema operativo y la prioridad interna definida por el tiempo de uso de la CPU, el control de E/S, etc. Este algoritmo también, se puede ejecutar de dos maneras: preemptivo y no preemptivo. El algoritmo soluciona el problema del looping perro el problema es que los procesos con prioridad muy baja tienen chance de no ejecutarse nunca. Para solucionar este problema de espera infinita el envejecimiento de un proceso eleva su prioridad. Quien lo asigna prioridad externa Prioridad interna La forma ejecución preemtivo No preemtivo SO tiempo de uso del CPU control E/S ADMINISTRACIÓN DE PROCESOS Normalmente en una PC existen muchos procesos simultáneamente. El administrador se encarga de seleccionar el proceso en turno al ejecutado en el CPU. El objetivo en general es maximizar el uso del CPU bajo un tiempo de respuestas razonable mantenimiento un uso justo seguro y equilibrado. PROCESOS PRINCIPALES DE WINDOWS Csrss.exe gestiona las ventanas Isaas.exe gestiona la seguridad (seguridad servicio, aplicaciones etc.) Explorer.exe gestiona el escritorio de Windows Svshost.exe gestiona los procesos (es común encontrar) revisa con el administrador de tareas los procesos mas del anteriores y revisa las siguientes situaciones. Baile de letras Tipografía (1, i, l) Espacios en blanco (al principio y al final) MEMORIA PRINCIPAL Es un arreglo lineal de localidades de almacenamiento cada localidad tiene asignada que le identifica y es el lugar donde el CPU lee las instrucciones o ejecuta así como algunos datos a emplear .conocido también como la memoria RAM MANEJO DE MEMORIA real Mono usuario real Virtual Multiprogramación Multiprogramación Partición Fijas/Variables relocalización Partición Pura combinación Protección segmentación Pura combinación Grado multiprogramación Es el tiempo promedio en el que el CPU esta ocupado 60% E/S 40%multiprogramación Particiones La forma más fácil de conseguir la multiprogramación es simplemente dividir la memoria en n particiones (posiblemente de diferentes tamaños). Esta división puede, por ejemplo, realizarse manualmente cuando se pone en marcha el sistema. Cuando llega un trabajo, puede colocarse en la cola de entrada de la partición más pequeña en la que cabe. Puesto que en este esquema las particiones son fijas, cualquier espacio en una partición no utilizado por un trabajo se desperdicia. Este sistema, con particiones fijas establecidas por la mañana por el operador sin posibilidad de modificarse después, fue utilizado en el OS/360 de los grandes mainframes de IBM durante muchos años. Se le denominó MFT (Multiprogramming with a Fixed number of Tasks u OS/MFT). Es sencillo de entender e igualmente sencillo de implementar: los trabajos que llegan se encolan hasta que esté disponible una partición apropiada, momento en el cual el trabajo se carga en esa partición y se ejecuta hasta que termina. Actualmente, son pocos, por no decir ninguno, los sistemas operativos que utilizan este modelo. memoria virtual se refiere cuando el tamaño combinado del programa, sus datos y su pila pueden exceder la cantidad de memoria física disponible. El sistema operativo mantiene en la memoria principal aquellas partes del programa que se están usando en cada momento, manteniendo el resto de las partes del programa en el disco. Por ejemplo, un programa de 16 MB puede ejecutarse sobre una máquina de 4 MB eligiendo cuidadosamente qué 4 MB se tendrán en la memoria en cada instante, e intercambiando partes del programa entre el disco y la memoria, según sea necesario. los sistemas de paginación de memoria dividen los programas en pequeñas partes o páginas. Del mismo modo, la memoria es dividida en trozos del mismo tamaño que las páginas llamados marcos de página. Paginación pura La paginación pura en el manejo de memoria consiste en que el sistema operativo divide dinámicamente los programas en unidades de tamaño fijo ( generalmente múltiplos de 1 kilobyte ) los cuales va a manipular de RAM a disco y viceversa. Al proceso de intercambiar páginas, segmentos o programas completos entre RAM y disco se le conoce como `intercambio' o `swapping'. En la paginación, se debe cuidar el tamño de las páginas, ya que si éstas son muy pequeñas el control por parte del sistema operativo para saber cuáles están en RAM y cuales en disco, sus direcciones reales, etc; crece y provoca mucha `sobrecarga' (overhead). Por otro lado, si las páginas son muy grandes, el overhead disminuye pero entonces puede ocurrir que se desperdicie memoria en procesos pequeños. Debe haber un equilibrio. Segmentaciòn. Divide la memoria en segmentos, cada uno de los cuales tiene una longitud variable, que está definida intrínsecamente por el tamaño de ese segmento del programa. Los elementos dentro de un segmento están identificados por su desplazamiento con respecto al inicio del segmento: la primera instrucción del programa, la séptima entrada de la pila, la quinta instrucción de la función Sqrt(), etc. La Relocalización consiste en ajustar las direcciones de un programa al sitio donde fue cargado, para que este pueda ser ejecutado. Este proceso es indispensable para poder tener multiprogramación, puesto que un programa no siempre va a ocupar las mismas posiciones de memoria. Suponga que se tiene el siguiente trozo de programa en lenguaje ensamblador: Para su ejecución el programa debe ser traducido a lenguaje de máquina. Sin embargo el ensamblador no conoce el sitio en donde va a ser cargado el programa y por lo tanto no puede traducir adecuadamente las referencias a la memoria. Si el programa fuese cargado en la posición 0, por ejemplo, y suponiendo que las variables h y g están en las posiciones 50 y 54 respectivamente, con respecto al inicio del programa, el programa generado sería: Sin embargo, si el programa fuese cargado a partir de la posición 100, el código debe relocalizarse y sería: Segmentación pura La segmentación se aprovecha del hecho de que los programas se dividen en partes lógicas, como son las partes de datos, de código y de pila (stack). Lasegmentación asigna particiones de memoria a cada segmento de un programa y busca como objetivos el hacer fácil el compartir segmentos ( por ejemplo librerías compartidas ) y el intercambio entre memoria y los medios de almacenamiento secundario. Sistemas combinados La paginación y la segmentación puras son métodos de manejo de memoria bastante efectivos, aunque la mayoría de los sistemas operativos modernos implantan esquemas combinados, es decir, combinan la paginación y la segmentación. La idea de combinar estos esquemas se debe a que de esta forma se aprovechan los conceptos de la división lógica de los programas (segmentos) con la granularidad de las páginas. De esta forma, un proceso estará repartido en la memoria real en pequeñas unidades (páginas) cuya liga son los segmentos Tareas Tarea 1 Tarea 2 Tarea 3 Articulos 1 2 3 4 5 Exámenes Practicas Exposiciones IVAN BRIAN Y JOSUE STHEPANY JAVIER Y CARLOS JUAN ROBERTO IRVIN Conclusión Reflexión