Documentos de Académico
Documentos de Profesional
Documentos de Cultura
operativos avanzados
Un sistema operativo es un software de sistema, es decir, un conjunto
de programas de computación destinados a realizar muchas tareas entre
las que destaca la administración eficaz de sus recursos.
2. Administración de recursos
Sirven para administrar los recursos de hardware y de redes de un sistema
informático, como el CPU, memoria, dispositivos de almacenamiento secundario y
periféricos de entrada y de salida.
Funciones básicas
3. Administración de archivos
Un sistema de información contiene programas de administración de archivos que
controlan la creación, borrado y acceso de archivos de datos y de programas. También
implica mantener el registro de la ubicación física de los archivos en los discos
magnéticos y en otros dispositivos de almacenamiento secundarios.
4. Administración de tareas
Los programas de administración de tareas de un sistema operativo administran la
realización de las tareas informáticas de los usuarios finales. Los programas controlan
que áreas tiene acceso al CPU y por cuánto tiempo. Las funciones de administración
de tareas pueden distribuir una parte específica del tiempo del CPU para una tarea en
particular, e interrumpir al CPU en cualquier momento para sustituirla con una tarea
de mayor prioridad.
Funciones básicas
5. Servicio de soporte
Los servicios de soporte de cada sistema operativo dependerán de la implementación
particular de éste con la que estemos trabajando. Entre las más conocidas se pueden
destacar las implementaciones de Unix, desarrolladas por diferentes empresas de
software, los sistemas operativos de Apple Inc., como Mac OS X para las
computadoras de Apple Inc., los sistemas operativos de Microsoft, y las
implementaciones de software libre, como GNU/Linux o BSD producidas por
empresas, universidades, administraciones públicas, organizaciones sin fines de lucro
y/o comunidades de desarrollo.
Servicios de soporte
Estos servicios de soporte suelen consistir en:
• Actualización de versiones.
• Mejoras de seguridad.
• Inclusión de alguna nueva utilidad (un nuevo entorno gráfico, un asistente para
administrar alguna determinada función, ...).
• Controladores para manejar nuevos periféricos (este servicio debe coordinarse a
veces con el fabricante del hardware).
• Corrección de errores de software.
• Otros.
No hay un acuerdo universal sobre una definición de proceso, pero sí algunas definiciones
aceptadas:
• Un programa que se está ejecutando.
• Una actividad asincrónica.
• El emplazamiento del control de un procedimiento que está siendo ejecutado.
• Aquello que se manifiesta por la existencia en el Sistema Operativo de un bloque de control de
proceso.
• Aquella entidad a la cual son asignados los procesadores.
• La unidad despachable.
Caracteristicas del Modelo de procesos
• Todo el software ejecutable, inclusive el Sistema Operativo, se organiza en varios
procesos secuenciales o procesos.
• Un proceso incluye al programa en ejecución y a los valores activos del contador,
registros y variables del mismo.
• Conceptualmente cada proceso tiene su propia CPU virtual.
• Si la CPU alterna entre los procesos, la velocidad a la que ejecuta un proceso no será
uniforme, por lo que es necesario aclarar lo siguiente:
o Que los procesos no deben programarse con hipótesis implícitas acerca del
tiempo.
o Que normalmente la mayoría de los procesos no son afectados por la
multiprogramación subyacente de la CPU o las velocidades relativas de
procesos distintos.
• Un proceso es una actividad de un cierto tipo, que tiene un programa, entrada,
salida y estado.
• Un solo procesador puede ser compartido entre varios procesos con cierto
“algoritmo de planificación”, el cual determina cuándo detener el trabajo en un
proceso y dar servicio a otro distinto.
Multiprogramación de cuatro
programas
Jerarquías de procesos
En cuanto a las jerarquías de procesos es necesario señalar que los Sistemas
Operativos deben disponer de una forma de crear y destruir procesos cuando se
requiera durante la operación, teniendo además presente que los procesos pueden
generar procesos hijos mediante llamadas al Sistema Operativo, pudiendo darse
ejecución en paralelo.
Respecto de los estados del proceso deben efectuarse las siguientes consideraciones:
• Cada proceso es una entidad independiente pero frecuentemente debe interactuar
con otros procesos
Estados de procesos
• Los procesos pueden bloquearse en su ejecución porque:
o Desde el punto de vista lógico no puede continuar porque espera datos
que aún no están disponibles.
o El Sistema Operativo asignó la CPU a otro proceso.
• Los estados que puede tener un proceso son:
o En ejecución: utiliza la CPU en el instante dado.
o Listo: ejecutable, se detiene en forma temporal para que se ejecute otro
proceso.
o Bloqueado: no se puede ejecutar debido a la ocurrencia de algún evento
externo.
• Son posibles cuatro transiciones entre estos estados.
Estados de procesos
Durante su existencia un proceso pasa por una serie de estados discretos, siendo
varias las circunstancias que pueden hacer que el mismo cambie de estado.
Debido a ello se puede establecer una “Lista de Listos” para los procesos “listos” y una
“Lista de Bloqueados” para los “bloqueados”.
Cuando el Sistema Operativo cambia la atención de la CPU entre los procesos, utiliza
las áreas de preservación del PCB para mantener la información que necesita para
reiniciar el proceso cuando consiga de nuevo la CPU.
Estados de procesos
Los sistemas que administran los procesos deben poder crear, destruir, suspender,
reanudar, cambiar la prioridad, bloquear, despertar y despachar un proceso.
Un proceso puede “crear un nuevo proceso”, en cuyo caso el proceso creador se denomina
“proceso padre” y el proceso creado “proceso hijo” y se obtiene una “estructura jerárquica
de procesos”.
Acceder al hardware directamente puede ser realmente complejo, por lo que los
núcleos suelen implementar una serie de abstracciones del hardware. Esto permite
esconder la complejidad, y proporciona una interfaz limpia y uniforme al hardware
subyacente, lo que facilita su uso para el programador.
Funciones y componentes del núcleo
Esquema básico de la interacción entre un Núcleo, el resto del Software
(los programas de aplicación, las bases de datos, etc.) y el Hardware.
Funciones y componentes del núcleo
El “núcleo” del Sistema Operativo controla todas las operaciones que implican
procesos y representa solo una pequeña porción del código de todo el Sistema
Operativo pero es de amplio uso.
• Manipulación de interrupciones.
• Creación y destrucción de procesos.
• Cambio de estados de procesos.
• Despacho.
• Suspensión y reanudación de procesos.
• Sincronización de procesos.
• Comunicación entre procesos.
• Manipulación de bloques de control de proceso.
• Soporte de las actividades de Entrada / Salida.
• Soporte de la asignación y des asignación de almacenamiento.
• Soporte del sistema de archivos.
• Soporte de un mecanismo de llamada / regreso al procedimiento.
• Soporte de ciertas funciones contables (estadísticas) del sistema.
Funciones y componentes del núcleo
Una visión típica de la arquitectura de computadores como una serie de capas de
abstracción: hardware, firmware, lenguaje de máquina, núcleo, software de sistema y
aplicaciones.
Funciones y componentes del núcleo
En informática, el núcleo de un sistema operativo, es el programa informático que se
asegura de:
El núcleo tiene grandes poderes sobre la utilización de los recursos materiales (hardware),
en particular, de la memoria.
Tipos de núcleo
No necesariamente se necesita un núcleo para usar una computadora. Los programas
pueden cargarse y ejecutarse directamente en una computadora «vacía», siempre que sus
autores quieran desarrollarlos sin usar ninguna abstracción del hardware ni ninguna ayuda
del sistema operativo.
Ésta era la forma normal de usar muchas de las primeras computadoras: para usar
distintos programas se tenía que reiniciar y reconfigurar la computadora cada vez. Con el
tiempo, se empezó a dejar en memoria (aún entre distintas ejecuciones) pequeños
programas auxiliares, como el cargador y el depurador, o se cargaban desde memoria de
sólo lectura. A medida que se fueron desarrollando, se convirtieron en los fundamentos de
lo que llegarían a ser los primeros núcleos de sistema operativo.
Tipos de núcleo
Hay cuatro grandes tipos de núcleos:
• Los núcleos híbridos (micro núcleos modificados) son muy parecidos a los micro núcleos
puros, excepto porque incluyen código adicional en el espacio de núcleo para que se
ejecute más rápidamente.
• Los exonúcleos no facilitan ninguna abstracción, pero permiten el uso de bibliotecas que
proporcionan mayor funcionalidad gracias al acceso directo o casi directo al hardware.
Algoritmos de planificación del procesador
Planificación de Procesos
Cuando más de un proceso es ejecutable desde el punto de vista lógico, el Sistema
Operativo debe decidir cuál de ellos debe ejecutarse en primer término.
Criterios Descripción
Equidad Garantizar que cada proceso obtiene su
proporción justa de la CPU.
Eficacia Mantener ocupada la CPU el ciento por
ciento del tiempo.
Tiempo de respuestas Minimizar el tiempo de respuesta para
los usuarios interactivos.
Tiempo de regreso Minimizar el tiempo que deben esperar
los usuarios por lotes (batch) para
obtener sus resultados.
Rendimiento Maximizar el número de tareas
procesadas por hora.
Criterios de un buen algoritmo de planificación
Algunas de estas metas son contradictorias, por ejemplo, minimizar el tiempo de
respuesta para los usuarios interactivos significaría no ejecutar las tareas batch.
Para evitar que un proceso se apropie de la CPU un tiempo excesivo, los equipos poseen
un dispositivo que provoca una interrupción en forma periódica, por ejemplo 60 hz, o sea
sesenta veces por segundo.
En cada interrupción del reloj el Sistema Operativo decide si el proceso que se está
ejecutando continúa o si el proceso agotó su tiempo de CPU y debe suspenderse y ceder la
CPU a otro proceso.
Planificación del procesador
Los principales conceptos relacionados con Planificación del Procesador son el siguiente:
• La ejecución del trabajo de plazo fijo no debe producir una grave degradación del
servicio a otros usuarios.
El sistema debe tener un registro del tiempo de CPU que cada proceso ha tenido desde su
entrada al sistema y del tiempo transcurrido desde esa entrada.
Con los datos anteriores y el registro de procesos en curso de ejecución, el sistema calcula
y determina qué procesos están más alejados por defecto de la relación “1 / n” prometida
y prioriza los procesos que han recibido menos CPU de la prometida.
Tipos de planificación
Planificación del Primero en Entrar Primero en Salir (FIFO)
Es muy simple, los procesos se despachan de acuerdo con su tiempo de llegada a la cola
de listos.
Una vez que el proceso obtiene la CPU, se ejecuta hasta terminar, ya que es una disciplina
“no apropiativa”.
Puede ocasionar que procesos largos hagan esperar a procesos cortos y que procesos no
importantes hagan esperar a procesos importantes.
La apropiación de un proceso a punto de terminar por otro de menor duración recién llegado
podría significar un mayor tiempo de cambio de contexto (administración del procesador) que
el tiempo de finalización del primero.
Los procesos de alta prioridad podrían ejecutar indefinidamente, ya que el planificador del
sistema puede disminuir la prioridad del proceso en ejecución en cada interrupción del
reloj.
Las prioridades también pueden ser asignadas dinámicamente por el sistema para lograr
ciertas metas relacionadas con el procesador o la Entrada / Salida.
Un algoritmo sencillo consiste en establecer que la prioridad sea “1 / f”, donde “f” es la fracción
del último cuanto utilizado por el proceso.
Un proceso que utilice 2 mseg (dos milisegundos) de su cuanto de 100 mseg (cien milisegundos)
tendrá prioridad 50 (cincuenta).
Si el trabajo termina o abandona la CPU para esperar por la terminación de una operación
de Entrada / Salida o la terminación de algún otro suceso, el trabajo abandona la red de
línea de espera.
Generalmente hay una cola en la parte más profunda a través de la cual el proceso circula en
asignación de rueda hasta que termina.
Existen esquemas en los que el cuanto otorgado al proceso aumenta a medida que el proceso
se mueve hacia las colas de los niveles inferiores, en tal caso, cuanto más tiempo haya estado el
proceso en la red de línea de espera, mayor será su cuanto cada vez que obtiene la CPU y no
podrá obtener la CPU muy a menudo debido a la mayor prioridad de los procesos de las colas
superiores.
Un proceso situado en una cola dada no podrá ser ejecutado hasta que las colas de los niveles
superiores estén vacías. Un proceso en ejecución es apropiado por un proceso que llegue a una
cola superior.