El documento trata sobre sistemas operativos. Explica que las llamadas al sistema permiten a las aplicaciones solicitar servicios al sistema operativo y que existen diferentes APIs. Describe la estructura modular de Windows y Linux con subsistemas independientes. Finalmente, cubre conceptos de procesos, estados de procesos, planificación de procesos y algoritmos como FCFS y SJF.
3. Llamadas al Sistema Operativo
• Una llamada de Sistema o System Call, es el
mecanismo (método o función) usado por una
aplicación para solicitar un servicio al sistema
Operativo.
• Todo sistema operativo ofrece un conjunto de llamadas
al sistema.
• Las llamadas a sistemas son accesadas mediante un API
(Interfaz de Programación de Aplicaciones).
• Ejemplos de APIs: Win32/64 para Windows, POSIX
(Interface de Sistema Operativo Portable) para
Unix/Linux, MAC OS X), Java API para JVM (Máquina
Virtual de Java)
5. Estructura Sistemas Operativos
Windows
• Arquitectura a base de componentes con funciones
específicas e independientes.
• Arquitectura cliente/Servidor.
• Núcleo pequeño y simple con módulos integrados
que responden a cualquier llamada. Kernel de
Windows. Modo Privilegiado.
• Modo Usuario es aquel núcleo que sin acceso al
hardware. Subsistemas Win32, POSIX, OS/2.
6. Estructura Sistemas Operativos
Windows
• Subsistema Win32
• Actúa como componente servidor para otros
subsistemas.
• Responsable de las entradas y salidas al sistema
operativo.
• Soporte a otros subsistemas para interactuar con otros
dispositivos.
• Permite la compatibilidad con aplicaciones realizadas en
versiones anteriores: aplicaciones en DOS, aplicaciones
de 16 bits.
7. Estructura Sistemas Operativos
Windows
• Subsistema OS/2
• Subsistema de ficheros
• Permite acceso a subsistemas de video, teclado y ratón.
• Solicita servicios al WIN32
• Subsistema POSIX
• Subsistema para aplicaciones Unix junto con
componentes Shell y cliente Telnet.
8. Estructura de Sistemas Operativos
Linux
• Estructura Jerárquica
• Consiste en una
arquitectura la base de
niveles o capas con
funciones concretas y
especializadas.
• Permite realizar
fácilmente el
mantenimiento de un
sistema operativo
puesto que está divido
por componentes.
• El kernel o núcleo de
Linux es considerado
como el núcleo del
sistema operativo y es
el responsable de la
interacción con el
hardware.
9. Procesos
• Concepto.- Un proceso es un programa en
ejecución.
• Estados de los procesos
• Listo.- está en memoria esperando su turno para
ejecutarse en la CPU.
• En ejecución.- Está usando el procesador
• Bloqueado.- se encuentra detenido sin realizar ninguna
acción, en espera de un evento externo.
10. Transición de estados
1. De ejecución a
bloqueado, pasa
a la espera de un
evento.
2. Expulsión de
proceso de la
CPU.
3. Planificador elige
otro proceso.
4. De Bloqueado a
listo, el evento
que detenía el
proceso finalizó.
11. Planificación de Procesos
• Es la función realizada por el planificador del
sistema operativo.
• Es él quien decide el proceso que se ejecuta
primero si existen más de dos procesos listos para
ejecución.
13. Políticas de Planificación
• Cómo seleccionar el proceso que entrará en ejecución.
• Criterios: prioridad, tiempo de espera, tasa del CPU, etc.
• Cuando se lleva a cabo la planificación.
• Políticas no expulsoras: Se planifica cuando un proceso
abandona la CPU.
• Políticas expulsoras: forza al CPU a abandonar la actual
planificación para seleccionar otro proceso.
• Existencia de una planificación multinivel. Una o más
políticas de planificación.
• El procesador en el cual se está ejecutando el proceso.
14. Objetivos de la Planificación
• Maximizar la eficiencia y el rendimiento.
• Minimizar tiempo de retorno, espera y respuesta
15. Algoritmo Orden de llegada (FCFS)
• First Come, First Served.
• El primero que llega es el primero en ser atendido.
• Se implementa con una cola FIFO.
16. Algoritmo SJF – Primero el más
corto
• Short Job First
• El proceso de menor duración es el primero en ser
atendido.
• Si dos procesos de igual duración llegan, se aplica el
algoritmo FCFS.
• Algoritmo óptimo para tiempos de respuesta,
finalización y espera.
• La planificación SJF puede ser de tipo expulsiva o
no expulsiva.
17. Algoritmo SJF – Primero el
más corto
• No expulsivo
• El proceso más corto en llegar es el primero en ser
atendido.
• Una vez la CPU se libere, tomará al siguiente proceso
más corto de la cola.
• Expulsivo
• Llamado SRTF (Shortest Remaining Time First)
• El proceso en CPU es desalojado si llega a la cola un
proceso con duración más corta.