Introducción a los Sistemas Operativos - elai.upm.es · Lanzar, parar, información, comunicación...

35
09/03/2011 1 Introducción a los Sistemas Operativos Ingeniería del Software EUITI UPM 2 Índice Introducción Definición Objetivos Niveles Componentes y estructura Arranque del SO Funciones Gestión de procesos Gestión de memoria Comunicación y sincronización entre procesos Gestión E/S Gestión archivos y directorios Seguridad y protección Activación del SO Interfaz del SO Programador Usuario Historia de los SO

Transcript of Introducción a los Sistemas Operativos - elai.upm.es · Lanzar, parar, información, comunicación...

Page 1: Introducción a los Sistemas Operativos - elai.upm.es · Lanzar, parar, información, comunicación y sincronizacion. ... Autoexec.bat en MS-DOS, .login .cshhrc en linux. 09/03/2011

09/03/2011

1

Introducción a los Sistemas Operativos

Ingeniería del Software

EUITI – UPM

2

Índice Introducción

– Definición

– Objetivos

– Niveles

– Componentes y estructura

Arranque del SO

Funciones– Gestión de procesos

– Gestión de memoria

– Comunicación y sincronización entre procesos

– Gestión E/S

– Gestión archivos y directorios

– Seguridad y protección

Activación del SO

Interfaz del SO– Programador

– Usuario

Historia de los SO

Page 2: Introducción a los Sistemas Operativos - elai.upm.es · Lanzar, parar, información, comunicación y sincronizacion. ... Autoexec.bat en MS-DOS, .login .cshhrc en linux. 09/03/2011

09/03/2011

2

3

Definición de SO

Un sistema operativo (SO) es un conjunto de programas o software destinado a permitir la comunicación del usuario con un ordenador y gestionar sus recursos de manera eficiente.

Un sistema operativo es una capa compleja entre el hardware y el usuario, concebible también como una máquina virtual, que facilita al usuario o al programador las herramientas e interfaces adecuadas para realizar sus tareas informáticas, abstrayéndole de los complicados procesos necesarios para llevarlas a cabo.

4

Objetivos de SO

Ejecutar programas y facilitar la solución de los problemas del usuario– Proporcionar una maquina virtual extendida

Hacer un uso conveniente del computador– Usar el computador de forma eficiente

Gestión eficaz de recursos

– Usar el computador de forma segura Gestión de usuarios, seguridad, proteccion.

Capacidad de evolución– Ser capaz de desarrollar, probar e introducir

nueva funcionalidad sin interferir en el servicio.

Page 3: Introducción a los Sistemas Operativos - elai.upm.es · Lanzar, parar, información, comunicación y sincronizacion. ... Autoexec.bat en MS-DOS, .login .cshhrc en linux. 09/03/2011

09/03/2011

3

5

Clasificación SO

Monotarea o monoproceso

Multitarea o multiproceso

Monousuario

Multiusuario

– Obligatoriamente multitarea

– Tb se llama de tiempo compartido

6

Funciones del SO Gestor de recursos (CPU, memoria…)

– Asignación y recuperación de recursos. Mantener estructuras necesarias de recursos libres y ocupados Asignación según disponibilidad y prioridades, resolviendo conflictos.

Recuperación de recursos (garbage collection)

– Protección Programas

Información (usuarios)

– Contabilidad/monitorización Estadísticas, rendimiento, cuotas Futuras mejoras, facturacion.

– Soporte de usuarios Concepto de usuario (uid), grupo (gid). Administrador, superusuario, root. Acceso, cuotas, prioridades, etc.

– Detección y tratamiento de errores Internos y externos (memoria, dispositivos) Software (overflow, acceso a memoria)

Denegación de petición al SO (memoria, etc.)

Ejecución de servicios (Máquina extendida)– Ejecución de programas (procesos)

Lanzar, parar, información, comunicación y sincronizacion.

– Ordenes de E/S Pantalla, puertos…

– Operaciones sobre archivos Creación, borrado, escritura, lectura.

Interfaz de usuario– Shell (interprete de mandatos, NO caracteriza al sistema operativo)

Bucle infinito Alfanuméricas y graficas

Shell script

TAREAS del SO: Ejecución de

procesos Gestor de memoria Comunicación y

sincronización de procesos

Gestor E/S Gestor archivos y

directorios Seguridad y

proteccion Comunicación con el

usuario: interfaz programador y usuario

Page 4: Introducción a los Sistemas Operativos - elai.upm.es · Lanzar, parar, información, comunicación y sincronizacion. ... Autoexec.bat en MS-DOS, .login .cshhrc en linux. 09/03/2011

