Title: Sistemas operativos
1Sistemas operativos
- Unidad I
- MSI. Ever Alcudia Fuentes
2Qué es un Sistema Operativo
- Un S. O. es un grupo de programas de proceso con
las rutinas de control necesarias para mantener
continuamente operativos dichos programas.
Tanenbaum - Programa que controla la ejecución de los
programas de aplicación y que actúa como interfaz
entre el usuario de la computadora y el hardware
del mismo. Stallings - Todo aquello que te entrega el vendedor cuando le
pides un Sistema Operativo. Silberschatz. El
único programa que se está ejecutando en todo
momento en el computador (denominado núcleo o
kernel), siendo el resto programas de aplicación.
Silberschatz - Un SO puede ser contemplado como una colección
organizada de extensiones software del hardware,
consistente en rutinas de control que hacen
funcionar una computadora y proporcionan un
entorno para la ejecución de los programas.
Milenkovic
3El objetivo primario de un Sistema Operativo es
- Optimizar todos los recursos del sistema para
soportar los requerimientos de los usuarios.
- A los efectos de situar a los S. O. en el
conjunto del software para computadoras, podemos
clasificar a este de la siguiente manera - Programas de sistema Controlan la operación de
la computadora en sÃ. Por ejemplo - Programas de aplicación Son aquellos que
resuelven los problemas para los usuarios.
4Componente de un sistema informático
- Un sistema informático consta de 3 componentes
- Hardware
- Software
- Programas de aplicación
- Software de sistemas
- Programas de sistemas
- Sistema operativo
- Usuarios
- Personas que se identifican individualmente ante
el SO - Ven al sistema informático en términos de las
aplicaciones que usan - Sesión conjunto de actividades entre la
identificación y el fin de realización de
actividades - Otras máquinas, otros sistemas
5Funciones de un sistema operativo
- Administrador de recursos
- Asignación
- Asignación de recuros a los programas en
ejecución (procesos) - Asignación de recursos en función de la
disponibilidad de recursos y ciertas
caracterÃsticas de los procesos. - Se debe poder recuperarlos cuando ya no se
necesiten. - Protección
- Se Debe garantizar la no interferencia entre
procesos en el uso de recursos - Debe impedir que un proceso acceda a recursos de
otro - Para todo lo anterior utilizará una serie de
estructuras de datos que registrarán el estado de
los recursos
6Los S. O. son, en primer lugar, administradores
de recursos, siendo el recurso primario el
hardware del sistema (ver Figura 1.1)
- Los principales recursos administrados por los S.
O. son - Procesadores.
- Almacenamiento.
- Dispositivos de e / s.
- Datos.
7Las principales caracterÃsticas de los S. O. son
- Definir la Interfaz del Usuario.
- Compartir el hardware entre usuarios.
- Permitir a los usuarios compartir los datos entre
ellos. - Planificar recursos entre usuarios.
- Facilitar la entrada / salida.
- Recuperarse de los errores.
8Los S. O. son una interfaz con
- Operadores.
- Programadores de aplicaciones.
- Programadores de sistemas (administradores del S.
O.). - Programas.
- Hardware.
- Usuarios.
9Historia de los Sistemas Operativos por
Generaciones
Los S. O. han estado relacionados históricamente
con la arquitectura de las computadoras en las
cuales se ejecutan, razón por la cual su historia
puede analizarse según las siguientes
generaciones y sus principales caracterÃsticas
7, Deitel
- Generación Cero (década de 1940)
- Carencia total de S. O.
- Completo acceso al lenguaje de máquina.
- Primera generación (1945-1955) bulbos y
conexiones - Carencia de S. O.
- En los años cincuenta comienzan como transición
entre trabajos, haciendo la misma más simple.
10Historia de los Sistemas Operativos
Generaciones (cont.)
- Segunda generación (1955-1965) transistores y
sistemas de procesamiento por lotes (batch) - En los años sesenta aparecen los S. O. para
sistemas compartidos con - Multiprogramación varios programas de usuarios
se encuentran al mismo tiempo en el
almacenamiento principal, cambiando el procesador
rápidamente de un trabajo a otro. - Multiprocesamiento varios procesadores se
utilizan en un mismo sistema para incrementar el
poder de procesamiento. - Posteriormente aparece la independencia de
dispositivo - El programa del usuario especifica las
caracterÃsticas de los dispositivos que requieren
los archivos. - El S. O. asigna los dispositivos correspondientes
según los requerimientos y las disponibilidades.
11Historia de los Sistemas Operativos
Generaciones (cont.)
- Tercera generación (1965-1980) circuitos
integrados y multiprogramación - Difusión de la multiprogramación
- Partición de la memoria en porciones, con
trabajos distintos en cada una de ellas. - Aprovechamiento del tiempo de espera consecuencia
de operaciones de e/s, para utilizar la CPU para
otros procesos. - Protección por hardware del contenido de cada
partición de memoria. - Aparición de técnicas de spooling
- Simultaneous Peripheral Operation On Line
operación simultánea y en lÃnea de periféricos. - Almacenamiento de trabajos de entrada y de salida
en dispositivos transitorios rápidos (discos),
para disminuir el impacto de los periféricos mas
lentos. - Son sistemas de modos múltiples, es decir que
deben soportar sistemas de propósitos generales
son grandes y complejos pero muy poderosos. - Interponen una capa de software entre el usuario
y el hardware. - Aparecen los lenguajes de control de trabajos,
necesarios para especificar el trabajo y los
recursos requeridos. - Soportan timesharing (tiempo compartido),
variante de la multiprogramación con usuarios
conectados mediante terminales en lÃnea,
permitiendo la operación en modo interactivo o
conversacional. - Aparecen los sistemas de tiempo real, que
requieren tiempos de respuesta muy exigentes,
especialmente para usos industriales o militares.
12Historia de los Sistemas Operativos
Generaciones (cont.)
- Cuarta generación (1980-1990) computadoras
personales - Aparición de software amigable con el usuario,
destinado a usuarios no profesionales y con una
interfase gráfica muy desarrollada. - Desarrollo de sistemas operativos de red y
sistemas operativos distribuidos. - Sistemas operativos de red
- Los usuarios están conscientes de la existencia
de varias computadoras conectadas. - Cada computadora ejecuta su propio S. O. local.
- Son similares a los S. O. de un solo procesador
pero con el agregado de - Controlador de interfaz de la red y su software
de bajo nivel. - Software para conexión y acceso a archivos
remotos, etc. - Sistemas operativos distribuidos
- Aparece ante los usuarios como un S. O. de un
solo procesador, aún cuando soporten a varios
procesadores. - Los usuarios no son conscientes del lugar donde
se ejecutan sus programas o donde se encuentran
sus archivos, ya que lo debe administrar el S. O.
automáticamente. - Deben permitir que un programa se ejecute
mediante varios procesadores a la vez,
maximizando el paralelismo. - Aparición de emuladores de terminal para el
acceso a equipos remotos desde computadoras
personales (PC). - Gran énfasis en la seguridad, en especial por el
desarrollo de los sistemas de comunicaciones de
datos. - Proliferación de sistemas de bases de datos,
accesibles mediante redes de comunicación.
13Conceptos Generales
- La interfaz entre el S. O. y los programas del
usuario se define como el conjunto de
instrucciones ampliadas 23, Tanenbaum que
proporciona el S. O. y son las llamadas al
sistema - Crean, eliminan y utilizan objetos del software
controlados por el S. O. - Los mas importantes son procesos y archivos.
- Procesos
- Es el concepto central de todos los S. O.
- Es básicamente un programa en ejecución.
- Consta del programa ejecutable, sus datos y pila,
contador y otros registros, además de la
información necesaria para ejecutar el programa. - La información de control relacionada con los
procesos se almacena en la tabla de procesos - Es administrada por el S. O.
- Posee un arreglo de estructuras, una por cada
proceso existente en ese momento. - Un proceso (suspendido) consta de
- Un espacio de dirección.
- Los datos pertinentes de la tabla de procesos.
- Un proceso puede crear procesos hijo y estos
nuevos procesos hijo, conformando un árbol de
procesos.
14Conceptos Generales (Continuación)
- Archivos
- Una de las funciones principales del S. O. es
brindar independencia de dispositivo. - Muchos S. O. soportan el concepto de directorio
como una forma de agrupar archivos. - Los directorios se estructuran jerárquicamente,
por lo que a cada archivo le corresponde una ruta
de acceso. - Existen distintos esquemas de seguridad de
archivos en los distintos S. O. - Llamadas al sistema
- Permiten a los programas comunicarse con el S. O.
y solicitarle servicios. - A cada llamada le corresponde un procedimiento
- Pone los parámetros de la llamada en un lugar
especÃfico para luego ejecutar una instrucción
tipo trap de llamada a procedimiento protegido
para iniciar el S. O. - Luego de trap el S. O. recupera el control ,
examina los parámetros y si son válidos ejecuta
el trabajo solicitado. - Luego de terminar, el S. O. coloca un código de
estado en un registro indicando si tuvo éxito o
fracaso y ejecuta una instrucción del tipo
return from trap para regresar el control al
procedimiento. - El procedimiento regresa al programa llamador con
un código de estado como un valor de función
dentro de los parámetros pueden regresar valores
adicionales.
15Componentes de un sistema operativo
- Bloques funcionales
- Estructuras de datos
16Componentes de un sistema operativo (Bloques
funcionales)
- Un SO se divide, desde un punto de vista lógico,
en un conjunto de módulos con funciones, entradas
y salidas bien definidas. - Administración de procesos
- Creación, eliminación, suspensión y reanudación
de procesos - Mecanismos para sincronización y comunicación de
procesos - Mecanismos para manejo de interbloqueos
- Administración de memoria principal
- Registrar qué partes de la memoria están en uso y
por quién - Asignar y liberar espacio de memoria cuando sea
necesario
17Componentes de un sistema operativo (Bloques
funcionales)
- Administración de E/S
- Facilita el uso de los dispositivos periféricos
- Administración del almacenamiento secundario
- Administra el espacio libre
- Planifica las operaciones sobre disco
- Administración de archivos y directorios
- Creación y borrado de ficheros
- Primitivas para manipulación de archivos
- Mapeado de archivos en memoria secundaria
- Seguridad y protección
- Garantiza la identidad de los usuarios y define
las - operaciones posibles para cada uno
- Redes
- Posibilita la comunicación entre diferentes
- computadores
- Intérprete de comandos
- En algunos SO forma parte de su núcleo
- En otros es un programa especial
18Componentes de un sistema operativo (Estructura
de datos)
- Cada uno de los módulos anteriores se apoya en un
conjunto de estructuras de datos que guardan
información especÃfica del mismo - También hay estructuras de datos
comunes/compartidas por varios módulos - Se manipulan en
- Llamadas al sistema
- Gestión de interrupciones
- Se inicializan (en general) en el arranque del
sistema operativo
19Estructura de los Sistemas Operativos
- A medida que se han añadido caracterÃsticas a los
SO y el hardware subyacente se ha hecho más
complejo, ha ido creciendo el tamaño y la
complejidad de los SO. - Genera varios problemas
- Los SO están cronológicamente retrasados cuando
se entregan. - Tienen fallos laterales que se muestran con su
uso - Su rendimiento no suele ser el esperado
- Para solucionar los problemas, hay que
estructurar bien el SO
20Estructura MonolÃtica
- El SO es una colección de procedimientos que
pueden invocar a cualquiera de los otros cuando
lo necesitan - Se compilan todos ellos para generar un único
archivo objeto - No existe ocultamiento de la información
- Dado que todos los procedimientos ven al resto
- En contraposición a una estructura en módulos o
paquetes - Aún asÃ, se puede encontrar algo de estructura
en estos SO (figura siguiente)
21Forma detallada de un sistemas monolÃticos
- Problemas
- DifÃcil evolución
- DifÃcil mantenimiento
22Llamadas al sistema en un sistema monolÃtico
- Para ejecutar los servicios del S. O. (llamadas
al sistema) (ver Figura 1.3 23, Tanenbaum). - Se solicitan colocando los parámetros en lugares
bien definidos (registros o pilas). - Se ejecuta una instrucción especial de trampa
llamada al núcleo o llamada al supervisor. - La instrucción cambia la máquina del modo usuario
al modo núcleo (o modo supervisor). 23,
Tanenbaum - Se transfiere el control al S. O.
- El S. O. examina los parámetros de la llamada
para determinar cuál de ellas se desea realizar. - El S. O. analiza una tabla que contiene en la
entrada k un apuntador al procedimiento que
realiza la k-ésima llamada al sistema - Identifica al procedimiento de servicio llamado.
- La llamada al sistema termina y el control
regresa al programa del usuario.
23Estructura de sistemas con capas
- Es una generalización del modelo de estructura
simple para un sistema monolÃtico. - Consiste en organizar el s. o. como una jerarquÃa
de capas, cada una construida sobre la inmediata
inferior. - El primer sistema con este esquema fue el THE
(Holanda - Dijkstra -1968) (ver Tabla 1.1 23,
Tanenbaum).
24THE Technische Hogeschool Eindhoven. Funciones
de cada capa
- Capa 0
- Trabaja con la asignación del procesador.
- Alterna entre los procesos cuando ocurren las
interrupciones o expiran los cronómetros. - Proporciona la multiprogramación básica.
- Capa 1
- Administra la memoria.
- Asegura que las páginas (porciones de memoria)
requeridas de los procesos lleguen a memoria
cuando fueran necesarias. - Capa 2
- Administra la comunicación entre cada proceso y
la consola del operador. - Por sobre esta capa, cada proceso tiene su propia
consola de operador. - Capa 3
- Controla los dispositivos de e / s y almacena en
buffers los flujos de información entre ellos. - Por sobre la capa 3 cada proceso puede trabajar
con dispositivos abstractos de e / s en vez de
con dispositivos reales. - Capa 4
- Aloja los programas del usuario.
- Los programas. del usuario no tienen que
preocuparse por el proceso, memoria, consola o
control de e / s. - Capa 5
- Localiza el proceso operador del sistema.
25Estructura de Máquina Virtual
- Se separan totalmente las funciones de
multiprogramación y de máquina extendida. - Existe un elemento central llamado monitor de la
máquina virtual que - Se ejecuta en el hardware.
- Realiza la multiprogramación.
- Proporciona varias máquinas virtuales a la capa
superior. - Las máquinas virtuales instrumentan copias
exactas del hardware simple, con su modo núcleo
/ usuario, e / s, interrupciones y todo lo demás
que posee una máquina real. - Pueden ejecutar cualquier S. O. que se ejecute en
forma directa sobre el hardware. - Las distintas máquinas virtuales pueden ejecutar
distintos S. O. y en general asà lo hacen. - Soportan periféricos virtuales.
26Estructura de Máquina Virtual (continuación)
- Ejemplo de S. O. representativo de esta
estructura VM/370 de IBM (ver Figura 1.4 23,
Tanenbaum - Las m. v. generalmente utilizaran, entre otros,
el S. O. CMS Conversational Monitor System.
Cuando un programa CMS ejecuta una llamada al
sistema - La llamada es atrapada por el S. O. en su propia
m. v. no pasa directamente al VM/370. - CMS proporciona las instrucciones de e / s en
hardware para la lectura del disco virtual o lo
necesario para efectuar la llamada. - VM/370 atrapa estas instrucciones de e / s y
las ejecuta sobre el hardware verdadero.
27Modelo cliente - servidor
- Una tendencia en los S. O. modernos es la de
explotar la idea de mover el código a capas
superiores y mantener un núcleo mÃnimo, de manera
similar al VM/370. - Implantar la mayorÃa de las funciones del S. O.
en los procesos del usuario. - Para solicitar un servicio (por ej. lectura de
un bloque de cierto archivo) según el modelo
cliente - servidor (ver Figura 1.5 23,
Tanenbaum).
28Modelo cliente - servidor (continuación)
- El proceso del usuario (proceso cliente) envÃa la
solicitud a un proceso servidor - Realiza el trabajo y regresa la respuesta.
- El núcleo controla la comunicación entre los
clientes y los servidores. - Se fracciona el S. O. en partes, cada una
controlando una faceta - Servicio a archivos, a procesos, a terminales, a
memoria, etc., cada parte pequeña y más
fácilmente controlable. - Los servidores se ejecutan como procesos en modo
usuario - No tienen acceso directo al hardware.
- Se aÃslan y acotan más fácilmente los problemas.
- Se adapta para su uso en los sistemas
distribuidos (ver Figura 1.6 23, Tanenbaum).
29Modelo cliente - servidor (continuación)
- Si un cliente se comunica con un servidor
mediante mensajes - No necesita saber si el mensaje se atiende
localmente o mediante un servidor remoto, situado
en otra máquina conectada. - EnvÃa una solicitud y obtiene una respuesta.
- Algunas funciones del S. O., por ej. el cargado
de comandos en los registros fÃsicos del
dispositivo de e / s, presentan problemas
especiales y distintas soluciones - Ejecución en modo núcleo, con acceso total al
hardware y comunicación con los demás procesos
mediante el mecanismo normal de mensajes. - Construcción de un mÃnimo de mecanismos dentro
del núcleo manteniendo las decisiones de polÃtica
relativas a los usuarios dentro del espacio del
usuario.
30Arranque del sistema operativo
- Introducción
- Arranque hardware
- Ubicación del sistema operativo
- Arranque del sistema operativo
31Arranque del sistema operativo
- El arranque del sistema tiene 2 fases
- Arranque hardware
- Arranque del sistema operativo
- Resumen de actividades más importantes
-
32Arranque de Hardware
- El computador sólo puede realizar actividades
útiles si tiene un programa cargado en memoria
principal - Que es volátil
- Al arrancar el computador, la memoria principal
no contiene información válida - Para solucionar el problema, se usa un programa
de arranque (iniciador ROM) grabado
permanentemente en memoria ROM (no volátil) - Cuando se arranca el computador se cargan unos
valores predefinidos en los registros - En especial, se carga en el registro contador de
programa la dirección de comienzo del iniciador
ROM. -
33Ubicación del sistema operativo
- El SO está almacenado en disco
- En una zona predefinida del disco (los N primeros
sectores) está almacenado el programa cargador
(boot) del SO - Tiene un tamaño prefijado
- Llevado a memoria por el iniciador ROM
- El iniciador ROM es independiente del SO a
arrancar - Ubicación, tamaño y dirección de arranque del
cargador no cambian entre SO diferentes -
34Arranque del sistema operativo
- Misión del cargador del SO
- Traer a memoria ciertos componentes del SO
- Una vez cargados, se pasa a la fase de iniciación
- Fase de iniciación
- Comprobación del sistema
- Completar las pruebas hardware
- Comprobar que el sistema de archivos tiene un
estado coherente - Establecer estructuras de datos propias del SO
- Tabla de procesos, de memoria, de E/S, etc.
- Cargar en memoria el resto de componentes del
sistema operativo que han de estar siempre en
memoria - Al conjunto de componentes del SO que están
permanentemente en memoria se le denomina sistema
operativo residente - Crear un proceso de inicio (login) por cada
terminal definida en el sistema - Presentan un mensaje de bienvenida y esperan a
que el usuario inicie la sesión - Crear un conjunto de procesos auxiliares y
demonios - Para impresión, comunicaciones, etc.
-
35Clasificación de los sistemas operativos
- Según la utilización de recursos
- Según la interactividad
- Según el número de usuarios
-
Clasificación de los sistemas operativos
36Clasificación de los sistemas operativos
- Según la utilización de recursos (sobre todo,
CPU) - Sistemas monoprogramados
- Sistemas multiprogramados
- Sistemas de multiprocesamiento
- Según la interactividad (tiempo de respuesta)
- Sistemas de procesamiento por lotes (batch)
- Sistemas de tiempo compartido
- Sistemas de tiempo real
- Según el número de usuarios (definir usuario)
- Sistemas monousuario
- Sistemas multiusuario