Usos y desusos de la inteligencia artificial en revistas científicas
Curso Sistemas Operativos - Unidad Introducción a OS
1. INTRODUCCIÓN A LOS
SISTEMAS
OPERATIVOS
Juan Rafael Álvarez Correa
jalvarez at debian dot org
1
2. CAPITULOS
■ 0 – Arquitectura del computador
■ 1 – Introducción a los sistemas operativos
■ 2 – Procesos e hilos
■ 3 – Comunicación, concurrencia y bloqueos
■ 4 – Gestión de memoria
■ 5 – Entrada y salida
■ 6 – Gestión de archivos y directorios
■ 7 – Seguridad y protección
■ 8 – Sistemas distribuidos
2
3. HISTORIA
■ 1940: Sistemas de reservación
Como reservar un PC en una sala
■ 1950: Operadores (humanos)
Trabajos (programas autosuficientes, no
interactivos) priorizados por humanos
■ 1960: Sistemas de procesamiento por lotes
El trabajo del operador automatizado
Multiprogramados (politica de desalojo)
■ 1970: Sistemas de tiempo compartido
Interactivo
■ 1980: Computadores personales 3
4. SISTEMAS INFORMATICOS
■ Software de aplicación (arriba)
Resolver problemas concretos (para el usuario)
■ Software de sistema
Suministra un ambiente general para construir
software de aplicación (para el usuario)
➔ Sistema gestor de bases de datos
➔ Sistema de ventanas
➔ Sistema operativo
- Shell
- Bibliotecas
- Nucleo (Se ejecuta en modo privilegiado)
■ Hardware (abajo) 4
5. SISTEMA OPERATIVO
■ Definición
“Parte del software de sistema que gestiona el
uso del hardware para el resto del software de
sistema y todo el software de aplicación”
■ Objetivos
Abstraer: “Proporcionar abstracciones
autonomas para el software de aplicación”
Compartir: “Compartir el hardware de forma
ordenada”
■ Requisitos
Eficiencia:
➔ Minimizar el uso de los recursos 5
6. COMPARTIR
■ Maquina abstracta
Simulación de un computador real
Cada programa tiene su maquina abstracta
■ Multiplexación de espacio
Dividir el recurso en 2 o mas unidades
diferentes
➔ Memoria: Realizada por el planificador de mediano
plazo
■ Multiplexación de tiempo
Uso exclusivo por tiempo limitado
➔ CPU (aka multiprogramación): Realizada por el
planificador de corto plazo 6
7. COMPONENTES
■ Gestión de dispositivos
Proporciona una interfaz independiente,
usando la interfaz dependiente de dispositivos
■ Gestión de procesos
Realiza la multiplexación por tiempo de la CPU
con la abstracción: motor de ejecución
■ Gestión de memoria
Multiplexa por espacio y tiempo la memoria
principal con la abstracción: memoria virtual
■ Gestión de archivos
Multiplexa por espacio la memoria secundaria
con la abstracción: archivo 7
8. GESTION DE DISPOSITIVOS
■ Ocultar las particularidades de los
dispositivos de entrada y salida al resto del
sistema operativo
■ Componentes
Administración de memoria
➔ Spooling
➔ Buffers
➔ Cache
Interfaz general de manejadores de dispositivos
Controladores especificos de dispositivos
8
9. GESTIÓN DE PROCESOS
■ Multiplexar por tiempo la CPU
■ Proceso (activo)
Programa en ejecución. Esta formado por:
➔ Instrucciones + Datos (estaticos y automaticos) +
Recursos (Archivos)
Ejecutado por el motor de ejecución
➔ Contiene la pila y el estado de cada proceso
■ Funciones
Crear, eliminar, suspender y continuar procesos
Suministrar mecanimos para la
➔ Sincronización, comunicación y evitar los bloqueos
mutuos 9
10. GESTIÓN DE PROCESOS
■ Hilos
Flujo de ejecución de un proceso que accede a
los datos del proceso al que pertenece
■ Multihilo
Un sistema es multihilo si un proceso puede
tener 2 o mas hilos simultaneamente (varios
motores de ejecución por proceso)
Los hilos de un mismo proceso comparten:
➔ Los datos
Los hilos de un mismo proceso pueden
ejecutarse a ritmos diferentes, por ende tiene:
➔ Pila y estado separados para cada hilo 10
11. GESTIÓN DE MEMORIA
■ Administrar la multiplexación por espacio y
tiempo de la memoria principal
■ Proporcionar a cada proceso la abstracción
de memoria virtual
■ Llevar un registro de
Las partes de la memoria utilizadas
El propietario de las partes utilizadas
■ Decidir que procesos...
se cargan en memoria fisica cuando este
disponible
se retiran de memoria cuando esta es escaza
11
12. GESTIÓN DE ARCHIVOS
■ Administrar la multiplexación de espacio de
los dispositivos de almacenamiento
■ Proporcionar la abstracción de archivo
“Flujo lineal de bytes con un nombre asociado
que se almacena en un dispositivo”
■ Funciones
Crear, eliminar y manipular archivos y directorios
■ Usualmente utilizado para modelar otras
abstracciones del sistema operativo
UNIX: /dev/hda /dev/ttyS0 /dev/tty
12
13. RECURSOS
■ Componentes fisicos o logicos de la
maquina abstracta que son necesarios para
ejecutar un programa
■ Solicitud implicita
Memoria virtual: Cuando se lanza un proceso
Motor de ejecución: Listo para ejecutarse
■ Solicitud explicita:
Archivos
■ Un proceso solicita un recurso y si esta no
esta disponible, espera hasta que lo este
13
14. ESTRUCTURA (SEGUN EL NUCLEO)
■ Monolitica -FreeBSD / OpenBSD / Linux-
Un unico modulo / Muchas abstracciones
■ Modular -Ningunco comercial, Choices-
Varios modulos (interfaces claras entre ellos)
■ Extensible (aka Micronucleo) -Mach / L4-
Un unico modulo / Pocas abstracciones
■ Estratificada -THE-
Varios modulos organizados jerarquicamente (k
usa k-1). Analogo a OSI.
■ Exokernel -XOK-
0 abstracciones / Esquema de penalización 14
15. LLAMADAS AL SISTEMA
■ Mecanismo que permite al software solicitar
un servicio al nucleo del sistema operativo
■ Se utilizan excepciones de tipo trap
(programadas)
int 0x80 (Linux: 290 syscalls – ver entry.S)
int 0x21 (Windows: 2000 syscalls)
■ Bibliotecas envolventes
POSIX (Incluido en libc)
➔ man syscalls (varias envolturas usan la misma
syscall)
Windows API Base Services (Win32 API)
15
16. LLAMADAS AL SISTEMA (POSIX)
■ El software de aplicación invoca una función
envolvente (fork()...) que ubica:
... en los registros los parametros de la syscall
... en un registro ubica el identificador de la
syscall
Invoca la instrucción trap (excepción de tipo
trap)
■ Ahora en modo privilegiado (nucleo), el ISR
de la excepción se ejecuta y:
Identifica la syscall que se esta invocando
Determina el código del nucleo responsable de
ejecutar la syscall (sys_*)
16
17. LLAMADAS AL SISTEMA (POSIX)
■ Para archivos
open(...), close(...), read(...), write(...), lseek(...),
fcntl(...)
■ Para manipulación de procesos
fork(...), execve(...), exit(...), wait(...)
■ Para memoria virtual
mmap(...)
17
18. SOFTWARE DE SISTEMA
■ Carga y ejecución de programas
ld.so (Linker / Loader)
■ Administración de archivos
mkdir
■ Información de estado
ps / netstat
■ Modificación de archivos
cat / less / more / vi
■ Comunicaciónes
ifconfig / ping / traceroute 18
19. INTERPRETE DE COMANDOS
■ Tipos
Texto (CLI: Command Line Interface)
➔ command.com
➔ bash
➔ csh
➔ ksh
Grafico (GUI: Graphical User Interface)
➔ Gnome
➔ KDE
➔ CDE
➔ Windows Explorer
19