09/03/2011

4

7

Niveles del SO HAL Kernel (nucleo)

– Memoria ppal.

– Funciones mas frecuentes, gestor de tareas y servicios

– drivers

Servicios– Memoria, seguridad, alimentacion,

procesos, ficheros

API Shell

HAL

Kernel

Servicios

APIs

Shell

Hardware

Usuario Programador

Programas Utilidades

ProgramadorSO

Modo usuario

Modo nucleo

8

Componentes del SO

HAL

Kernel

Servicios

APIs

Shell

Hardware

Programas Utilidades

Modo usuario

Modo nucleo

Kernel (núcleo)– Gestión recursos,

interrupciones y manejo básico de memoria

– drivers

Servicios– Gestión de procesos– Gestión de memoria– Gestión E/S– Gestión de archivos y

directorios– Comunicación y sincronización

de procesos– Seguridad y protección

API– Win32 y POSIX (excluyentes)

Shell– Varios simultáneamente

Page 5: Introducción a los Sistemas Operativos - elai.upm.es · Lanzar, parar, información, comunicación y sincronizacion. ... Autoexec.bat en MS-DOS, .login .cshhrc en linux. 09/03/2011

09/03/2011

5

9

Estructura del SO SO monolíticos

– Un único espacio de direcciones

– Todo se ejecuta en modo núcleo

– Sistemas pequeños que han crecido (MS-DOS y UNIX)

– Complejidad de modificación, desarrollo y depuración (no encapsulacion)

– W2K 32 Millones líneas

SO estructurados– Sistemas por capas

Modularidad y ocultación de la información OS/2

– Modelo cliente-servidor Micronucleo Mensajes

Minix, WinNT (servidores en modo núcleo)

– Desventaja: sobrecarga.

Capa 1: Planificación CPU y multiprogr.

Capa 2: Gestión de Memoria

Capa 3: Gestión E/S

Capa 0: Hardware

Capa 4: Controlador consola

Capa 5: Programas de usuario

10

Ejemplo: NT

Page 6: Introducción a los Sistemas Operativos - elai.upm.es · Lanzar, parar, información, comunicación y sincronizacion. ... Autoexec.bat en MS-DOS, .login .cshhrc en linux. 09/03/2011

09/03/2011

6

11

Índice Introducción

– Definición

– Objetivos

– Niveles

– Componentes y estructura

Arranque del SO

Funciones– Gestión de procesos

– Gestión de memoria

– Comunicación y sincronización entre procesos

– Gestión E/S

– Gestión archivos y directorios

– Seguridad y protección

Activación del SO

Interfaz del SO– Programador

– Usuario

Historia de los SO

12

Arranque del computador

El Reset carga valores predefinidos en registros y el PC apunta al cargador ROM

Se ejecuta el cargador (iniciador) ROM del sistema

– Test Hardware

– Trae a memoria el boot (cargador) del SO

– Salta al boot del SO

En el caso del PC la ROM contiene además software de E/S (BIOS)

Page 7: Introducción a los Sistemas Operativos - elai.upm.es · Lanzar, parar, información, comunicación y sincronizacion. ... Autoexec.bat en MS-DOS, .login .cshhrc en linux. 09/03/2011

09/03/2011

7

13

Arranque sistema operativo

Boot SO en zona predefinida (ej: 4 primeros sectores, MBR)

Convenio entre iniciador ROM y SO sobre ubicación, dirección de arranque y tamaño del cargador del SO– Diskette, CD-ROM, Disco

Verificación mediante contraseña en posición prefijada. El iniciador ROM comprueba que es un cargador de SO.

El cargador del SO puede redireccionar– Múltiples SO (Linux Loader LILO, Grand Unified Bootloader GRUB)

Parametros

– Windows sobreescribe el MBR, que salta directamente al inicio de la partición del sistema.

14

Arranque SO

El cargador ROM carga el sector de boot del SO y le da el control

El boot del SO:– Comprueba el hardware (completa las pruebas del iniciador ROM)

– Comprueba el sistema de archivos Revisar todos los directorios, largo tiempo. Scandisk

– Establece las tablas del SO (procesos, memoria, E/S)

– Se carga el SO residente (siempre en memoria)

– Crea procesos (según el SO) Proceso INIT Procesos o tareas del sistema (demonio) Procesos de login (uno por terminal)

– Tras la autenticación, el proceso login se convierte en shell Monousuario se convierte automáticamente.

– El shell ejecuta archivos de mandatos o shellscripts Autoexec.bat en MS-DOS, .login .cshhrc en linux

