Introducción a Sistemas Operativos.

Contenidos
1. Sistema Operativos
 Definición.
 Metas.
 Servicios.
 Llamadas al sistema.
 Tipos de sistemas.
 Sistema por lote(Bash).
 Sistema monousuario.
 Sistema multiusuario.
 Sistema monotarea
 Sistemas paralelos.
 Sistema multitarea.
 Sistema tiempo real.
 Sistema tiempo compartido.
 Sistema distribuidos.
 Sistema de red.
 Sistema portable.
2. Estructura computacional
 Introducción a Interrupciones.
 Técnica de Polling.
 Técnica de Spooling.
 Búfer.
 Mecanismos de protección del Hardware al S.O.
 Modo Dual.
 Protección de E/S.
 Protección de CPU.
 Protección de Memoria.

Contenido extraído de diapositivas de Martin, facultades, libro e internet.
P á g i n a 1 | 21

1) ¿Que es un sistema operativo?

Es parte esencial de cualquier sistema de cómputo

Es un programa que actúa, en principio, como intermediario entre el usuario y el

hardware

Su propósito: Crear un entorno cómodo y eficiente para la ejecución de programas

Su obligación: Garantizar el correcto funcionamiento del sistema

Sus funciones principales:


Administrar la memoria
.
Administrar la CPU.

Administrar los dispositivos.

Manejo de interrupciones.

Manejo del sistema de archivos.

Administración de seguridad.

Control de E/S.

1.1) Metas del S.O:
– Brindar un entorno para que los usuarios puedan ejecutar programas en
forma 
conveniente.
– Brindar un entorno para que los programas usen el hardware con facilidad.
– Administrar el hardware de forma eficiente y equitativa.
– Proveer un entorno sin interferencias a cada usuario.

1.2) Servicios del S.O:
El Sistema Operativo proporciona ciertos servicios a los programas y a los usuarios de estos

mismos programas. Un cierto conjunto de servicios del S.O proporciona funciones que resultan útiles
al usuario y otras que permiten mayor eficiencia hacia los usuarios.

P á g i n a 2 | 21

Servicios: Desarrollo de Programas Editores y Depuradores Ejecución de Programas
 Acceso a dispositivos de E/S Acceso controlado a archivos Acceso al Sistema Detección de errores y respuestas
 Errores de HW internos y Externos Errores de Memoria Errores de Dispositivos Errores de SW Errores Aritméticos Acceso no permitido a direcciones de memoria Incapacidad del SO para conceder una solicitud de una aplicación Contabilidad Recojer estadísticas del uso Monitorizar parámetros de rendimiento Anticipar necesidades de mejoras futuras Dar elementos si es necesario facturar tiempo de procesamiento Administración y planificación del procesador   Imparcialidad. P á g i n a 3 | 21 . “justicia” en la ejecución (Fairness)   Que no haya bloqueos   Manejo de prioridades.

Jerarquías de memoria. Son la única forma de acceder a estos servicios.3) ¿ Cómo expone un sistema operativo sus servicios a las aplicaciones ? Mediante una interfaz conocida como System Services. Con el de la protección. Los servicios son invocados en modo usuario. ya que los recursos son manejados en última instancia por el sistema operativo para evitar que los programas de usuario los manejen directamente. ejecutados en modo monitor. Parametros asociados a las llamadas al sistema pueden ser: por registro.4) ¿ Qué son los llamados al sistema (system call) ? Los System Call son interfaces que permiten al programa en ejecución hacer peticiones de los servicios que brinda el SO. maximización del rendimiento (throughput) NOTA: El sistema operativo ofrece una gama de servicios a los procesos. y retornados en modo usuario. Administración del almacenamiento– Sistema de archivos   Acceso a medios de almacenamiento externos Administración de dispositivos    Ocultamiento de dependencias de HW    Administración de accesos concurrentes  Batch processing  Definición de un orden de ejecución. P á g i n a 4 | 21 .5) ¿ Con qué objetivo básico de los sistemas operativos tiene que ver el uso de las llamadas al sistema ? Justifique su respuesta.  Protección de programas que compiten o se ejecutan concurrentemente.bloque o tabla de memoria o pila. 1. 1. Los procesos acceden a estos servicios a través de llamadas al sistema. Administración de Memoria  Memoria física vs memoria virtual. 1. Se les son asignados un numero identificatorio.

