0% encontró este documento útil (0 votos)
7 vistas24 páginas

Trabajo de Sistemas Operativos

El documento proporciona una visión general de los sistemas operativos, su función como intermediarios entre usuarios y hardware, y su gestión de recursos. Se describen diferentes tipos de sistemas operativos, procesos, hilos, y llamadas al sistema, así como sus características y ejemplos. Además, se discuten temas como la eficiencia, el desempeño y la conveniencia del usuario en la administración de sistemas operativos.

Cargado por

Carlos Rivero
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
7 vistas24 páginas

Trabajo de Sistemas Operativos

El documento proporciona una visión general de los sistemas operativos, su función como intermediarios entre usuarios y hardware, y su gestión de recursos. Se describen diferentes tipos de sistemas operativos, procesos, hilos, y llamadas al sistema, así como sus características y ejemplos. Además, se discuten temas como la eficiencia, el desempeño y la conveniencia del usuario en la administración de sistemas operativos.

Cargado por

Carlos Rivero
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

Maturín 29 De Marzo Del 2025

SISTEMAS
OPERATIVOS

Estudiantes: Profesor:
Wolfang Ruiz Luis
Dimas
José Betancourt
Visión General de los Sistemas operativos
El Sistema Operativo y el Sistema de Cómputo
Un sistema operativo (SO) es un software esencial que
gestiona los recursos de hardware y software de un sistema
de cómputo, proporcionando servicios a los programas y
usuarios. Actúa como intermediario entre los usuarios y el
hardware, facilitando la ejecución de programas, la gestión
de archivos y la comunicación entre procesos.
El sistema de cómputo incluye componentes como la CPU,
memoria, dispositivos de entrada/salida (E/S) y
almacenamiento. El SO controla estos recursos para
asegurar un funcionamiento eficiente y seguro. La
interacción entre el SO y el hardware se realiza a través de
interrupciones y llamadas al sistema, permitiendo al SO
responder a eventos y gestionar recursos de manera
efectiva.
La Eficiencia, el Desempeño de Sistema y la Conveniencia
del Usuario
 Eficiencia: Un SO debe utilizar los recursos del sistema
de manera eficiente, minimizando el desperdicio y
maximizando el rendimiento. Esto incluye la gestión de
la CPU, memoria y dispositivos de E/S.
 Desempeño del Sistema: Se refiere a la capacidad del
SO para manejar múltiples tareas simultáneamente sin
degradar significativamente el rendimiento. Un buen
desempeño asegura que los recursos se utilicen de
manera óptima.
 Conveniencia del Usuario: El SO debe proporcionar
una interfaz amigable y herramientas que faciliten la
interacción del usuario con el sistema. Esto incluye la
facilidad de uso, la accesibilidad y la capacidad de
respuesta del sistema.
Los Sistemas de Procesos por Lotes
Los sistemas de procesos por lotes son uno de los primeros
tipos de sistemas operativos. En estos sistemas, los trabajos
se ejecutan en secuencia sin interacción del usuario. El SO
recoge los trabajos, los procesa y devuelve los resultados.
Este enfoque es eficiente para tareas que no requieren
interacción en tiempo real, pero no es adecuado para
aplicaciones interactivas.
Tipos de Sistemas Operativos
1. Sistemas de Procesos por Lotes: Ejecutan trabajos en
secuencia sin interacción del usuario.
2. Sistemas de Tiempo Compartido: Permiten a múltiples
usuarios interactuar con el sistema simultáneamente,
compartiendo el tiempo de CPU entre ellos.
3. Sistemas de Tiempo Real: Diseñados para aplicaciones
que requieren respuestas inmediatas y predecibles,
como sistemas de control industrial.
4. Sistemas Distribuidos: Gestionan recursos y tareas
distribuidos en múltiples computadoras conectadas en
red.
5. Sistemas de Multiprogramación: Permiten la ejecución
simultánea de múltiples programas, mejorando la
utilización de los recursos del sistema.

Procesos y los Hilos


Los Procesos y los Programas
 Programa: Es un conjunto de instrucciones
almacenadas en un archivo ejecutable.
 Proceso: Es una instancia de un programa en
