SlideShare una empresa de Scribd logo
1 de 95
Sistemas Operativos
U1-C1
Objetivo del Curso
• El alumno comprenderá el
funcionamiento interno de los
sistemas operativos, y analizará las
técnicas empleadas para la
administración de los recursos:
procesador, memoria, dispositivos de
E/S y el sistema de archivos, de una
computadora.
Temario
• Terminología y Conceptos básicos de los
sistemas operativos
• Administración del procesador
• Administración de la memoria
• Administración de los dispositivos de entrada
y salida
• Administración de los sistemas de archivos
Referencias básicas
• Silberchatz. Operating System Concepts. Wiley.
Sexta Edición.
• Tanenbaum, Andrew. Operating systems, Design and
Implementation. Prentice Hall. 1997
• Tanenbaum, Andrew. Sistemas Operativos, Diseño e
Implementación. Prentice Hall Software Series.
• Milenkovic, Milan. Sistemas Operativos. Conceptos y
diseño. McGraw Hill.
• Tanenbaum, Andrew. Sistemas operativos Modernos.
Prentice Hall Hispanoamericana, 1993.
Sistemas Operativos
U1-C2
¿Qué es un sistema operativo?
• Un programa que actúa como
intermediario entre el usuario y el
hardware de la computadora.
• Objetivos del Sistema Operativo:
– Proveer un ambiente en donde el usuario
pueda ejecutar programas y solucione sus
problemas de manera más fácil.
– Permitir el uso cómodo de la Computadora.
– Utilizar el hardware de la computadora de
una manera eficiente.
Componentes de una Computadora
1. Hardware. Proporciona los recursos básicos de una
computadora (CPU, memoria, dispositivos E/S).
2. Sistema Operativo. Controla y coordina el uso del
hardware entre diferentes aplicaciones para
diferentes usuarios.
3. Programa de Aplicación. Define la forma en que los
recursos del sistema son utilizados para resolver los
problemas computacionales del usuario
(compiladores, sistemas de bases de datos, video
juegos, etc).
4. Usuarios (personas, otras computadoras).
Vista de un sistema computacional
Perspectiva del usuario (1)
• PC.
– Los recursos sólo son utilizados por un usuario.
– S.O. diseñado con “facilidad de uso”.
– Cierta atención al funcionamiento, casi nula para
la utilización de los recursos.
• Mainframes.
– Recursos compartidos, intercambio de
información.
– S.O. diseñado para “maximizar la utilización de
los recursos”.
– Asegura que los tiempos disponibles de CPU,
memoria, E/S son utilizados eficientemente
Perspectiva del usuario (2)
• Estaciones de trabajo.
– Computadoras conectadas con servidores. Sus
usuarios cuentan con recursos dedicados a ellos
pero también los comparten
– S.O. diseñados con compromisos entre la
usabilidad y la utilización de recursos
• Handheld.
– Sistemas personales con limitaciones de poder e
interface
– S.O. diseñados para el uso individual.
Perspectiva del sistema
• Asignador de recursos.
– Administra y organiza los recursos.
• Programa de control.
– Control de los dispositivos de E/S y
programas de usuario para prevenir errores
y el mal uso de la computadora.
• Kernel.
Evolución de los sistemas operativos
• Sistemas Mainframe
– Las supercomputadoras fueron las primeras usadas
para resolver problemas comerciales o científicos.
De estas computadoras parte la evolución de los
S.O.
• Sistemas de procesamiento por Lotes (Batch)
– El usuario no interactuaba directamente con la
computadora.
– En cambio, el usuario preparaba un trabajo y lo
introducía a la computadora (tarjetas perforadas).
Después se obtenía un resultado impreso
generalmente en papel.
Sistemas de procesamiento por Lotes (Batch)
• Para acelerar el procesamiento se desarrolló el
sistema de procesamiento por lotes
– La idea era colectar un grupo de trabajos (batch) y luego
introducir el lote completo a la computadora
• Los sistemas operativos en esta época eran muy
simples y el trabajo principal del S.O. era transferir el
control de manera automática de un trabajo a otro.
• Al terminar con todo el lote, un operador retiraba las
cintas de entrada y salida, introducía la nueva cinta
con el Lote e imprimía la cinta de salida.
Procesamiento de trabajos
Organización de la memoria en un sistema de
procesamiento por lotes
Sistemas de Multiprogramación
• Con la mejoría de la tecnología y la introducción
de los discos se tuvieron dispositivos más
rápidos de E/S.
– Permitió a los sistemas operativos almacenar los
trabajos en dichos discos en lugar de cintas o tarjetas
perforadas
• Esto permitió a los S.O. acceder directamente a
varios trabajos por lo que se incluyeron
algoritmos de calendarización de los trabajos,
con el propósito de realizar las tareas y usar los
recursos eficientemente.
Sistemas de Multiprogramación
• Uno de los aspectos más importantes de la
multiprogramación es la calendarización de
trabajos.
• La multiprogramación incrementa la utilización
del CPU mediante la organización de los
trabajos de tal forma que siempre hay un
proceso para ejecutar.
• La idea es partir la memoria en varias partes,
con un trabajo distinto en cada partición
– Mientras que un programa esperaba a que terminara
la operación de E/S, otro podría utilizar la CPU
Sistemas de Multiprogramación
• No obstante, el número de particiones que se podían
hacer en memoria era muy inferior a la cantidad de
trabajos que se podían almacenar en los discos.
• Entonces otra característica de esta generación de S.O.
fue la utilización de SPOOLING (Simultaneous
Peripheral Operational On Line), que consistía en poder
cargar del disco un nuevo trabajo cuando concluía otro.
• La multiprogramación es de las primeras instancias en
donde el S.O. tiene que tomar una decisión por el
usuario.
Sistemas de Multiprogramación
• Si varios procesos están listos para ser
cargados a la memoria y no hay suficiente
memoria, el S.O. debe escoger entre ellos.
(calendarización de procesos)
• Si se tienen varios procesos en memoria
entonces es necesaria una Administración de la
memoria
• Si varios procesos están listos para ejecutarse
al mismo tiempo, es necesaria entonces una
Calendarización del CPU
Sistemas de Multiprogramación
Sistemas de multiprogramación
• Qué pasa cuando tenemos un proceso
que por mucho tiempo no necesita
realizar operaciones de entrada/salida
• Conforme el uso de la computadora
evolucionó a un modo mucho más
interactivo la multiprogramación por sí
sola ya no satisfacía
Multitarea cooperativa
• Procesos o tareas que ceden
voluntariamente tiempo a otros
procesos
• Qué pasaba si un proceso que tenía la
CPU se “colgaba”
– Colapso del sistema
Sistemas de tiempo compartido
• Los sistemas de tiempo compartido o Multitarea son
una extensión lógica de la multiprogramación.
• La CPU ejecuta múltiples trabajos intercambiando
entre uno y otro, pero el intercambio es tan frecuente
que el usuario puede interactuar con cada programa
mientras se ejecuta.
– El tiempo compartido es otorgado por el hardware y el S.O.
• Por lo tanto, un S.O. multitareas permite a muchos
usuarios compartir la computadora simultáneamente.
Tiempo compartido
• En un sistema de tiempo compartido cada
acción y comando sólo necesita tiempos
cortos de CPU para cada usuario.
• De esta forma, mientras el sistema cambia
rápidamente de un usuario a otro, da la
impresión que todo el sistema está dedicado
para su uso.
• “Reparto equitativo” de los recursos
Tiempo Compartido
• Un SO de tiempo compartido debe utilizar
calendarización del CPU y multiprogramación
para proporcionarle a cada usuario una
pequeña porción del tiempo del sistema.
• Al programa cargado en la memoria y que se
está ejecutando se le llama Proceso.
• Los procesos pueden necesitar operaciones
de E/S, en ese lapso el SO le asigna el
procesador a algún otro usuario.
Tiempo compartido
• Los SO de tiempo compartido
necesitan administración y protección
de la memoria.
• Para mantener tiempos de respuesta
razonables, los procesos pueden ser
cargados y descargados (swap) de la
memoria principal hacia el disco, el cual
sirve como un almacén temporal para
la memoria.
Tiempo compartido
• Memoria Virtual
– Es una técnica común para lograr el “swap”.
– Permite la ejecución de un proceso que no puede
ser completado en la memoria.
• La principal ventaja de la memoria virtual es que los
programas pueden ser más grandes que la memoria
física.
• Memoria virtual abstrae la memoria principal en un
gran arreglo uniforme de almacenamiento,
separando la memoria lógica vista por el usuario de
la memoria física.
Tiempo compartido
• Los sistemas de TC deben proporcionar un
sistema de archivos.
– Necesario una administración de archivos
• También, proporcionan un mecanismo para
la ejecución concurrente, lo que requiere de
esquemas complejos de calendarización del
CPU
• Para asegurar la ejecución ordenada, el
sistema debe proporcionar mecanismos para
la sincronización y comunicación de
procesos.
Sistemas Operativos
U1-C3
Licenciatura en Ciencias de la Computación
Repaso
• ¿Qué es un S.O.?
• Perspectivas del usuario
– Mainframe, PC, estaciones de trabajo,
handheld
• Evolución de los sistemas operativos
– Mainframe
• Procesamiento por lotes
• Multiprogramación
• Tiempo compartido
Sistemas de Escritorio
• Las PC aparecieron en 1970. Al principio los
S.O. de estos sistemas no fueron ni
multiusuarios ni multitareas.
• Los principales objetivos de estos sistemas
es maximizar la conveniencia y tiempo
respuesta.
• Pueden adoptar tecnología desarrollada para
S.O. “grandes” (mainframes)
• Dado que el usuario no tiene que compartir el
CPU, su máxima utilización ya no es una
preocupación primaria
Sistemas Multiprocesadores
• La mayoría de los sistemas actuales son de
un solo procesador.
• Sin embargo los sistemas que tienen más de
un procesador (sistemas paralelos o
multiprocesadores) cada día crecen más en
importancia.
• Principales Ventajas
– Incremento del rendimiento
– ¿Economía en escalabilidad?
– Confiabilidad, tolerancia a fallas
Sistemas Multiprocesadores
• Multiprocesamiento simétrico (SMP)
– Cada procesador ejecuta una copia idéntica del
sistema operativo.
– Muchos procesos pueden correr al mismo tiempo
(tantos procesos como procesadores) afectando
poco el desempeño.
– Este tipo de sistemas permite compartir
dinámicamente los procesos y recursos entre
varios procesadores.
– La mayoría de los sistemas modernos soportan
SMP
Sistemas Multiprocesadores
• Multiprocesamiento asimétrico
– Cada procesador tiene asignada una tarea
– Un procesador maestro controla el sistema
• Calendariza y asigna procesos a cada
procesador esclavo.
– Común en sistemas extremadamente
grandes
Sistemas Distribuidos
• Los sistemas distribuidos están basado en las redes de
computadoras y su funcionalidad depende del trabajo
en redes.
• Cada procesador tiene su propia memoria local.
• Los procesadores se comunican entre ellos utilizando
las redes de comunicaciones.
• Existen sistemas cliente-servidor o “peer to peer”
• Sistema operativo de red, proporciona características
de trabajo en red, incluye esquemas de comunicación
que permite a diferentes procesos en diferentes
computadoras intercambiar mensajes.
Sistemas en grupos (Cluster)
• Al igual que en lo sistemas paralelos, los
clusters de computadoras agrupan múltiples
CPU’s para realizar un trabajo computacional.
• Una capa de software se ejecuta en cada
nodo del cluster. De esta manera, cada nodo
puede monitorear uno o más de los otros
nodos.
• Dos tipo de clustering
– Asimétrico (Un monitor para el servidor activo)
– Simétrico (Todos se monitorean entre ellos)
• Tarea 1
– Características de los sistemas operativos
durante la evolución histórica
• Tarea 2
– Características de los sistemas operativos
de tiempo real
Sistemas Portátiles
• Asistentes personales digitales (PDAs)
• Teléfonos celulares
• Caracterísiticas
– Memoria limitada.
– Procesadores lentos.
– Pantallas pequeñas.
Evolución de los SO
Sistemas Operativos
U1-C4
Repaso
• Sistemas de escritorio
• Multiprocesadores
– Simétrico y asimétrico
• Sistemas distribuidos
• Sistemas en cluster
• Sistemas portátiles
Estructura de los sistemas de computadora
• Necesitamos tener una idea general de la estructura
de un sistema computacional antes de poder
explorar los detalles de su funcionamiento.
• Un computadora moderna de propósito general
consiste de un CPU y un número controladores de
dispositivos que están conectados mediante un bus
común el cual proporciona acceso a la memoria
compartida.
• Cada controlador de dispositivo está a cargo de un
dispositivo en particular.
Un sistema de computadora moderno
Operación del sistema
• Cuando una computadora se inicia, necesita
un programa inicial para continuar.
– Programa de arranque (Bootstrap), generalmente
almacenado en una ROM, como “firmware” o
“eeprom”
– Inicializa todo el sistema
– El programa de arranque debe saber cómo cargar
el sistema operativo y ejecutarlo.
• Debe asignar y cargar en la memoria el kernel
• La ocurrencia de un evento es normalmente
marcada por una interrupción ya sea del
hardware o del software
Interrupciones
• El hardware dispara (trigger) una interrupción
enviando una señal al procesador por medio del bus
del sistema.
• El software dispara una interrupción ejecutando un
programa especial, “llamada al sistema”.
• Los sistemas operativos modernos se rigen mediante
interrupciones.
• Los eventos, por lo general son marcados por la
ocurrencia de una interrupción o “trap” (excepción)
Interrupciones
• Cuando el CPU recibe una interrupción, se detiene de lo que
hace y transfiere su ejecución a otro lugar.
• Cada interrupción cuenta con una “rutina de servicio de
interrupción” quien es responsable de manejar a dicha
interrupción.
• Para el manejo de las interrupciones se usa una tabla de
apuntadores a las rutinas de interrupciones. Esta tabla (Vector
de Interrupciones) refiere a la rutina de interrupción
correspondiente a una interrupción.
• El Vector de Interrupciones se almacena en la memoria baja y
almacena las direcciones de las rutinas de servicio.
Estructura de E/S
• Controladores de dispositivos. Cada controlador tiene
a su cargo un tipo de dispositivo.
• Síncrono. Una vez que una operación de E/S es
inicializada, el control regresa al usuario hasta que se
completa la operación de E/S.
– Existe un instrucción especial de espera (wait) que paraliza
al CPU hasta la siguiente interrupción
– Computadora que no cuentan con la instrucción “Wait”
tienen un ciclo “wait”.
– A lo más una petición de E/S es atendida a la vez,
impidiendo el procesamiento simultáneo de E/S.
Estructura de E/S
• Asíncrono. Una vez que una operación de E/S es
inicializada, el control regresa al usuario sin esperar
que se complete la operación de E/S.
– Llamada al sistema. Se efectúa para permitir al programa
del usuario esperar por la finalización de la operación de
E/S, si así se desea.
– Si no es necesario ejecutar algún programa o el sistema
operativo no tiene trabajo por hacer entonces se utiliza la
instrucción wait.
– Para manipular varias operaciones E/S, el S.O. utiliza una
“Tabla de Estado de Dispositivo”. Cada registro de esta
tabla indica el tipo de dispositivo, dirección y estado.
Estructura E/S
a) Síncrono b) Asíncrono
Estructura de E/S
• Un dispositivo E/S produce una interrupción
cuando necesita un servicio.
• Cuando la interrupción ocurre, el S.O.
determina primero cuál dispositivo de E/S
causó la interrupción.
• Entonces enlista la tabla de estado de
dispositivos para saber el estado del
dispositivo
• Modifica la tabla para reflejar la ocurrencia de
la interrupción
Tabla de Estado de Dispositivo
Estructura DMA
• Así como existen dispositivos de E/S que
envían información de manera muy lenta,
permitiendo que la CPU pueda ejecutar otras
operaciones, existen dispositivos de E/S de
alta velocidad
• Estos dispositivos transmiten información a
una velocidad cercana a la velocidad de la
memoria. Esto deja poco tiempo al
procesador para ejecutar otras operaciones.
• Para resolver este problema se utiliza DMA
(Direct Access Memory).
Sistemas Operativos
U1-C5
Repaso
• Estructura de los sistemas de cómputo
• Entrada/salida
– Interrupciones
– Síncrono/asíncrono
– Tabla de estado de dispositivo
– DMA
Estructura de Almacenamiento
• Para ser ejecutados, los programas deben
estar en la memoria principal o RAM.
• La RAM es la única memoria que el
procesador puede acceder directamente.
• La interacción se logra mediante la secuencia
de instrucciones “load” y “store”.
– La instrucción load mueve una palabra de la
memoria RAM hacia un registro interno del CPU,
mientas que store mueve el contenido de un
registro hacia la memoria RAM.
Memoria volátil y almacenamiento secundario
• Idealmente se quiere que los programas y
datos residan en la memoria RAM
permanentemente, pero
– La memoria RAM es usualmente muy pequeña
para almacenar todos los programas y datos
necesarios permanentemente.
– La memoria principal es un almacén volátil que
pierde su contenido cuando se apaga la fuente de
poder.
• Es por esto que casi todos los sistemas
deben proveer un almacén secundario como
una extensión de la memoria principal.
Estructura de almacenamiento
• El dispositivo secundario de almacenamiento
más común es el disco magnético.
• La mayoría de los programas son
almacenados en disco hasta que se cargan a
la memoria principal.
• Sin embargo, la memoria RAM, los discos
magnéticos, los registros son algunas de las
muchas formas posibles de almacenamiento
– Memoria caché, CD-ROM, cintas magnéticas, etc
Memoria principal
• Como ya hemos mencionado, el CPU solo puede
acceder directamente a la memoria RAM y sus
registros internos.
• En el caso de los dispositivos de E/S, sus
controladores contienen registros que almacenan
comandos o datos a transferir entre la memoria y
esos registros.
• Para permitir un acceso más conveniente a los
dispositivos de E/S muchas arquitecturas
proporcionan correspondencia de memoria de E/S
(memory-mapped I/O).
Memory-mapped
• Se establecen rangos de direcciones de
memoria y se crea un correspondencia entre
éstos y los registros de los dispositivos.
• Leer y escribir de estos rangos de memoria
implica que la información sea transferida
desde o hacia los registros.
• La correspondencia de memoria es muy
utilizada para dispositivos como los puertos
paralelos y seriales. Los registros de estos
dispositivos son llamados puertos de E/S
Programmed I/O (PIO)
• Entonces cuando el CPU escribe información en el
registro activa un bit para indicar que esa información
puede ser transferida.
• El dispositivo toma la información y cambia el bit del
registro para indicar que está listo para la siguiente
transferencia.
• Si el CPU “encuesta” para saber el estado del bit de
control se le llama Programmed I/O (PIO)
• Si el CPU no utiliza la encuesta para saber del bit de
control, sino en cambio recibe una interrupción
cuando el dispositivo está listo para la siguiente
transferencia, entonces la transferencia es guiada
por interrupción
Discos Magnéticos
• Rotan entre 60 y 200 veces
por segundo
• Tasa de transferencia.
Velocidad con la que
transfiere información.
• Tiempo de posicionamiento
(tiempo de acceso aleatorio).
Tiempo que le toma mover el
brazo hacia el cilindro
deseado.
• Latencia de rotación. Tiempo
en que el sector llega a la
cabeza de lecto-escritura.
Jerarquía de almacenamiento
• De acuerdo a la
rapidez y el costo.
• Los niveles altos
son muy caros
pero muy rápidos.
• Los sistemas
arriba de los
discos electrónicos
son volátiles y los
que están por
debajo son No-
volátiles.
Sistemas Operativos
U1-C6
Repaso
• Estructura de los sistemas de cómputo
• Entrada/salida
– Interrupciones
– Síncrono/asíncrono
– Tabla de estado de dispositivo
– DMA
• Almacenamiento
– Memoria volátil y secundaria
– correspondencia de memoria de E/S
– Programmed I/O
– Discos
– Jerarquía de almacenamiento
Memoria caché
• No obstante la rapidez de la memoria principal, el
acceso a su información puede tomar varios ciclos
del CPU
• El remedio para esto es agregar más memoria entre
el CPU y la memoria principal. A esta memoria se le
llama memoria caché.
• Cuando el CPU necesita información lo que hace es
examinar si se encuentra en la caché. Si se
encuentra la utiliza. Sino toma la información de la
memoria principal y pone una copia en la caché.
• El principal uso de la memoria caché es almacenar
datos que han sido utilizados recientemente y que
próximamente se usarán de nuevo.
Caché
• Dado que la memoria caché tiene un limite
de tamaño, es importante tener una buena
administración de la caché
• Generalmente, la transferencia de
información entre caché, CPU y los registros
es una función de hardware sin la
intervención del S.O.
• Por otro lado la transferencia entre disco y
memoria principal es controlada por el S.O.
Coherencia de caché
• Suponga que quiere incrementar el valor de A y A se encuentra en
un archivo en disco.
• Se realizan varias copias de A hasta que finalmente se copia en un
registro de CPU para su incremento.
• Una vez que se ha incrementado el valor de A existen diferentes
copias con valores diferentes de A.
• Imagine qué pasa en un sistema multitarea si varios procesos
quieren obtener el valor reciente de A.
• Imagine qué pasa en un sistema de multiprocesadores donde cada
procesador tiene su propia memoria caché.
• Asegurar que el último cambio de A en una caché sea
inmediatamente reflejado en todas las demás se le llama Cache
Coherency.
Protección de Hardware
• Operación de modo dual
– Para asegurar un buena operación, el SO
y los programas del usuario deben estar
protegidos de cualquier error o
malfuncionamiento
– Para recursos compartidos es necesaria la
protección de los mismos.
– Los SO proporcionan soporte especial al
Hardware que le permite distinguir entre
modos de ejecución
Modos de ejecución
• Al menos se necesitan dos modos de
operación: modo usuario y modo monitor
(protegido)
• Un bit, llamado bit de modo, se agrega al
hardware de la computadora para indicar el
modo actual: monitor (0) o usuario (1).
• Con el bit de modo, se puede distinguir entre
una tarea ejecutada para el usuario y una
ejecutada para el S.O.
Modos de operación
• Cuando una computadora inicia, el hardware se pone
en modo protegido, entonces el sistema operativo se
carga y empieza los procesos del usuario en modo
usuario.
• Cuando una interrupción o llamada al sistema ocurre,
el hardware cambia de modo usuario o modo
protegido. Entonces, cuando el SO toma el control de
la computadora lo hace en modo protegido.
• El sistema siempre cambia al modo usuario antes de
pasar el control a los programas del usuario.
Instrucciones protegidas
• La operación dual, nos permite proteger al
SO de usuarios “errantes” y entre ellos.
• Dicha protección se logra designando a
algunas instrucciones de máquina que
podrían causar daño, como instrucciones
“privilegiadas”.
• El hardware permite la ejecución de las
instrucciones privilegiadas solamente en
modo protegido.
Protección E/S
• Un programa de usuario puede terminar
abruptamente al realizar alguna operación
ilegal de E/S.
• Para prevenir al usuario de incurrir en
operaciones ilegales de E/S, se definen todas
éstas como instrucciones protegidas
• Por lo tanto, el usuario no puede manipular
instrucciones E/S directamente sino a través
del sistema operativo.
Protección de la memoria
• Otro aspecto que se debe proporcionar para
asegurar la correcta operación de un S.O. es
la protección de la memoria.
• Esta protección al menos se debe hacer para
el vector de interrupciones y las rutinas del
servicio de interrupciones.
• Para separar cada espacio de memoria para
los programas, se debe poder determinar los
rangos de direcciones legales que los
programas debe acceder.
Registro base y límite
• Esta protección se establece manejando dos
registros, usualmente llamados registro base
y registro límite.
• El registro base establece la dirección de
memoria física legal más pequeña
• El registro límite contiene el tamaño del
rango
– Ejemplo: si el registro base es de 300040 y el
registro límite es de 120900 entonces el programa
puede acceder legalmente las direcciones entre
300040 y 420940 inclusive.
Protección de la memoria
• La protección se completa
al comparar el CPU cada
dirección generada en
modo usuario con los
registros
• Cualquier intento de un
programa ejecutándose en
modo usuario de acceder
a la memoria de modo
restringido u otra espacio
de memoria de usuario
genera una excepción
para el monitor.
Protección del CPU
• Además de la protección a E/S, memoria, se
debe asegurar que el S.O. siempre mantenga
el control.
• Se debe prevenir que un programa de
usuario se quede “atorado” en un ciclo infinito
y nunca regresar el control al S.O.
• Para lograr lo anterior se utiliza un
temporizador (timer). Un temporizador puede
interrumpir al CPU después de un periodo
determinado
Protección del CPU
• El período puede ser fijo o variable.
• El temporizador variable generalmente se
implementa por un reloj y un contador
• De esta manera a cada programa se le asigna un
tiempo límite para ejecutarse.
• Cuando el programa inicia su ejecución, el contador
empieza a decrementarse cada ciclo de reloj.
• Mientras el contador sea positivo el control es
devuelto al programa de usuario. Cuando se hace
negativo, el S.O. termina el programa por exceder su
tiempo límite asignado.
Temporizadores
• Un uso más común del temporizador es
para implementar el tiempo compartido.
• En el caso más directo, el temporizador
interrumpe cada N milisegundos, donde
N es la ranura de tiempo que cada
usuario puede ejecutar su programa
antes de que el siguiente usuario tome
el control del CPU.
Resumen
• Un sistema operativo debe proporcionar el
ambiente dentro del cual se ejecutan los
programas.
• Según el tipo de objetivos planteados para un
S.O. es el diseño y estructura del mismo.
• No obstante, los S.O. deben contar con
ciertos componentes comunes para ofrecer
sus servicios tanto a usuarios, como a
programadores.
Sistemas Operativos
U1-C7
Estructuras de Sistemas Operativos
Estructura de Sistemas
• Sistemas tan grandes y complejos como los
S.O. deben ser diseñados cuidadosamente
para su correcto funcionamiento y su fácil
modificación
• Encontramos, entre los diseños, las
siguientes estructuras
– Simple
– Capas
– Microkernel
Estructura simple
• Muchos sistemas comerciales no tiene
una estructura muy bien definida
• MS-DOS es un ejemplo. Fue hecho
para proporcionar la mayor
funcionalidad en el menor espacio.
• En consecuencia, no fue dividido en
módulos de manera correcta
Estructura de MS-DOS
Unix
• UNIX en un principio consistía de dos partes
separables: el kernel y los programas del
sistema
• Entonces el kernel proporciona,
administración de archivos, calendarización
de CPU, administración de memoria, etc. por
medio de las llamadas al sistema. Mucha
funcionalidad combinada para un solo nivel!
• Esto hizo a UNIX difícil de mejorar, ya que un
cambio en una sección podía afectar otra.
Estructura inicial del sistema Unix
Estructuras en capas
• La modularización de un sistema se puede hacer de
diferentes maneras, una de ellas es en capas.
• La capa más baja es el hardware y la más alta es la
interfaz de usuario.
• Una capa de un S.O. es la implementación de un
objeto abstracto el cual encapsula datos y
operaciones que manipulan esos datos.
• Típicamente una capa M consiste de estructuras de
datos y rutinas que pueden ser llamadas por las
capas superiores.
• A su vez, la capa M llama operaciones de las capas
inferiores.
Estructura en capas
• La principal ventaja de este esquema es que las
capas son diseñadas para que sólo utilicen funciones
de las capas inferiores.
• Esto permite una verificación y rastreo del sistema
más sencilla.
• Una capa no necesita saber cómo se implementas
las funciones, sino qué hacen las funciones.
• Cada capa esconde la existencia de ciertas
estructuras de datos, operaciones y hardware de las
capas superiores.
Estructura en capas
Problemas de la estructura en capas
• La mayor dificultad en este esquema es el cuidadoso
diseño de lo que deben hacer las capas.
– Por ejemplo: el manejador de espacio de disco utilizado por
los algoritmos de memoria virtual debe estar en un nivel
inferior que las rutinas de administración de la memoria, por
que la administración de la memoria requiere la habilidad de
usar espacio de disco.
• Este esquema tiende a ser menos eficiente que
otros.
– En cada capa es necesaria la modificación de parámetros,
pase de información, etc. Cada capa agrega una
sobrecarga a las llamadas al sistema.
Estructura de OS/2
Microkernels
• Conforme crece un S.O. su kernel se vuelve más
grande y difícil de manejar.
• A mediados de los 80’s investigadores de Carnegie
Mellon University desarrollaron un S.O. llamado
Mach que organiza en módulos el kernel utilizando
un esquema de microkernel.
• Este método reestructura un S.O. removiendo todos
los componentes no esenciales del kernel e
implementándolos en programas a nivel del sistema
o de usuario.
Estructura en Microkernel
• La función principal de un microkernel es
proporcionar una facilidad de comunicación
entre el programa cliente y los diferentes
servicios que también están corriendo en el
espacio de usuario.
• Por ejemplo, si el programa cliente desea
acceder a un archivo, entonces debe
interactuar indirectamente con el servidor de
archivos mediante el pase de mensajes a
través del microkernel.
Beneficios de los microkernel
• Fácil extensión del microkernel
– Nuevos servicios se agregan al espacio del
usuario y no requieren modificar el kernel
• Portabilidad del S.O. a nuevas arquitecturas
• Mayor fiabilidad y seguridad. Dado que la
mayoría de los servicios corren como
procesos de usuario en vez del sistema.
Tarea
• Investigar características de sistemas
operativos Monolíticos y Microkernel.
Dar ejemplos de sistemas operativos
con esta estructura.

