2. Contenido
1. Unidad (Conceptos y componentes)
1. Introducción a los Sistemas Operativos
2. Evolución histórica de los sistemas operativos
3. Cómo funciona y como se utiliza un S.O
4. Componentes de un sistema computacional
5. Arquitectura del computador
6. Funciones de un S.O.
7. Arranque de la computadora y el S.O
8. Tipos de los S.O.
9. Estructura de los S.O.
10. Componentes típicos de un S.O.
11. Máquinas virtuales
3. Principios básicos de los Sistemas
Operativos
Objetivo: administrar todos los dispositivos y
proporcionar a los programas de usuarios una
interfaz sencilla.
◦ Proporcionar a los programas de usuario un
modelo de computadora mejor, más simple y
pulcro, así como encargarse de la
administración de todos los recursos
“El Sistema Operativo es la porción del Software que opera en
modo de kernel o modo supervisor, y está protegido de la
intervención del usuario por el hardware. “
<< Tanenbaum, Sistemas Operativos Modernos, 2da Edición>>
4. Principios básicos de los Sistemas
Operativos
“Un sistema operativo (SO) explota los recursos de
hardware de uno o más procesadores para ofrecer un
conjunto de servicios a los usuarios del sistema.”
<<William Stallings, Sistemas Operativos, 2da. edición>>
Elementos básicos de los S.O.
Procesador
Memoria Principal
Interconexión de Sistemas
8. Evolución histórica y tipos de
Sistemas Operativos
1ra Generación(1925-1955)
◦ S.O, inexistente, se utilizaban tubos al vacio,
◦ lenguaje de máquina.
◦ …
◦ …
2da Generación(1955-1965)
◦ Se utilizaba el procesamiento en serie,
◦ Transistores
◦ Tarjetas perforadas
…
…
Deber 1: Completar la
evolución histórica de los
S.O.
9. Principios básicos de los Sistemas
Operativos
Los sistemas operativos se pueden ver
desde dos puntos de vista:
• El S.O administra las distintas partes del
sistema en forma eficiente.
Administradores
de recursos
• Creación de programas, ejecución de
programas, acceso a dispositivos E/S,
acceso controlado a los archivos, acceso
al sistema, detección y respuesta a
errores
SO como interfaz
de usuario
10. Tipos de Sistemas Operativos
Sistemas operativos de mainframe
Sistemas operativos de servidores
Sistemas operativos de multiprocesadores
Sistemas operativos de computadoras personales
Sistemas operativos de computadoras de bolsillo
Sistemas operativos integrados
Sistemas operativos de nodos sensores
Sistemas operativos en tiempo real
Sistemas operativos de tarjetas inteligentes
11. Tipos de Sistemas Operativos
Sistemas operativos de mainframe
Sistemas operativos de servidores
Sistemas operativos de multiprocesadores
Sistemas operativos de computadoras personales
Sistemas operativos de computadoras de bolsillo
Sistemas operativos integrados
Sistemas operativos de nodos sensores
Sistemas operativos en tiempo real
Sistemas operativos de tarjetas inteligentes
12. Tipos de Sistemas Operativos
Sistemas operativos de mainframe
Están profundamente orientados hacia el procesamiento de
muchos trabajos a la vez, de los cuales la mayor parte
requiere muchas operaciones de E/S
Por lo general ofrecen tres tipos de servicios:
◦ procesamiento por lotes,
◦ procesamiento de transacciones
◦ y tiempo compartido.
Trabaja por unidades de procesos pequeñas pero maneja
miles de unidades de procesos.
13. Tipos de Sistemas Operativos
Sistemas operativos de mainframe
Sistemas operativos de servidores
Sistemas operativos de multiprocesadores
Sistemas operativos de computadoras personales
Sistemas operativos de computadoras de bolsillo
Sistemas operativos integrados
Sistemas operativos de nodos sensores
Sistemas operativos en tiempo real
Sistemas operativos de tarjetas inteligentes
14. Tipos de Sistemas Operativos
Sistemas operativos de servidores
Se ejecutan en servidores, estaciones de trabajo o incluso
mainframes.
Varios usuarios a la vez,
permiten compartir los recursos de hardware y de
software.
Solaris, FreeBSD, Linux y Windows Server 200x
15. Tipos de Sistemas Operativos
Sistemas operativos de mainframe
Sistemas operativos de servidores
Sistemas operativos de multiprocesadores
Sistemas operativos de computadoras personales
Sistemas operativos de computadoras de bolsillo
Sistemas operativos integrados
Sistemas operativos de nodos sensores
Sistemas operativos en tiempo real
Sistemas operativos de tarjetas inteligentes
16. Tipos de Sistemas Operativos
Sistemas operativos de multiprocesadores
A menudo son variaciones de los sistemas operativos de
servidores con características especiales para la
comunicación, conectividad y consistencia.
Muchos sistemas operativos populares (incluyendo
Windows y Linux) se ejecutan en multiprocesadores.
17. Tipos de Sistemas Operativos
Sistemas operativos de mainframe
Sistemas operativos de servidores
Sistemas operativos de multiprocesadores
Sistemas operativos de computadoras personales
Sistemas operativos de computadoras de bolsillo
Sistemas operativos integrados
Sistemas operativos de nodos sensores
Sistemas operativos en tiempo real
Sistemas operativos de tarjetas inteligentes
18. Tipos de Sistemas Operativos
Sistemas operativos computadores personales
Todos los sistemas operativos modernos
soportan la multiprogramación.
Soporte para un solo usuario.
(procesamiento de texto, las hojas de
cálculo y el acceso a Internet)
19. Tipos de Sistemas Operativos
Tarea 2: Completar los tipos de S.O.
(Definición, características, Ventajas,
Desventajas)
20. Gestión de los recursos del
Sistema
Gestión de
procesos
Gestión de
memoria
Gestión de
entrada/salida
Gestión de
redes
Gestión de
protección
Gestión de
archivos
Intérprete de
órdenes
21. Gestión de los recursos del
Sistema
Gestión de
procesos
Gestión de
memoria
Gestión de
entrada/salida
Gestión de
redes
Gestión de
protección
Gestión de
archivos
Intérprete de
órdenes
22. Gestión de los recursos del
Sistema
Gestión de procesos
Es la unidad de trabajo de un sistema. El sistema consiste
sólo en una colección de procesos.
Un proceso es un programa en ejecución,
Utiliza recursos de tiempo de CPU, memoria, archivos,
dispositivos E/S, datos
En la gestión de procesos, el Sistema Operativo:
Crear y eliminar
Suspender y reanudar
Sincronización, Comunicación, y manejo de procesos
23. Gestión de los recursos del
Sistema
Gestión de la memoria principal
Almacén de datos de acceso rápido que son compartidos
por la CPU y disp. E/S.
Guarda las instrucciones para poderlas ejecutar.
En la gestión de la memoria, el Sistema Operativo:
Saber que partes de la memoria se utiliza
Decidir que procesos cargar en la memoria
Asignar y liberar espacio
24. Gestión de los recursos del
Sistema
Gestión del sistema E/S
Se trata de un conjunto muy variado y complejos de
programar.
En la gestión del sistema E/S, el Sistema Operativo:
Proporcionar una interfaz uniforme
Proporcionar manejadores para dispositivos concretos
Tratar automáticamente errores típicos
Usar cachés para dispositivos de almacenamiento
25. Gestión de los recursos del
Sistema
Gestión de Redes
Es una colección de procesadores con sus propios recursos
locales que se comunican con otros procesadores
conectados a la red, formando un sistema distribuido.
En la gestión de Redes, el Sistema Operativo:
Proporcionar primitivas para conectarse con equipos
remotos y acceder de forma controladas a los recursos
26. Gestión de los recursos del
Sistema
Gestión de Protección
Es un mecanismo que controla el acceso de programas,
procesos o usuarios a los recursos definidos por un
sistema.
La protección puede mejorar la confiabilidad mediante la
detección de errores
27. Gestión de los recursos del
Sistema
Gestión de archivos
Un archivo es un conjunto de información relacionada.
Se organizan en directorios
Guarda las instrucciones para poderlas ejecutar.
En la gestión de archivos, el Sistema Operativo:
Crear y elimina archivos
Crear y elimina directorios
Establecer correspondencia archivo-almacenamiento
secundario
Guardar archivos en almacenamientos no volátiles
28. Gestión de los recursos del
Sistema
Gestión del Intérprete de órdenes
Es una interfaz entre el usuario y el sistema operativo
En la gestión del intérprete de ordenes, el Sistema
Operativo:
Proporciona una interfaz de usuario básica para:
Cargar programas
Abortar programas
Introducir datos
Trabajar con redes
29. Aplicaciones y servicios de los
Sistemas Operativos
Servicios
◦ Son aplicaciones cargadas por el propio
sistema operativo, generalmente se cargan en
segundo plano
services.msc
Estados de los servicios
◦ Automático: Se inician junto con el sistema
◦ Manual: Se puede iniciar o detener los
servicios a nuestra necesidad
◦ Deshabilitado
30. Aplicaciones y servicios de los
Sistemas Operativos
Servicios a los programas y a sus
usuarios:
• Ejecución de programas.
• Operaciones de E/S.
• Manipulación del sistema de archivos.
• Comunicaciones: entre procesos y de red.
• Detección de errores.
Asegura el funcionamiento eficiente
del sistema:
• Asignación de recursos: varios usuarios – varios trabajos.
• Contabilización: qué usuarios usan qué recursos.
• Protección: controlar accesos a los recursos.
• Seguridad: cada usuario debe identificarse.
31. Estructuras de los Sistemas
Operativos
Sistemas Monolíticos
Sistemas de capas
Microkernels
Modelo Cliente Servidor
Maquinas Virtuales
Exokernels
32. Estructuras de los
Sistemas
Operativos
Sistemas monolíticos
◦ Considerado como la organización mas común.
Esta organización sugiere una estructura básica
para el sistema operativo:
1. Un programa principal que invoca el procedimiento de
servicio solicitado.
2. Un conjunto de procedimientos de servicio que llevan
a cabo las llamadas al sistema.
3. Un conjunto de procedimientos utilitarios que ayudan
a los procedimientos de servicio.
33. Estructuras de los Sistemas
Operativos
Estructura de un sistema monolítico
34. Estructuras de los Sistemas
Operativos
Sistemas de capas
◦ Generalmente los sistemas de capas organizan
a los sistemas operativos como jerarquías de
capas.
◦ Es un diseño mas modular y escalable que el
sistema monolítico.
36. Estructuras de los Sistemas
Operativos
Modelo Cliente - Servidor
• Similar al modelo de microkernels, con la
diferencia que es posible diferenciar dos
clases de procesos:
• Los servidores, cada uno de los cuales
proporciona cierto servicio,
• y los clientes, que utilizan estos
servicios.
37. Estructuras de los
Sistemas
Operativos
Máquinas Virtuales
Mediante software, se proporciona a los
programas la emulación de un hardware que
no existe.
Se pueden ejecutar varias máquinas virtuales
al mismo tiempo.
Los recursos reales se reparten entre las
distintas máquinas virtuales.
39. Estructuras de los Sistemas
Operativos
Exokernels
En lugar de clonar la máquina actual,
como se hace con las máquinas virtuales,
otra estrategia es particionarla; en otras
palabras, a cada usuario se le proporciona
un subconjunto de los recursos.
40. Procesos
Creación y terminación de procesos
El sistema operativo debe tener un mecanismo
para la creación y terminación de procesos.
Creación de procesos
Cuando un nuevo proceso se agrega. El sistema operativo
son usadas para
espacio de
construye las estructuras de datos que
administrar los procesos y le asigna
direcciones.
Estas acciones constituyen la creación de un nuevo proceso.
41. Procesos
Creación y terminación de procesos
Eventos comunes para la creación de procesos
• En un ambiente batch, un proceso es creado en
respuesta a un pedido de ejecución de un trabajo.
• En un ambiente interactivo, un proceso es creado
cuando un nuevo usuario entra al sistema.
• Creación de procesos hijos por parte de procesos de
usuario ya existentes. El proceso que crea se llama
proceso padre.
42. Procesos
Creación y terminación de procesos
Terminación de procesos
Un proceso termina cuando ejecuta su última
instrucción y pide al sistema operativo que lo elimine.
En este momento, el proceso puede devolver un valor de
estado a su proceso padre.
El sistema operativo libera la asignación de todos los
recursos del proceso, incluyendo las memorias física y
virtual, los archivos abiertos y los búferes de ES.
43. Procesos
Creación y terminación de procesos
La terminación puede producirse también por otras
circunstancias:
• Dicha llamada al sistema sólo puede ser invocada
por el padre del proceso que va a terminar.
• En caso contrario, los usuarios podrían terminar
arbitrariamente los trabajos de otros usuarios solo si
tienen los permisos necesarios
44. Procesos
Creación y terminación de procesos
Adicionalmente, un número de error o una
condición de fallo puede llevar a la finalización
de un proceso.
Las condiciones mas habituales son las
siguientes:
45. Procesos
Creación y terminación de procesos
• Finalización normal .
• Limite de tiempo
excedido.
• Memoria no disponible.
• Violaciones de frontera .
• Error de protección .
• Limite de tiempo.
• Fallo de E/S.
• Instrucción no válida.
• Instrucción privilegiada.
• Uso inapropiado de
datos.
• Intervención del
operador en el sistema
operativo.
• Terminación del proceso
padre.
• Solicitud del proceso padre.
46. Procesos Suspendidos
Debido a
rápido
que el
que
procesador es mucho mas
los dispositivos de E/S puede
ocurrir que en un momento dado todos los procesos del
sistema se encuentran bloqueados a al espera de que se
complete alguna operación de E/S.
Para solucionar este problema existe dos opciones:
47. Procesos Suspendidos
• Ampliar la memoria de forma que sea posible albergar
en ella mas procesos e incrementar asi la posibilidad
de que alguno de ellos haga uso efectivo del
procesador.
• La otra solución consiste en aplicar una técnica
conocida como INTERCAMBIO o SWAPPING: Esta
técnica consiste en que cuando todos los procesos que
se encuentran en memoria principal están bloqueados
alguno es cambiado de acuerdo a un algoritmo.
48. Procesos Suspendidos
• Un proceso puede estar
esperando o no un suceso. Si lo
condición de suspendido y el
acontecimiento del suceso
bloqueante no lo habilita para
ejecución.
• Un proceso suspendido no esta•
disponible de inmediato para su
ejecución.
El proceso fue situado en
estado suspendido por un
agente (el SO o el proceso
padre) con el fin de impedir la
ejecución.
está la condición de bloqueado•
es independiente de la
El proceso no puede apartarse
del estado hasta que llegue la
orden expresa para ello.
En general se considera suspendido a un proceso que presenta las
características siguientes:
49. Trabajo en Clase: Realizar un
revisión bibliográfica sobre los
estados de los procesos.
50. Estados de los Procesos
El SO gestiona los recursos disponibles
(memoria, CPU, etc.) entre los procesos que en
ese momento están activos en el sistema, de tal
forma que, para ellos, el sistema se comporte
como si fuera monousuario.
51. Estados de los Procesos
Modelo de dos estados
Se trata de la utilización de dos archivos, un
objeto ejecutable y una biblioteca del sistema,
que después se colocan en la imagen del proceso
dentro de la memoria RAM y posteriormente
también se dan de alta dentro de la tabla de
procesos y de la tabla de control del proceso.
55. Estados de los Procesos
Modelo de cinco estados
.
Nuevo
•El proceso recién fue creado y todavía no es
admitido por el SO.
Listo
•El proceso está listo para ser ejecutado, sólo está
esperando que el planificador de corto plazo así lo
disponga.
Ejecución
•Proceso que se encuentra en el control del
procesador.
•Sólo un proceso puede encontrarse en ejecución.
Espera
•El proceso no puede ser ejecutado hasta que no se
produzca cierto suceso, como la finalización de una
operación de E/S solicitada por una llamada al SO.
Terminado
•El proceso fue expulsado del grupo de procesos
ejecutables, ya sea porque terminó o por algún
fallo, como un error de protección, aritmético, etc.
56. Transiciones de estado de
los
procesos
De Ejecución a Bloqueado: Se realiza
De ejecución a Listo: Cuando el
proceso que ocupa la CPU lleva
demasiado tiempo ejecutándose ,el
proceso ocupe la CPU, pasando el
proceso que ocupaba la CPU a estado
listo.
De Listo a ejecución: Cuando lo
requiere el planificador de la CPU.
esta transición cuando queda en espera
por la concesión de un recurso por la
determinación de un suceso.
De Bloqueado a Listo: Se dispone del
recurso por el que se había bloqueado el
proceso.
De Nuevo a Preparado: Es cuando el
SO acepta o admite un proceso mas.
sistema operativo decide que otro De Preparado a Terminado: Ocurre
cuando el proceso padre decide finalizar
la ejecución del hijo.
De Bloqueado a Terminado: Ocurre
cuándo el proceso supere el tiempo
máximo de espera de un recurso y el SO
decida terminarlo.
57. Programacion Shell
Es un programa-interface, que se provee
como un elemento comunicacional entre
el usuario y el SO.
Shell o interprete de comandos es un
lenguaje de programacion completo.
La programación de shell se usa mucho para realizar tareas
repetidas con frecuencia.
Shell de Unix tiene alto rendimiento en la ejecución de
scripts.
◦ Scripts(guiones): son ficheros de texto ASCII que
representan una serie de ordenes y estructuras
organizadas secuencialmente
58. Arranque de los sistemas
operativos
Arranque o activación de los SO
(bootstraps)
POST (Power On Self Test
Búsqueda del sector de arranque o Master
Boot Record(MBR)
“Autoverificación de encendido”) sonido del
computador
Deber : Consultar la
traducción de los pitidos
que indica el POST
Arranque de Disco (ios.sys /msdos.sys)
59. Arranque de los sistemas
operativos
Software de arranque
◦ Linux
Lilo
Grub
◦ Windows
Ntldr
Arranque de Disco (ios.sys /msdos.sys)
60. Arranque de los sistemas
operativos
Procesos necesarios para iniciar SO
Windows
◦ Csrss.exe: Controla gráficos del sistema
◦ Smss.exe: Inicia la sesión de usuario(Winlogon
y Win32)
◦ Lsass.exe: Correcto funcionamiento de los
protocolos(Victima de Sasser)
◦ Services.exe: app de servicios(empezar y parar
servicios)
62. Diseño de los SO
Como todo software, debe seguirse un proceso de
desarrollo (ingeniería de sw): requisitos, diseño,
construcción, pruebas, paso a explotación, mantenimiento.
Resulta fácil especificar requisitos?
Selección del hardware
Un SO presenta características especiales:
•Es un sistema crítico (todas las aplicaciones dependen de
él)
•Normalmente hay requisitos más estrictos de portabilidad
(respetar versiones anteriores)
•Es más complicado de depurar… ¿cómo probamos un
pequeño cambio?
•¿tenemos que volverlo a instalar un equipo?
63. Diseño de los SO
Tradicionalmente los SO se han escrito en lenguaje
ensamblador (por eficiencia). „
Actualidad: uso de lenguajes de alto nivel; UNIX, OS/2 y
Windows NT están escritos principalmente en C.
• Ventajas:
• Más legible y fácil de entender y depurar.
• Más transportable.
• Desventajas:
• Menor velocidad.
• Mayor necesidad de almacenamiento. „
Para la compilación de pruebas o cambios, se utilizan
emuladores.
64. Parada del SO
Copia a disco de la información necesaria mantenida en
memoria por razones de eficiencia; si no se efectúa así, el
sistema se corrompe y en para el próximo arranque debe
ser “reparado”
Hibernación: copia a disco de la imagen completa de
memoria principal rearranque rápido a la misma
situación de apagado
Suspensión (Standby): apagado de casi todo excepto la
memoria reanudación instantánea
65. Activación del Sistema Operativo
El SO “despierta” a la actividad a causa de:
•Llamadas al sistema. Instrucción TRAP
•Interrupciones externas: de E/S, de reloj, de otro
procesador
•Excepciones h/w síncronas o asíncronas
66. Activación del Sistema Operativo
modo privilegiado
y paso al control
de kernel
Salva el contexto
(estado) del
proceso
interrumpido
atiende al
servicio solicitado
usa el planificador
para seleccionar un
nuevo proceso
El kernel restaura
el contexto del
nuevo proceso
67. Servicios de Sistema
Ser inmediato
requerir bloqueo del
proceso solicitante
(síncrono)
proceder dejando
continuar al
proceso solicitante
(asíncrono)
69. Máquinas Virtuales
virtual parte de la
Una máquina
estructura de los SO que simulan el
hardware de un ordenador físico y que
ejecuta programas como si fuera una
computadora real.
Hipervisor
Hardware
70. Máquinas Virtuales- Tipos
y
Características
Máquinas virtuales de sistema (hardware)(nativo-
hosted)
Máquinas virtuales de proceso(app)
Características
◦ Particionamiento
◦ Aislamiento
◦ Encapsulación
◦ Independencia
◦ Utilidades de máquinas virtuales? Ejemplos
71. Virtualización- Tipos
Virtualización de hardware
Extensiones introducidas en la arquitectura de procesador
para facilitar las tareas de virtualización al software
ejecutándose sobre el sistema
Virtualización de almacenamiento
Proceso de abstraer el almacenamiento lógico del
almacenamiento físico, y es comúnmente usado en SANs
("Storage Area Network" Red de área de almacenamiento).
73. Virtualización
Consultar técnicas de virtualización
Hardware con soporte para
virtualización.
Máquinas virtuales de sistema
Máquinas virtuales de proceso
74. Administración de usuarios
Cuentas de Usuario
videosubuntu-2015-11-03T21-38-34-032222400Z.webm
Para poder utilizar el sistema operativo Unix es necesario
disponer de una cuenta de usuario que se compone
de nombre de usuario (login) y de contraseña
(password). Las cuentas de usuario son creadas por el
administrador que en Unix es un usuario especial llamado
root.
ps aux: procesos en ejecución.
top: procesos en tiempo real.
videosubuntu-2015-11-03T23-04-20-353777500Z.webm