2. 2
Concepto de sistemas operativos
Sistema Operativo
Puede definir como un conjunto de programas
que permiten una interacción simplificada
entre el usuario y la máquina
Dispositivos físicos
Sistema Operativo
Aplicaciones Usuario
Hardware
3. Hardware(arquitectura von
newman)
Central Processing Unit (CPU). The CPU is
responsible executing programs.
Memory. Memory is used to store both program
instructions and data.
Input/Output (I/O) Devices. The kernel manages
requests from user applications to perform input and
output operations and provides convenient methods for
using each device.
4. Un mundo sin sistema operativo
Al comienzo, el mundo era as
Computación basada en mainframes
Hardware muy complicado y muy heterogeneo
Multitud de recursos que repartir
En aquel contexto
Queremos abstraernos de la complejidad y
heterogeneidad del hardware
Queremos abstraernos de la gestion de recursos
Queremos software de sistema
5. Software del sistema operativo
Creamos una capa sobre el hardware que
nos abstraiga
6. Software del sistema operativo
Interfaz de comando del
usuario
Administrador de
la memoria
Administrador de
archivos
Administrador de red
Administrador de
dispositivos
Administrador del
procesador
7. En resumen
Creamos sistemas operativos para
Abstraernos de la complejidad del hardware
Abstraernos de la heterogeneidad del
hardware
Abstraernos de la complejidad de la gestion
de recursos
8. 8
Concepto de sistemas operativos
El sistema operativo puede ser visto como
Máquina virtual
Dar al usuario la ilusion de disponer de una
máquina mucho mas fácil de utilizar y programar
que la maquina fisica.
Gestor de recursos
Efectuar la gestion de los diversos componentes de
la arquitectura de un computador, imponiendo
orden en la atribucion de recursos a los programas.
Aprovechar el máximo tiempo de los recursos
disponíbles
Tiempo de CPU, memória, etc
9. 9
Procesador y Procesos
Un proceso es basicamente un programa en
ejecucion
En un sistema multi-programado, vários procesos
pueden estar ejecutandose simultaneamente
Sin embargo, cuando existe un solo procesador,
apenas un proceso puede utilizarlo en cada instante
de tiempo.
Los procesos concurren por el procesador y cooperan
entre si para realizar tareas mas complejas
Concepto de sistemas operativos
10. 10
Conceptos y revisiones
Procesador y Procesos
Procesador (CPU)
Elemento activo del sistema que ejecuta procesos
Modo usuario (User Mode)
Dispone un subconjunto de las instrucciones del
CPU. Es en este modo que corren las aplicaciones.
Modo núcleo (Kernel Mode)
Modo privilegiado del procesador, para el cual
todas las instrucciones estan disponíbles.
Solo el Sistema Operativo es que tiene acceso a
este modo
11. 11
Conceptos y revisiones
Memória y Gestion de memória
Division estructurada de la memoria de modo a ser
posible el desplazamiento de diversos programas en
la memoria principal.
Colocacion y Proteccion
Existencia de mecanismos que permitan el
crecimiento de la memória de datos de um programa
Reserva de memória
Gestion del espacio de direccionamiento de modo a
que se pueda tener una capacidad de memória
superior a la de la memória principal (a RAM) –
Memória Virtual
13. 13
Clasificacion de SOs
Multi-usuario
El tiempo de procesamiento del CPU de um
computador puede ser compartido por mas de
un usuario de forma interactiva.
Unix, Linux
Mono-usuario
El CPU solo puede estar dedicado de forma
interactiva a un conjunto de proceso del
mismo usuario.
MS-DOS, todos los Windows
14. 14
Clasificacion de SOs
Multi-programacion
Capacidad de ejecutar vários programas
simultaneamente (en concurrencia)
Unix, Linux, todos os Windows
Mono-programacion / Procesamiento por
lotes
Cada programa monopoliza al procesador
hasta terminar
Spectrum
DOS (parte de los programas residentes)
15. 15
Clasificacion de SOs
Sistemas mono-programados y
sistemas multi-programados
Sistema
Operativo
Programa Programa 1
Dados
Programa 2
Sistema
Operativo
Dados 1
Dados 2
Sistema
Mono-programado
Sistema
Multi-programado
Memória principal Memória principal
16. 16
Clasificacion de SOs
Dedicado
Sistema Operativo diseñado para aplicaciones
específicas
Ejemplos:
Control de una linea de montaje - SOs en tiempo real
Gestion de transacciones en una compania aérea - SOs para
Mainframes
Interface para um telefono móvil – SO embedded
Uso general
Diseñado para una fácil utilizacion.
Permiten la ejecucion de una gran variedad de
programas
Reconocen uma gran diversidad de periféricos
17. 17
Clasificacion de SOs
Centralizado
El Sistema Operativo crea una máquina virtual
sobre un único computador.
Distribuído
El Sistema Operativo que corre sobre un
conjunto de computadores, dando la ilusion de
que este conjunto es una entidad única
Sistemas distribuídos puros
Sistemas en redes
Sistemas multi-processador
18. 18
Modelo de un SO
Monolítico
El ejemplo mas comun de sistema operativo, en el
cual aparentemente no existe estrutura...
cualquier funcion del sistema operativo puede
comunicar con cualquier una de las otras.
19. 19
Modelo de un SO
Capas (Layers)
El SO se encuentra estruturado segun un
conjunto de capas funcionales
Cada capa utiliza servicios de capas que le
son interiores
En suma, cada capa es una máquina virtual
con una interface bien definida
La capa mas baja (gestion de procesos)
corresponde el núcleo del sistema operativo
20. 20
Modelo de un SO
Capas (Layers)
Gestão de processos
Gestão de memória
Comunicação e I/O
Sistema de ficheiros
Chamadas ao sistema
Hardware
Aplicações e utilizadores
21. 21
Modelo de un SO
Modular
El SO se encuentra organizado segun modulos
alrededor del nucleo (kernel)
El nucleo es generalmente pequeño (Mikro-kernel),
comunicando con el hardware y estableciendo la
comunicacion entre los diversos modulos.
Puede introducirse el conceto de proceso cliente y de
proceso servido que corren en modo usuario.
Facilmente adaptable a sistemas distribuidos
Estructura mas estable (Teoricamente)
22. 22
Modelo de un SO
Modular
Micro-Kernel
Chamadas ao sistema
Hardware
Gestão
de
Processos
Gestão
de
Memória
I/O
Sistema
de
Ficheiros
Aplicações e utilizadores
23. 23
Modelo de un SO
Modular (Cliente-Servidor)
Servidor
de
Processos
Servidor
de
Memória
Servidor
de I/O
Servidor
de
Ficheiros
Processo
Cliente
Processo
Cliente
Micro-Kernel
Modo Utilizador
Modo Núcleo
Mensagens
25. Linux: los 2 arboles
Linux consiste en 2 arboles: procesos y archivos
Procesos heredan propiedades de sus padres
Los archivos residen dentro de su directorio padre
26. Sistema de archivos
Una estructura lógica construida dentro de una partición de disco para
gestionar archivos
Se admiten muchos tipos de sistemas de ficheros
Hay un sistema de archivos raíz: la base del árbol de directorios
Un sistema de ficheros de cualquier tipo puede ser montado en un directorio
Gestion de la informacion no volatil almacenada en memoria secundaria
(discos, tapes)
Provee de un nível de abstraccion para que el usuario no se preocupe con los
detalles de la utilizacion de discos, disquetes,etc.
llamadas al sistema: Creacion, borrar, cópiar, escritura y lectura de ficheros
27. Estructura del kernel
El kernel de Linux no es monolítico
Todos los controladores de dispositivos y muchos sub-componentes pueden ser
construidos como módulos, que puede ser con o sin carga, según sea necesario.
Esto permite que un kernel para funcionar de manera eficiente en un montón de
diferentes de hardware.
El proceso de construcción del kernel es increíblemente configurable.
Algunos componentes del kernel pueden ser compilados en:
gestión de la memoria
capa del sistema de archivos virtual
planificador de procesos
El soporte multi-procesador
redes TCP / IP (si se utilizan): Sistemas de ficheros ext3, reiserfs, jfs
soporte para hardware específico: SCSI, DASD, USB, Crypto
Los controladores de red.
Ejemplos de módulos cargados dinámicamente
Sistemas de archivos: ext3, reiserfs, jfs
soporte para hardware específico: SCSI, DASD, USB, Crypto
Los controladores de red
29. Tipos de llamadas al sistema
Control de procesos
•fork(), exit(), wait(), chroot()
•Administración de ficheros
•open(), close(), read(), write, create(), lseek(), readdir(), unlink(),dup(),dup2()
•Administración de dispositivos
•ioctl()
•Información de mantenimiento
•gettimeofday(), profil()
•Comunicaciones
•pipe(), socket(), accept(), bind(), signal()
30. Control de errores en
llamadas al sistema
Las llamadas al sistema tienen valores de
retorno
Cuando se produce un error, se puede
comprobar qué error ha sucedido leyendo
errno
strerror(), perror()
33. Documentación
Man : Abreviatura de manual. Ayuda en línea.
man [selección_manual] nombre_programa
selección manual:
1 Herramientas/comandos del usuario.
2 Llamadas al sistema.
3 Llamadas a bibliotecas.
4 Archivos especiales, información de controladores y
dispositivos.
5 Archivos de configuración (Ej.: /etc/passwd)
6 Juegos.
7 Paquetes (misceláneas).
8 Herramientas de administración del sistema.