hay mucha más facilidad para modificar las características del sistema sin afectar al resto del sistema operativo. la ejecución de estos servicios será mucho más rápida que si hubiera que recurrir a un diálogo con un proceso externo. Si los servicios gráficos son procesos externos al núcleo. introducir el sistema gráfico en el núcleo puede provocar que se desaproveche memoria RAM. etc. estos servicios se ejecutan como procesos de usuario independientes del núcleo.  Gestión de información y comunicación. los servicios de interfaz gráfica (gestión de ventanas. 
Con el paso del tiempo.  Gestión de Archivos. incluso si las aplicaciones que se están ejecutando en un momento dado no requieren capacidades gráficas. Por su parte. con algunas de sus características: P á g i n a 5 | 21 . En otro orden de cosas.6) Enuncie los tipos de llamados al sistema (system calls)... el sistema gráfico estará residiendo de forma permanente en la memoria. si el sistema gráfico es independiente del núcleo. Por otro lado. nos ahorraríamos buena parte del coste de comunicación entre el solicitante de un servicio y el módulo responsable de cumplirlo. A continuación se mostrarán diversos tipos de Sistemas Operativos que existen en la actualidad.8) Tipos de Sistemas Operativos: Clasificación de los Sistemas Operativos. ¿Qué ventajas e inconvenientes tiene cada una de estas arquitecturas? Si los servicios de interfaz gráfica están integrados en el núcleo.1. En otros sistemas operativos. menús. Si se trata de un núcleo monolítico.  Manipulación de dispositivos 1. Es más. como el núcleo normalmente reside en memoria de forma permanente.) forman parte del núcleo del sistema. dependiendo del uso o de la aplicación que se les daba. los Sistemas Operativos fueron clasificándose de diferentes maneras. Por un lado.7) En algunos sistemas operativos. se abre la posibilidad de que coexistan diferentes módulos de sistemas gráficos y que cada proceso de usuario utilice el módulo que prefiera. el sistema operativo puede decidir relegar su memoria al disco en favor de otros procesos más prioritarios.  Control de procesos. también nos aseguraríamos de que no se producen tiempos adicionales para recuperar código o datos para poder ejecutar el servicio solicitado. 1.

 En general. soportan la multitarea. mediante el cual una computadora procesa varias tareas al mismo tiempo. los sistemas de multiprogramación se caracterizan por tener múltiples programas activos 
compitiendo por los recursos del sistema: procesador. Se distinguen la multiprogramación por sus habilidades para poder soportar dos o mas procesos al mismo tiempo.  Multiplexa recursos entre varios programas. memoria. es decir.  Requieren validación de usuario para seguridad y protección. involucra máquinas con más de una CPU. Su objetivo es tener a varias tareas en la memoria principal.TIPOS DE SISTEMAS OPERATIVOS  
Sistemas Operativos de multiprogramación (o de multitarea): 
Es el modo de funcionamiento disponible en algunos sistemas operativos. Las características de un Sistema Operativo de multiprogramación o multitarea son las siguientes:  Mejora productividad del sistema y utilización de recursos. dispositivos periféricos. Esto trae como resultado que la CPU siempre tenga alguna tarea que ejecutar. MAC−OS.  Multitarea sin soporte multiusuario se encuentra en algunos computadores personales o en sistemas de 
tiempo real. Sistemas Operativos como UNIX.  Proporcionan contabilidad del uso de los recursos por parte de los usuarios. P á g i n a 6 | 21 .  Sistemas multiprocesadores son sistemas multitareas por definición ya que soportan la ejecución 
simultánea de múltiples tareas sobre diferentes procesadores. Existen varios tipos de multitareas.  Generalmente soportan múltiples usuarios (multiusuarios). Windows 95. Windows 98. Windows NT. aprovechando al máximo su utilización.  Proporcionan facilidades para mantener el entorno de usuarios individuales. OS/2. de manera que cada uno está usando el procesador. o un procesador distinto.