Page 8: Introducción a los Sistemas Operativos - elai.upm.es · Lanzar, parar, información, comunicación y sincronizacion. ... Autoexec.bat en MS-DOS, .login .cshhrc en linux. 09/03/2011

09/03/2011

8

15

Índice Introducción

– Definición

– Objetivos

– Niveles

– Componentes y estructura

Arranque del SO

Funciones– Gestión de procesos

– Gestión de memoria

– Comunicación y sincronización entre procesos

– Gestión E/S

– Gestión archivos y directorios

– Seguridad y protección

Activación del SO

Interfaz del SO– Programador

– Usuario

Historia de los SO

16

Gestión de procesos

Definición:– Un proceso es un programa en ejecución

– Una instancia de un programa corriendo

– La unidad de procesamiento gestionada por el SO

– Una entidad que puede ser asignada y ejecutada por el procesador

– Una unidad de actividad caracterizada por el procesamiento secuencial, un estado y un conjunto de recursos.

Page 9: Introducción a los Sistemas Operativos - elai.upm.es · Lanzar, parar, información, comunicación y sincronizacion. ... Autoexec.bat en MS-DOS, .login .cshhrc en linux. 09/03/2011

09/03/2011

9

17

Gestión de procesos

Un proceso necesita recursos: CPU, memoria, ficheros

El SO tiene la responsabilidad de gestionar los procesos:– Creación y destrucción

– Suspensión y reanudacion

Multiproceso (planificación, activación)

Gestionar interrupciones y concurrencia

– Asignación y mantenimiento de los recursos.

– Proporcionar mecanismos de sincronización y comunicación

– Gestionar los interbloqueos.

18

Elementos de un proceso

Ejecutable

Archivos de datos asociados

Contexto del proceso– BCP, tablas memoria, tablas E/S, registros (estado del

procesador)

Page 10: Introducción a los Sistemas Operativos - elai.upm.es · Lanzar, parar, información, comunicación y sincronizacion. ... Autoexec.bat en MS-DOS, .login .cshhrc en linux. 09/03/2011

09/03/2011

10

19

Elementos de un proceso

20

Servicios de procesos

Crear un proceso – solicitado por otro proceso

– A partir de un proceso padre (UNIX) Copia exacta

– A partir de un archivo ejecutable (Win32)

Ejecutar un proceso– Batch (no asociado a terminal, de archivo a archivo)

– Background (demonio, servicios)

– Interactiva

Terminar la ejecución de un proceso– Ha terminado

– Se ha producido una condición de error

– Otro proceso o el usuario (u otro pero con permisos) deciden terminar.

Cambiar el programa que ejecuta un proceso– Sustituir el programa que ejecuta el proceso por otro de disco

(exec de UNIX)

Page 11: Introducción a los Sistemas Operativos - elai.upm.es · Lanzar, parar, información, comunicación y sincronizacion. ... Autoexec.bat en MS-DOS, .login .cshhrc en linux. 09/03/2011

09/03/2011

11

21

Ejemplo: NT

22

Índice Introducción

– Definición

– Objetivos

– Niveles

– Componentes y estructura

Arranque del SO

Funciones– Gestión de procesos

– Gestión de memoria

– Comunicación y sincronización entre procesos

– Gestión E/S

– Gestión archivos y directorios

– Seguridad y protección

Activación del SO

Interfaz del SO– Programador

– Usuario

Historia de los SO

Page 12: Introducción a los Sistemas Operativos - elai.upm.es · Lanzar, parar, información, comunicación y sincronizacion. ... Autoexec.bat en MS-DOS, .login .cshhrc en linux. 09/03/2011

09/03/2011

12

23

Gestión de memoria

Memoria: vector de palabras o bytes cada una con su dirección– Compartido por CPU y dispositivos E/S

– Volatil

El SO tiene la responsabilidad de gestionar la memoria:– Memoria virtual

Mantener un mapa del uso de la memoria

Decidir que procesos se deben cargar y donde cuando hay memoria disponible

Asignar y liberar espacio de memoria cuando sea necesario

– Ofrecer servicios para que los procesos puedan compartir memoria.

24

Servicios de gestión de memoria

Solicitar memoria– Aumenta el espacio de datos del proceso, en caso posible

(SO), devolviendo un apuntador que se utiliza como referencia relativa

Liberar memoria– Vuelve a añadir a la lista de memoria libre

Compartir memoria– Los procesos pueden crear y liberar este tipo de

segmentos de memoria

Problemas:– Apuntadores inválidos (error fatal)