ejecución. Incluye el código del programa, datos,
recursos y el estado actual de ejecución.
Los Procesos desde el Punto de Vista de un Programador
Desde la perspectiva de un programador, un proceso es una
entidad que puede ejecutar instrucciones, manejar datos y
comunicarse con otros procesos. Los programadores
utilizan APIs y librerías para crear y gestionar procesos,
asegurando que se ejecuten de manera eficiente y segura.
Los Procesos; una Visión desde los Sistemas Operativos
El SO ve un proceso como una unidad de trabajo que debe
ser gestionada. Esto incluye la asignación de recursos, la
planificación de la CPU y la protección contra interferencias
de otros procesos. El SO utiliza estructuras de datos como
tablas de procesos para rastrear el estado y los recursos de
cada proceso.
Los Procesos Interactuantes: una Vista Avanzada del
Programador de los Procesos
Los procesos interactuantes son aquellos que se comunican
y sincronizan entre sí para lograr una tarea común. Esto se
realiza mediante mecanismos como semáforos, colas de
mensajes y memoria compartida. Los programadores deben
asegurarse de que estos procesos se sincronicen
correctamente para evitar condiciones de carrera y
bloqueos mutuos.
Los Hilos
Un hilo es una unidad de ejecución más ligera dentro de un
proceso. Múltiples hilos pueden compartir los mismos
recursos del proceso, como memoria y archivos abiertos,
pero pueden ejecutarse de manera concurrente. Esto
permite una mayor eficiencia y reactividad en aplicaciones
que requieren múltiples tareas simultáneas.
Procesos e Hilos Trabajando como un Equipo de Cómputo
En un sistema moderno, los procesos e hilos trabajan juntos
para realizar tareas complejas. Los procesos pueden
dividirse en múltiples hilos para aprovechar los
procesadores multinúcleo, mejorando el rendimiento y la
eficiencia. La comunicación y sincronización entre procesos
e hilos son cruciales para asegurar que las tareas se
completen de manera coordinada y eficiente.
Los Archivos
Los archivos son una forma fundamental de
almacenamiento en un sistema de cómputo. Permiten a los
usuarios y programas almacenar, recuperar y manipular
datos de manera persistente. El SO gestiona los archivos a
través de un sistema de archivos, que organiza y controla el
acceso a los datos almacenados en dispositivos de
almacenamiento.
El Shell
El shell es una interfaz de línea de comandos que permite a
los usuarios interactuar con el sistema operativo.
Proporciona una manera de ejecutar comandos, scripts y
programas, y de gestionar archivos y procesos. Los shells
modernos, como Bash y PowerShell, ofrecen características
avanzadas como la finalización automática de comandos,
historial de comandos y scripting.
Estos temas proporcionan una base sólida para entender
cómo funcionan los sistemas operativos y cómo interactúan
con el hardware y los usuarios. Son esenciales para
cualquier estudiante o profesional en el campo de la
informática.
Llamadas al Sistema
Llamada para la Administración de Procesos
Las llamadas al sistema para la administración de procesos
permiten a los programas crear, gestionar y terminar
procesos. Estas llamadas son esenciales para la ejecución de
programas y la gestión de recursos en un sistema operativo.

Ejemplos de Llamadas:
fork(): Crea un nuevo proceso duplicando el proceso
actual.
exec(): Reemplaza el espacio de direcciones del proceso
actual con un nuevo programa.
wait(): Espera a que un proceso hijo termine.
exit(): Termina el proceso actual y devuelve un código de
estado.

Llamada para la Señalización


Las llamadas al sistema para la señalización permiten a los
procesos comunicarse entre sí y manejar eventos
asincrónicos, como interrupciones y señales.

Ejemplos de Llamadas:
signal(): Establece un manejador para una señal
específica.
kill(): Envía una señal a un proceso.
sigaction(): Define acciones específicas para señales.

Llamada para la Administración de Archivos


Las llamadas al sistema para la administración de archivos
permiten a los programas crear, leer, escribir y eliminar
archivos en el sistema de archivos.

Ejemplos de Llamadas:
open(): Abre un archivo y devuelve un descriptor de
archivo.
read(): Lee datos de un archivo.
write(): Escribe datos en un archivo.
close(): Cierra un archivo.

Llamada para la Administración de Directorios


Las llamadas al sistema para la administración de directorios
permiten a los programas crear, eliminar y gestionar
directorios en el sistema de archivos.