porque el procesador es mejor utilizado y los Sistemas Operativos pueden ser simples. Estos sistemas son de los más tradicionales y antiguos. Por ejemplo cuando la computadora esta imprimiendo un documento. debido a la secuenciabilidad de la ejecución de los trabajos. 
Estos tipos de sistemas son muy simples. ya que existe un solo usuario. y el EXEC II para el UNIVAC 1107. gracias a las limitaciones creadas por el hardware. Este tipo de sistemas se emplean especialmente en redes. Se reúnen todos los trabajos comunes para realizarlos al mismo tiempo. Cuando estos sistemas son bien planeados.  Sistemas Operativos por lotes: Los Sistemas Operativos por lotes. del DC6600. y fueron introducidos alrededor de 1956 para aumentar la capacidad de procesamiento de los programas. evitando la espera de dos o más trabajos como sucede en el procesamiento en serie. que comparten mismos recursos. procesan una gran cantidad de trabajos con poca o ninguna interacción entre los usuarios y los procesos. son procesadas de inmediato. Algunos ejemplos de Sistemas Operativos por lotes exitosos son el SCOPE. salida y control dependen de la tarea que se esta utilizando. Y están orientados principalmente por los microcomputadores. Algunas otras características con que cuentan los Sistemas Operativos por lotes son:  Requiere que el programa. porque todos los dispositivos de entrada. datos y órdenes al sistema sean remitidos todos juntos en forma de lote. el cual está orientado a procesamiento científico pesado. P á g i n a 7 | 21 . esto quiere decir. que las instrucciones que se dan. Sistema Operativo Monotareas/Monoprogramacion: Los sistemas operativos monotareas solo pueden manejar un proceso a la vez. 
  Sistema Operativo Monousuario: Los sistemas monousuarios son aquellos que nada más puede atender a un solo usuario. no puede iniciar otro proceso ni responder a nuevas instrucciones hasta que se termine la impresión. los programas o el tipo de aplicación que se este ejecutando. y en esta categoría se encuentran todos los sistemas que cumplen simultáneamente las necesidades de dos o más usuarios. orientado a procesamiento académico. En otras palabras consiste en el fraccionamiento del tiempo (timesharing). pueden tener un tiempo de ejecución muy alto. se agrupaban en conjuntos de trabajos o lotes 
(batches) para su procesamiento más eficiente. Las tareas relacionadas. 
  Sistema Operativo Multiusuario: Es todo lo contrario a monousuario.


