INTRODUCCIÓN A LOS
     SISTEMAS
    OPERATIVOS
   Juan Rafael Álvarez Correa
   jalvarez at debian dot org


            ...
CAPITULOS

■   0 – Arquitectura del computador
■   1 – Introducción a los sistemas operativos
■   2 – Procesos e hilos
■  ...
HISTORIA
■   1940: Sistemas de reservación
       Como reservar un PC en una sala
■   1950: Operadores (humanos)
       ...
SISTEMAS INFORMATICOS
■   Software de aplicación (arriba)
       Resolver problemas concretos (para el usuario)
■   Softw...
SISTEMA OPERATIVO
■   Definición
       “Parte del software de sistema que gestiona el
        uso del hardware para el r...
COMPARTIR
■   Maquina abstracta
       Simulación de un computador real
       Cada programa tiene su maquina abstracta
...
COMPONENTES
■   Gestión de dispositivos
       Proporciona una interfaz independiente,
        usando la interfaz dependi...
GESTION DE DISPOSITIVOS

■   Ocultar las particularidades de los
    dispositivos de entrada y salida al resto del
    sis...
GESTIÓN DE PROCESOS
■   Multiplexar por tiempo la CPU
■   Proceso (activo)
       Programa en ejecución. Esta formado por...
GESTIÓN DE PROCESOS
■   Hilos
       Flujo de ejecución de un proceso que accede a
        los datos del proceso al que p...
GESTIÓN DE MEMORIA
■   Administrar la multiplexación por espacio y
    tiempo de la memoria principal
■   Proporcionar a c...
GESTIÓN DE ARCHIVOS

■   Administrar la multiplexación de espacio de
    los dispositivos de almacenamiento
■   Proporcion...
RECURSOS

■   Componentes fisicos o logicos de la
    maquina abstracta que son necesarios para
    ejecutar un programa
■...
ESTRUCTURA (SEGUN EL NUCLEO)
■   Monolitica -FreeBSD / OpenBSD / Linux-
       Un unico modulo / Muchas abstracciones
■  ...
LLAMADAS AL SISTEMA

■   Mecanismo que permite al software solicitar
    un servicio al nucleo del sistema operativo
■   S...
LLAMADAS AL SISTEMA (POSIX)
■   El software de aplicación invoca una función
    envolvente (fork()...) que ubica:
      ...
LLAMADAS AL SISTEMA (POSIX)

■   Para archivos
       open(...), close(...), read(...), write(...), lseek(...),
        f...
SOFTWARE DE SISTEMA

■   Carga y ejecución de programas
       ld.so (Linker / Loader)
■   Administración de archivos
   ...
INTERPRETE DE COMANDOS

■   Tipos
       Texto (CLI: Command Line Interface)
         ➔   command.com
         ➔   bash
 ...
Próxima SlideShare
Cargando en…5
×

Curso Sistemas Operativos - Unidad Introducción a OS

1.929 visualizaciones

Publicado el

Publicado en: Educación, Tecnología
0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
1.929
En SlideShare
0
De insertados
0
Número de insertados
4
Acciones
Compartido
0
Descargas
0
Comentarios
0
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.

Curso Sistemas Operativos - Unidad Introducción a OS

  1. 1. INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS Juan Rafael Álvarez Correa jalvarez at debian dot org 1
  2. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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

×