– Perdida de memoria (memory leak, no fatal pero acumulativo)

Page 13: Introducción a los Sistemas Operativos - elai.upm.es · Lanzar, parar, información, comunicación y sincronizacion. ... Autoexec.bat en MS-DOS, .login .cshhrc en linux. 09/03/2011

09/03/2011

13

25

Ejemplo: NT

26

Índice Introducción

– Definición

– Objetivos

– Niveles

– Componentes y estructura

Arranque del SO

Funciones– Gestión de procesos

– Gestión de memoria

– Comunicación y sincronización entre procesos

– Gestión E/S

– Gestión archivos y directorios

– Seguridad y protección

Activación del SO

Interfaz del SO– Programador

– Usuario

Historia de los SO

Page 14: Introducción a los Sistemas Operativos - elai.upm.es · Lanzar, parar, información, comunicación y sincronizacion. ... Autoexec.bat en MS-DOS, .login .cshhrc en linux. 09/03/2011

09/03/2011

14

27

Comunicación y sincronización entre procesos

Un proceso es un ente independiente y aislado

Cuando se divide una tarea compleja en distintos procesos, es necesario que se comuniquen y que se sincronicen.

Estos mecanismos deben dar solución a este problema sin violar la seguridad.

Cadenas de bytes o estructuras, que deben convenir e interpretar los propios procesos

Tipos– Locales– Remotos

28

Servicios de comunicación y sincronización

Servicios de comunicación:– Crear el mecanismo– Enviar datos a un proceso– Recibir datos de un proceso– Destruir el servicio

Servicios de sincronizacion– Crear el mecanismo– Bloquear un proceso hasta que ocurra un evento– Despertar a un proceso bloqueado– Destruir el mecanismo

Page 15: Introducción a los Sistemas Operativos - elai.upm.es · Lanzar, parar, información, comunicación y sincronizacion. ... Autoexec.bat en MS-DOS, .login .cshhrc en linux. 09/03/2011

09/03/2011

15

29

Tipos de comunicación

Síncrona

– Los dos procesos han de ejecutar los servicios de comunicación al mismo tiempo

Asíncrona

– No tienen que ejecutar los servicios al mismo tiempo

30

Índice Introducción

– Definición

– Objetivos

– Niveles

– Componentes y estructura

Arranque del SO

Funciones– Gestión de procesos

– Gestión de memoria

– Comunicación y sincronización entre procesos

– Gestión E/S

– Gestión archivos y directorios

– Seguridad y protección

Activación del SO

Interfaz del SO– Programador

– Usuario

Historia de los SO

Page 16: Introducción a los Sistemas Operativos - elai.upm.es · Lanzar, parar, información, comunicación y sincronizacion. ... Autoexec.bat en MS-DOS, .login .cshhrc en linux. 09/03/2011

09/03/2011

16

31

Gestión E/S

Objetivos

– Facilitar la tarea de los dispositivos periféricos

Interfaz sencilla, uniforme

Gestión de errores.

– Ofrecer mecanismos de protección que impidan a los usuarios acceder sin control

32

Gestión E/S

El gestor E/S esta formado por:– Un sistema global de almacenamiento intermedio en

memoria

– Manejadores genéricos, uno por cada clase de dispositivo– Manejadores específicos para cada dispositivo

Almacenamiento secundario no volátil en dispositivos (disco)

El SO tiene la responsabilidad de gestionar la E/S y el almacenamiento secundario:– Traducir peticiones a formato de manejador

– Copiar memoria de/a memoria de controlador

– Controlar operaciones por DMA

– Controlar dispositivos de E/S serie: teclado, ratón, etc.

– Asignación y liberación de espacio– Planificación de accesos a los dispositivos.

Page 17: Introducción a los Sistemas Operativos - elai.upm.es · Lanzar, parar, información, comunicación y sincronizacion. ... Autoexec.bat en MS-DOS, .login .cshhrc en linux. 09/03/2011

09/03/2011

17

33

Servicios de E/S

Servicios orientados a caracteres:

– Impresoras, terminales

Servicios orientados a bloques

– La operación de E/S se hace sobre un bloque de información.

– Discos

Independencia del acceso a los dispositivos modelándolos como archivos especiales

– \dev\

34

Ejemplo: NT

Page 18: Introducción a los Sistemas Operativos - elai.upm.es · Lanzar, parar, información, comunicación y sincronizacion. ... Autoexec.bat en MS-DOS, .login .cshhrc en linux. 09/03/2011

09/03/2011

18

35

Índice Introducción

– Definición

– Objetivos

– Niveles

– Componentes y estructura