Producción y distribución de energía eléctrica.). nóminas de 
personal.  Se encuentra en muchos computadores personales combinados con procesamiento serial. se utilizan en entornos donde son procesados un gran número de sucesos o eventos. sino los procesos.
Sistemas multimedia. También en el ramo automovilístico y de la electrónica de consumo. Algunos ejemplos de Sistemas Operativos de tiempo real son: VxWorks. Control de edificios.  Planificación de memoria sencilla. P á g i n a 8 | 21 .  No conveniente para desarrollo de programas por bajo tiempo de retorno y depuración fuera de línea.  Suelen proporcionar gestión sencilla de manejo de archivos: se requiere poca protección y ningún 
control de concurrencia para el acceso.  Conveniente para programas de largos tiempos de ejecución (ej. etc. análisis estadísticos. Solaris. Otros campos de aplicación de los Sistemas Operativos de tiempo real son los siguientes: 
  Control de trenes.O. están subutilizados sus recursos con la finalidad de prestar atención a los procesos en el momento que lo requieran. y 
programas transitorios. generalmente se divide en dos: parte residente del S. 
Muchos Sistemas Operativos de tiempo real son construidos para aplicaciones muy específicas como control de tráfico aéreo.  No requieren gestión crítica de dispositivos en el tiempo.Sistemas de fabricación integrada. las aplicaciones de tiempo real están creciendo muy rápidamente.  Sistemas Operativos de tiempo real: 
Los Sistemas Operativos de tiempo real son aquellos en los cuales no tiene importancia el usuario. control de laminadores. Por lo general.  Mayor potencial de utilización de recursos que procesamiento serial simple en sistemas multiusuarios.  Planificación del procesador sencilla. control de refinerías. típicamente procesados en orden de llegada. bolsas de valores. Permiten poca o ninguna interacción usuario/programa en ejecución. Lyns OS y Spectra.
Telecomunicaciones.

• 
Sistemas Operativos distribuidos. OS/360 y DEC−10. Un sistema fuertemente acoplado es a es aquel que comparte la memoria y un reloj global. en este caso es trasparente para el usuario. 
 Permiten distribuir trabajos. entre un conjunto de procesadores. dando a cada usuario la ilusión de que tiene el sistema dedicado para sí mismo. • Gestión de archivo debe proporcionar protección y control de acceso debido a que pueden existir 
múltiples usuarios accesando un mismo archivos. tareas o procesos. • Gestión de memoria proporciona protección a programas residentes. • Programas se ejecutan con prioridad rotatoria que se incrementa con la espera y disminuye después de 
concedido el servicio. P á g i n a 9 | 21 . El usuario hace una petición a la computadora. y la respuesta aparecerá en la terminal del usuario. principalmente en la administración de memoria principal y secundaria. En un sistema débilmente acoplado los procesadores no comparten ni memoria ni reloj. la memoria. Características de los Sistemas Operativos de tiempo compartido: • Utiliza la multiprogramación para manejar múltiples trabajos interactivos • El tiempo del procesador es compartido entre multiples trabajos. • Evitan monopolización del sistema asignando tiempos de procesador (time slot). cuyos tiempos de acceso son similares para todos los procesadores. ya que cada uno cuenta con su memoria local. el procesador. Esto trae como consecuencia una gran carga de trabajo al Sistema Operativo. • Multiples usuarios podrían acceder simultáneamente al sistema utilizando terminales • Dan la ilusión de que cada usuario tiene una máquina para sí. 
Permiten la simulación de que el sistema y sus recursos son todos para cada usuario. 
Los principales recursos del sistema. son continuamente utilizados entre los diversos usuarios. Los sistemas distribuidos deben de ser muy confiables. 
Ejemplos de Sistemas Operativos de tiempo compartido son Multics. Puede ser que este conjunto de procesadores esté en un equipo o en diferentes. • Mayoría utilizan algoritmo de reparto circular. Existen dos esquemas básicos de éstos. dispositivos de E/S. esta la procesa tan pronto como le es posible. ya que si un componente del sistema se compone otro componente debe de ser capaz de reemplazarlo. Sistemas Operativos de tiempo compartido.

con el objetivo primordial de poder compartir los diferentes recursos y la información del sistema. Spring.  Sistemas Operativos de red. P á g i n a 10 | 21 . LAN Manager.Entre los diferentes Sistemas Operativos distribuidos que existen tenemos los siguientes: Sprite. simulando paralelismo (es decir. LANtastic. Características de los Sistemas Operativos distribuidos:  La comunicación se da sobre líneas de comunicación  Ventajas:  Compartir Recursos
 Aumento de la productividad  Confiabilidad
 Comunicación • Colección de sistemas autónomos capaces de comunicación y cooperación mediante interconexiones hardware y software . y proporciona abstracción de máquina virtual a los usuarios. Windows NT Server. 
El primer Sistema Operativo de red estaba enfocado a equipos con un procesador Motorola 68000. MS−DOS. • Objetivo clave es la transparencia. El SO multitarea de Apple se denomina Macintosh OS. UNIX. Amoeba. Chorus.C. Macintosh OS. en lugar de esperar a que el proceso termine de ejecutarse (como lo haría normalmente). El UNIX y sus clones permiten múltiples tareas y múltiples usuarios. 
Ejemplos de estos tipos de Sistemas Operativos están: Alpha.O de red mas ampliamente usados son: Novell Netware. PVM. 
En estos tipos de Sistemas Operativos se pretende que cuando existan dos o más procesos que compitan por la CPU se puedan ejecutar al mismo tiempo. Personal Netware. OS/2. Taos. Pero hemos podido observar que todos los sistemas operativos han sufrido cambios por parte de los programadores. 
Conclusión:
Luego de haber investigado y analizado se puede ver que se han desarrollado varios tipos de sistemas operativos con diferentes interfaces y categorías. etc. la serie AIX. pasando posteriormente a procesadores Intel como Novell Netware. Así. Mach. Los sistemas operativos empleados normalmente son UNIX. regresa a atender al usuario inmediatamente después de haber creado el proceso. 
 • Sistemas Operativos paralelos. atender de manera concurrente varios procesos de un mismo usuario). 
Los S. Solaris−MC. • Generalmente proporcionan medios para la compartición global de recursos. 
En UNIX existe también la posibilidad de ejecutar programas sin tener que atenderlos en forma interactiva. 
Son aquellos sistemas que mantienen a dos o más computadoras unidas através de algún medio de comunicación (físico o no). Windows 95 y Windows NT. El MS−DOS es un SO popular entre los usuarios de PCs pero solo permite un usuario y una tarea. • Gobierna operación de un S. y siguen evolucionando. que es utilizado en los sistemas RS/6000 de IBM.

Economia
 y Incrementar Confiabilidad. Es necesario tener varios trabajos simultáneamente en la memoria. así se puede aprovechar al máximo la capacidad de la CPU. Si se tiene un solo procesador. El objetivo de la multiprogramación es tener algún proceso en ejecución en todo momento. P á g i n a 11 | 21 . Al organizar la CPU entre los procesos.8) ¿Qué es un sistema multiprogramado/multitarea y cuál es la principal ventaja de desarrollar un sistema de este tipo? Un sistema multiprogramado es aquel que permite que procesos se ejecuten dinámicamente. gracias a un Planificador. en caso de tener múltiples procesadores.7) o Memoria Limitada o Procesadores Lentos o Pequeñas pantallas ¿Qué problema presenta un sistema que no sea multiprogramado? Que solo puede ejecutar un proceso a la vez.  Los procesadores comparten memoria y reloj. para evitar problemas que ocurren al ejecutar varios procesos a la vez. NOTA: Hablar de un sistema que emplea multiprocesamiento simétrico es equivalente a hablar de un sistema paralelo en el que todos los procesadores son iguales y no existen unos procesadores principales y otros subordinados (“no hay controlador o CPUs distintas o dedicadas a tareas especificas”). por ejemplo al esperar operaciones E/S. 1. se ejecutará un solo proceso por vez. Sistema con más de una CPU o Conocido como Sistemas Multiprocesador.  Ventajas: o Aumentar Productividad