Más contenido relacionado

La actualidad más candente (16)

Sistemas Operativos
Sistemas OperativosSistemas Operativos
Sistemas Operativos
 
P1
P1P1
P1
 
So use
So useSo use
So use
 
So use
So useSo use
So use
 
Que son los sistemas operativos
Que son los sistemas operativosQue son los sistemas operativos
Que son los sistemas operativos
 
Colegio fiscal tecnico yaruqui sistemas multiusuarios}
Colegio fiscal tecnico yaruqui sistemas multiusuarios}Colegio fiscal tecnico yaruqui sistemas multiusuarios}
Colegio fiscal tecnico yaruqui sistemas multiusuarios}
 
Sistemas Operativos
Sistemas OperativosSistemas Operativos
Sistemas Operativos
 
Los sistemas operativos
Los sistemas operativosLos sistemas operativos
Los sistemas operativos
 
Presentación andrés
Presentación andrésPresentación andrés
Presentación andrés
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativos
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativos
 
Software
SoftwareSoftware
Software
 
Introduccion a los_so
Introduccion a los_soIntroduccion a los_so
Introduccion a los_so
 
Qué es un sistema operativo
Qué es un sistema operativoQué es un sistema operativo
Qué es un sistema operativo
 
Word excel
Word excelWord excel
Word excel
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativos
 

