Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Objetivos de la Clase 11 (23/10/2013) 1. Fecha de exámenes: 30/10,06/11,20/11,28/11,05/12 2. Libro “Introducción a los Sistemas Operativos” de Alcalde/Morera/Perez/Campanero 3. Conceptos Generales 4. Estructura y prestaciones de los sistemas operativos 5. El núcleo y los procesos Desarrollo de los temas de la presente Clase Bibliografia Cap. 2, 3 y 4 de Introducción a los Sistemas Operativos (Alcalde/Morera/Perez/Campanero) Introducción a los Sistemas Operativos Conceptos Generales Introducción o Definiciones basadas en recomendaciones dadas en los estándares de calidad de software del Institute of Electrical an Electronic Engineering (IEEE) Terminología General o Común a todas las disciplinas que giran en torno a la informática o Primer Bloque Se refiere a elementos de software muy utilizados, con terminología que en ocasiones depende del lenguaje de programación en el que estén escritos Ver definición términos o Segundo Bloque Conceptos referidos a personas que utilizan las computadoras con determinadas características Ver definición términos o Otros conceptos generales Ver definición términos Conceptos de Hardware Ver definición términos Conceptos de Firmware o Conjunto de programas y datos que vienen en una computadora desde su fabricación, en una memoria que no puede ser modificada por el usuario. o Estos programas pueden venir implantados en el propio cableado del ordenador, denominándose en estos casos lógica cableada, y también pueden venir en memorias de 1 solo lectura (ROM), conociéndose en estos casos como microcódigo o microprograma. Microcódigo: representación simbólica de un microprograma Microprograma: secuencia de instrucciones elementales en código de maquina que corresponden a una operación completa de la computadora La microprogramación realiza funciones de control en la computadora y corresponde a los diseñadores de hardware o Modalidades de Firmware Programas cableados: secuencia de acciones que configuran determinados algoritmos implantados en el cableado. Ej. Calculadoras. Control por programa: el control se realiza por un programa o conjunto de ellos grabados en una memoria ROM, instrucciones de maquina interpretadas como un juego de señales de control Control rígido: mezcla de los dos anteriores, conversión de códigos de operación de las instrucciones del programa almacenado en señales de control se establece por cableado Control por microprograma: control por medio de un microprograma almacenado en memoria ROM, cuyas instrucciones son menos numerosas en código de maquina, donde se puede emular una maquina virtual más potente que la real que configura el propio hardware Conceptos de Software o Proceso de generación de software de usuario a través del proceso de compilación y montaje de un programa Ver definición términos Estructura y prestaciones de los sistemas operativos o Estructura jerárquica Crecieron necesidades de los usuarios y se perfeccionaron los sistemas. Mayor organización del software Se dividió el SO en pequeñas partes, cada una de ellas perfectamente definida y con clara interfase con el resto de los elementos Ver Sistema jerárquico THE Distintas capas en su orden jerárquico: 2 • Hardware (Nivel -1) • Planificación del procesador (Nivel 0) • Gestión de la memoria (Nivel 1) • Controlador consola del operador (Nivel 2) • Control de las operaciones de E/S (Nivel 3) • Gestión de archivos (Nivel 4) • Control de programas de usuario (Nivel 5) • En esta estructura se basan prácticamente la mayoría de los SO Otra forma de ver este tipo de sistema es la de anillos concéntricos o “rings” • Figura 3.3 • Cada anillo tiene una apertura, puerta o trampa, por donde pueden entrar las llamadas de las capas inferiores. • Núcleo más protegido de accesos indeseados de las capas más externas. Capas mas internas mas privilegiadas que las externas o Maquina virtual Tipo de SO que presentan una interfase a cada proceso, mostrando una maquina que parece idéntica a la maquina real subyacente Estos SO separan dos conceptos que suelen estar unidos en el resto de sistemas: • La multiprogramación • La maquina extendida • Objetivo de estos SO de maquina virtual es integrar distintos SO dando la sensación de ser varias maquinas diferentes • Núcleo se denomina monitor virtual, misión la multiprogramación, presentando a los niveles superiores tantas maquinas virtuales como se soliciten. Estas no son maquinas extendidas, sino una replica de la maquina real, en cada una de ellas se puede ejecutar un SO diferente, que será el que ofrezca la maquina extendida al usuario • Figura 3.4 o Cliente-servidor SO más reciente, puede ser ejecutado en la mayoría de las computadoras, ya sean grandes o pequeñas Sirve para todo, de propósito general. Consta de núcleo y procesos, pero con grandes diferencias en 3 como distribuye los trabajos entre sus distintas partes. Suministra mecanismos adecuados para la gestión de: • Procesos • Memoria • Comunicación entre procesos • Núcleo establece la comunicación entre los clientes y los servidores. • Los procesos pueden ser tanto servidores como clientes. Prestaciones de un sistema operativo o Misión de un sistema operativo es proporcionar ciertos servicios, se pueden considerar desde dos puntos de vista: Del programador • Ejecución de programas • Operaciones de E/S • Gestión de archivos Del sistema • Asignación de recursos • Contabilidad • Protección o Servicios de usuario De dos formas diferentes: Llamadas al SO desde un proceso y ejecución de programas del propio sistema • Llamadas al SO. Interfase entre un programa en ejecución y el SO o Gestión de procesos o Gestión de operaciones de E/S o Gestión del sistema de archivos o Protección o Llamadas al SO necesitan pasar información para la correcta ejecución del proceso a través de algún registro o bloque de parámetros o Son como las llamadas a un subprograma desde el punto de vista del programa que llama. Tras la llamada, se ejecuta la rutina del SO que ha sido invocada, tomando los datos de los parámetros; a continuación se devuelve el control al proceso que efectúo la llamada, ejecutándose la siguiente instrucción. Programas de sistema 4 • Existe un conjunto de programas de sistema o de utilidad cuya misión es resolver problemas comunes y frecuentes de los usuarios, ofreciéndolos de forma cómoda y sencilla • Figura 3.7 • Estos programas los podemos agrupar de la siguiente forma: o Tratamiento de archivos o Información o Editores o Ejecución o Programas de utilidad o Interprete de comandos: es el más importante de todos los programas del SO porque crea el entorno de trabajo de los usuarios o Servicios del sistema El interprete de comandos y los programas del sistema son los que fijan el entorno y la forma de ver el SO por los usuarios. El programador del sistema tiene una visión totalmente diferente, para él todo son recursos físicos y dispositivos que deben ser convertidos en entidades lógicas para ofrecérselas a los usuarios El SO es un programa activado por eventos. Si no hay programas en ejecución, ni operaciones de E/S, etc., el sistema estará inactivo hasta que se produzca alguna nueva petición. Cada evento producirá una interrupción de la ejecución del sistema operativo. Llamadas al sistema operativo • Las agrupamos por el tipo de llamada y no por la acción que realizan. Pueden ser: o Terminación normal: devolución del control al usuario cuyo proceso ha terminado, a través del interprete de comandos. o Terminación anormal: error en la ejecución de un programa, este termina, devolviendo el control al interprete de comandos, que indicara situación de error al usuario o Peticiones de estado: procesa petición y devuelve control al programa que la solicito 5 o Peticiones de recursos: Programas solicitarán recursos durante ejecuciónque serán atendidos de inmediato o se entrara en un estado de espera hasta ser atendidos o Peticiones de E/S: ídem anterior • Interrupciones de los dispositivos de E/S o Proceso queda en espera hasta que se termina la operación de E/S: cuando termine la operación, producirá una interrupción que dará control al sistema operativo, el cual activara el proceso que estaba en espera. o Proceso seguirá realizando otras operaciones: dispositivo externo produce interrupción en el SO, el cual no activara el proceso puesto que no estaba en espera, pero indicará que la operación solicitada ha terminado • Gestión de excepciones o Cuando programa en ejecución comete un error, se producirá una interrupción. Tratamiento de estos errores se conoce como manejo de excepciones o SO suelen asociar alguna función para el tratamiento de estos errores. El núcleo da control a esta función cuando aparece un error de este tipo o Protecciones Programas de aplicación de los usuarios no están exentos de errores, y tampoco los sistemas están libres de usuarios con malas intenciones SO deben incluir funciones de protección para evitar problemas entre procesos y entre estos y el propio sistema operativo Protección de E/S: Rutinas para el control de las operaciones de E/S, se denominan controladores o drivers de dispositivos y entre otras funciones protegen los accesos incorrectos, devolviendo el control al núcleo del SO, indicándole la situación errónea que se ha producido Protección de la memoria: cada proceso tiene una zona de memoria asignada para el tratamiento de sus datos denominada espacio de direccionamiento y no puede acceder a zonas asignadas al SO o a otros espacios. Existen unos 6 registros frontera que indican limite de memoria asignado a cada proceso Figura 3.8 Si proceso intenta acceder a direcciones que están fuera de la zona de memoria de su espacio de direccionamiento, se producirá una interrupción que dará control al SO dando cuenta del error que se ha producido. Protección del procesador • Problemas ante presencia de bucles infinitos o acceso al procesador que no lo liberan nunca. Única solución apagar y volver encender (reset) para volver a comenzar desde el principio • Para evitarlo, el hardware incluye un temporizador que marca periodos de tiempo, de manera que al terminar un periodo de tiempo se produzca una interrupción y tome el control el SO Introducción a los Sistemas Operativos El núcleo y los procesos Introducción o El núcleo (kernel) de un SO es un conj. de rutinas cuya misión es la de gestionar el procesador, la memoria, las E/S y el resto de recursos disponibles en la instalación. Esta gestión la realiza para atender al funcionamiento y peticiones de los trabajos que se ejecutan en el sistema. o La entidad básica de los SO actuales son los procesos Procesos o Este importante concepto surgió con la multiprogramación o Un proceso es un programa en ejecución junto con el entorno asociado (registros, variables, etc.) o El corazón de un sistema operativo es el núcleo, un programa de control que reacciona ante cualquier interrupción de eventos externos y que da servicio a los procesos, creándolos, terminándolos y respondiendo a cualquier petición de servicio por parte de los mismos. o Modelo 7 Diferencia entre programa y un proceso es crucial para entender funcionamiento de los SO: Ej. Mecánico. Comparando con computadora siguientes analogías: • Mecánico -> procesador que realiza el trabajo • Manual de reparaciones -> programa • Herramientas -> recursos disponibles • Piezas de recambio -> datos • Utilizar las herramientas para desmontar las piezas defectuosas sustituyéndolas por otras nuevas siguiendo las instrucciones del manual -> el proceso Supongamos mecánico realizando reparación compleja (lleva mas tiempo) y aparece una reparación rápida (aparece interrupción). Mecánico suspende momentáneamente reparación compleja y anota en que situación quedó (guarda estado del proceso). Sustituye manual por el de reparación rápida que va a realizar (cambio de programa). Comienza nueva reparación (cambio proceso) y nuevas herramientas (distintos recursos); indicaciones usuario y piezas de repuesto (datos) y las indicaciones del manual (programa) con lo cual terminara este trabajo para volver a la reparación inicial. El proceso es una actividad que se apoya en datos, recursos, un estado en cada momento y un programa. o Bloque de control del proceso (PCB) Proceso se representa por un conjunto de datos donde se incluyen estado en cada momento, recursos utilizados, registros, etc., denominado Bloque de control del proceso Los objetivos a cubrir son los siguientes: • Localización de la información del proceso por parte del SO • Mantener registrados los datos del proceso en caso de tener que suspender temporalmente su ejecución o reanudarla La información contenida es la siguiente: • Estado del proceso -> contador de programa (program counter), estado del procesador (prioridad del proceso), modo de ejecución, etc., estado de los registros internos de la computadora. • Estadísticas de tiempo y ocupación de recursos -> planificación del procesador 8 • Ocupación de memoria interna y externa (swapping) • Recursos en uso (unidades de E/S) • Archivos en uso • Privilegios Esta información esta en memoria principal o en disco • Se accede para actualización o consulta • Datos de proceso -> en memoria principal Bloque de control del sistema (SCB) • Objetivos similares al anterior • Entre ellos enlazado de los PCB • Figura 4.2 • Cambio del proceso A por el B se denomina cambio de proceso: o Deja de ejecutar el proceso A o Pasa control al núcleo del SO -> cambio de contexto: pasa de modo usuario a modo supervisor o Antes cambio se salva estado del proceso A o Núcleo ve si proceso B esta preparado para ejecución o Cambio de contexto pasando de modo supervisor a modo usuario o Repone estado del proceso B (si fue interrumpido previamente) o Pone en ejecución el proceso B o Figura 4.3 • El cambio de contexto se producirá siempre que se requiera la atención de algún servicio del sistema operativo. o Ante un cambio de contexto el núcleo salva el estado del proceso que se estaba ejecutando en su bloque de control y restaura el proceso que va a ejecutarse a partir de los datos almacenados en su bloque de control. o Estado de los procesos Los bloques de control de los procesos se almacenan en colas, cada una de las cuales representa un estado particular de los procesos, existiendo en cada bloque, entre otras informaciones, tantos campos como colas en las que el proceso se pueda situar, para saber en que cola se encuentra 9 Los estados de los procesos son internos del SO y transparentes al usuario Figura 4.4 Los estados de los procesos pueden ser activos e inactivos Estados activos • Son los que compiten por el procesador • Estos pueden ser: o Ejecución: tiene el control del procesador o Preparado: están dispuestos para ser ejecutados, pero no están en ejecución o Bloqueado: no pueden ejecutarse por necesitar algún recurso no disponible Estados inactivos o No pueden competir por el procesador, pero que pueden volver a hacerlo por medio de ciertas operaciones o Ej. Avería en dispositivo de E/S o Suspendido bloqueado: en espera de un evento, sin que hayan desaparecido las causas de su bloqueo o Suspendido preparado: proceso suspendido, pero no tiene causa para estar bloqueado • Figura 4.5 o Transiciones de estado Comienzo de la ejecución: comienza con orden de ejecución del programa insertándolo en la cola de preparados Paso a estado de ejecución: procesador inactivo, en cola de preparados existe algún proceso en espera, se pone en ejecución el 1ro. de ellos Paso a estado bloqueado: proceso que se encuentra en ejecución y solicita operación a dispositivo externo (unidad de E/S) teniendoque esperar que dicha operación finalice, será pasado de estado de ejecución a estado bloqueado insertándose su PCB en la cola correspondiente de bloqueados. Procesador pone en ejecución el siguiente proceso. Paso a estado preparado: • Orden de ejecución de un programa • Proceso bloqueado por operación de E/S y esta finaliza, pasara de la cola de bloqueados a la de preparados. 10 • Si proceso esta en ejecución y aparece interrupción fuerza al SO a ejecutar otro proceso, el 1ro. pasara al estado preparado y su PCB a la cola de preparados. • Activación : un proceso suspendido previamente sin estar bloqueado pasara al estado preparado al ser activado nuevamente Paso a estado suspendido bloqueado: si un proceso esta bloqueado y el SO recibe la orden de suspenderlo, su PCB entrara en la cola de procesos suspendidos bloqueados Paso a estado suspendido preparado: • Suspensión de un proceso preparado pasando este de la cola de procesos preparados a la de suspendidos preparados • Suspensión de un proceso en ejecución, pasa a la cola de suspendidos preparados. • Desbloqueo de un proceso suspendido bloqueado por desaparecer la causa que impedía el ser activado de nuevo o Operaciones sobre procesos SO poseen funciones cuyo objetivo es el de manipular los procesos Las operaciones sobre un proceso son las siguientes: • Crear el proceso: orden de ejecución del programa con varios argumentos, como el nombre y la prioridad del proceso. Aparece el PCB que será insertado en la cola de procesos preparados • Destruir un proceso: eliminación del proceso con el cual el SO destruye su PCB • Suspender un proceso: operación de alta prioridad que paraliza un proceso que puede ser reanudado posteriormente. En gral. por mal funcionamiento o sobrecarga del sistema • Reanudar un proceso: activar un proceso que ha sido previamente suspendido • Cambiar la prioridad de un proceso • Temporizar la ejecución de un proceso: proceso se ejecuta cada cierto tiempo, por etapas o de una sola vez, pero transcurrido un periodo de tiempo fijo • Despertar un proceso: desbloquear un proceso bloqueado previamente por temporización o cualquier otra causa o Prioridades 11 Todo proceso por sus características e importancia lleva determinadas necesidades de ejecución en cuanto a urgencia y asignación de recursos Los procesos no acceden de igual forma y con igual frecuencia al procesador debido a la prioridad que cada uno tiene asignada. Las prioridades pueden ser: • Asignadas por el SO: prioridades asignadas a un proceso en el momento de comenzar su ejecución en base a los privilegios de su propietario y del modo de ejecución • Asignadas por el propietario: propio usuario asigna a cada proceso la prioridad con que este debe ejecutarse. Muy utilizada en sistemas de tiempo real Otra clasificación de prioridades en base a posibilidad de variación • Estáticas: prioridades que no pueden ser modificadas durante la ejecución del proceso. En sistemas de tiempo compartido pero no de tiempo real • Dinámicas: puede ser modificada con el fin de atender cualquier evento que se produzca Direcciones de Contacto vbasictl@yahoo.com.ar http://ar.groups.yahoo.com/group/tlyso_01 Temas del Segundo Parcial Teórico Clase 8 1. Definición de programación orientada a objetos. Que elementos deben existir en POO. Definir y explicar que son objetos, métodos y mensajes (punto 15.1, 15.1.1, 15.1.2, 15.1.3 libro Joyanes Aguilar) 2. Como es la estructura interna de un objeto, atributos y métodos (punto 15.4, 15.4.1, 15.4.2 libro Joyanes Aguilar) 3. Que son las clases. Cuales son sus propósitos principales. Diferencia con objeto. Comparación con tablas de datos. Que es un constructor y un destructor (punto 15.5, 15.5.1 libro Joyanes Aguilar) 4. Que es la herencia. Cual es su objetivo final. Jerarquía de clases. Jerarquía de herencia. (punto 15.6 libro Joyanes Aguilar) 12 Clase 9 1. Que son los lenguajes de programación e instrucciones a la computadora (punto 1.6, 1.6.1 libro Joyanes Aguilar) 2. Que son los lenguajes de maquina (punto 1.6.2 libro Joyanes Aguilar) 3. Que son los lenguajes de bajo nivel (punto 1.6.3 libro Joyanes Aguilar) 4. Que son los lenguajes de alto nivel (punto 1.6.4 libro Joyanes Aguilar) 5. Explicar que es un interprete. Diferencia con un compilador (punto 1.7.1 libro Joyanes Aguilar) 6. Explicar que es un compilador. Como es su funcionamiento. Cuales son sus fases. Diagrama de flujo de las fases de ejecución de un programa (punto 1.7.2 libro Joyanes Aguilar) Clase 10 1. Concepto de Sistema Operativo desde el punto de vista del Usuario o como Gestor de Recursos. Definición de Sistema Operativo. Gráfico de maquina extendida (punto 1.2 libro SO-Alcalde/Morera/etc.) 2. Explicar el proceso Off-line y On-line (punto 1.3.4 libro SO-Alcalde/ Morera/etc.) 3. Explicar el proceso de Buffering (punto 1.3.4 libro SO-Alcalde/Morera/etc.) 4. Explicar el proceso de Spooling (punto 1.3.4 libro SO-Alcalde/Morera/etc.) 5. Explicar la Multiprogramación (punto 1.3.5 libro SO-Alcalde/Morera/etc.) 6. Explicar el proceso por Lotes (Batch) (punto 1.3.5 libro SO-Alcalde/ Morera/etc.) 7. Explicar el proceso de Tiempo Compartido. Cuales son sus características (Time Sharing) (punto 1.3.5 libro SO-Alcalde/Morera/etc.) 8. Explicar el proceso de Tiempo real (Real Time). Características principales. Ejemplos (punto 1.3.5 libro SO-Alcalde/Morera/etc.) 9. Explicar el Multiproceso. Graficar la diferencia de tiempos de 4 procesos en monoprogramación, multiprogramación y multiproceso (punto 1.3.7 libro SO- Alcalde/Morera/etc.) Clase 11 1. Explicar la Estructura Jerárquica de un Sistema Operativo. Niveles. Organización Jerárquica en anillos (punto 3.1.2 libro SO-Alcalde /Morera /etc.) 2. Explicar y graficar la Estructura de Maquina Virtual de un Sistema Operativo (punto 3.1.3 libro SO-Alcalde/Morera/etc.) 3. Explicar la Estructura Cliente-Servidor de un Sistema Operativo (punto 3.1.4 libro SO-Alcalde/Morera/etc.) 4. Cuales son las prestaciones de un Sistema Operativo desde el punto de vista del programador y del sistema. Llamados al Sistema Operativo. Programas del sistema, explicar y graficar (punto 3.2, 3.2.1 libro SO-Alcalde/Morera/etc.) 5. Que es un Proceso?, Explicar la diferencia entre programa y proceso a través de la analogía entre el mecánico y la computadora (punto 4.2, 4.2.1 libro SO- Alcalde/Morera/etc.) 6. Que es el bloque de control del proceso (PCB) (punto 4.2.2 libro SO- Alcalde/Morera/etc.) 7. Cuales son los estados de los procesos. Explicar y graficar los estados de un proceso y sus transiciones (punto 4.2.3 libro SO-Alcalde/Morera/etc.) 8. Explicar las transiciones de Estado de los procesos (punto 4.2.4 libro SO- Alcalde /Morera /etc.) 13 Objetivos de la Clase 11 (23/10/2013) Bibliografia Cap. 2, 3 y 4 de Introducción a los Sistemas Operativos (Alcalde/Morera/Perez/Campanero) Estructura y prestaciones de los sistemas operativos
Compartir