. por lo cual se necesita una correcta administración de la memoria. no puede ejecutar concurrentemente varios procesos. se pueden ejecutar concurrentemente múltiples procesos. Se desperdicia mucho la CPU. y protección de la misma. el SO puede hacer más productiva a la computadora.  Sistemas Operativos Portables:  Personal Digital Assistants (PDAs)  Teléfonos Celulares  
 Características 1.

ya sea porque finaliza su ejecución o se bloquea. observaríamos como se entrelaza la ejecución de varios procesos. Lo opuesto a interactivo es batch (generalmente vax durante las noches los trabajos se ejecutan en modo batch). Podríamos perfectamente pensar en un sistema multiprogramado en el que la asignación de la CPU a los procesos no se realice en base a un intervalo de tiempo. . ¿Cual es lo opuesto a interactivo? ¿Se usa lo opuesto? Los sist. . no se vuelve a ejecutar el planificador.P.10) ¿Debe ser un sistema operativo multitarea/multiprogramado de tiempo compartido? ¿ Y viceversa? Cuando hablamos de un sistema multiprogramado nos referimos a un sistema que permite la ejecución concurrente de varios procesos.Sistemas operativos con planificadores expropiativos (preemptive) son que los que pueden expropiar el recurso procesador a un proceso cuando otro proceso entra en estado pronto (ya sea porque es nuevo o porque se desbloqueó) o porque se le impone un límite de tiempo para ejecutar. 1.U. P á g i n a 12 | 21 . en tiempo compartido son el resultado de la tentativa de obtener un funcionamiento interactivo de un sistema informático a un coste razonable. Cuando hablamos de un sistema de tiempo compartido hablamos también de un sistema multiprogramado en el que a cada proceso se le asigna un intervalo de tiempo de ejecución. y la multiprogramación para dotar a cada usuario de una pequeña parte del ordenador. y poca interactividad.preemptive) son los que asignan el recurso procesador a un proceso y hasta que este no lo libere. Tiene tiempo lo hace pero el usuario no espera la respuesta. en tiempo compartido?.Sistemas operativos con planificadores no expropiativos (non.1. En que se basa? ¿Para que sirve?. Aqui el usuario envía a ejecutar un programa con sus datos y cuando el so.9) ¿Que opinión tiene sobre un sist. un sistema multiprogramado con una política de planificación de CPU FIFO (cuando un proceso espera por algún evento. Un sistema operativo en tiempo compartido utiliza la Planificación de la C. NOTA: No tiene sentido hablar de un sistema de tiempo compartido no multiprogramado.P. Queda por tanto claro y justificado que la respuesta a la primera pregunta es NO y a la segunda SI.U. es decir. por ejemplo. Este modo de ejecución es indicado para los programas con mucha carga de C. se conmuta a otro proceso).

Se produce cuando un proceso pide un recurso al SO mediante una llamada al sistema (open. NOTA II: Un sistema operativo de tiempo compatido son sistemas multiprogramados en los que se reparte el uso de la CPU entre los procesos existentes a intervalos regulares de tiempo.  Interrupciones por Software: programadas por el usuario.1. La detección de una interrupción es parte del ciclo de instrucción del CPU.write. 2) CONCEPTOS: Estructura computacional Interrupción: Es una señal electica que generan los dispositivos modificando ciertas banderas que se encuentran en la CPU. NOTA III: Un sistema operativo de red que permite compartir recursos distribuidos.11) ¿Para qué sirve la multiprogramación? ¿Puede un sistema de tiempo compartido tener una política de planificación no expulsiva? La multiprogramación sirve para que la CPU no permanezca ociosa esperando por la E/S de un proceso. el mismo sabe donde y cuando lanzarlas.  Interrupciones por hardware: No son programadas. porque en ese caso un proceso podría no ceder voluntariamente la CPU y no se ejecutarían otros procesos. Este es un sistema débilmente acoplado en hardware(no comparten reloj.read…). el mismo chequea las banderas de hardware para ver si algún dispositivo necesita su atención. Si un proceso tiene que esperar por E/S. Generalmente las interrupciones son Asincrónicas. los usuarios pueden interactuar con cada programa durante su ejecución como si fuera un único usuario. No se puede tener un sistema de tiempo compartido con una planificación no expulsiva. ya que no se puede saber con exactitud cuando ocurrirá el evento de interrupción. la CPU pasa a ejecutar otro proceso mientras tanto. lanzadas por el hardware. P á g i n a 13 | 21 .memoria y periféricos). NOTA: Un sistema operativo distribuido permite la ejecución de un servicio en una máquina diferente a aquélla donde fue solicitado. Una excepción es una interrupción de la propia CPU cuando se intenta ejecutar una instrucción prohibida. pero que no llega a ofrecer una visión uniforme y transparente de esos recursos.