Similar a So unidad 01

Los sistemas operativos
Los sistemas operativosLos sistemas operativos
Los sistemas operativoswilsoncolcha
 
Los sistemas operativos
Los sistemas operativosLos sistemas operativos
Los sistemas operativoswilsoncolcha
 
Informatica
InformaticaInformatica
Informaticamurillou
 
Presentacion de sistemas operativos P.S.M Extencion maracay saia
Presentacion de sistemas operativos P.S.M Extencion maracay saiaPresentacion de sistemas operativos P.S.M Extencion maracay saia
Presentacion de sistemas operativos P.S.M Extencion maracay saiaedwinjR
 
Presentacion sistemas operativos
Presentacion sistemas operativosPresentacion sistemas operativos
Presentacion sistemas operativosPedro_Pizarro
 
2 tipos de sistemas operativos y funcionamiento del sistema operativo
2 tipos de sistemas operativos y funcionamiento del sistema operativo2 tipos de sistemas operativos y funcionamiento del sistema operativo
2 tipos de sistemas operativos y funcionamiento del sistema operativoIsaacVk
 
Sistemas operativos software
Sistemas operativos softwareSistemas operativos software
Sistemas operativos softwareJohan Guerra
 
Introducción a los Sistemas Operativos.pptx
Introducción a los Sistemas Operativos.pptxIntroducción a los Sistemas Operativos.pptx
Introducción a los Sistemas Operativos.pptxJAIMEALBERTOGALLEGOT
 
