2. Presentación
Luis West Grant (presentación)
luis.west@ucr.ac.cr
luiswest@gmail.com
6317-8678
Presentación del grupo
Qué tanto les gusta la carrera hasta ahora?
Expectativas del curso
Conocimiento de la temática de Sistemas operativos
Lenguajes de programación que domina
Sistemas Operativos que conocen (Windows, Linux, Mac-Os,
otros…)
Programación C
Lectura del Programa de Estudio
Uso de mediación
Video
3. Temasde
investigación
1.Seguridad en los Sistemas Operativos
2.Sistemas Operativos para dispositivos móviles
3.Secure Boot (Usos, implementaciones, pruebas...) (4)
4.Lenguaje de Máquina
5.Sistemas de archivos Distribuidos (4)
6.Sistemas Operativos de Red (4)
7.Norma POSIX
8.Seguridad en Windows 11 (TPM/Secure Boot)
5. Sistema
Operativo
Programa que actúa de intermediario entre el usuario
del computador y el hardware.
Controla la ejecución de programas de aplicación, y
actúa como una interfaz entre las aplicaciones y el
hardware del computador.
Objetivos:
Ejecutar programas
Hacer uso eficiente de los recursos
Proporcionar visión de máquina virtual extendida
6. Sistema
Operativo
Al S.O. se le puede atribuir las siguientes tres
cualidades:
Conveniencia: Un S.O. hace más conveniente el uso del
computador
Eficiencia: Un S.O. permite que los recursos del
computador sean utilizados de forma eficiente
Habilidad de evolucionar: Un S.O. debe ser construido de
tal manera que permita un desarrollo efectivo.
8. S.O.comouna
interfaz Usuario /
Computador
(Conveniencia)
El S.O. provee típicamente servicios en las siguientes
áreas:
Desarrollo de programas
El S.O. provee una variedad de características y servicios
tales como editores y depuradores para asistir a
programadores en el desarrollo de aplicaciones.
Ejecución de programas
Pasos necesarios para ejecutar aplicaciones.
Acceso a dispositivos de E/S
Cada dispositivos de E/S necesita su propio conjunto
peculiares de instrucciones o signos de control para operar.
Controla acceso a Archivos
El S.O. debe tener un entendimiento detallado de la
naturaleza de los dispositivos de E/S y de la estructura de
los archivos contenidos en los medio de almacenamiento
9. S.O.comouna
interfaz Usuario /
Computador
(Conveniencia)
Acceso al sistema
Para sistemas compartidos o públicos, el S.O. controla el
acceso al sistema como un todo y también como sistema de
recursos específicos; se encarga de proteger los datos del
acceso no autorizado y resolver conflictos entre recursos
Detección y manejo de errores
El S.O. detecta y responde a errores ya sea del hardware
interno o externo, y varios errores de software. Esto con el fin
de hacer reintentos, reporte del error o cerrando la aplicación.
Contabilidad
El S.O. recolecta estadísticas de uso para varios recursos y
monitorea parámetros de rendimiento tales como tiempos de
respuesta.
10. S.O.comouna
interfaz
Usuario/Computa
dor
(Conveniencia)
Conjunto de instrucciones de la Arquitectura (ISA)
Define un conjunto de instrucciones en lenguaje máquina
los cuales pueden ser ejecutados por el computador. Esta
interfaz es el límite entre el hardware y el software.
Interfaz Binaria de Aplicación (ABI)
Define un estándar para la portabilidad binaria entre
programas
Interfaz de Programación de Aplicaciones (API)
La API le da acceso al programa acceso los recursos del
hardware y servicios disponibles en un sistema por la ISA
de usuario, suplementado con llamadas a librerías de
lenguaje de alto nivel.
11. Eficiencia: ElS.O.
comoungestor
derecursos
El S.O. es responsable de controlar el uso de los recursos del
computador tales como:
Dispositivos E/S
Memoria principal y secundaria
Tiempo de ejecución del procesador
El mecanismo de control se lleva a cabo tomando en cuenta
dos aspectos:
El S.O. funciona igual que un software de computador ordinario
El S.O. frecuentemente renuncia al control y debe depender del
procesador que le permita retomar el control.
13. Facilidadde
Evoluciónde
S.O.
Un S.O. evolucionará en el tiempo por varias razones:
Actualización del hardware y nuevos tipos de hardware:
Uso de paginación en los S.O. más modernos en comparación con los
primeros S.O.
Uso de terminales gráficas en comparación al uso de terminales de
línea de comando.
Servicios nuevos
La creación de nuevos servicios para satisfacer las necesidades del
usuario.
Correcciones:
Los S.O. por lo general contienen errores los cuales al ser detectados,
son corregidos. Estas correcciones además pueden incluir nuevas fallas
14. Clasificaciónde
SO
Número de procesos simultáneos:
Monotarea.
Multitarea.
Modo de interacción:
Interactivo.
Por lotes (batch).
Número de usuarios simultáneos:
Monousuario.
Multiusuario.
15. Clasificaciónde
SO
Número de procesadores:
Monoprocesador.
Multiprocesador.
Número de hilos (threads):
Monohilo
Multihilo.
Tipo de uso:
Cliente.
Servidor.
Empotrado.
Tiempo real.
17. Estructura
conceptualdel
SO
Modos de ejecución:
Modo usuario: Ejecución de procesos de usuario.
Modo supervisor o núcleo: Ejecución del núcleo del SO.
Los procesos y el SO utilizan espacios de memoria
separados.
Cuando un proceso necesita un servicio lo solicita al SO
mediante una llamada al sistema.
El sistema operativo entra en ejecución para realizar la
función solicitada.
19. Funcionesdel
Sistema
Operativo
Gestor de recursos (CPU, memoria, ...)
Asignación y recuperación de recursos
Protección de los usuarios
Contabilidad/monitorización
Soporte de usuario
Máquina extendida (servicios)
Ejecución de programas (procesos)
Órdenes de E/S
Operaciones sobre archivos
Detección y tratamiento de errores
Interfaz de usuario
Shell
20. Gestorde
Procesos
Un proceso es un programa en ejecución
Un proceso necesita recursos, tales como UCP, memoria,
ficheros, etc., para llevar a cabo su tarea.
El SO tiene la responsabilidad de gestionar los siguientes
aspectos de procesos:
Creación y destrucción.
Suspensión y reanudación.
Proporcionar mecanismos de sincronización y comunicación.
Asignación y mantenimiento de los recursos del proceso.
21. Gestorde
memoria
Memoria: vector enorme de palabras o bytes, cada uno con su
propia dirección.
Compartido por CPU y dispositivos E/S.
Volátil: pierde su contenido si el sistema falla.
El SO tiene la responsabilidad de gestionar los siguientes
aspectos de la memoria:
Mantener un mapa de las partes de memoria en uso y saber
quién las está usando.
Decidir qué procesos se deben cargar, y dónde, cuando hay
memoria disponible.
Asignar y liberar espacio de memoria cuando sea necesario.
22. GestordeE/Sy
almacenamiento
secundario
El gestor de E/S está formado por:
Un sistema global de almacenamiento intermedio en memoria.
Manejadores genéricos, uno por cada clase, de dispositivos.
Manejadores específicos para cada dispositivo.
Almacenamiento secundario no volátil en dispositivos rápidos de
E/S (discos, NAD, etc.) como respaldo de la memoria.
El SO tiene la responsabilidad de gestionar los siguientes aspectos
de la E/S y el almacenamiento secundario:
Traducir peticiones a formato de manejador.
Copiar memoria de/a memoria a/de controlador.
Controlar operaciones por DMA.
Controlar dispositivos de E/S serie: teclado, ratón, etc.
Asignación y liberación de espacio.
Planificación de accesos a los dispositivos
23. Servidorde
ficherosy
directorios
Fichero: conjunto de información lógicamente relacionada y
definida por su creador.
Directorio: conjunto de identificadores lógicos de ficheros y su
relación con identificadores internos del SO.
Ficheros frecuentes: programas (fuentes y ejecutables) y datos.
El SO tiene la responsabilidad de gestionar los siguientes aspectos
del servicio de ficheros:
Creación y borrado de ficheros y directorios.
Primitivas para manipular ficheros y directorios.
Proyectar los ficheros sobre almacenamiento secundario.
Hacer respaldo de ficheros sobre dispositivos estables y no volátiles.
24. Servidorde
proteccióny
seguridad
Protección: controlar accesos a los recursos de usuario y sistema.
El servidor de protección debe:
Distinguir entre uso autorizado y no autorizado.
Especificar los controles de acceso a llevar a cabo.
Proporcionar métodos de control de acceso.
Seguridad: proteger al sistema de un uso indebido.
El servidor de seguridad debe:
Autenticar a los usuarios.
Evitar amenazas al sistema (gusanos, virus, piratas, fuego, etc.)
Evitar la intercepción de comunicaciones: cifrado, canales seguros, etc.
25. Servidorde
comunicaciones
Sistema en red o distribuido: conjunto de procesadores que no
comparten memoria.
Conectados mediante una red de comunicaciones.
Proporciona mecanismos de comunicaciones locales y remotas
para distintos tipos de redes: Ethernet, ATM, telefónica, etc.
Proporciona acceso a recursos de la red, lo que permite:
Acelerar la computación.
Incrementar la disponibilidad de datos.
Mejorar la fiabilidad.
Abaratar el sistema.
Responsabilidad del SO: resolución de nombres,
enrutamiento, conexiones y control de flujo.
Notas del editor
Presentación
Nombre
Gustos programación
Tiempo en programación
Lenguajes programación
Primera vez dando el curso de S.O. en la UCR
Programa que controla la ejecución de programas de aplicaciones, y actúa como una interfaz entre las aplicaciones y el hardware del computador.
Ejecutar programas: Desde la lectura de la aplicación en disco, la asignación de memoria RAM y memoria virtual, asignación de tiempos de procesador, crear la interfaz con el usuario, etc.., el SO se encarga de gestionar cada uno de los pasos necesarios para ejecutar y cargar los programas.
Uso eficiente de recursos: (Memoria, espacio en disco, tiempo de procesador, acceso a dispositivos de E/S, etc..), el SO también reparte y gestiona los recursos necesarios para llevar a cabo la ejecución y descarga de las aplicaciones.
Proporcionar visión de máquina virtual extendida: Se ve el SO como una extensión en forma de una máquina virtual ejecutándose sobre el hardware del computador.
El hardware y software usado para proveer aplicaciones a un usuario puede ser visto en una formato de capas.
Los usuarios de estas aplicaciones (o sea el usuario final) generalmente no está consciente de los detalles del hardware del computador. De este modo el usuario final ve un sistema de computo en términos de un conjunto de aplicaciones.
Una aplicación puede ser expresada en un lenguaje de programación, y es desarrollado por un programador de aplicaciones.
Si se desarrollara un programa de aplicación como un conjunto de instrucciones de máquina que fuese completamente responsable de controlar el hardware del computador, uno se enfrentaría a una tarea abrumadoramente compleja. Para aliviar esta tarea, se provee un conjunto programas de sistema. Algunos de estos programas se conocen como utilidades o librearías de programa Estos implementan funciones de uso frecuente que asisten en la creación de programas, la gestión de archivos, y el control de dispositivos de E/S.
El programador hará uso de estas facilidades en el desarrollo de una aplicación, y la aplicación mientras se ejecuta, invocará las utilidades para llevar a cabo ciertas funciones. La colección más importante de programas del sistema comprende el SO. el sistema operativo enmascara los detalles del hardware del programador, y provee al programador de una interfaz conveniente para el uso del sistema. Actúa como un mediador, haciendo más fácil para el programador y para las aplicaciones de programa, el acceso y utilización de estas facilidades y servicios.
Conveniencia: Vamos a ver al SO como una interfaz entre el usuario y el computador dándonos esa conveniencia en el uso donde podemos mencionar:
Desarrollo de programas: El SO provee una variedad de características y servicios, tales como editores y depuradores para asistir al programador al crear programas. Por lo general, estos servicios se encuentran como programas utilitarios. Aunque no forman parte estricta del núcleo del SO, son facilitados con el SO, y se les conoce como herramientas de desarrollo de aplicaciones de programa
Ejecución de programas: Número de pasos que necesitan llevarse a cabo para ejecutar un programa. Las instrucciones y datos deberán estar cargados en memoria principal, los dispositivos de E/S y archivos deberán ser inicializados, y otros recursos deberán estar preparados. El SO administra estas tareas de planificación para el usuario.
Acceso a Dispositivos E/S: Cada dispositivo de E/S requiere su conjunto propio de instrucciones o señales de control para operar. El SO provee una interfaz uniforme que oculta estos detalles para que el programador pueda tener acceso a tales dispositivos utilizando simples escrituras y lecturas.
Acceso controlado a archivos : Para el acceso a archivos, el SO debe demostrar un entendimiento detallado, no solo de la naturaleza del dispositivo de E/S (discos, cintas, etc…), sino también de la estructura de los datos contenidos en los archivos almacenados en dichos medios. En el caso de un sistema con múltiples usuarios el SO, puede que también facilite mecanismos de protección de control de acceso a archivos.
Acceso al Sistema: Para sistemas compartidos o públicos, el SO controla el acceso al sistema, como un todo y a recursos específicos del sistema. La función de acceso deberá proveer protección a recursos y datos de usuarios no autorizados, y deberá resolver conflictos para la contención de los recursos.
Detección de Errores y repuesta: Pueden ocurrir variedad de errores mientras corre el sistema. Estos errores pueden ser errores de hardware internos o externos, o también errores e software. En cada caso, el SO debe proveer una respuesta que limpie la condición de error con el menor impacto posible para las aplicaciones en ejecución. La respuesta puede ser ya sea detener la aplicación que causó el error, reintento de operaciones, o simplemente reportar el error a la aplicación.
Contabilidad: Un buen SO recolectará estadísticas de uso para varios recursos y monitoreará parámetros de rendimiento tales como tiempos de respuesta. En cualquier sistema esta información es útil para anticipar la necesidad de futuras mejoras y de afinar el sistema para mejorar el rendimiento.
Conjunto de instrucciones de la arquitectura (ISA): Define el repertorio de instrucciones de lenguaje de máquina propios de un computador. Esta interfaz es la frontera entre el hardware y el software. Tanto las aplicaciones de programa como las utilidades pueden tener acceso al ISA de forma directa. Para estos programas un subconjunto del repertorio de instrucciones está disponible (ISA de usuario). El SO tiene acceso a instrucciones adicionales de lenguaje de máquina que tratan con la gestión de recursos del sistema (ISA de Sistema).
Interfaz binaria de Aplicación (ABI): El ABI define un estándar para portabilidad binaria entre programas. El ABI define la interfaz de llamados de sistema al SO, y los recursos de hardware y servicios disponibles en un sistema por medio del ISA de usuario.
Interfaz de Programación de Aplicaciones (API): El API le brinda a las aplicaciones acceso a los recursos de hardware y servicios disponibles en un sistema por medio del ISA de usuario suplementado con llamadas a librerías de lenguajes de alto nivel.
Cualquier llamado de sistema usualmente se lleva a cabo por medio de librerías. Usando una API permite que las aplicaciones puedan ser portadas de forma fácil, por medio de recompilación, a otros sistemas que soportan el mismo API
En la imagen se sugiere los recursos principales que son gestionadas por el SO.
Una porción del S.O. residirá en memoria.
Esto incluye el Kernel o núcleo, el cual contiene las porciones del S.O usadas con más frecuencia, además en determinados tiempos, también otras porciones del SO que se encuentren en uso el momento.
La memoria principal restante contendrá programas de usuario y programas utilitarios, y datos
EL SO y el hardware gestor de memoria en el procesador controlan en conjunto la asignación de memoria.
El SO decide cuando un dispositivo de E/S puede ser usado por una aplicación en ejecución, y controla el acceso y uso de archivos.
El procesador mismo es un recurso, y el SO debe determinar cuando tiempo de procesador será dedicado a la ejecución de un programa de usuario particular.
El SO está formado conceptualmente por 3 capas principales:
- Núcleo o Kernel
- Servicios o llamadas al sistema
- Intérprete de mandatos o shell