NOTA: Las llamadas al sistema y las excepciones funcionan como interrupciones del software: se gestionan igual que las interrupciones del hardware pero las provoca la propia CPU. Técnicas para averiguar que recurso del sistema a realizado una interrupción: Puede ser por la técnica de polling o segunda técnica consiste en que el dispositivo. entonces la detección de todos aquellos eventos que son relevantes de cara a su funcionamiento se tendría que realizar mediante la técnica de interrogación o comprando de forma permanente el valor de las variables de estado del sistema. Por tanto el sistema no tendría un funcionamiento eficiente. 2. además de interrumpir.Polling: en un sistema basado en interrupciones.1) Desde el punto de vista del sistema operativo. Las interrupciones evitan que la CPU esté continuamente interrogando a los dispositivos de E/S para saber si han concluido las operaciones de E/S pendientes. La técnica del Polling consiste en “preguntar” uno por uno a todos los dispositivos para averiguar la procedencia de dicha interrupción. con lo que consume recursos de CPU. 2. siendo por tanto altamente ineficiente. conociéndose esta técnica de uso mas frecuente con el nombre de interrupciones vectorizadas.2) ¿Qué es la “espera activa”? Es un mecanismo por el cual un proceso espera un evento o condición comprobando continuamente si ésta condición se cumple.3) ¿Sería viable un sistema multiprogramado sin el uso de las interrupciones? Si un sistema no posee interrupciones. 2. P á g i n a 14 | 21 . envía un número por el bus. ¿qué beneficio aporta el uso de interrupciones? Que el tratamiento de eventos se realice cuando éstos se producen realmente y así no incurrir en el fenómeno de espera activa. Además. ha de averiguarse cuál de los dispositivos del sistema ha realizado dicha interrupción. Como en un sistema multiprogramado el manejo de eventos juega un papel crítico en su eficiencia. en muchas ocasiones. entonces un sistema de este tipo sin interrupciones no sería viable debido a que no tendría un rendimiento aceptable. De esta manera se hace un uso más eficiente del procesador. estas detecciones se realizarían dando lugar a situaciones de espera activa. cuando un dispositivo interrumpe a la CPU.

Al producirse una interrupción siempre la CPU conmuta a modo privilegiado/supervisor. el sistema operativo satisface las solicitudes de entrada en el lector de tarjetas leyendo del disco. qué ventajas y qué desventajas presenta ? Con la aparición de los discos las tarjetas se leen directamente del lector de tarjetas al disco. pero entonces no podría ejecutarse otro proceso mientras tanto. el dispositivo responde con una interrupción que avisa a la CPU de que puede retomar la ejecución del proceso anterior. Definir Spooling: Técnica de procesamiento de operaciones de E/S que permite que equipos de E/S de naturaleza no compartida sean tratados por los programas como equipos compartidos. Las excepciones también pueden ser activadas automáticamente por la CPU en respuesta a eventos que se producen durante la ejecución de los procesos: errores aritméticos como la división por cero. en lugar de ser activada por un dispositivo de E/S.2. Cuando se ejecuta un trabajo. NOTA: Con la técnica del spooling se utiliza el disco como un enorme búfer. accesos indebidos a memoria. Con esta técnica se permite solapar operaciones de E/S de una tarea con operaciones de CPU de otra..4) ¿Cómo afecta el uso de las interrupciones a los sistemas multiprogramados? La espera de un proceso por E/S puede ser activa. 2. con lo que no lograríamos multiprogramación. Típicamente los programas de usuario las utilizan para invocar a las llamadas al sistema operativo. En ese momento la CPU puede conmutar a otro proceso. de esta manera usamos el disco como un enorme buffer.5) ¿Qué diferencias existen entre las interrupciones y las excepciones (traps)? ¿Pueden los programas de usuario generar interrupciones de forma intencionada? ¿Con qué propósito? Una excepción es una interrupción activada por software. NOTA: La idea básica del mecanismo de E/S por interrupciones es impedir que la CPU esté ociosa mientras espera por E/S. las interrupciones) pueden ser generadas por cualquier programa usando instrucciones adecuadas (INT. Las excepciones (y por extensión. lo mismo ocurre con la impresora. La ubicación del contenido de las tarjetas se anota en una tabla que mantiene el sistema operativo.6) ¿Qué implica el Spooling. …). 2.. P á g i n a 15 | 21 . Cuando la E/S finaliza. Las interrupciones permiten que un proceso que hace E/S quede bloqueado en espera por la finalización de la E/S. TRAP. Esto se consigue utilizando espacio en disco como almacén intermedio de los datos de E/S.