Ejemplos de Llamadas:
mkdir(): Crea un nuevo directorio.
rmdir(): Elimina un directorio vacío.
chdir(): Cambia el directorio de trabajo actual.
Llamada para Protección
Las llamadas al sistema para protección permiten a los
programas gestionar permisos y accesos a recursos del
sistema, como archivos y dispositivos.

Ejemplos de Llamadas:
chmod(): Cambia los permisos de un archivo.
chown(): Cambia el propietario de un archivo.
access(): Verifica los permisos de acceso a un archivo.
Llamada para la Administración del Tiempo
Las llamadas al sistema para la administración del tiempo
permiten a los programas obtener y establecer la hora del
sistema y medir intervalos de tiempo.
Ejemplos de Llamadas:
time(): Obtiene la hora actual del sistema.
settimeofday(): Establece la hora del sistema.
alarm(): Programa una señal para ser enviada después de
un intervalo de tiempo.

Estructura del Sistema Operativo

Sistemas Monolíticos
En un sistema operativo monolítico, todas las funciones del
sistema operativo se ejecutan en el mismo espacio de
direcciones del kernel. Esto permite una comunicación
rápida entre componentes, pero puede llevar a una mayor
complejidad y dificultad en el mantenimiento.

Ejemplos:
Linux (antes de la versión 2.5)
Tradicionales sistemas Unix

Sistemas por Capas


En un sistema operativo por capas, el sistema se divide en
múltiples capas, cada una construida sobre la capa inferior.
Cada capa proporciona un conjunto de servicios a la capa
superior.

Ejemplos:
THE (Dijkstra)
MULTICS

Máquinas Virtuales
Las máquinas virtuales permiten ejecutar múltiples sistemas
operativos en una sola máquina física. Cada máquina virtual
se ejecuta en un entorno aislado, lo que proporciona
seguridad y flexibilidad.

Ejemplos:
VMware
VirtualBox

Modelo Cliente-Servidor
En el modelo cliente-servidor, los servicios del sistema
operativo se proporcionan a través de la comunicación
entre clientes y servidores. Los clientes solicitan servicios y
los servidores los proporcionan.

Ejemplos:
Windows (servicios de red)
Sistemas de archivos distribuidos (NFS)

Temas y Puntos Clave para Desarrollar


Visión General de los Sistemas Operativos

Investigación:
Comparar definiciones de Sistema Operativo según
autores.

Andrew S. Tanenbaum y Albert S. Woodhull en "Sistemas


Operativos: Diseño e Implementación" definen un sistema
operativo como un programa que actúa como intermediario
entre los usuarios y el hardware de la computadora.
Proveen servicios como la administración de recursos y una
interfaz de usuario.
Dhananjay M. Dhamdhere en "Sistemas Operativos: Un
Enfoque Basado en Conceptos" define un sistema operativo
como un software que controla el uso de los recursos de un
sistema de cómputo para satisfacer los requerimientos
computacionales de los usuarios, asegurando la
conveniencia, calidad de servicio y seguridad.
Analizar cómo un Sistema Operativo equilibra eficiencia,
desempeño y conveniencia para el usuario.

Un sistema operativo debe equilibrar la eficiencia en el uso


de recursos, el desempeño del sistema y la conveniencia
para el usuario. La eficiencia se refiere a minimizar el uso de
recursos como CPU y memoria. El desempeño se relaciona
con la rapidez y capacidad de respuesta del sistema. La
conveniencia para el usuario implica facilidad de uso y
accesibilidad.
Clasificar tipos de Sistemas Operativos (por lotes, tiempo
real, distribuidos, móviles) y ejemplos actuales.

Sistemas por lotes: Procesan trabajos en secuencia sin


interacción del usuario. Ejemplo: Sistemas de
procesamiento de transacciones bancarias.
Sistemas de tiempo real: Deben responder a eventos en
tiempo real. Ejemplo: Sistemas de control de tráfico aéreo.
Sistemas distribuidos: Los recursos y procesos están
distribuidos en múltiples nodos. Ejemplo: Sistemas de
computación en nube.
Sistemas móviles: Optimizados para dispositivos móviles
con recursos limitados. Ejemplo: Android, iOS.

Proponer un caso de estudio: ¿Cómo afecta el algoritmo de


planificación de procesos al rendimiento en sistemas por
lotes?