Arranque del SO

Funciones– Gestión de procesos

– Gestión de memoria

– Comunicación y sincronización entre procesos

– Gestión E/S

– Gestión archivos y directorios

– Seguridad y protección

Activación del SO

Interfaz del SO– Programador

– Usuario

Historia de los SO

36

Gestión de archivos y directorios

Objetivos– Facilitar la tarea de los dispositivos periféricos, ofreciendo

una visión lógica simplificada de los mismos.

– Proteger a los usuarios poniendo limitaciones a los archivos que es capaz de manejar un usuario.

2 tipos:– Archivos (datos)

– Directorios (nombres)

2 visiones:– Visión lógica

– Visión física

Page 19: Introducción a los Sistemas Operativos - elai.upm.es · Lanzar, parar, información, comunicación y sincronizacion. ... Autoexec.bat en MS-DOS, .login .cshhrc en linux. 09/03/2011

09/03/2011

19

37

Gestión de archivos y directorios

Archivo: conjunto de información lógicamente relacionada y definida por su creador

Directorio: conjunto de identificadores lógicos de archivos y su relación con identificadores internos del SO

Archivos frecuentes: programas (fuentes y ejecutables) y datos.

El SO tiene la responsabilidad de gestionar los siguientes aspectos:– Creación y borrado de archivos y directorios

– Primitivas para manipular archivos y directorios.– Proyectar los ficheros sobre almacenamiento secundario.

38

Visión lógica del sistema de archivos Archivo: Informacion asociada a un nombre

– Tipo de archivo (datos, ejecutable…)– Propietario (usuario) y grupo del usuario– Tamaño del archivo. Menor que el espacio de disco asignado, ya que el

ultimo bloque puede quedar a mitad.– Instantes (fecha y hora)

Creación

Modificación

Ultimo acceso

– Derechos de acceso (lectura, escritura, ejecucion)

Page 20: Introducción a los Sistemas Operativos - elai.upm.es · Lanzar, parar, información, comunicación y sincronizacion. ... Autoexec.bat en MS-DOS, .login .cshhrc en linux. 09/03/2011

09/03/2011

20

39

Visión lógica de un archivo

Vector de bytes

– Flexibilidad

Puntero de posicion

40

Visión física de un archivo

Elementos físicos del periférico

– Enumeración ordenada de los bloques en los que reside el archivo

– Bloque (numero prefijado de sectores, potencia de 2) vs. Sector

Estructura de información que recoja esta información: descripción física

– FAT en MS-DOS y nodo-i en UNIX

– Residen en el propio disco, para que sea autocontenido.

El servidor de archivos encuentra e interpreta estas estructuras

Page 21: Introducción a los Sistemas Operativos - elai.upm.es · Lanzar, parar, información, comunicación y sincronizacion. ... Autoexec.bat en MS-DOS, .login .cshhrc en linux. 09/03/2011

09/03/2011

21

41

Servicios de archivos Aplicadas a la visión lógica:

– Crear un archivo => int creat(const char*path int oflag) Vacio

Interpretación del nombre

Permisos

Devuelve un identificador del archivo (abierto)

– Abrir un archivo => int open(const char*path int oflag) Nombre

Permisos

Devuelve un identificador del archivo (abierto)

– Escribir y leer (de memoria a fichero) write(int file, void*b, size_t num) Utilizan el identificador en lugar del nombre

Utilizan el puntero (fscanf)

– Cerrar un archivo Elimina identificador y libera recursos

– Borrar un archivo int unlink(const char* path) Borra su nombre, marca libres los bloques de datos y la metainformacion.

Vida de un archivo Se crea un archivo

– Se abre: se genera un descriptor de archivo

Se escribe y lee (puede crecer)– Se cierra

Se borra

42

Esquema jerárquico de un directorio Directorio es un objeto que relaciona un nombre con un

archivo

Nombre->Archivo univoca– Archivo ->Nombre puede ser múltiple (link)

Visión lógica: jerarquía facilita esta unicidad– Caminos relativos y absolutos (., .. /)

Visión física: Archivo de nombres-identificadores

Page 22: Introducción a los Sistemas Operativos - elai.upm.es · Lanzar, parar, información, comunicación y sincronizacion. ... Autoexec.bat en MS-DOS, .login .cshhrc en linux. 09/03/2011

09/03/2011

22

43

Servicios de directorios

Crear un directorio– mkdir vs. int mkdir(const char*path, mode_t mode)

Borrar un directorio– rmdir vs. int rmdir(const char*path)

Abrir un directorio– DIR* opendir (const char* dirname);