. Si la C. ¿ En qué casos realmente presenta sólo una mejora en la eficiencia del sistema informático ? Si las velocidades de promedio de la CPU y los dispositivos de E/S son las mismas. Un grupo de trabajos en disco permite que el sistema operativo seleccione que trabajo ejecutará a continuación. Reemplaza al buffer.P.7) ¿Por qué el uso de la técnica de spooling motivó el desarrollo de la técnica de multiprogramación? Porque desarrolló el concepto de lista de tareas (pool de Job) que podía ser gestionada de acuerdo a políticas distintas a la FIFO. dispuestos a ser ejecutados.U. Cuando los trabajos entran directamente desde tarjetas o incluso desde cinta magnética.El spooling tiene un efecto beneficioso sobre el rendimiento del sistema. ¿por qué? El spooling generalmente hará que varios trabajos ya leídos permanezcan esperando en un disco. funcionando ambos a toda velocidad.U. en cambio el spooler puede superponer la E/S y los calculos de varios trabajos diferentes.P. P á g i n a 16 | 21 . 2.U. con vistas a incrementar la utilización de la C. el almacenamiento temporal con buffers permite a la C. 2. NOTA: Un búfer es un área de memoria principal para guardar datos durante transferencias de entrada o salida. en cambio puede coexistir con la operación off−line.9) ¿ El Spooling tiene algo que ver con el Buffering ? ¿ Lo reemplaza ? ¿ Y con la operación off−line ? ¿ O pueden coexistir ? ¿ Cómo ? Si ambos son buffers el Spooler más grande.10) ¿ Por qué se dice que aparece aquí una cola de trabajos (job pool)? En operación Off−Line los trabajos también estaban en cola en la cinta pero no se hablaba de esto. adelantarse o retrasarse ligeramente respecto a los dispositivos de E/S.P. el buffer hace simultanea la E/S de un trabajo con los propios calculos del trabajo. 2. no es posible saltar y ejecutar trabajos en un orden diferente. 2. A cambio del costo de unas cuantas tablas y de espacio en disco. fuese mucho más rápida el uso de buffers tiene poca utilidad. Cuando hay varios trabajos en un dispositivo de acceso directo ce posible la planificación de trabajos.8) Hablando de buffering.

2. Una posible solucion a este problema es la tecnica de envejecimiento que consiste en incrementar en el tiempo la prioridad de los procesos que están en espera.13) ¿A qué se denomina independencia de dispositivos de E/S? Es la capacidad para ejecutar un programa con dispositivos de E/S diferentes.11) ¿ Qué significa concurrencia ? Dos o más procesos son concurrentes cuando se ejecutan al mismo tiempo. para que no sean adulterados.O es a través del Shell.  Hay que proteger vector de interrupciones. rutinas de atención de interrupciones. P á g i n a 17 | 21 .2.  Proteger los espacios de direcciones de los procesos.12) ¿Que es la Inanición? Es cuando los procesos de baja prioridad pueden no llegar a ejecutarse nunca. NOTA: La comunicación entre el usuario y el S.O con el Hardware  Muchos errores son detectados por el HW. 2. y las RAI. Relacion de los distintos componentes de hardware Relación del S.