Trabajo de Sistemas Operativos
Trabajo de Sistemas OperativosTrabajo de Sistemas Operativos
Trabajo de Sistemas OperativosLilianaTimaure79
 
Actividad 2 - Unidad I - SO.pptx
Actividad 2 - Unidad I - SO.pptxActividad 2 - Unidad I - SO.pptx
Actividad 2 - Unidad I - SO.pptxNicolsGaleana
 
Clasificacion de los Sistemas operativos
Clasificacion de los Sistemas operativosClasificacion de los Sistemas operativos
Clasificacion de los Sistemas operativosAnDres Guzman
 
Sistemas Operativos 3 E1
Sistemas Operativos 3 E1Sistemas Operativos 3 E1
Sistemas Operativos 3 E1Daniel
 
Sistemas Operativos 3 E1
Sistemas Operativos 3 E1Sistemas Operativos 3 E1
Sistemas Operativos 3 E1Daniel
 
Vision general de los sistemas operativos
Vision general de los sistemas operativosVision general de los sistemas operativos
Vision general de los sistemas operativossuperone314
 

Similar a So unidad 01 (20)

Sistemas operativos 2
Sistemas operativos 2Sistemas operativos 2
Sistemas operativos 2
 
Sistema operativos
Sistema operativos Sistema operativos
Sistema operativos
 
Los sistemas operativos
Los sistemas operativosLos sistemas operativos
Los sistemas operativos
 
Los sistemas operativos
Los sistemas operativosLos sistemas operativos
Los sistemas operativos
 
INTRODUCCION A SISTEMAS OPERATIVOS
INTRODUCCION A SISTEMAS OPERATIVOSINTRODUCCION A SISTEMAS OPERATIVOS
INTRODUCCION A SISTEMAS OPERATIVOS
 
Informatica
InformaticaInformatica
Informatica
 
Presentacion de sistemas operativos P.S.M Extencion maracay saia
Presentacion de sistemas operativos P.S.M Extencion maracay saiaPresentacion de sistemas operativos P.S.M Extencion maracay saia
Presentacion de sistemas operativos P.S.M Extencion maracay saia
 
Presentacion sistemas operativos
Presentacion sistemas operativosPresentacion sistemas operativos
Presentacion sistemas operativos
 