Leer un directorio

Cambiar directorio– int chdir(const char* path)

Directorio actual– int getcwd(const char* current_dir,int tam)

Cerrar un directorio– int closedir(DIR* dirp)

44

Índice Introducción

– Definición

– Objetivos

– Niveles

– Componentes y estructura

Arranque del SO

Funciones– Gestión de procesos

– Gestión de memoria

– Comunicación y sincronización entre procesos

– Gestión E/S

– Gestión archivos y directorios

– Seguridad y protección

Activación del SO

Interfaz del SO– Programador

– Usuario

Historia de los SO

Page 23: Introducción a los Sistemas Operativos - elai.upm.es · Lanzar, parar, información, comunicación y sincronizacion. ... Autoexec.bat en MS-DOS, .login .cshhrc en linux. 09/03/2011

09/03/2011

23

45

Seguridad y protección

Protección: controlar accesos a los recursos de usuario y sistema– Garantizar la identidad del usuario: autenticación

– Definir lo que puede hacer: privilegios.– Definir el acceso a archivos: permisos.

El servidor de protección debe:– Distinguir entre uso autorizado y no autorizado

– Especificar los controles de acceso a llevar a cabo

– Auditoria de acceso.

Seguridad: proteger al sistema de un uso indebido– Evitar amenazas al sistema (gusanos, virus, piratas)

– Evitar la intercepción de comunicaciones: (cifrado, canales seguros, etc)

46

Índice Introducción

– Definición

– Objetivos

– Niveles

– Componentes y estructura

Arranque del SO

Funciones– Gestión de procesos

– Gestión de memoria

– Comunicación y sincronización entre procesos

– Gestión E/S

– Gestión archivos y directorios

– Seguridad y protección

Activación del SO

Interfaz del SO– Programador

– Usuario

Historia de los SO

Page 24: Introducción a los Sistemas Operativos - elai.upm.es · Lanzar, parar, información, comunicación y sincronizacion. ... Autoexec.bat en MS-DOS, .login .cshhrc en linux. 09/03/2011

09/03/2011

24

47

Activación de los servicios del SO

Fuentes de las peticiones:– Mandatos de los usuarios interpretados por el shell

– Llamadas al sistema emitidas por los programas

– Interrupciones producidas por los periféricos

– Reloj del computador

– Condiciones de excepción o error del hardware

Forma de solicitar los servicios:– Por llamada -> problema de seguridad

– Por interrupción o trap

Rutina de biblioteca– Instrucciones maquina que preparan la llamada al SO

48

Fases en la activación del SO

Page 25: Introducción a los Sistemas Operativos - elai.upm.es · Lanzar, parar, información, comunicación y sincronizacion. ... Autoexec.bat en MS-DOS, .login .cshhrc en linux. 09/03/2011

09/03/2011

25

49

Servicios del SO

Los servicios se programan mediante funciones de la interfaz en un lenguaje (C)

Interfaz => biblioteca de sistema que prepara la solicitud del servicio con un conjunto de instrucciones que terminan con una instrucción de trap

El trap, como toda interrupción es tratada por el SO

El SO realiza el servicio pedido y devuelve un valor

Ejemplo

50

Paso de llamadas al sistema

Page 26: Introducción a los Sistemas Operativos - elai.upm.es · Lanzar, parar, información, comunicación y sincronizacion. ... Autoexec.bat en MS-DOS, .login .cshhrc en linux. 09/03/2011

09/03/2011

26

51

Paso de parámetros a las llamadas

Tres métodos genéricos para pasar parámetros a las llamadas al sistema:– En registros– En una tabla de memoria, cuya dirección se pasa

al SO en un registro– Poner los parámetros en la pila del programa y

dejar que el SO los extraiga

Cada SO proporciona sus propias llamadas al sistema:– Estándar POSIX en UNIX y LINUX– Win32 en WindowsNT.

52

Índice Introducción

– Definición

– Objetivos

– Niveles

– Componentes y estructura

Arranque del SO

Funciones– Gestión de procesos

– Gestión de memoria

– Comunicación y sincronización entre procesos

– Gestión E/S

– Gestión archivos y directorios

– Seguridad y protección

Activación del SO

Interfaz del SO– Programador

– Usuario

Historia de los SO

Page 27: Introducción a los Sistemas Operativos - elai.upm.es · Lanzar, parar, información, comunicación y sincronizacion. ... Autoexec.bat en MS-DOS, .login .cshhrc en linux. 09/03/2011

09/03/2011

27

53

Interfaz del programador