. P á g i n a 18 | 21 . Modos de ejecución: Usuario / supervisor  El bit de modo indica el modo actual. Input/Output.  Cuando comienzan a ejecutarse un proceso de usuario.. este bit se pone en modo usuario.  Cuando hay un trap o una interrupción.  No es el proceso de usuario quien hace el cambio. es decir a las direcciones “propias”. Tener encuenta que…  Cuando se arranque el sistema. el bit de modo se pone en modo supervisor. o ejecutar código que no es del proceso) .Problemas que pueden ocurrir  Producir instrucciones de E/S ilegales. Resumiendo… Modo Kernel:  Modo privilegiado  Manejo estricto de pautas de confiabilidad/seguridad  Manejo de: ✔ CPU.  Las instrucciones privilegiadas deben ejecutarse en modo supervisor (necesitan acceder a estructuras del kernel.  Cuando el proceso de usuario intenta por sí mismo ejecutar instrucciones que pueden causar problemas (las llamadas instrucciones privilegiadas) esto el HW lo detecta como una operación ilegal y produce un trap al SO. Lo hace el HW al detectar un trap o una interrupción.  Cuando está en modo usuario..  Apropiarse de la CPU.  Intentar acceder a una posición ilegal de memoria.. memoria. arranca con el bit en modo supervisor.  El SO se ejecuta en modo supervisor. el proceso puede acceder sólo a su espacio de direcciones.  Por lo tanto: en el modo usuario sólo un subconjunto de instrucciones de máquina es permitido.

✔ ✔ SO debe protegerse de ser accedido por procesos de usuario. Partes del filesystem y la interfase de red. Esta acción sólo puede realizarse en modo monitor.  El SO puede cargar valores en estos registros a través de instrucciones privilegiadas.✔ ✔ Administración multiprocesador. P á g i n a 19 | 21 . userapplications. spreadsheets. diagnosticos.  La memoria principal aloja SO y procesos de usuario.  Uso de registro base y registro límite. network management Editors. testing. linker/loader. assembler. Los procesos de usuario deben protegerse del acceso entre sí. Modo User:  Más flexible  Funciones de Mantenimiento más simples. debugging ✔ ✔ ✔ Compiler. Filesystem management. telecommunication. Proteccion de Memoria  Delimitar el espacio de direcciones del proceso. interpreter.

P á g i n a 20 | 21 . 2.  Se le asigna al contador el valor que se quiere que se ejecute un proceso.  El SO le da valor al contador que se decrementa con cada tick de reloj y al llegar a cero se produce la expulsión del proceso. donde se tienen instrucciones privilegiadas que impiden que dispositivos E/S entren y modifiquen directamente algún dato o dirección de memoria que pueda resultar perjudicial.  Deben hacerse a través del sistema operativo. se llama al SO para que se encargue de ellos. donde las aplicaciones ejecutan su código y en caso de necesitar recursos o cosas que puedan comprometer la seguridad del sistema. basándose en cantidad de interrupciones ocurridas cada tanto tiempo y desde una determinada fecha y hora. Proteccion de la CPU  Uso de interrupción por clock para evitar que un proceso se apropie de la CPU.  Se la usa también para el cálculo de la hora actual. que impiden que programas dañinos o mal uso de los mismos causen problemas. Este modo tiene a su disposición instrucciones privilegiadas.14) Describa los cuatro mecanismos de protección que le brinda el hardware al sistema operativo.  Las instrucciones que modifican el funcionamiento del cronómetro son privilegiadas.Proteccion de E / S  Las instrucciones de E/S se definen como privilegiadas.  Se implementa normalmente a través de un clock y un contador. Modo Dual: El SO permite dos niveles de ejecución. una en Modo Usuario. Otro mecanismo es la protección de E/S. con su Modo Monitor.

DMA: Se utiliza un chip especial que permite transferir datos desde alguna controladora a memoria sin que el procesador tenga que intervenir en forma contínua. P á g i n a 21 | 21 . 2. Otro es la protección de memoria. Interrupciones y DMA. con una única memoria común. donde se utilizan dos registros: Base y Limite.17) ¿Que tipo de procesamientos existen en un sistema multiprocesador? Simetrico y Asimétrico. y el limite es la amplitud que puede tomar la dirección. El registro base contiene la minima dirección posible. 2. Se ejecuta en paralelo.15) Mencione el principal problema que debe enfrentar un sistema operativo si ejecuta sobre un equipo multiprocesador. Esto no era un problema cuando había un solo procesador y a lo sumo un proceso del sistema ejecutando en un momento dado. (Formas de interacción con la controladora del dispositivo). 2. por ejemplo para evitar quedar infinitamente funcionando algún proceso. El principal desafío es proteger las secciones críticas del sistema operativo. Una CPU evalua esto de la siguiente manera: si una dirección de memoria es válida entonces su valor estará entre el registro base y el registro base+limite. 2.16) Describa 3 métodos para efectuar una operación de Entrada/Salida. Polling.Otro mecanismo es la Protección de la CPU. mediante la introducción de un timer (también llamado watchdog) que permite limitar el uso de la CPU.18) ¿Qué permite el bit de modo provisto a nivel de hardware? Pasar de modo usuario a modo monitor y viceversa. y cada dirección es evaluada para ver si es consistente con su definición.