Caso de Estudio: Algoritmo de Planificación en Sistemas por


Lotes

En sistemas por lotes, el algoritmo de planificación de


procesos puede afectar significativamente el rendimiento.
Por ejemplo, el algoritmo de planificación "First Come, First
Served" (FCFS) puede ser ineficiente si los trabajos tienen
diferentes tiempos de ejecución. Un algoritmo más eficiente
podría ser el "Shortest Job Next" (SJN), que selecciona el
trabajo más corto disponible, reduciendo el tiempo
promedio de espera y mejorando el rendimiento general del
sistema.

Otros Casos de Estudio:


Impacto de la Planificación en Sistemas de Tiempo Real:
Analizar cómo diferentes algoritmos de planificación
afectan la capacidad de respuesta en tiempo real en
sistemas de control industrial.
Eficiencia de la Planificación en Sistemas Distribuidos:
Estudiar cómo la planificación de procesos en sistemas
distribuidos puede mejorar la utilización de recursos y el
rendimiento global.

Procesos e Hilos
Investigación:
Explicar la diferencia entre proceso y programa desde la
perspectiva del SO y del programador.

Desde la perspectiva del SO:

Proceso: Una entidad activa que representa una instancia


de un programa en ejecución. El SO gestiona procesos
asignando recursos y planificando su ejecución.
Programa: Un conjunto de instrucciones pasivas
almacenadas en disco.
Desde la perspectiva del programador:

Proceso: Una ejecución de un programa con su propio


espacio de direcciones y recursos.
Programa: El código fuente o ejecutable que se puede
ejecutar como un proceso.

Documentar cómo se gestionan hilos en sistemas


multihilo.

En sistemas multihilo, los hilos son unidades de ejecución


más ligeras dentro de un proceso. Comparten el mismo
espacio de direcciones y recursos, pero tienen su propio
contador de programa y pila. El SO gestiona hilos
planificando su ejecución y sincronizando su acceso a
recursos compartidos.
Analizar ventajas de los hilos frente a procesos
(comunicación, overhead).

Ventajas de los hilos:


Comunicación: Los hilos comparten el mismo espacio de
direcciones, lo que facilita la comunicación y el intercambio
de datos.
Overhead: La creación y eliminación de hilos es
generalmente más rápida y consume menos recursos que la
de procesos.

Desventajas de los hilos:

Sincronización: Requiere mecanismos adicionales para


evitar condiciones de carrera y asegurar la consistencia de
datos compartidos.

Diseñar un experimento para medir el overhead de


creación/eliminación de procesos vs. hilos en Linux.

Experimento: Medición de Overhead en Linux

Objetivo: Comparar el overhead de creación y eliminación


de procesos y hilos en Linux.
Metodología:
Escribir un programa en C que crea y elimina múltiples
procesos e hilos.
Medir el tiempo de creación y eliminación usando la
función clock_gettime().
Repetir el experimento varias veces para obtener un
promedio.
Resultados Esperados: Se espera que la creación y
eliminación de hilos sea más rápida y consuma menos
recursos que la de procesos.

Llamadas al Sistema
Investigación:
Clasificar llamadas al sistema según su propósito (archivos,
procesos, señales).

Llamadas al sistema para archivos:


open(): Abrir un archivo.
read(): Leer datos de un archivo.
write(): Escribir datos en un archivo.
close(): Cerrar un archivo.

Llamadas al sistema para procesos:


fork(): Crear un nuevo proceso.
exec(): Reemplazar el proceso actual con un nuevo
programa.
exit(): Terminar un proceso.

Llamadas al sistema para señales:


kill(): Enviar una señal a un proceso.
sigaction(): Establecer la acción para una señal.

Analizar ejemplos concretos: fork(), exec(), open(), kill().

fork(): Crea una copia del proceso actual. El proceso


original y el nuevo proceso continúan ejecutándose
concurrentemente.
exec(): Reemplaza el proceso actual con un nuevo
programa, manteniendo el mismo PID.
open(): Abre un archivo y devuelve un descriptor de
archivo.
kill(): Envía una señal a un proceso para terminarlo o
realizar alguna acción específica.
Estos ejemplos ilustran cómo las llamadas al sistema
permiten a los programas interactuar con el SO para realizar
tareas específicas y gestionar recursos.

También podría gustarte