Recupera los servicios del sistema que los usuarios pueden utilizar desde sus programas.– Solo una parte del SO

Una de las partes mas importantes: la maquina extendida.– POSIX

– Win32

54

POSIX Interfaz de sistemas operativos portables de

IEEE basado en UNIX– Año 96. UNIX estandar industrial. Portabilidad

(fuentes) entre las distintas implementaciones de UNIX (Solaris, IRIX, Linux, etc) y distintas plataformas

– Familia de estándares (no implementación) en evolución. 1003.1 Servicios básicos del SO

1003.1a Extensiones a los servicios básicos

1003.1b Extensiones de tiempo real

1003.1c Extensiones de procesos ligeros

1003.2 Shell y utilidades

1003.2b Utilidades adicionales

ISO/IEC 9945

Page 28: Introducción a los Sistemas Operativos - elai.upm.es · Lanzar, parar, información, comunicación y sincronizacion. ... Autoexec.bat en MS-DOS, .login .cshhrc en linux. 09/03/2011

09/03/2011

28

55

Características POSIX

Nombres cortos y en minúsculas– fork

– read

– close

Algunos tipos de datos no se definen en el estándar, sino en la implementación <sys/types.h>

Funciones devuelven 0 en caso de éxito o -1 en caso de error, almacenando el error en la variable errno definida en <errno.h>

Los recursos gestionados por el sistema operativo se referencian mediante descriptores (enteros>=0)

56

Win32

Servicios ofrecidos por Windows 95/98, NT y 2000 por Microsoft (no es un estándar), totalmente distinto a POSIX– Los recursos se referencian con manejadores (No POO).

– Nombres largos y descriptivos GetFileAttributes

CreateNamedPipe

– Tipos de datos predefinidos BOOL (32 bits, valor logico)

DWORD (unsigned int de 32 bits)

TCHAR (tipo carácter de 2 bytes)

LPSTR (puntero a una cadena de caracteres)

– Los tipos predefinidos evitan usar el operador indirección (LPSTR=*TCHAR)

– Notación tipo húngara lpszFileName (puntero largo a cadena acabada en cero)

– Las funciones devuelven true o false

Page 29: Introducción a los Sistemas Operativos - elai.upm.es · Lanzar, parar, información, comunicación y sincronizacion. ... Autoexec.bat en MS-DOS, .login .cshhrc en linux. 09/03/2011

09/03/2011

29

57

Índice Introducción

– Definición

– Objetivos

– Niveles

– Componentes y estructura

Arranque del SO

Funciones– Gestión de procesos

– Gestión de memoria

– Comunicación y sincronización entre procesos

– Gestión E/S

– Gestión archivos y directorios

– Seguridad y protección

Activación del SO

Interfaz del SO– Programador

– Usuario

Historia de los SO

58

Interfaz de usuario

Ejecutar un programa o borrar un archivo sin programar.– Además de servicios (programador) debe permitir dar

instrucciones (ej. Borrar archivo) de modo interactivo (texto “rm” o grafico)

Ha sufrido gran evolución, debido a la expansión de las computadoras en personal no informático– Interfaz alfanuméricaGrafica

– Evolución de la integración con el núcleo. Integrado No integrado

EL SISTEMA OPERATIVO SE CARACTERIZA POR LOS SERVICIOS QUE PROPORCIONA Y SU FUNCIONALIDAD, NO POR SU INTERFAZ (que puede ser diferente)

Page 30: Introducción a los Sistemas Operativos - elai.upm.es · Lanzar, parar, información, comunicación y sincronizacion. ... Autoexec.bat en MS-DOS, .login .cshhrc en linux. 09/03/2011

09/03/2011

30

59

Interfaz de usuario No hay acuerdo sobre que programas forman parte de la

interfaz del sistema (IE)

Funciones– Manipulación de archivos y directorios

– Ejecución de programas

– Herramientas de desarrollo de aplicaciones (ensamblador)

– Comunicación con otros sistemas (ftp y telnet, no IE)

– Información del estado (fecha, memoria disponible)

– Configuración de la propia interfaz y entorno (idioma, teclado)

– Intercambio de datos entre aplicaciones

– Control de acceso (contraseña)

– Sistema de ayuda interactivo

– Interfaz de administrador

Tipos:– Alfanuméricas (interpretes de comandos)

– Graficas

60

Interprete de mandatos

Programa cuya función es obtener los mandatos del usuario y ordenar su ejecución al sistema operativo

Hay dos tipos básicos:– Interpretes de mandatos internos

– Interpretes de mandatos externos

Casi todos los mandatos son sentencias de controlpara los gestores del SO descritos (procesos, E/S, ficheros, protección y comunicaciones)

