Está en la página 1de 29

¿Qué es un sistema operativo?

¿Por qué necesitamos un sistema operativo?

Escribir un programa para ordenar n elementos

Hardware (recurso)
Disk

Input/
CPU Memory Output
Qué es un sistema operativo?
(Vista del usuario)
Un programa que actúa como intermediario entre un
usuario de una computadora y el hardware de la
computadora
Define una interfaz para que el usuario utilice los
servicios proporcionados por el sistema
– Crea un entorno para el usuario
¿Qué es un sistema operativo?
(Vista del usuario)
• Máquina abstracta.
• Oculta detalles complejos del hardware subyacente
• Proporciona una API común a las aplicaciones y servicios
– Simplifica la escritura de aplicaciones.
• Intérprete de comandos.
• Parte de un sistema operativo que entiende y ejecuta
comandos que son ingresados interactivamente por un ser
humano o desde un programa
– Shell.
¿Qué es un sistema operativo?
(Vista del usuario)

Aplicación

Shell

Sistema
operativo

CPU Memory
Video Card Network
Monitor Disk Printer
¿Por qué es importante la abstracción?
• Sin sistemas operativos e interfaces abstractas, los escritores
de aplicaciones deben programar todo el acceso al dispositivo
directamente.
• Cargar códigos de comandos de dispositivo en registros de dispositivos
– comprender las características físicas de los dispositivos

• ¡Las aplicaciones sufren!


• mantenimiento y actualización muy complicados
– sin portabilidad
Qué hacen los sistemas operativos
(Vista del usuario)
Depende del punto de vista
Sistema de usuario único
• Los usuarios quieren comodidad, facilidad de uso
– No te preocupes utilización de recursos

Optimizado para una experiencia


de usuario único
Qué hacen los sistemas operativos
(Vista del usuario)
Depende del punto de vista.
• La computadora compartida, como el
mainframe, debe mantener contentos a todos
los usuarios
• Tiempo de respuesta mínimo Shared CPU,
memory
– Mantén contentos a todos los usuarios
Qué hacen los sistemas operativos
(Vista de sistemas)
El sistema operativo es un asignador de recursos
• Gestiona todos los recursos
– Decide entre solicitudes contradictorias para un
uso eficiente y justo de los recursos
• OS es un programa de control
– Controla la ejecución de programas para evitar
errores y uso indebido del equipo
Concepto de Proceso

• Proceso
– Programa cargado en memoria y en ejecución
– El programa es una entidad pasiva
• El proceso es una entidad activa

10
Tipos de sistemas
• Sistemas por lotes
– Varios trabajos, pero solo un trabajo en la memoria
a la vez y ejecutado (hasta su finalización) antes de
que comience el siguiente

Operating system

User program
Jobs waiting
Tipos de sistemas
• Sistemas multiprogramados
• Múltiples trabajos en memoria, la CPU se
multiplexa entre ellos
• Un solo usuario no puede mantener
ocupados los dispositivos de CPU y E/S en
todo momento
• Cuando tiene que esperar (para E/S, por
ejemplo), el sistema operativo cambia a
otro trabajo
• La multiprogramación organiza los trabajos
(código y datos) para que la CPU siempre
tenga uno para ejecutar
• Un subconjunto del total de trabajos en el
sistema se mantiene en la memoria
– Un trabajo seleccionado y ejecutado a
través de la programación de trabajos
Utilización eficaz de los recursos
• Mala experiencia de usuario
Tipos de sistemas
• Sistemas de tiempo compartido (multitasking)
Extensión lógica de la multiprogramación en la que la CPU cambia de trabajo
con tanta frecuencia que los usuarios pueden interactuar con cada trabajo
mientras se está ejecutando, creando computación interactiva
– Tiempo de respuesta debe ser < 1 second
– Cada usuario tiene al menos un programa ejecutándose en la memoria
– Si varios trabajos están listos para ejecutarse al mismo tiempo  CPU scheduling

Low Response Low Response


time time
Qué hacen los sistemas operativos
(Vista de sistemas)
• El sistema operativo es un asignador de recursos
• Gestiona todos los recursos
– Decide entre solicitudes contradictorias para un uso
eficiente y justo de los recursos

• OS es un programa de control
– Controla la ejecución de programas para evitar
errores y uso indebido del equipo
Administrar recursos
Job 1

Compartir la CPU con varios usuarios


Decidir cuándo asignar CPU a qué usuario
CPU Job 2 (programación de CPU)
1. Garantizar una experiencia de usuario justa
Job 3

Compartir memoria con varios usuarios


diferentes
No debe superponerse
1. Garantizar la protección
Memory
Qué hacen los sistemas operativos
(Vista de sistemas)
• El sistema operativo es un asignador de recursos
• Gestiona todos los recursos
– Decide entre solicitudes contradictorias para un uso
eficiente y justo de los recursos