2 tipos de sistemas operativos y funcionamiento del sistema operativo
2 tipos de sistemas operativos y funcionamiento del sistema operativo2 tipos de sistemas operativos y funcionamiento del sistema operativo
2 tipos de sistemas operativos y funcionamiento del sistema operativo
 
Sistemas operativos software
Sistemas operativos softwareSistemas operativos software
Sistemas operativos software
 
Introducción a los Sistemas Operativos.pptx
Introducción a los Sistemas Operativos.pptxIntroducción a los Sistemas Operativos.pptx
Introducción a los Sistemas Operativos.pptx
 
Trabajo de Sistemas Operativos
Trabajo de Sistemas OperativosTrabajo de Sistemas Operativos
Trabajo de Sistemas Operativos
 
Actividad 2 - Unidad I - SO.pptx
Actividad 2 - Unidad I - SO.pptxActividad 2 - Unidad I - SO.pptx
Actividad 2 - Unidad I - SO.pptx
 
Que es un sistema operativo
Que es un sistema operativoQue es un sistema operativo
Que es un sistema operativo
 
Clasificacion de los Sistemas operativos
Clasificacion de los Sistemas operativosClasificacion de los Sistemas operativos
Clasificacion de los Sistemas operativos
 
Sistemas Operativos 3 E1
Sistemas Operativos 3 E1Sistemas Operativos 3 E1
Sistemas Operativos 3 E1
 
Sistemas Operativos 3 E1
Sistemas Operativos 3 E1Sistemas Operativos 3 E1
Sistemas Operativos 3 E1
 
Sistema operativo daniela
Sistema operativo danielaSistema operativo daniela
Sistema operativo daniela
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativos
 
Vision general de los sistemas operativos
Vision general de los sistemas operativosVision general de los sistemas operativos
Vision general de los sistemas operativos
 

Último

9-Sociales-Colombia siglo XX.pdf sociales
9-Sociales-Colombia siglo XX.pdf sociales9-Sociales-Colombia siglo XX.pdf sociales
9-Sociales-Colombia siglo XX.pdf socialesJhonathanRodriguez10
 
PERFIL SECRETARIAL - SECRETARIADO EJECUTIVO
PERFIL SECRETARIAL - SECRETARIADO EJECUTIVOPERFIL SECRETARIAL - SECRETARIADO EJECUTIVO
PERFIL SECRETARIAL - SECRETARIADO EJECUTIVOAdrianaBernal82
 
TALLER SOBRE METODOLOGÍAS DE DESARROLLO DE SOFTWARE..pdf
TALLER SOBRE METODOLOGÍAS DE DESARROLLO DE SOFTWARE..pdfTALLER SOBRE METODOLOGÍAS DE DESARROLLO DE SOFTWARE..pdf
TALLER SOBRE METODOLOGÍAS DE DESARROLLO DE SOFTWARE..pdfMiguelGomez900779
 
Presentación Materiales para la Construcción.ppt
Presentación Materiales para la Construcción.pptPresentación Materiales para la Construcción.ppt
Presentación Materiales para la Construcción.pptCARLOSAXELVENTURAVID
 
linea de tiempo television y su avance en los años
linea de tiempo television y su avance en los añoslinea de tiempo television y su avance en los años
linea de tiempo television y su avance en los añosMaraPazCrdenas
 
644400074-LA-CONSOLIDACION-DE-LA-REPUBLICA-OLIGARQUICA-pdf.pptx
644400074-LA-CONSOLIDACION-DE-LA-REPUBLICA-OLIGARQUICA-pdf.pptx644400074-LA-CONSOLIDACION-DE-LA-REPUBLICA-OLIGARQUICA-pdf.pptx
644400074-LA-CONSOLIDACION-DE-LA-REPUBLICA-OLIGARQUICA-pdf.pptxRosiClaros
 
Home Assistant - Un Hub para controlarlos a todos
Home Assistant - Un Hub para controlarlos a todosHome Assistant - Un Hub para controlarlos a todos
Home Assistant - Un Hub para controlarlos a todosDebora Gomez Bertoli
 
PLANIFICACION ANUAL , año 2024. nivel primaria
PLANIFICACION ANUAL , año 2024. nivel primariaPLANIFICACION ANUAL , año 2024. nivel primaria
PLANIFICACION ANUAL , año 2024. nivel primariajosevilla696981
 

Último (8)

9-Sociales-Colombia siglo XX.pdf sociales
9-Sociales-Colombia siglo XX.pdf sociales9-Sociales-Colombia siglo XX.pdf sociales
9-Sociales-Colombia siglo XX.pdf sociales
 
PERFIL SECRETARIAL - SECRETARIADO EJECUTIVO
PERFIL SECRETARIAL - SECRETARIADO EJECUTIVOPERFIL SECRETARIAL - SECRETARIADO EJECUTIVO
PERFIL SECRETARIAL - SECRETARIADO EJECUTIVO
 
TALLER SOBRE METODOLOGÍAS DE DESARROLLO DE SOFTWARE..pdf
TALLER SOBRE METODOLOGÍAS DE DESARROLLO DE SOFTWARE..pdfTALLER SOBRE METODOLOGÍAS DE DESARROLLO DE SOFTWARE..pdf
TALLER SOBRE METODOLOGÍAS DE DESARROLLO DE SOFTWARE..pdf
 
Presentación Materiales para la Construcción.ppt
Presentación Materiales para la Construcción.pptPresentación Materiales para la Construcción.ppt
Presentación Materiales para la Construcción.ppt
 
linea de tiempo television y su avance en los años
linea de tiempo television y su avance en los añoslinea de tiempo television y su avance en los años
linea de tiempo television y su avance en los años
 
644400074-LA-CONSOLIDACION-DE-LA-REPUBLICA-OLIGARQUICA-pdf.pptx
644400074-LA-CONSOLIDACION-DE-LA-REPUBLICA-OLIGARQUICA-pdf.pptx644400074-LA-CONSOLIDACION-DE-LA-REPUBLICA-OLIGARQUICA-pdf.pptx
644400074-LA-CONSOLIDACION-DE-LA-REPUBLICA-OLIGARQUICA-pdf.pptx
 
Home Assistant - Un Hub para controlarlos a todos
Home Assistant - Un Hub para controlarlos a todosHome Assistant - Un Hub para controlarlos a todos
Home Assistant - Un Hub para controlarlos a todos
 
PLANIFICACION ANUAL , año 2024. nivel primaria
PLANIFICACION ANUAL , año 2024. nivel primariaPLANIFICACION ANUAL , año 2024. nivel primaria
PLANIFICACION ANUAL , año 2024. nivel primaria
 