Puede haber múltiples interpretes de mandatos sobre el mismo SO -> la visión del mismo SO cambia según el usado. Ejemplo: POSIX sobre Windows o Win32 sobre Linux

Espera un comando (con sus argumentos) definido por un retorno de carro, lo ejecuta y vuelve a mostrar el “prompt”

Page 31: Introducción a los Sistemas Operativos - elai.upm.es · Lanzar, parar, información, comunicación y sincronizacion. ... Autoexec.bat en MS-DOS, .login .cshhrc en linux. 09/03/2011

09/03/2011

31

61

Interprete mandatos internos

MS-DOS (command.com) algunos externos, DISKCOPY

62

Interprete mandatos externos

El anterior puede ser muy grande

Unix Shells, excepto algunos comandos como cambiar de directorio

Page 32: Introducción a los Sistemas Operativos - elai.upm.es · Lanzar, parar, información, comunicación y sincronizacion. ... Autoexec.bat en MS-DOS, .login .cshhrc en linux. 09/03/2011

09/03/2011

32

63

Shell script

Archivos de texto que contienen comandos ejecutables por el interprete de mandatos

– Secuencial

– No binario

– Admite IF, GOTO

– Debe tener permiso ejecución

chmod a+x MiScript

64

Interfaz grafica Graphical user interface, GUI

– Usuarios no especialistas

– Potencia del PC.– Xerox PARC (Alto), Apple, Unix X, por ultimo MS-DOS

(Windows)

Características– Ventanas, iconos y menús

– Internamente Gestor de ventanas

Administrador de programas (arrancar aplicaciones)

Gestor de archivos

Herramienta de configuración (de la interfaz)

Otros– Intercambio de datos entre aplicaciones (copiar y pegar)

– Ayuda interactiva

– API grafica

– Acceso a la interfaz alfanumérica

Page 33: Introducción a los Sistemas Operativos - elai.upm.es · Lanzar, parar, información, comunicación y sincronizacion. ... Autoexec.bat en MS-DOS, .login .cshhrc en linux. 09/03/2011

09/03/2011

33

65

Índice Introducción

– Definición

– Objetivos

– Niveles

– Componentes y estructura

Arranque del SO

Funciones– Gestión de procesos

– Gestión de memoria

– Comunicación y sincronización entre procesos

– Gestión E/S

– Gestión archivos y directorios

– Seguridad y protección

Activación del SO

Interfaz del SO– Programador

– Usuario

Historia de los SO

66

Historia de los SO

Prehistoria (años 40)– Primeras computadoras– No existían SO– El programa se codificaba a mano y se

introducía mediante tarjetas perforadas– Impresión en cinta– Trabajos en serie

Primera generacion (años 50)– Los trabajos siguen ejecutandose en serie.– Se procesan trabajos por lotes, con mecanismos

rapidos de cambio entre trabajos, y recuperacion en caso de que un trabajo acabe en error. JCL

– Rutinas E/S (manejadores de dispositivos)

Page 34: Introducción a los Sistemas Operativos - elai.upm.es · Lanzar, parar, información, comunicación y sincronizacion. ... Autoexec.bat en MS-DOS, .login .cshhrc en linux. 09/03/2011

09/03/2011

34

67

Historia SO

Segunda generación (años 60)– Aparece el concepto de multiprogramación

– Aparecen conceptos Multiprocesador

Independencia del dispositivo

Tiempo compartido (interactividad)

– Rodajas

Sistemas de tiempo real

– Sistemas CTSS MIT

MULTICS, MIT y laboratorios BELL, origen de UNIX

68

Historia SO

Tercera generación (años 70)– Sistemas de propósito general

Por lotes

Multiprogramación

Tiempo compartido

Modo multiprocesador

– Caracterizados Complejidad SO

Dificultad de aprendizaje

Recursos

– UNIX (v6) se reescribe en C

– BSD => sockets y memoria virtual

– Solaris, IRIX.

Page 35: Introducción a los Sistemas Operativos - elai.upm.es · Lanzar, parar, información, comunicación y sincronizacion. ... Autoexec.bat en MS-DOS, .login .cshhrc en linux. 09/03/2011

09/03/2011

35

69

Historia SO

Cuarta generacion (años 80->actual)

– SO para PC (MS-DOS, Windows y LINUX)

– Aparecen SO de tiempo real (QNX)

– Procesamiento distribuido

SO distribuidos (Mach, Amoeba)

Middleware (CORBA, DCOM)

– Interfaces de programacion (POSIX)