• OS es un programa de control
– Controla la ejecución de programas para evitar
errores y uso indebido del equipo
Programa de control (Protección)
• Varios trabajos comparten el recurso común
• Con el uso compartido, muchos procesos podrían verse afectados
negativamente por un error en un programa
• Asegúrese de que el error en un programa podría causar problemas solo
para ese programa
J2, J3
– Un trabajo se atasca en un bucle infinito waiting
• Impedir el correcto funcionamiento de otros trabajos
CPU
(J1)

– Un programa erróneo podría modificar otro programa, incluso el


sistema operativo
Incorrect program cannot
cause other programs to
execute incorrectly
Función del sistema operativo

• El sistema informático se puede dividir en cuatro


componentes:
– Hardware: proporciona recursos informáticos básicos
• CPU, memory, I/O devices
– Programas de aplicación: definen las formas en que se utilizan los
recursos del sistema para resolver los problemas informáticos de los
usuarios.
• Procesadores de texto, compiladores, navegadores web, sistemas de bases
de datos, videojuegos
– Usuarios
• Personas, máquinas, otras computadoras
– Sistema operativo
• Controla y coordina el uso de hardware entre diversas aplicaciones y usuarios
Cuatro componentes de un sistema informático
Ejecución del sistema operativo
Impulsado por interrupciones
Hasta que llega una interrupción, el sistema operativo
permanece inactivo
• Interrupción/trampa ISR
– Posibilidad 1---- error
– Posibilidad 2
– El programa de usuario invoca el código del sistema operativo
generando interrupción, llamada al sistema
– Para realizar alguna tarea reservada para el sistema operativo
• Acceso a dispositivos de E/S (lectura, escritura de archivos))
Proporcionar abstracción a través de
llamadas al sistema
Aplicación
Llamadas al sistema: fork(), wait(), read(), open(), write(), mkdir(), kill()

Operating
System
Process
Device Mgmt
Mgmt File System Network
Protection Comm. Kernel
Security

CPU Memory
Video Card Network
Monitor Disk Printer
21
Ejecución del sistema operativo
Impulsado por interrupciones
Hasta que llega una interrupción, el sistema operativo
permanece inactivo
• El programa de usuario invoca el código del sistema
operativo generando interrupción, llamada al sistema
• Para realizar alguna tarea reservada para el sistema operativo
– Acceso a dispositivos de E/S (lectura, escritura de archivos)
• ¿Alguna diferencia en la ejecución entre el usuario y el
programa del sistema operativo?
Operaciones del sistema operativo

• Debe distinguir entre el código de nivel de uso y


el código del sistema operativo

– Modo de usuario y modo kernel


– Bit de modo proporcionado por el hardware

Proporciona la capacidad de distinguir cuándo el sistema está


ejecutando código de usuario o código de kernel
• La llamada al sistema cambia de modo al kernel, el
retorno de la llamada lo restablece al usuario
Arranque del Sistema.

El hardware inicia el modo kernel.

Cargar sistema operativo.

Iniciar aplicación de usuario.

Cambiar al modo usuario.

Cada vez que se produce una interrupción o interrupción, el


hardware cambia al modo de usuario al modo kernel.
Algunas instrucciones designadas como
privilegiadas, solo ejecutables en modo kernel
Proporcionar abstracción a través de
llamadas al sistema
Aplicación
System Calls: fork(), wait(), read(), open(), write(), mkdir(), kill() ...

Operating
System
Process
Device Mgmt
Mgmt File System Network
Protection Comm. Security

CPU Memory
Video Card Network
Monitor Disk Printer
26
Ejemplo de biblioteca C estándar

Programa C que invoca la llamada a la biblioteca


printf(), que llama al sistema write()

Gestión de Procesos
• Un proceso es un programa en ejecución. El programa es una
entidad pasiva, el proceso es una entidad activa.
• El proceso necesita recursos para llevar a cabo su tarea
– Tiempo de CPU
• Representación del proceso
• El proceso tiene un contador de programa que especifica la ubicación de la
siguiente instrucción a ejecutar
– Estructura de datos (almacena información de un proceso)
• Muchos procesos pueden estar asociados con el mismo
programa
• Normalmente, el sistema tiene muchos procesos
• algunos procesos de usuario,
– algunos procesos del sistema operativo
• Ciclo de vida de un proceso
• Estados
– Llegada, Cómputo, E/S, Finalización de E/S, terminación
Actividades de gestión de procesos
El sistema operativo es responsable de las siguientes actividades en
relación con la gestión de procesos:

Creación y eliminación de procesos de usuario y de sistema


Suspensión y reanudación de procesos
Programación de procesos
Proporcionar mecanismos para la sincronización de procesos
Proporcionar mecanismos para la comunicación de procesos
• Proporcionar mecanismos para el manejo de interbloqueos

R1 P1 R1 P1
R2 P2 R2 P2

También podría gustarte