So unidad 01

  • 2. Objetivo del Curso • El alumno comprenderá el funcionamiento interno de los sistemas operativos, y analizará las técnicas empleadas para la administración de los recursos: procesador, memoria, dispositivos de E/S y el sistema de archivos, de una computadora.
  • 3. Temario • Terminología y Conceptos básicos de los sistemas operativos • Administración del procesador • Administración de la memoria • Administración de los dispositivos de entrada y salida • Administración de los sistemas de archivos
  • 4. Referencias básicas • Silberchatz. Operating System Concepts. Wiley. Sexta Edición. • Tanenbaum, Andrew. Operating systems, Design and Implementation. Prentice Hall. 1997 • Tanenbaum, Andrew. Sistemas Operativos, Diseño e Implementación. Prentice Hall Software Series. • Milenkovic, Milan. Sistemas Operativos. Conceptos y diseño. McGraw Hill. • Tanenbaum, Andrew. Sistemas operativos Modernos. Prentice Hall Hispanoamericana, 1993.
  • 6. ¿Qué es un sistema operativo? • Un programa que actúa como intermediario entre el usuario y el hardware de la computadora. • Objetivos del Sistema Operativo: – Proveer un ambiente en donde el usuario pueda ejecutar programas y solucione sus problemas de manera más fácil. – Permitir el uso cómodo de la Computadora. – Utilizar el hardware de la computadora de una manera eficiente.
  • 7. Componentes de una Computadora 1. Hardware. Proporciona los recursos básicos de una computadora (CPU, memoria, dispositivos E/S). 2. Sistema Operativo. Controla y coordina el uso del hardware entre diferentes aplicaciones para diferentes usuarios. 3. Programa de Aplicación. Define la forma en que los recursos del sistema son utilizados para resolver los problemas computacionales del usuario (compiladores, sistemas de bases de datos, video juegos, etc). 4. Usuarios (personas, otras computadoras).
  • 8. Vista de un sistema computacional
  • 9. Perspectiva del usuario (1) • PC. – Los recursos sólo son utilizados por un usuario. – S.O. diseñado con “facilidad de uso”. – Cierta atención al funcionamiento, casi nula para la utilización de los recursos. • Mainframes. – Recursos compartidos, intercambio de información. – S.O. diseñado para “maximizar la utilización de los recursos”. – Asegura que los tiempos disponibles de CPU, memoria, E/S son utilizados eficientemente
  • 10. Perspectiva del usuario (2) • Estaciones de trabajo. – Computadoras conectadas con servidores. Sus usuarios cuentan con recursos dedicados a ellos pero también los comparten – S.O. diseñados con compromisos entre la usabilidad y la utilización de recursos • Handheld. – Sistemas personales con limitaciones de poder e interface – S.O. diseñados para el uso individual.
  • 11. Perspectiva del sistema • Asignador de recursos. – Administra y organiza los recursos. • Programa de control. – Control de los dispositivos de E/S y programas de usuario para prevenir errores y el mal uso de la computadora. • Kernel.
  • 12. Evolución de los sistemas operativos • Sistemas Mainframe – Las supercomputadoras fueron las primeras usadas para resolver problemas comerciales o científicos. De estas computadoras parte la evolución de los S.O. • Sistemas de procesamiento por Lotes (Batch) – El usuario no interactuaba directamente con la computadora. – En cambio, el usuario preparaba un trabajo y lo introducía a la computadora (tarjetas perforadas). Después se obtenía un resultado impreso generalmente en papel.
  • 13. Sistemas de procesamiento por Lotes (Batch) • Para acelerar el procesamiento se desarrolló el sistema de procesamiento por lotes – La idea era colectar un grupo de trabajos (batch) y luego introducir el lote completo a la computadora • Los sistemas operativos en esta época eran muy simples y el trabajo principal del S.O. era transferir el control de manera automática de un trabajo a otro. • Al terminar con todo el lote, un operador retiraba las cintas de entrada y salida, introducía la nueva cinta con el Lote e imprimía la cinta de salida.
  • 15. Organización de la memoria en un sistema de procesamiento por lotes
  • 16. Sistemas de Multiprogramación • Con la mejoría de la tecnología y la introducción de los discos se tuvieron dispositivos más rápidos de E/S. – Permitió a los sistemas operativos almacenar los trabajos en dichos discos en lugar de cintas o tarjetas perforadas • Esto permitió a los S.O. acceder directamente a varios trabajos por lo que se incluyeron algoritmos de calendarización de los trabajos, con el propósito de realizar las tareas y usar los recursos eficientemente.
  • 17. Sistemas de Multiprogramación • Uno de los aspectos más importantes de la multiprogramación es la calendarización de trabajos. • La multiprogramación incrementa la utilización del CPU mediante la organización de los trabajos de tal forma que siempre hay un proceso para ejecutar. • La idea es partir la memoria en varias partes, con un trabajo distinto en cada partición – Mientras que un programa esperaba a que terminara la operación de E/S, otro podría utilizar la CPU
  • 18. Sistemas de Multiprogramación • No obstante, el número de particiones que se podían hacer en memoria era muy inferior a la cantidad de trabajos que se podían almacenar en los discos. • Entonces otra característica de esta generación de S.O. fue la utilización de SPOOLING (Simultaneous Peripheral Operational On Line), que consistía en poder cargar del disco un nuevo trabajo cuando concluía otro. • La multiprogramación es de las primeras instancias en donde el S.O. tiene que tomar una decisión por el usuario.
  • 19. Sistemas de Multiprogramación • Si varios procesos están listos para ser cargados a la memoria y no hay suficiente memoria, el S.O. debe escoger entre ellos. (calendarización de procesos) • Si se tienen varios procesos en memoria entonces es necesaria una Administración de la memoria • Si varios procesos están listos para ejecutarse al mismo tiempo, es necesaria entonces una Calendarización del CPU
  • 21. Sistemas de multiprogramación • Qué pasa cuando tenemos un proceso que por mucho tiempo no necesita realizar operaciones de entrada/salida • Conforme el uso de la computadora evolucionó a un modo mucho más interactivo la multiprogramación por sí sola ya no satisfacía
  • 22. Multitarea cooperativa • Procesos o tareas que ceden voluntariamente tiempo a otros procesos • Qué pasaba si un proceso que tenía la CPU se “colgaba” – Colapso del sistema
  • 23. Sistemas de tiempo compartido • Los sistemas de tiempo compartido o Multitarea son una extensión lógica de la multiprogramación. • La CPU ejecuta múltiples trabajos intercambiando entre uno y otro, pero el intercambio es tan frecuente que el usuario puede interactuar con cada programa mientras se ejecuta. – El tiempo compartido es otorgado por el hardware y el S.O. • Por lo tanto, un S.O. multitareas permite a muchos usuarios compartir la computadora simultáneamente.
  • 24. Tiempo compartido • En un sistema de tiempo compartido cada acción y comando sólo necesita tiempos cortos de CPU para cada usuario. • De esta forma, mientras el sistema cambia rápidamente de un usuario a otro, da la impresión que todo el sistema está dedicado para su uso. • “Reparto equitativo” de los recursos
  • 25. Tiempo Compartido • Un SO de tiempo compartido debe utilizar calendarización del CPU y multiprogramación para proporcionarle a cada usuario una pequeña porción del tiempo del sistema. • Al programa cargado en la memoria y que se está ejecutando se le llama Proceso. • Los procesos pueden necesitar operaciones de E/S, en ese lapso el SO le asigna el procesador a algún otro usuario.
  • 26. Tiempo compartido • Los SO de tiempo compartido necesitan administración y protección de la memoria. • Para mantener tiempos de respuesta razonables, los procesos pueden ser cargados y descargados (swap) de la memoria principal hacia el disco, el cual sirve como un almacén temporal para la memoria.
  • 27. Tiempo compartido • Memoria Virtual – Es una técnica común para lograr el “swap”. – Permite la ejecución de un proceso que no puede ser completado en la memoria. • La principal ventaja de la memoria virtual es que los programas pueden ser más grandes que la memoria física. • Memoria virtual abstrae la memoria principal en un gran arreglo uniforme de almacenamiento, separando la memoria lógica vista por el usuario de la memoria física.
  • 28. Tiempo compartido • Los sistemas de TC deben proporcionar un sistema de archivos. – Necesario una administración de archivos • También, proporcionan un mecanismo para la ejecución concurrente, lo que requiere de esquemas complejos de calendarización del CPU • Para asegurar la ejecución ordenada, el sistema debe proporcionar mecanismos para la sincronización y comunicación de procesos.
  • 29. Sistemas Operativos U1-C3 Licenciatura en Ciencias de la Computación
  • 30. Repaso • ¿Qué es un S.O.? • Perspectivas del usuario – Mainframe, PC, estaciones de trabajo, handheld • Evolución de los sistemas operativos – Mainframe • Procesamiento por lotes • Multiprogramación • Tiempo compartido
  • 31. Sistemas de Escritorio • Las PC aparecieron en 1970. Al principio los S.O. de estos sistemas no fueron ni multiusuarios ni multitareas. • Los principales objetivos de estos sistemas es maximizar la conveniencia y tiempo respuesta. • Pueden adoptar tecnología desarrollada para S.O. “grandes” (mainframes) • Dado que el usuario no tiene que compartir el CPU, su máxima utilización ya no es una preocupación primaria
  • 32. Sistemas Multiprocesadores • La mayoría de los sistemas actuales son de un solo procesador. • Sin embargo los sistemas que tienen más de un procesador (sistemas paralelos o multiprocesadores) cada día crecen más en importancia. • Principales Ventajas – Incremento del rendimiento – ¿Economía en escalabilidad? – Confiabilidad, tolerancia a fallas
  • 33. Sistemas Multiprocesadores • Multiprocesamiento simétrico (SMP) – Cada procesador ejecuta una copia idéntica del sistema operativo. – Muchos procesos pueden correr al mismo tiempo (tantos procesos como procesadores) afectando poco el desempeño. – Este tipo de sistemas permite compartir dinámicamente los procesos y recursos entre varios procesadores. – La mayoría de los sistemas modernos soportan SMP
  • 34. Sistemas Multiprocesadores • Multiprocesamiento asimétrico – Cada procesador tiene asignada una tarea – Un procesador maestro controla el sistema • Calendariza y asigna procesos a cada procesador esclavo. – Común en sistemas extremadamente grandes
  • 35. Sistemas Distribuidos • Los sistemas distribuidos están basado en las redes de computadoras y su funcionalidad depende del trabajo en redes. • Cada procesador tiene su propia memoria local. • Los procesadores se comunican entre ellos utilizando las redes de comunicaciones. • Existen sistemas cliente-servidor o “peer to peer” • Sistema operativo de red, proporciona características de trabajo en red, incluye esquemas de comunicación que permite a diferentes procesos en diferentes computadoras intercambiar mensajes.
  • 36. Sistemas en grupos (Cluster) • Al igual que en lo sistemas paralelos, los clusters de computadoras agrupan múltiples CPU’s para realizar un trabajo computacional. • Una capa de software se ejecuta en cada nodo del cluster. De esta manera, cada nodo puede monitorear uno o más de los otros nodos. • Dos tipo de clustering – Asimétrico (Un monitor para el servidor activo) – Simétrico (Todos se monitorean entre ellos)
  • 37. • Tarea 1 – Características de los sistemas operativos durante la evolución histórica • Tarea 2 – Características de los sistemas operativos de tiempo real
  • 38. Sistemas Portátiles • Asistentes personales digitales (PDAs) • Teléfonos celulares • Caracterísiticas – Memoria limitada. – Procesadores lentos. – Pantallas pequeñas.
  • 41. Repaso • Sistemas de escritorio • Multiprocesadores – Simétrico y asimétrico • Sistemas distribuidos • Sistemas en cluster • Sistemas portátiles
  • 42. Estructura de los sistemas de computadora • Necesitamos tener una idea general de la estructura de un sistema computacional antes de poder explorar los detalles de su funcionamiento. • Un computadora moderna de propósito general consiste de un CPU y un número controladores de dispositivos que están conectados mediante un bus común el cual proporciona acceso a la memoria compartida. • Cada controlador de dispositivo está a cargo de un dispositivo en particular.
  • 43. Un sistema de computadora moderno
  • 44. Operación del sistema • Cuando una computadora se inicia, necesita un programa inicial para continuar. – Programa de arranque (Bootstrap), generalmente almacenado en una ROM, como “firmware” o “eeprom” – Inicializa todo el sistema – El programa de arranque debe saber cómo cargar el sistema operativo y ejecutarlo. • Debe asignar y cargar en la memoria el kernel • La ocurrencia de un evento es normalmente marcada por una interrupción ya sea del hardware o del software
  • 45. Interrupciones • El hardware dispara (trigger) una interrupción enviando una señal al procesador por medio del bus del sistema. • El software dispara una interrupción ejecutando un programa especial, “llamada al sistema”. • Los sistemas operativos modernos se rigen mediante interrupciones. • Los eventos, por lo general son marcados por la ocurrencia de una interrupción o “trap” (excepción)
  • 46. Interrupciones • Cuando el CPU recibe una interrupción, se detiene de lo que hace y transfiere su ejecución a otro lugar. • Cada interrupción cuenta con una “rutina de servicio de interrupción” quien es responsable de manejar a dicha interrupción. • Para el manejo de las interrupciones se usa una tabla de apuntadores a las rutinas de interrupciones. Esta tabla (Vector de Interrupciones) refiere a la rutina de interrupción correspondiente a una interrupción. • El Vector de Interrupciones se almacena en la memoria baja y almacena las direcciones de las rutinas de servicio.
  • 47. Estructura de E/S • Controladores de dispositivos. Cada controlador tiene a su cargo un tipo de dispositivo. • Síncrono. Una vez que una operación de E/S es inicializada, el control regresa al usuario hasta que se completa la operación de E/S. – Existe un instrucción especial de espera (wait) que paraliza al CPU hasta la siguiente interrupción – Computadora que no cuentan con la instrucción “Wait” tienen un ciclo “wait”. – A lo más una petición de E/S es atendida a la vez, impidiendo el procesamiento simultáneo de E/S.
  • 48. Estructura de E/S • Asíncrono. Una vez que una operación de E/S es inicializada, el control regresa al usuario sin esperar que se complete la operación de E/S. – Llamada al sistema. Se efectúa para permitir al programa del usuario esperar por la finalización de la operación de E/S, si así se desea. – Si no es necesario ejecutar algún programa o el sistema operativo no tiene trabajo por hacer entonces se utiliza la instrucción wait. – Para manipular varias operaciones E/S, el S.O. utiliza una “Tabla de Estado de Dispositivo”. Cada registro de esta tabla indica el tipo de dispositivo, dirección y estado.
  • 50. Estructura de E/S • Un dispositivo E/S produce una interrupción cuando necesita un servicio. • Cuando la interrupción ocurre, el S.O. determina primero cuál dispositivo de E/S causó la interrupción. • Entonces enlista la tabla de estado de dispositivos para saber el estado del dispositivo • Modifica la tabla para reflejar la ocurrencia de la interrupción
  • 51. Tabla de Estado de Dispositivo
  • 52. Estructura DMA • Así como existen dispositivos de E/S que envían información de manera muy lenta, permitiendo que la CPU pueda ejecutar otras operaciones, existen dispositivos de E/S de alta velocidad • Estos dispositivos transmiten información a una velocidad cercana a la velocidad de la memoria. Esto deja poco tiempo al procesador para ejecutar otras operaciones. • Para resolver este problema se utiliza DMA (Direct Access Memory).
  • 54. Repaso • Estructura de los sistemas de cómputo • Entrada/salida – Interrupciones – Síncrono/asíncrono – Tabla de estado de dispositivo – DMA
  • 55. Estructura de Almacenamiento • Para ser ejecutados, los programas deben estar en la memoria principal o RAM. • La RAM es la única memoria que el procesador puede acceder directamente. • La interacción se logra mediante la secuencia de instrucciones “load” y “store”. – La instrucción load mueve una palabra de la memoria RAM hacia un registro interno del CPU, mientas que store mueve el contenido de un registro hacia la memoria RAM.
  • 56. Memoria volátil y almacenamiento secundario • Idealmente se quiere que los programas y datos residan en la memoria RAM permanentemente, pero – La memoria RAM es usualmente muy pequeña para almacenar todos los programas y datos necesarios permanentemente. – La memoria principal es un almacén volátil que pierde su contenido cuando se apaga la fuente de poder. • Es por esto que casi todos los sistemas deben proveer un almacén secundario como una extensión de la memoria principal.
  • 57. Estructura de almacenamiento • El dispositivo secundario de almacenamiento más común es el disco magnético. • La mayoría de los programas son almacenados en disco hasta que se cargan a la memoria principal. • Sin embargo, la memoria RAM, los discos magnéticos, los registros son algunas de las muchas formas posibles de almacenamiento – Memoria caché, CD-ROM, cintas magnéticas, etc
  • 58. Memoria principal • Como ya hemos mencionado, el CPU solo puede acceder directamente a la memoria RAM y sus registros internos. • En el caso de los dispositivos de E/S, sus controladores contienen registros que almacenan comandos o datos a transferir entre la memoria y esos registros. • Para permitir un acceso más conveniente a los dispositivos de E/S muchas arquitecturas proporcionan correspondencia de memoria de E/S (memory-mapped I/O).
  • 59. Memory-mapped • Se establecen rangos de direcciones de memoria y se crea un correspondencia entre éstos y los registros de los dispositivos. • Leer y escribir de estos rangos de memoria implica que la información sea transferida desde o hacia los registros. • La correspondencia de memoria es muy utilizada para dispositivos como los puertos paralelos y seriales. Los registros de estos dispositivos son llamados puertos de E/S
  • 60. Programmed I/O (PIO) • Entonces cuando el CPU escribe información en el registro activa un bit para indicar que esa información puede ser transferida. • El dispositivo toma la información y cambia el bit del registro para indicar que está listo para la siguiente transferencia. • Si el CPU “encuesta” para saber el estado del bit de control se le llama Programmed I/O (PIO) • Si el CPU no utiliza la encuesta para saber del bit de control, sino en cambio recibe una interrupción cuando el dispositivo está listo para la siguiente transferencia, entonces la transferencia es guiada por interrupción
  • 61. Discos Magnéticos • Rotan entre 60 y 200 veces por segundo • Tasa de transferencia. Velocidad con la que transfiere información. • Tiempo de posicionamiento (tiempo de acceso aleatorio). Tiempo que le toma mover el brazo hacia el cilindro deseado. • Latencia de rotación. Tiempo en que el sector llega a la cabeza de lecto-escritura.
  • 62. Jerarquía de almacenamiento • De acuerdo a la rapidez y el costo. • Los niveles altos son muy caros pero muy rápidos. • Los sistemas arriba de los discos electrónicos son volátiles y los que están por debajo son No- volátiles.
  • 64. Repaso • Estructura de los sistemas de cómputo • Entrada/salida – Interrupciones – Síncrono/asíncrono – Tabla de estado de dispositivo – DMA • Almacenamiento – Memoria volátil y secundaria – correspondencia de memoria de E/S – Programmed I/O – Discos – Jerarquía de almacenamiento
  • 65. Memoria caché • No obstante la rapidez de la memoria principal, el acceso a su información puede tomar varios ciclos del CPU • El remedio para esto es agregar más memoria entre el CPU y la memoria principal. A esta memoria se le llama memoria caché. • Cuando el CPU necesita información lo que hace es examinar si se encuentra en la caché. Si se encuentra la utiliza. Sino toma la información de la memoria principal y pone una copia en la caché. • El principal uso de la memoria caché es almacenar datos que han sido utilizados recientemente y que próximamente se usarán de nuevo.
  • 66. Caché • Dado que la memoria caché tiene un limite de tamaño, es importante tener una buena administración de la caché • Generalmente, la transferencia de información entre caché, CPU y los registros es una función de hardware sin la intervención del S.O. • Por otro lado la transferencia entre disco y memoria principal es controlada por el S.O.
  • 67. Coherencia de caché • Suponga que quiere incrementar el valor de A y A se encuentra en un archivo en disco. • Se realizan varias copias de A hasta que finalmente se copia en un registro de CPU para su incremento. • Una vez que se ha incrementado el valor de A existen diferentes copias con valores diferentes de A. • Imagine qué pasa en un sistema multitarea si varios procesos quieren obtener el valor reciente de A. • Imagine qué pasa en un sistema de multiprocesadores donde cada procesador tiene su propia memoria caché. • Asegurar que el último cambio de A en una caché sea inmediatamente reflejado en todas las demás se le llama Cache Coherency.
  • 68. Protección de Hardware • Operación de modo dual – Para asegurar un buena operación, el SO y los programas del usuario deben estar protegidos de cualquier error o malfuncionamiento – Para recursos compartidos es necesaria la protección de los mismos. – Los SO proporcionan soporte especial al Hardware que le permite distinguir entre modos de ejecución
  • 69. Modos de ejecución • Al menos se necesitan dos modos de operación: modo usuario y modo monitor (protegido) • Un bit, llamado bit de modo, se agrega al hardware de la computadora para indicar el modo actual: monitor (0) o usuario (1). • Con el bit de modo, se puede distinguir entre una tarea ejecutada para el usuario y una ejecutada para el S.O.
  • 70. Modos de operación • Cuando una computadora inicia, el hardware se pone en modo protegido, entonces el sistema operativo se carga y empieza los procesos del usuario en modo usuario. • Cuando una interrupción o llamada al sistema ocurre, el hardware cambia de modo usuario o modo protegido. Entonces, cuando el SO toma el control de la computadora lo hace en modo protegido. • El sistema siempre cambia al modo usuario antes de pasar el control a los programas del usuario.
  • 71. Instrucciones protegidas • La operación dual, nos permite proteger al SO de usuarios “errantes” y entre ellos. • Dicha protección se logra designando a algunas instrucciones de máquina que podrían causar daño, como instrucciones “privilegiadas”. • El hardware permite la ejecución de las instrucciones privilegiadas solamente en modo protegido.
  • 72. Protección E/S • Un programa de usuario puede terminar abruptamente al realizar alguna operación ilegal de E/S. • Para prevenir al usuario de incurrir en operaciones ilegales de E/S, se definen todas éstas como instrucciones protegidas • Por lo tanto, el usuario no puede manipular instrucciones E/S directamente sino a través del sistema operativo.
  • 73. Protección de la memoria • Otro aspecto que se debe proporcionar para asegurar la correcta operación de un S.O. es la protección de la memoria. • Esta protección al menos se debe hacer para el vector de interrupciones y las rutinas del servicio de interrupciones. • Para separar cada espacio de memoria para los programas, se debe poder determinar los rangos de direcciones legales que los programas debe acceder.
  • 74. Registro base y límite • Esta protección se establece manejando dos registros, usualmente llamados registro base y registro límite. • El registro base establece la dirección de memoria física legal más pequeña • El registro límite contiene el tamaño del rango – Ejemplo: si el registro base es de 300040 y el registro límite es de 120900 entonces el programa puede acceder legalmente las direcciones entre 300040 y 420940 inclusive.
  • 75. Protección de la memoria • La protección se completa al comparar el CPU cada dirección generada en modo usuario con los registros • Cualquier intento de un programa ejecutándose en modo usuario de acceder a la memoria de modo restringido u otra espacio de memoria de usuario genera una excepción para el monitor.
  • 76. Protección del CPU • Además de la protección a E/S, memoria, se debe asegurar que el S.O. siempre mantenga el control. • Se debe prevenir que un programa de usuario se quede “atorado” en un ciclo infinito y nunca regresar el control al S.O. • Para lograr lo anterior se utiliza un temporizador (timer). Un temporizador puede interrumpir al CPU después de un periodo determinado
  • 77. Protección del CPU • El período puede ser fijo o variable. • El temporizador variable generalmente se implementa por un reloj y un contador • De esta manera a cada programa se le asigna un tiempo límite para ejecutarse. • Cuando el programa inicia su ejecución, el contador empieza a decrementarse cada ciclo de reloj. • Mientras el contador sea positivo el control es devuelto al programa de usuario. Cuando se hace negativo, el S.O. termina el programa por exceder su tiempo límite asignado.
  • 78. Temporizadores • Un uso más común del temporizador es para implementar el tiempo compartido. • En el caso más directo, el temporizador interrumpe cada N milisegundos, donde N es la ranura de tiempo que cada usuario puede ejecutar su programa antes de que el siguiente usuario tome el control del CPU.
  • 79. Resumen • Un sistema operativo debe proporcionar el ambiente dentro del cual se ejecutan los programas. • Según el tipo de objetivos planteados para un S.O. es el diseño y estructura del mismo. • No obstante, los S.O. deben contar con ciertos componentes comunes para ofrecer sus servicios tanto a usuarios, como a programadores.
  • 82. Estructura de Sistemas • Sistemas tan grandes y complejos como los S.O. deben ser diseñados cuidadosamente para su correcto funcionamiento y su fácil modificación • Encontramos, entre los diseños, las siguientes estructuras – Simple – Capas – Microkernel
  • 83. Estructura simple • Muchos sistemas comerciales no tiene una estructura muy bien definida • MS-DOS es un ejemplo. Fue hecho para proporcionar la mayor funcionalidad en el menor espacio. • En consecuencia, no fue dividido en módulos de manera correcta
  • 85. Unix • UNIX en un principio consistía de dos partes separables: el kernel y los programas del sistema • Entonces el kernel proporciona, administración de archivos, calendarización de CPU, administración de memoria, etc. por medio de las llamadas al sistema. Mucha funcionalidad combinada para un solo nivel! • Esto hizo a UNIX difícil de mejorar, ya que un cambio en una sección podía afectar otra.
  • 86. Estructura inicial del sistema Unix
  • 87. Estructuras en capas • La modularización de un sistema se puede hacer de diferentes maneras, una de ellas es en capas. • La capa más baja es el hardware y la más alta es la interfaz de usuario. • Una capa de un S.O. es la implementación de un objeto abstracto el cual encapsula datos y operaciones que manipulan esos datos. • Típicamente una capa M consiste de estructuras de datos y rutinas que pueden ser llamadas por las capas superiores. • A su vez, la capa M llama operaciones de las capas inferiores.
  • 88. Estructura en capas • La principal ventaja de este esquema es que las capas son diseñadas para que sólo utilicen funciones de las capas inferiores. • Esto permite una verificación y rastreo del sistema más sencilla. • Una capa no necesita saber cómo se implementas las funciones, sino qué hacen las funciones. • Cada capa esconde la existencia de ciertas estructuras de datos, operaciones y hardware de las capas superiores.
  • 90. Problemas de la estructura en capas • La mayor dificultad en este esquema es el cuidadoso diseño de lo que deben hacer las capas. – Por ejemplo: el manejador de espacio de disco utilizado por los algoritmos de memoria virtual debe estar en un nivel inferior que las rutinas de administración de la memoria, por que la administración de la memoria requiere la habilidad de usar espacio de disco. • Este esquema tiende a ser menos eficiente que otros. – En cada capa es necesaria la modificación de parámetros, pase de información, etc. Cada capa agrega una sobrecarga a las llamadas al sistema.
  • 92. Microkernels • Conforme crece un S.O. su kernel se vuelve más grande y difícil de manejar. • A mediados de los 80’s investigadores de Carnegie Mellon University desarrollaron un S.O. llamado Mach que organiza en módulos el kernel utilizando un esquema de microkernel. • Este método reestructura un S.O. removiendo todos los componentes no esenciales del kernel e implementándolos en programas a nivel del sistema o de usuario.
  • 93. Estructura en Microkernel • La función principal de un microkernel es proporcionar una facilidad de comunicación entre el programa cliente y los diferentes servicios que también están corriendo en el espacio de usuario. • Por ejemplo, si el programa cliente desea acceder a un archivo, entonces debe interactuar indirectamente con el servidor de archivos mediante el pase de mensajes a través del microkernel.
  • 94. Beneficios de los microkernel • Fácil extensión del microkernel – Nuevos servicios se agregan al espacio del usuario y no requieren modificar el kernel • Portabilidad del S.O. a nuevas arquitecturas • Mayor fiabilidad y seguridad. Dado que la mayoría de los servicios corren como procesos de usuario en vez del sistema.
  • 95. Tarea • Investigar características de sistemas operativos Monolíticos y Microkernel. Dar ejemplos de sistemas operativos con esta estructura.