so ii tema 1. introducción - página de germán...

117
Sistemas Operativos II (II-UJI) Introducción 1 S S O O II II II II Tema 1. Introducción Índice Introducción Taxonomía de los Sistema Operativos (SO) Introducción al SO Linux Introducción al SO Windows NT/2000 Introducción al SO Minix

Upload: dangtruc

Post on 24-Apr-2018

217 views

Category:

Documents


3 download

TRANSCRIPT

Sistemas Operativos II (II-UJI) Introducción1

SS OOIIIIIIII

Tema 1. Introducción

Índice

n Introducción

n Taxonomía de los Sistema Operativos (SO)

n Introducción al SO Linux

n Introducción al SO Windows NT/2000

n Introducción al SO Minix

Sistemas Operativos II (II-UJI) Introducción2

SS OOIIIIIIII

Tema 1. Introducción

Índice (cont.)

n Introducción3 Concepto de SO3 Modo supervisor vs. Modo usuario3 Llamadas al sistema3 Interrupciones3 El intérprete de comandos de Unix

l Conceptol Ficheros de identificación de usuariosl Ficheros de configuración de cuentas de usuariosl Variables del entorno y del intérprete de comandosl Gestión de aliasl Entrecomilladol Expresiones regulares y filtrosl Algunas órdenes de propósito general

Sistemas Operativos II (II-UJI) Introducción3

SS OOIIIIIIII

Tema 1. Introducción

Índice (cont.)

n Introducción al SO Linux3 Evolución histórica de Linux3 Software de libre distribución3 Características de Linux3 Núcleo de Linux3 Arranque de Linux

Sistemas Operativos II (II-UJI) Introducción4

SS OOIIIIIIII

Tema 1. Introducción

Índice (cont.)

n Introducción al SO Windows NT/20003 Evolución histórica de Windows NT3 Características de Windows NT3 Estructura de Windows NT3 Modelo de objetos de Windows NT

Sistemas Operativos II (II-UJI) Introducción5

SS OOIIIIIIII

Tema 1. Introducción

Índice (cont.)

n Introducción al SO Minix3 Estructura del SO Minix3 Núcleo de Minix

Sistemas Operativos II (II-UJI) Introducción6

SS OOIIIIIIII

Bibliografía

n J. Carretero et al. Sistemas Operativos: Una Visión Aplicada. McGraw-Hill. 2001. Temas 1, 2, 11 y 12

n A. Silbertschatz, P. Galvin. Sistemas Operativos. Adison-Wesley. 1999. Temas 1, 2, 3, 22 y 23

n W. Stallings. Sistemas Operativos. Prenctice-Hall. 2001. Temas 1 y 2

n J.M. Badía, M.A. Castaño, J. Llach, R. Mayo. Introducción Práctica al Sistema Operativo UNIX. Servicio de Publicaciones de la UJI, n°23. 1996. Tema 5 y 8-12

n H. Custer. Inside Windows NT. Microsoft Press. 1993. Temas 1 y 2

n A.S. Tanenbaum, A.S. Woodnull. Operating Systems. Design and Implementation. Prentice-Hall International, 2a. edición. 1996

Tema 1. Introducción

Sistemas Operativos II (II-UJI) Introducción7

SS OOIIIIIIII

Tema 1. Introducción

Índice

n Introducción3 Concepto de Sistema Operativo (SO)3 Modo supervisor vs. Modo usuario3 Llamadas al sistema3 Interrupciones3 El intérprete de comandos

n Taxonomía de los SOs

n Introducción al SO Linux

n Introducción al SO Windows NT/2000

*

Sistemas Operativos II (II-UJI) Introducción8

SS OOIIIIIIIIConcepto de SO

n Perspectiva abstracta de un Sistema de Información:

HW

aplicaciónde

Programas

Gestión de

ficherosGestión de procesos

Librerías

SO

trap

trap

trap

Programas en

ensamblador

Inté

rpre

te d

e co

man

dos

Sistemas Operativos II (II-UJI) Introducción9

SS OOIIIIIIIIConcepto de SO

n Definición de SO:

u SO como interfaz usuario-computador (o máquina extendida):l Programa que actúa de intermediario entre los programas de

aplicación de un computador y el HW

u SO como gestor de recursos:l Entidad que gestiona los recursos HW y software (SW) entre los

procesos y usuarios que compiten por ellos

Sistemas Operativos II (II-UJI) Introducción10

SS OOIIIIIIIIConcepto de SO

n Objetivos del SO:

u Proporcionar un entorno en el que el usuario pueda ejecutar sus programas

l Comodidad para el usuariol Ofrecer una abstracción de los recursos HW para que el (SW) de

aplicación no necesite conocer las peculiaridades de cada máquina

u Gestionar los recursos HW y SWl Decidir quién, cuándo y cuánto tiempo se usa un recursol Resolver conflictos entre demandas concurrentes de recursosl Utilización eficiente o eficaz de recursos

Sistemas Operativos II (II-UJI) Introducción11

SS OOIIIIIIIIConcepto de SO

n Comunicación entre procesos de usuario y el SO:

u Las llamadas al sistema son la puerta de acceso a los servicios ofrecidos por el SO

n Comunicación dentro del SO:

u Modelo cliente-servidor: Comunicación por mensajes

u Modelo biblioteca: Llamadas a procedimientos

Sistemas Operativos II (II-UJI) Introducción12

SS OOIIIIIIIIModo usuario vs. Modo supervisor

n En un SO multiprogramado la compartición de recursos del sistema requiere:u Protección del SO.u Protección de los demás programas y datos.

n Solución: Apoyo del HW para permitir dos modos de ejecución:u Modo usuario (modo restringido):

l Ejecución de instrucciones del código del usuario.l Acceso a direcciones del programa y de datos del usuario.l Ejecución de instrucciones no privilegiadas.

u Modo supervisor (modo privilegiado, no restringido o monitor):l Ejecución de instrucciones del código del SO.l Acceso a direcciones del SO y de usuarios.l Ejecución de instrucciones privilegiadas y no privilegiadas.

Sistemas Operativos II (II-UJI) Introducción13

SS OOIIIIIIIIModo usuario vs. Modo supervisor

0

2-116

Mapa deE/S Juego de

Instrucciones

2-132

Mapa dememoria

0

Registro de estado

Registro de estado

Oct

eto

deSi

stem

aO

c te t

ode

Usu

ario

1514

7

3

13

5

9

11

1

6

10

12

2

4

8

0

T

N

S

I1

V

I2

Z

X

I0

C

D0D1D2D3D4D5D6D7

A0A1A2A3A4A5A6A7A7'

Juego de Instrucciones

2-131

Mapa dememoria

Modo usuario Modo supervisor

0O

c te t

ode

Usu

ario

7

3

5

1

6

2

4

0

N

VZ

X

C

D0D1D2D3D4D5D6D7

A0A1A2A3A4A5A6A7

Sistemas Operativos II (II-UJI) Introducción14

SS OOIIIIIIIIModo usuario vs. Modo supervisor

n Cambios de un modo de ejecución a otro:u El HW cambia a modo supervisor cuando ocurre un error o cuando se

desea realizar una operación de E/S.u Antes de que el SO obtenga el control del computador el sistema

cambia a modo supervisor.u Antes de pasar el control al programa de usuario, el sistema cambia a

modo usuario

Sistemas Operativos II (II-UJI) Introducción15

SS OOIIIIIIIILlamadas al sistema

n ¿Qué son las llamadas al sistema?u Puerta de acceso a los servicios ofrecidos por el SO.u Invocadas por procesos en modo usuario.u Ejecutadas en modo supervisor.

HW

aplicaciónde

Programas

Gestión de

ficherosGestión de procesos

Librerías

SO

trap

trap

trap

Programas en

ensamblador

Sistemas Operativos II (II-UJI) Introducción16

SS OOIIIIIIIILlamadas al sistema

n Interfaz ofrecida por las llamadas al sistema:u Interfaz ofrecida por el núcleo del SO:

l Definida a nivel de lenguaje ensamblador.l Depende del HW sobre el que se está ejecutando el SO.

u Interfaz ofrecida al programador (usuario):l Funciones dentro de una librería (biblioteca) de usuario.

Sistemas Operativos II (II-UJI) Introducción17

SS OOIIIIIIIILlamadas al sistema

n Ejecución de una llamada al sistema:u Introducir los parámetros de la llamada (en registros o en pila).u Generar una interrupción software (trap).u Pasar de modo usuario a modo supervisor y cambiar de pila usuario a

pila supervisor.u Guardar todos los registros del procesador.u Saltar a la función que implementa el servicio pedido.u Restaurar los registros del procesador.u Reponer el modo del procesador y la pila de usuario.u Retornar de la interrrupción.

Sistemas Operativos II (II-UJI) Introducción18

SS OOIIIIIIIIInterrupciones

n Interrupción: Mecanismo que permite interumpir la ejecución de la CPU por otros módulos (E/S, memoria, etc.).

n Clasificación de interrupciones:u Interrupciones HW (o símplemente interrupciones):

l Permiten comunicación entre el HW y el SO.l Causadas por eventos externos al proceso (operaciones E/S, reloj, ...).l Se producen en cualquier momento y se atienden entre la ejecución

de dos instrucciones.

u Interrupciones SW (excepciones o trap)l Causadas por el propio proceso ante un evento inesperado o

indeseado (división por cero, error de direccionamiento, fallo de página, etc.) o ante una petición de usuario (llamada al sistema).

l Se producen durante la ejecución de una instrucción.

Sistemas Operativos II (II-UJI) Introducción19

SS OOIIIIIIIIInterrupciones

n Otra clasificación de interrupciones:u Interrupciones HW:

l Externas (operaciones E/S, reloj, ...).l Internas (división por cero, error de direccionamiento, fallo de página,

etc.) .

u Interrupciones SW:l Causadas ante una petición de usuario (llamada al sistema)

Sistemas Operativos II (II-UJI) Introducción20

SS OOIIIIIIIIInterrupciones

n Un SO está dirigido por interrupciones.

n Gestión de interrupciones: muy dependiente de la arquitectura del computador.

n Tratamiento de una interrupción:u Salvar (apilar) contexto del proceso actual (dirección de instrucción

interrumpida, registros de CPU, etc.).u Pasar a modo supervisor.

Todas las interrupciones se atienden en modo supervisor.u Determinar la causa (número) de la interrupción.u Buscar el vector de interrupción (contiene la dirección de la rutina de

tratamiento de la interrupción).u Ejecutar la rutina de tratamiento de la interrupción.u Recuperar (desapilar) el contexto previo del proceso.

Sistemas Operativos II (II-UJI) Introducción21

SS OOIIIIIIIIInterrupciones

Agente queinterrumpe

Unidad decontrol

VectorSolicitud deInterrupción

TablaInterr.

Rutina TratamientoInterrupción

S.O.

Memoria usuario

n Tratamiento de una interrupción (cont.):

Sistemas Operativos II (II-UJI) Introducción22

SS OOIIIIIIIIInterrupciones

n Anidamiento de interrupciones:u Normalmente, al procesar una interrupción se deshabilitan las restantes

interrupciones para evitar pérdidas de interrupciones.u En arquitecturas con gestión compleja de interrupciones:

l Se asignan prioridades a las interrupciones según su importancia relativa

l Sólo se deshabilitan las instrucciones de prioridad inferior a la que se está atendiendo

Sistemas Operativos II (II-UJI) Introducción23

SS OOIIIIIIIIInterrupciones

n Anidamiento de interrupciones (cont.):

Interrupción de reloj

Nivel 3 de contexto del núcleo Ejecutar rutina de atención de la interrupción de reloj

Salvar contexto de rutina de atención de la interrupción de disco

Nivel 2 de contexto del núcleo Ejecutar rutina de atención de la interrupción de disco

Salvar contexto de llamada al sistema

Nivel 1 de contexto del núcleo Ejecutar llamada al sisistema

Salvar contexto del proceso en modo usuario

Interrupción de disco

Llamada al sistema

Ejecución en modo usuario

Sistemas Operativos II (II-UJI) Introducción24

SS OOIIIIIIII

Tema 1. Introducción

Índice

n Introducción3 Concepto de Sistema Operativo (SO)3 Modo supervisor vs. Modo usuario3 Llamadas al sistema3 Interrupciones3 El intérprete de comandos de Unix

l Conceptol Ficheros de identificación de usuariosl Ficheros de configuración de cuentas de usuariosl Variables del entorno y del intérprete de comandosl Gestión de aliasl Entrecomilladol Expresiones regulares y filtrosl Algunas órdenes de propósito general

*

Sistemas Operativos II (II-UJI) Introducción25

SS OOIIIIIIIIEl intérprete de comandos

n Sistema de intérprete de comandos (intérprete de línea de comandos o shell):

u Concepto de intérprete de comandos:l Programa del sistema que lee e interpreta sentencias de control

u Función del SO respecto al intérprete de comandos:l Obtener y ejecutar cada línea de comandos

Sistemas Operativos II (II-UJI) Introducción26

SS OOIIIIIIIIEl intérprete de comandos

n Sistema de intérprete de comandos (cont.):

MIENTRAS verdadero HACERLeer cadena de caracteres desde el terminalSI no hay errores de sintaxis

ENTONCES Generar proceso que ejecute la ordenSI (No debe ejecutarse en segundo plano)

Esperar hasta que finalice el proceso generadoFinSI

FinSIFinMIENTRAS ¿Cómo salir de sesión?

SHELL SOcomando

Subshelllogin

comando

Sistemas Operativos II (II-UJI) Introducción27

SS OOIIIIIIIIFicheros de identificación de usuarios

n /etc/passwd

u Contiene los usuarios con permiso de acceso al sistema

u Una línea por usuario

$grep castano /etc/passwdcastano:x:517:514:M.A.Castaño:/users/icc/castano:/bin/bash

n /etc/shadow

u Contiene “contraseñas en sombra” de los usuarios

u Suministra un grado extra de seguridad (sólo accesible por el administrador)

n /etc/group

u Contiene la afiliación de usuarios a los diferentes grupos de usuarios

u Una línea por grupo

$grep :514: /etc/groupicc:x:514:castano,mayo,badia,jfernand

Sistemas Operativos II (II-UJI) Introducción28

SS OOIIIIIIII

Ficheros de configuración de cuentas de usuarios

n Ficheros que se ejecutan cuando el usuario entra en el sistema:

u /etc/profile: Configuración por defecto de todos los usuariosLo mantiene el administrador

u ~/.profile (.bash_profile): Configuración personal del usuario

u ~/.rc (.bash_rc): También se ejecuta cada vez que arranca subshell

u ~/.env: También se ejecuta cada vez que arranca subshelly sólo si ENV=~/.env

n Ficheros que se ejecutan cuando el usuario sale del sistema:

u ~/.logout (~/.bash_logout)

Sistemas Operativos II (II-UJI) Introducción29

SS OOIIIIIIIIVariables del entorno y del shell

n Variables del entorno:

u Conjunto de variables que definen el entorno de trabajo de los usuarios

u Definidas generalmente por el administrador del sistema

u El usuario puede:l Modificarlasl Crear otras nuevas

Sistemas Operativos II (II-UJI) Introducción30

SS OOIIIIIIIIVariables del entorno y del shell

n Variables del entorno (cont.):

u Ejemplos de variables del entorno:

Variable Descripción

HOME Directorio “home” del usuario

PATH Directorios donde el sistema busca los comandos a ejecutar

PS1 “Prompt” primario

PS2 “Prompt” secundario

LOGNAME Identificativo del usuario

MAIL Directorio donde el sistema busca el correo

TERM Tipo de terminal que se está utilizando

ENV Nombre del fichero de órdenes a ejecutar cuando se activa un nuevo intérprete de comando

Sistemas Operativos II (II-UJI) Introducción31

SS OOIIIIIIIIVariables del entorno y del shell

n Variables del entorno (cont.):

u Visualización de variables del entorno:l $envPWD=/tmp/castanoREMOTEHOST=cuelebre.act.uji.esHOSTNAME=nuvol.uji.esLOGNAME=castanoSHELL=/bin/bashTERM=vt100HOME=/users/icc/castanoPATH=/usr/local/bin:/bin:/usr/bin:/users/castano/bin...

l $echo $PWDPWD=/tmp/castano

Sistemas Operativos II (II-UJI) Introducción32

SS OOIIIIIIIIVariables del entorno y del shell

n Variables del intérprete de comandos:u Conjunto de variables definidas en el desarrollo de programas del intérprete

de comandos

u Especificación:

$ v1=hola$ v2=“hola mundo”

u Visualización de variables del intérprete de comandos:l $ setPWD=/tmp/castanoLOGNAME=castano...v1=holav2=hola mundoPATH=/usr/local/bin:/bin:/usr/bin:/users/castano/bin...

l $ echo $v2hola mundo

Ojo! En las asignaciones no puede haber espacios en blanco que precedan o sigan al igual

Sistemas Operativos II (II-UJI) Introducción33

SS OOIIIIIIIIVariables del entorno y del shell

n Variables del intérprete de comandos (cont.):

u Una variable del shell que se exporte pasa a ser considerada como variable del entorno

$ cat fich.shecho "VAR1=$VAR1"echo "VAR2=$VAR2"$ VAR1=hola$ VAR2=adios$ export VAR2$ ksh fich.shVAR1=VAR2=adios $

Sistemas Operativos II (II-UJI) Introducción34

SS OOIIIIIIIIVariables del entorno y del shell

n Variables del entorno vs. variables del intérprete de comandos:

u Variable del entorno: Se usan para determinar valores comunes a las aplicaciones

u Variables del shell: Se usan en el desarrollo de programas de intérprete de comandos

$ls

$fich.sh

$ksh fich.sh

$. fich.sh

login

shell2

shell3

shell4

shell1

Variables entornoVariables shell3

Variables entornoVariables shell1

Variables entornoVariables shell4

Variables entornoVariables shell2

Sistemas Operativos II (II-UJI) Introducción35

SS OOIIIIIIIIGestión de alias

n Concepto de alias:

u Personalización de un comando

n Especificación:u $ alias rm=“rm –i”

$ alias ll="ls -l“$ lltotal 836-rw-r--r-- 1 castano icc 844584 Jul 8 11:39 aneca.pdf-rw-r--r-- 1 castano icc 1 Oct 14 10:27 fich.sh$ unalias ll$ llbash: ll: command not found$

u También se pueden definir en los ficheros de configuración de la cuenta del usuario

Sistemas Operativos II (II-UJI) Introducción36

SS OOIIIIIIII

n Visualización de (todos) los alias definidos por el usuario:

$ aliasalias elm='/usr/local/bin/elm.sh'alias ll='ls -l'alias rm='rm -i'alias vi='vim' $

Gestión de alias

Sistemas Operativos II (II-UJI) Introducción37

SS OOIIIIIIII

n Las comillas delimitan una cadena (en la que pueden aparecer espacios en blanco)

$ grep “hola adios” fich ≠≠ $ grep hola adios fich

n Las comillas dobles convierten las variables en alfanuméricas

$ A=0 Variable numérica$ A=“0” Variable alfanumérica

n “ “ respetan los caracteres especiales que hay dentro‘ ‘ no respetan los caracteres especiales que hay dentro

$ echo "$LOGNAME"castano$ echo '$LOGNAME'$LOGNAME

n Un carácter especial puede ser ignorado si va precedido de \

$ echo \$LOGNAME$LOGNAME

Entrecomillado

Sistemas Operativos II (II-UJI) Introducción38

SS OOIIIIIIII

n Dentro de “ “ no pueden ir otras “ “, pero sí pueden ir dentro de ‘ ‘

$ echo 'Hola desde "aquí"'Hola desde "aquí"

n Dentro de “ “ puedo ejecutar un comando

$ echo "Numero de caracteres: `wc -c fich`" Numero de caracteres: 12 fich

n En la sintaxis de algunos comandos también se pueden usar las comillas de ejecución

$ if [ -z "`diff fich1 fich2`“ ]> then echo "Ficheros iguales"; fi

Entrecomillado

Ojo! Ha de haber al menos un espacio en blanco

Sistemas Operativos II (II-UJI) Introducción39

SS OOIIIIIIII

n Concepto de expresión regular:

u Expresión que permite especificar cadenas múltiples

u Secuencia de caracteres simples combinados con operadores

n Operadores permitidos en una expresión regular

Operador ¿Qué representa?

. Cualquier carácter simple

[] Conjunto de caracteres

[^] Cualquier carácter no contenido en los corchetes

[-] Rango

* Cero o más ocurrencias de la expresión regular precedente

^expr Cualquier línea (cadena) que comience con la expresión exprexpr$ C u a l q u i e r l í n e a ( c a d e n a ) q u e f i n a l i c e

Expresiones regulares

Sistemas Operativos II (II-UJI) Introducción40

SS OOIIIIIIII

n Ejemplo 1:u Mostrar las líneas del fichero de texto fich que:

l Contienen dos letras ‘a’ consecutivas

grep ‘aa’ fich

l Contienen dos letras ‘a’ no necesariamente consecutivas

grep ‘a.*a’ fich

l Contienen dos letras ‘a’ separadas por al menos otro carácter diferente a ‘a’

grep ‘a[^a][^a]*a’ fich

l No contienen la letra ‘a’

grep –v ‘a’ fich

l Comiencen por una letra minúscula

grep ‘^[a-z]’ fich

Filtros mediante expresiones regulares

Ojo! No es lo mismo que * en: ls f*

Sistemas Operativos II (II-UJI) Introducción41

SS OOIIIIIIII

n Ejemplo 2:

u Mostrar las líneas del fichero de texto fich2 que:

l Contienen solamente un número entre 1 y 5

grep ‘^[1-5]$’ fich2

l Contienen solamente un número entre 10 y 14

grep ‘^1[0-4]$’ fich2¿Por qué no sirve ‘^[10-14]$’ o ‘^[10-4]$’ ?

Filtros mediante expresiones regulares

Sistemas Operativos II (II-UJI) Introducción42

SS OOIIIIIIII

n Ejemplo 3:

u Extraer los usuarios conectados al sistema y el punto desde el que se conectan

$ whogquintan pts/3 Oct 14 11:32 (oraa.act.uji.es)aibar pts/7 Oct 14 10:08 (chasse.act.uji.es)castano pts/33 Oct 14 11:48 (cuelebre.act.uji.es)villapla pts/37 Oct 13 13:45 (bragalisco.uji.es)$$ who | sed "s/ */ /g" | cut -f1,6 -d" "gquintan (oraa.act.uji.es)aibar (chasse.act.uji.es)castano (cuelebre.act.uji.es)villapla (bragalisco.uji.es) $

Filtros mediante expresiones regulares

Sistemas Operativos II (II-UJI) Introducción43

SS OOIIIIIIII

n Ejemplo 4:u Listar los tamaños y nombres de todos los ficheros del directorio actual que no

sean un directorio (ficheros regulares, enlaces blandos, etc.), ordenados por tamaño

$ ls -ltotal 16-rw-r--r-- 1 castano icc 204 Oct 14 11:53 otro_fich-rw-r--r-- 1 castano icc 12 Oct 14 11:04 fich1-rw-r--r-- 1 castano icc 12 Oct 14 11:07 fich2drwxr-xr-x 2 castano icc 4096 Oct 14 11:56 midir$$ ls -l | tail +2 | grep -v ^d | sed "s/ */#/g" \tail +2 | cut -f5,9 -d# | sort -n12#fich112#fich2204#otro_fich$

Filtros mediante expresiones regulares

Sistemas Operativos II (II-UJI) Introducción44

SS OOIIIIIIIIEl comando find

n Utilización:

u Realiza búsquedas (recursivas) dentro de la jerarquía de ficheros

n Sintaxis:

u find <desde_donde_empiezo_a_buscar> <expresion_de_busqueda>

n Ejemplos:

$ find ~ -name "*.o" $ find . -perm 600$ find . -mtime –5$ find . -name core -exec rm {} \;$ find . -exec grep -l var {} \; 2> /dev/null$ find . -type d -exec ls -ld {} \;$ cd; find . –size 0 –exec rm {} \;

Ojo! Ha de ir un blanco

Sistemas Operativos II (II-UJI) Introducción45

SS OOIIIIIIII

Tema 1. Introducción

Índice

n Introducción

n T a x o n o m í a d e l o s S O s

n Introducción al SO Linux

n Introducción al SO Windows NT/2000

*

Sistemas Operativos II (II-UJI) Introducción46

SS OOIIIIIIIIEstructura de un SO

n Componentes típicos de un SO:

u Gestor de procesosu Gestor de memoria principalu Gestor de almacenamieno secundariou Gestor de ficherosu Gestor del sistema de E/Su Sistema de protecciónu Gestión de red

Sistemas Operativos II (II-UJI) Introducción47

SS OOIIIIIIIITaxonomía de los SOs

n Clasificación en base a la estructura del SO:

u SO monolíticos

u SO estructuradosl SO multinivel (por capas o jerárquico)l SO con micronúcleo (modelo cliente/servidor)

Sistemas Operativos II (II-UJI) Introducción48

SS OOIIIIIIIITaxonomía de los SOs

n SOs monolíticos:

u El SO no tiene una estructura clara y bien definida

u El SO es un gran programa compuesto por un conjunto de procedimientosCualquier procedimiento puede llamar a cualquier otro Ü D e s d e cualquier parte del SO se puede acceder a cualquier otra directamente

u El SO trabaja en modo supervisor (acceso no restringido)Los programas de aplicación se ejecutan en modo usuario (acceso restringido)

u Surgen de SO sencillos y pequeños a los que se ha ido añadiendo funcionalidades

Sistemas Operativos II (II-UJI) Introducción49

SS OOIIIIIIIITaxonomía de los SOs

n SOs monolíticos(cont.):

u Ventaja:l Eficiencia (se producen pocos cambios de contexto)

u Desventajas:l Acceso a todas las estructuras de datos del SOl El fallo de un proceso en modo núcleo puede bloquear el SO

completol Depuración complejal Extensión del SO compleja

u Ejemplos de SO monolíticos: MS-DOS, LINUX

Sistemas Operativos II (II-UJI) Introducción50

SS OOIIIIIIIITaxonomía de los SOs

n SOs monolíticos(cont.):

Programa deaplicación.

Modo usuarioModo núcleo

Programa deaplicación.

HW

. . .

procedimiento

Sistemas Operativos II (II-UJI) Introducción51

SS OOIIIIIIIITaxonomía de los SOs

n SOs multinivel (por capas o jerárquicos):

u El SO se divide en módulos (bloques funcionales bien definidos) que están en diferentes niveles, unos por encima de otros.

u El código de un módulo únicamente puede invocar a código de módulos de niveles inferiores o bien a código de niveles inmediatamente anteriores o posteriores.

u Ejemplos de SO multinivel: OS/2, THE

Sistemas Operativos II (II-UJI) Introducción52

SS OOIIIIIIIITaxonomía de los SOs

n SOs multinivel (cont.):

u Ventajas:l Acceso limitado a ciertas estructuras de datos del SO.l Fácil mantenimiento.l Fácil detección de errores.l Si falla un módulo (no crítico) no se bloquea todo el SO.l Extensión del SO sencilla.

Sistemas Operativos II (II-UJI) Introducción53

SS OOIIIIIIIITaxonomía de los SOs

n SOs multinivel (cont.):

Programa de aplicación.

Modo usuarioModo núcleo

Programa de aplicación.

. . .

Servicios del sistema

Sistema de ficheros

Gestión de memoria y E/S

Planificación de procesos

HW

Sistemas Operativos II (II-UJI) Introducción54

SS OOIIIIIIIITaxonomía de los SOs

n SOs con micronúcleo (modelo cliente/servidor):u El SO consta de:

l Un conjunto de subsistemas, cada uno de los cuales implementa un tipo de servicio (servicio de procesos, servicio de memoria, etc.)

l Un micronúcleo, que proporciona la mínima funcionalidad necesaria:3 La abstracción de proceso3 La gestión de interrupciones3 El mecanismo de comunicación entre procesos

u Cada subsistema (servidor) ejecuta un bucle en el que testea si alguien (cliente) ha solicitado su servicio

u La petición de servicios y la indicación de la finalización del servicio (junto con el retorno de los resultados) se realiza mediante paso de mensajes a través del micronúcleo

Sistemas Operativos II (II-UJI) Introducción55

SS OOIIIIIIIITaxonomía de los SOs

n SOs con micronúcleo (cont.):u Desventaja:

l Poca eficiencia (debido a la sobrecarga de comunicaciones)

u Ventajas:l Fácil implementación, depuración y mantenimientol Los servidores funcionan independientementel Si falla un servidor (no crítico) no se bloquea todo el SO

3 Desarrollo sencillo de nuevos servidores3 Se puede portar a otras arquitecturas modificando muy poco

código

u Tendencia actual de los SO

u Ejemplos de SO con micronúcleo: SO de Macintosh

u Ejemplos de SO multinivel y con micronúcleo: Windows NT, MINIX

Sistemas Operativos II (II-UJI) Introducción56

SS OOIIIIIIIITaxonomía de los SOs

n SOs con micronúcleo (cont.):

Aplicación cliente

Servidor de procesos

Microkernel

Servidor de pantalla

Servidor de memoria

Servidor de ficheros

Servidor de redes

HWenviarrecibir

Sistemas Operativos II (II-UJI) Introducción57

SS OOIIIIIIIITaxonomía de los SOs

n Tendencias actuales de los SO:

u Modelo cliente/servidoru Arquitecturas micronúcleou Hilosu Multiprocesamiento (simétrico)u Tecnologías orientadas a objetosu SO distribuidos

Sistemas Operativos II (II-UJI) Introducción58

SS OOIIIIIIIIMultiprocesamiento

n Multiprocesamiento asimétrico y simétrico:

SO

PROCESADOR A

Memoria

Subproceso

Subproceso

Subproceso

PROCESADOR B PROCESADOR A

Memoria Subproceso

Subproceso

PROCESADOR B

SISTEMA MULTIPROCESADOR ASIMÉTRICO SISTEMA MULTIPROCESADOR SIMÉTRICO

Subproceso

Subproceso

SO SO

Sistemas Operativos II (II-UJI) Introducción59

SS OOIIIIIIII

Tema 1. Introducción

Índice

n Introducción

n Taxonomía de los SOs

n Introducción al SO Linux3 Evolución histórica de Linux3 Software de libre distribución3 Características de Linux3 Núcleo de Linux3 Arranque de Linux

n Introducción al SO Windows NT/2000

*

Sistemas Operativos II (II-UJI) Introducción60

SS OOIIIIIIIIEvolución histórica de Linux

n Breve historia de Unix:

u Aparece en los Lab. Bell en 1969

u Se reescribe en C en 1973

u Dos corrientes principales:l System V de los Unix System Laboratoriesl BSD (Berkley Software Distribution)

La mayoría de las versiones actuales de UNIX derivan de estas dos corrientes

u Existen dos grandes SOs con el código fuente público: Linux y FreeBDS. El primero ha alcanzado mayor grado de desarrollo

Sistemas Operativos II (II-UJI) Introducción61

SS OOIIIIIIIIEvolución histórica de Linux

n Historia de Linux:

u Creado por Linus Torvalds en la Universidad de Helsinki en 1991Aparece como evolución de MINIX para el 80386

Mantiene la estructura monolítica de Unix System V

u En menos de un año más de 100 programadores colaboran

u Forma de trabajo: Se desarrolla con la ayuda de muchos programadores de UNIX, permitiendo a cualquiera que tenga los suficientes conocimientos de programación del núcleo de UNIX la posibilidad de cambiar el sistema

u Se portan las herramientas GNU de la “Free Software Foundation” (FSF)(gcc, gdb, bash, emacs, etc.)

Sistemas Operativos II (II-UJI) Introducción62

SS OOIIIIIIIIEvolución histórica de Linux

n Historia de Linux (cont.):

u En 1994 aparece Linux 1.0 en forma de distribución

u En 1996 se distribuye Linux 2.0, ya competitivo con otros UNIX

u Convenio de numeración de versiones: Versión X.Y.Z:l X: Cambia cuando se da una evolución importantel Y: Indica revisiones de menor envergadura (los números pares

representan versiones estables y los impares, inestables)l Z: número menor de lanzamiento

Sistemas Operativos II (II-UJI) Introducción63

SS OOIIIIIIIIEvolución histórica de Linux

n Historia de Linux (cont.):

u Aparecen varias distribuciones (RedHat, SUSE, Slackware, Debian, Caldera, etc.) algunas con soporte oficial para empresas

u La FSF adopta Linux como SO oficial: GNU/Linux

u Interés por parte de las empresas (Intel, Sun, Netscape, Lotus, Adobe, Corel, Oracle, Informix, etc.)

u En 1999 y 2001 aparecen, respectivamente, Linux 2.2 y 2.4 con nuevas mejoras y soporte para nuevos tipos de HW

Sistemas Operativos II (II-UJI) Introducción64

SS OOIIIIIIIISoftware de libre distribución

n ¿Qué es el software libre?

u Quien lo recibe puede distribuirlo

u Quien lo recibe puede modificarlo

u Imprescindible: Código fuente disponible

n Software de libre distribución ≠≠ Software de dominio público

Sistemas Operativos II (II-UJI) Introducción65

SS OOIIIIIIIISoftware de libre distribución

n La “Free Software Foundation” (FSF):

u Objetivo:l Promocionar el desarrollo y uso de SW librel Dar de alguna forma “copyrights” al SW (permisos legales para

copiar, distribuir y/o modificar el SW)

u Su mayor proyecto es el proyecto GNU (“GNU is Not Unix”)l Objetivo: Crear un SO libre portable con estilo Unix (Hurd).l SW desarrollado: gcc, emacs, bash, gawk, latex, Perl, etc.

u Crea la “General Public Licence (GPL)” de GNU

Sistemas Operativos II (II-UJI) Introducción66

SS OOIIIIIIIISoftware de libre distribución

n Licencia GPL de GNU:

u Quien recibe SW GPL tiene el derecho de recibir el código fuente sin coste adicional

u Todo SW derivado de SW GPL debe mantener la licencia GPL para sudistribución

u Libertad de compartir y modificar SW libre para asegurar que el SW sea libre para todo usuario

u Aunque se cobre a alguien por entregar una copia, ese alguien puede regalarla

Sistemas Operativos II (II-UJI) Introducción67

SS OOIIIIIIIISoftware de libre distribución

n Licencia LGPL (“Library General Public Licence”) de GNU:

u Licencia GPL: Cubre el núcleo de LinuxLicencia LGPL: Cubre la mayor parte del código del que dependen

las aplicaciones

u Permite que los proveedores de SW comercial puedan vender sus aplicaciones y reservar el código fuente de las mismas

Sistemas Operativos II (II-UJI) Introducción68

SS OOIIIIIIIICaracterísticas de Linux

n SO de estilo UNIX

n Multitarea y multiusuario con planificación expulsiva

n Multiplataforma: Intel 80386, Motorola 68000, Digital Alpha, MIPS, Motorola/IBM Power PC, ARM, Sun SPARC, Sun SPARC64, ...

n Protección de memoria entre procesos

n Capacidad de multiprocesamiento simétrico (desde la versión 2.0)

n Memoria virtual

n RAID

n Soporte de múltiple sistema de ficheros

Sistemas Operativos II (II-UJI) Introducción69

SS OOIIIIIIIICaracterísticas de Linux

n Capacidad de funcionamiento en “cluster”

n Soporte de múltiples protocolos de red (TCP/IP, SLIP, PPP)

n Compatible POSIX1 1003.1c

n Escrito en C

n Registrado bajo los términos de la GPL de GNU

1 POSIX (“Portable Operating System Interface”): Conjunto de estándares de la IEEE para permitir la portabilidad entre entornos Unix

Sistemas Operativos II (II-UJI) Introducción70

SS OOIIIIIIIIEstructura de Linux

n Estructura monolítica

n Núcleo no estático:

u Carga de módulos en tiempo de ejecución

u Posibilidad de depuración en tiempo de ejecución

n Módulos:

u Nuevos tipos de sistemas de archivos

u Manejadores de dispositivos

u Gestores de nuevos formatos ejecutables

Sistemas Operativos II (II-UJI) Introducción71

SS OOIIIIIIIIDiagrama de bloques del núcleo de Linux

trap

fork, wait, exec,...

open, read, stat,...

Modo usuariotrap

Gestor de procesos

Librerías

Comunicación entre procesos

Planificador

Gestor de memoria

Gestor de ficheros

Dispositivos por Disp. por carácteres bloques

Drivers de dispositivos

Caché de buffersde bloques

Control del HW

HW

Modo supervisorInterfaz con las llamadas al sistema

Sistemas Operativos II (II-UJI) Introducción72

SS OOIIIIIIIIArranque de Linux

n Partes del arranque de Linux desde el disco duro de un PC:

u Cargador de la BIOS del PC

u Cargador LILO

u Núcleo

u Primer programa de usuario /sbin/init

Sistemas Operativos II (II-UJI) Introducción73

SS OOIIIIIIIIArranque de Linux

n Cargador de la BIOS:

u El procesador arranca en modo real

u La BIOS carga el “Master Boot Record (MBR)” del disco en RAM

l MBR: Primer sector del disco (512 primeros bytes)l La BIOS supondrá que el MBR contiene código ejecutable si los dos

últimos bytes del MBR contienen el valor 0xAA55

u Se ejecuta el LILO

MBR

0x1BE 0x1FE0x000

Tabla de particiones

LILO 0xAA55*

Sistemas Operativos II (II-UJI) Introducción74

SS OOIIIIIIIIArranque de Linux

n Cargador LILO:

u Pregunta por el SO a cargar

u Si es Linux copia el setup.S y el núcleo en RAM

u Ejecuta el setup.S:

l Consulta a la BIOS el HW instalado (memoria, teclado, etc.)l Salta al núcleo

Sistemas Operativos II (II-UJI) Introducción75

SS OOIIIIIIIIArranque de Linux

n Núcleo:u El procesador pasa a modo protegido

u Ejecuta head.S:

l Determina el tipo de procesador

l Inicializa sus tablas internas

l Activa la paginación y el coprocesador

l Ejecuta start_kernel de init/main.c (código C):

3 Inicializaciones varias (memoria, hora actual, etc.)3 Asigna vectores de interrupción3 Ejecuta el primer programa de usuario init3 Se convierte en la tarea ociosa (“idle”) (PID=0) quedando así en

un bucle infinito sin hacer nada– La tarea ociosa ocupa la posición cero en la tabla de procesos– Cuando no hay nada que hacer, el planificador ejecuta este

proceso ocioso

Sistemas Operativos II (II-UJI) Introducción76

SS OOIIIIIIIIArranque de Linux

n Primer programa de usuario /sbin/init (o /etc/init o /bin/init) :

u Ancestro de todos los procesosl PID=1 Õ Ocupa la posición uno en la tabla de procesos

u Chequea la integridad del sistema de ficheros

u Monta los discos (locales y remotos)

u Limpia el sistema de ficheros (chequea cuotas, limpia los ficheros temporales, etc.)

u Inicializa los demonios de impresión, correo, contabilidad, errores de entrada al sistema, cron y manejo de red

u Configura el reloj interno del sistema

u Inicializa el teclado

u Inicializa los procesos login asociados a terminales

Sistemas Operativos II (II-UJI) Introducción77

SS OOIIIIIIII

Tema 1. Introducción

Índice

n Introducción

n Taxonomía de los SOs

n Introducción al SO Linux

n Introducción al SO Windows NT/20003 Evolución histórica de Windows NT3 Características de Windows NT3 Estructura de Windows NT3 Modelo de objetos de Windows NT

*

Sistemas Operativos II (II-UJI) Introducción78

SS OOIIIIIIIIEvolución histórica de Windows NT/2000

n Historia de Windows NT/2000:

u Aparece en 1989, cuando Microsoft decidió diseñar un nuevo sistema que sustituyera a Windows 3.x y que incluyera las características adecuadas para ser usado en máquinas multiproceso de grandes dimensiones

MS-DOS → OS/2 → Windows NT

u Se incluyeron muchas de las ideas existentes en otros sistemas operativos

u El núcleo se mantiene bastante estable desde la versión 3.5

u Aparece Windows 2000 y Windows 2000 Server

Sistemas Operativos II (II-UJI) Introducción79

SS OOIIIIIIIICaracterísticas de Windows NT/2000

n Multitarea y multiusuario

n Diseño orientado a objetos

n Subsistema de seguridad

n Planificación con expulsión a nivel de hilos

n Se puede ejecutar tanto en procesadores CISC (Intel) como en RISC (MIPS, Digital Alpha, etc.)

n Compatibilidad con FAT, Windows 3x, OS/2, POSIX, etc.

n Multiprocesamiento simétrico en máquinas con 2 procesadores

Sistemas Operativos II (II-UJI) Introducción80

SS OOIIIIIIIIEstructura de Windows NT/2000

n Estructura parcialmente cliente/servidor y parcialmente multinivel:

u La implementación de las interfaces con las aplicaciones de usuario (APIs, "Application Programming Interfaces") sigue un modelo cliente/servidorLa comunicación cliente/servidor se lleva a cabo mediante paso de mensajes

u La sección de Windows NT que opera en modo supervisor (ejecutivo NTo ejecutor NT) es un modelo multinivel

Sistemas Operativos II (II-UJI) Introducción81

SS OOIIIIIIIIEstructura de Windows NT/2000

n Estructura parcialmente cliente/servidor y parcialmente multinivel (cont.):

SubsistemaOS/2

SubsistemaWin32

SubsistemaPOSIX

ClienteOS/2

ClienteWin32

ClientePOSIX

Servicios del sistema

Núcleo

Hardware Administration Layer

Modo usuario

Modo supervisor

Aplicacionescliente

Servidores

EjecutivoNT

Recepción de mensajesEnvío de mensajes

Sistemas Operativos II (II-UJI) Introducción82

SS OOIIIIIIIIEstructura de Windows NT/2000

HW

Subsistemade seguridad

SubsistemaOS/2

SubsistemaWin32

SubsistemaPOSIX

Procesologin

ClienteOS/2

ClienteWin32

ClientePOSIX

Gestor deobjetos

Gestor deprocesos

Monitor deseguridad

Paso demensajes

Gestor dememoria

Gestor deficheros

Servicios del sistema

Núcleo

Hardware Administration Layer

Modo usuario

Modo supervisor

Aplicaciones

Subsistemasprotegidos

(Servidores)

EjecutivoNT

TrapPaso de mensajes

Manipulación HW

Sistemas Operativos II (II-UJI) Introducción83

SS OOIIIIIIIIEstructura de Windows NT/2000

n Procesos de usuario:

u Procesos del sistema (proceso de inicio de sesión, de gestión de sesión, ...)

u Procesos de servicio (registros de sucesos, alertas, ...)

u Subsistemas protegidos

u Aplicaciones de usuario (del tipo Win32, POSIX, OS/2, Windows 3x o MS-DOS)

Sistemas Operativos II (II-UJI) Introducción84

SS OOIIIIIIIIEstructura de Windows NT/2000

n Subsistemas protegidos o servidores:

u Cada subsistema opera de manera distinta → Subsistemas protegidos

u Trabajan en modo usuario

u Proporcionan APIs (específicas para tipos de SOs) cuyas rutinas son invocadas (por un cliente u otro servidor) mediante paso de mensajes

Sistemas Operativos II (II-UJI) Introducción85

SS OOIIIIIIIIEstructura de Windows NT/2000

n Subsistemas protegidos o servidores (cont.):

u Tipos de subsistemas protegidos:

l Subsistemas de entorno:

3 Subsistema Win32

3 Subsistemas POSIX, OS/2, Windows 16 bits y MS-DOS

l Subsistemas integrales:

3 Subsistema de seguridad

Sistemas Operativos II (II-UJI) Introducción86

SS OOIIIIIIIIEstructura de Windows NT/2000

n Subsistemas protegidos o servidores (cont.):

u Subsistemas de entorno:

l Subsistema Win32:

3 Proporciona la API de Win32

3 Genera la interface gráfica de usuario

3 Controla la recepción de datos del usuario y las salidas de las aplicaciones

l Subsistemas POSIX, OS/2, Windows 16 bits y MS-DOS:

3 Proporciona la API del SO correspondiente

3 Usan el subsistema Win32 para entradas del usuario y salidas de aplicaciones

Sistemas Operativos II (II-UJI) Introducción87

SS OOIIIIIIIIEstructura de Windows NT/2000

n Subsistemas protegidos o servidores (cont.):

u Subsistemas integrales:

l Subsistema de seguridad:

3 Encargado de la política de seguridad de la máquina (protección de usuarios, acceso a recursos del sistema, etc.)

Sistemas Operativos II (II-UJI) Introducción88

SS OOIIIIIIIIEstructura de Windows NT/2000

n Ejecutivo NT:

u Trabaja en modo supervisor

u Consta de una serie de componentes cada una de las cuales proporciona:

l Servicios (generales) al sistema (que pueden ser solicitados por los subsistemas de entorno y por otras componentes del ejecutivo)

l Rutinas internas del ejecutivo NT

Sistemas Operativos II (II-UJI) Introducción89

SS OOIIIIIIIIEstructura de Windows NT/2000

n Ejecutivo NT (cont.):

u Funciones:

l Gestión de los objetos que representan a los recursos del sistema

l Gestión de procesos e hilos

l Seguridad de los recursos del sistema

l Paso de mensajes

l Gestión de la memoria virtual y del sistema de E/S, redes y ficheros

l Interacción con el HW (“Hardware Abstraction Layer – HAL”)

3 Aislamiento entre SO y las diferencias específicas de cada plataforma

3 Soporte necesario para el multiprocesamiento simétrico

Sistemas Operativos II (II-UJI) Introducción90

SS OOIIIIIIIIEstructura de Windows NT/2000

n Ejecutivo NT (cont.):

u Funciones:

l Las propias del núcleo:

3 Planificación de los hilos listos para ser ejecutados

3 Cambios de contexto

3 Gestión de interrupciones y excepciones

3 Sincronización entre procesadores

3 Creación de objetos elementales que serán utilizados por el resto del ejecutivo NT para crear objetos denivel resto del ejecutivo NT para crear objetos de nivel superior

Sistemas Operativos II (II-UJI) Introducción91

SS OOIIIIIIIIEstructura de Windows NT/2000

n Ejemplo: Creación de un proceso bajo diferentes aplicaciones:

SubsistemaOS/2

SubsistemaWin32

SubsistemaPOSIX

ClienteOS/2

ClienteWin32

ClientePOSIX

Gestor deobjetos

Gestor deprocesos

Monitor deseguridad

Paso demensajes

Gestor dememoria

Gestor deficheros

Servicios del sistema

Núcleo

Modo usuario

Modo supervisor

Procesosclientes

ProcesosServidores

DosExecPgm() CreateProcess() fork()

Crear proceso NT Crear proceso NT Crear proceso NT

Crear objeto proceso

Sistemas Operativos II (II-UJI) Introducción92

SS OOIIIIIIIIModelo de objetos de Windows NT/2000

n Cualquier recurso del sistema que pueda ser compartido o protegido (proceso, hilo, fichero, memoria, dispositivo físico, etc.) es implementado en Windows NT como un objeto y es manipulado mediante servicios de objetos

n Ventajas de un modelo de objetos:

u Gestión uniforme de los recursos del sistema

u Simplificación del sistema de seguridad (todos los objetos se protegen igual)

u Simplificación del esquema de compartición de recursos

u Sistema fácilmente consistente con el paso del tiempo (reducción de los cambios a realizar)

Sistemas Operativos II (II-UJI) Introducción93

SS OOIIIIIIIIModelo de objetos de Windows NT/2000

n Estructura de un objeto:u Tipo de objeto (clase de objeto)

u Atributos (lo definen)

u Servicios (determinan cómo manipular el objeto)

Identificativo de procesoObjeto de accesoPrioridad baseAfinidad del procesadorTiempo de ejecuciónPuertos de comunicaciónEstado de finalizaciónetc.

PROCESO

Tipo

del

ob

jeto

Atr

ibut

os

del o

bjet

oS

ervi

cios

de

l obj

eto

Crear procesoAbrir procesoPedir información del procesoAñadir información del procesoFinalizar procesoAsignar/liberar memoria virtualLeer/escribir memoria virtualetc.

Sistemas Operativos II (II-UJI) Introducción94

SS OOIIIIIIIIModelo de objetos de Windows NT/2000

n Tipos de objetos:

Objeto Descripción

Proceso Invocación de un programa con su espacio de direccionamiento y recursos requeridos

Hilo Entidad ejecutable de un proceso

Sección Región de memoria compartida

Fichero Instancia de un fichero abierto o de un dispositivo de E/S

Puerto Destino de los mensajes transferidos entre procesos

Acceso Información de seguridad sobre un usuario conectado

Evento Mecanismo para indicar que ha ocurrido un evento del sistema

Mutante Mecanismo para conseguir exclusiones mutua

Alarma Contador alarma que registra el paso del tiempo

Sistemas Operativos II (II-UJI) Introducción95

SS OOIIIIIIII

Tema 1. Introducción

Índice

n Introducción

n Taxonomía de los SOs

n Introducción al SO Linux

n Introducción al SO Windows NT/2000

n Introducción al SO Minix3 Estructura del SO Minix3 Núcleo de Minix

*

Sistemas Operativos II (II-UJI) Introducción96

SS OOIIIIIIIIEstructura de Minix

n Estructura multinivel cliente/servidor:

Init Ordenes shell

Proceso usuario

Proceso usuario

...

Gestión de memoria Gestión del stma. ficheros

Tarea de disco

Tarea de teclado

Tarea de reloj

Tarea del sistema

...

Gestión de procesos

Capa

4Procesos usuario

3Procesos servidor

2Gestión E/S

1

Llamadas al sistema

Núcleo

Sistemas Operativos II (II-UJI) Introducción97

SS OOIIIIIIIIEstructura de Minix

n Estructura multinivel cliente/servidor (cont.):

u Nivel 1: Gestión de procesos

l Capta y trata interrupciones

l Mantiene el mecanismo de mensajes

l Proporciona un modelo de procesos

u Nivel 2: Procesos (tareas) de E/S

l Una tarea por dispositivo:

l Mantiene el mecanismo de mensajes

3 Tarea de disco: Lee o escribe bloques de disco

3 Tarea de teclado: Lee del teclado caracteres y escribe en pantalla

3 etc.

Sistemas Operativos II (II-UJI) Introducción98

SS OOIIIIIIIIEstructura de Minix

n Estructura multinivel cliente/servidor (cont.):

u Nivel 3: Procesos servidor

l Gestor de memoria: Ejecuta las llamadas al sistema relacionadas con la memoria (fork, exec, wait, etc.)

l Gestor de ficheros: Ejecuta las llamadas al sistema relacionadas con el sistema de ficheros (open, write, dup, etc.)

u Nivel 4: Procesos de usuario

l Se comunican con el nivel inferior mediante llamadas al sistema

Sistemas Operativos II (II-UJI) Introducción99

SS OOIIIIIIIINúcleo de Minix

n Núcleo:

u Capas 1 y 2 del modelo multinivel

u Los subsistemas cliente y servidor se comunican mediante paso demensajes (técnica rendezvous).

l Minix reconvierte las llamadas al sistema en mensajes cuyo destino esel gestor de memoria o el gestor de ficheros

l Toda interrupción HW es reconvertida en un mensaje

u El mecanismo de mensajes se lleva a cabo en el núcleo

Proceso usuario

Dispositivo E/S

Proceso servidor Tarea

Gestión de procesos

read (...)

Sistemas Operativos II (II-UJI) Introducción100

SS OOIIIIIIIIEjercicio 1

n ¿Cuántas instrucciones de la siguiente lista deben ejecutarse exclusivamente en modo núcleo? Razone su respuesta

a. Inhibir todas las interrupcionesb. Escribir en los registros de control de un controlador de DMAc. Leer el estado de un controlador de periféricod. Escribir en el reloj del computadore. Provocar un TRAP o interrupción softwaref. Escribir en los registros del MMU

Sistemas Operativos II (II-UJI) Introducción101

SS OOIIIIIIIIEjercicio 2

n ¿Dónde es más compleja una llamada al sistema, en un sistema operativo monolítico o en uno por capas?

Sistemas Operativos II (II-UJI) Introducción102

SS OOIIIIIIIIEjercicio 3

n ¿Qué tipo de sistema operativo es más fácil de modificar, uno monolítico o uno por capas? ¿Cuál es más eficiente?

Sistemas Operativos II (II-UJI) Introducción103

SS OOIIIIIIIIEjercicio 4

n Indicar qué hace la siguiente secuencia de comandos:

$ grep V1 ~/.profileexport V1=Pepe$ V2=Juan$ cat fichecho “$V1 y $v2”$ ksh fich

Sistemas Operativos II (II-UJI) Introducción104

SS OOIIIIIIIIEjercicio 5

n ¿En qué fichero de configuración de tu entorno y de qué forma definirías la siguiente variable para que se pueda invocar desde cualquier “script” que crees?

V=`cal | head –1`

Sistemas Operativos II (II-UJI) Introducción105

SS OOIIIIIIIIEjercicio 6

n ¿Cómo listarías los ficheros de tu directorio “home” que no sean directorios cuyo nombre acabe en .c?

a. ls –l ~ | grep "^-.*.c$“

b. ls –l ~ | grep "^[^d].*.c$“

c. ls –l ~ | grep "^[^d].*\.c“

d. ls –l ~ | grep "^[^d].*\.c$”

Sistemas Operativos II (II-UJI) Introducción106

SS OOIIIIIIIIEjercicio 7

n Escribe una línea de comandos que muestre

a. El número de usuarios con cuenta en la máquina

b. Los usuarios de tu grupo

Sistemas Operativos II (II-UJI) Introducción107

SS OOIIIIIIIIEjercicio 8

n Asumiendo que la salida del comando ls sobre un fichero de ejemplo llamado f es la siguiente:

$ ls -l f-rw-r--r-- 1 castano icc 1 Oct 14 12:23 f

indicar qué hace el siguiente guión del shell:

for f in `find ~ -type f`do

if [ `ls -l $f | sed "s/ */#/g" | cut -f5 -d#` -le 4 ]then echo $f

fidone

Sistemas Operativos II (II-UJI) Introducción108

SS OOIIIIIIIIEjercicio 9

n ¿Qué ocurre si después de ejecutar lo siguiente salimos de sesión e inmediatamente volvemos a entrar en sesión?

$ cat ppwhile truedo

cp ~/.profile /dev/nulldone$ nohup pp&

a. No habrá ningún proceso de la sesión anterior ejecutándose

b. El contenido del fichero coincidirá con el del fichero situado en el directorio de trabajo del usuario

c. El contenido del fichero coincidirá con el del fichero situado en el directorio “home” del usuario

d. Continuarán ejecutándose uno o varios procesos de la sesión anterior

Sistemas Operativos II (II-UJI) Introducción109

SS OOIIIIIIIIEjercicio 10

n Realizar un guión del shell, denominado pe, que elimine todos los procesos que hemos dejado ejecutándose en sesiones anteriores. Para ello se deben eliminar todos los procesos que muestra la orden ps que nos pertenezcan, teniendo en cuenta no eliminar los procesos de la sesión actual (o sea, cuya terminal asociada se obtiene con la orden who am i).

$ who am icastano pts/46 Oct 14 13:19 (nuvol)$ ps -u castanoPID TTY TIME CMD

14425 ? 00:00:00 /bin/sh nohup ./pp18544 pts/46 00:00:00 -bash30697 ? 00:00:00 sleep 1030721 pts/46 00:00:00 ps -ef30722 pts/46 00:00:00 grep castano

Sistemas Operativos II (II-UJI) Introducción110

SS OOIIIIIIIIEjercicio 10 (cont.)

$ who am i | sed s/' '' '*/:/g | cut -f2 -d:pts/46pts/46 $$ TERMINAL=`who am i | sed s/' '' '*/:/g | cut -f2 -d:`$$ echo $TERMINALpts/46$ ps -u $LOGNAME | grep -v $TERMINAL | tail +2 | cut -c1-61442530697$$ cat peTERMINAL=`who am i | sed s/' '' '*/:/g | cut -f2 -d:`for PROC in `ps -u $LOGNAME | grep -v $TERMINAL | tail +2 | cut -

c1-6`dokill -9 $PROC

done$

Sistemas Operativos II (II-UJI) Introducción111

SS OOIIIIIIIIEjercicio 11

n Realizar un guión del shell, denominado lord, que liste todos los ficheros de un directorio que se le pasa como argumento. En primer lugar aparecerán los ficheros modificados por última vez en enero y ordenados crecientemente por la fecha de dicha modificación. A continuación se mostrarán los de febrero, marzo, etc. ordenados siguiendo el criterio anterior. La salida del programa podría ser:

$ lord ~Ficheros modificados por ultima vez en Febdrwx------ 2 castano icc 4096 Feb 4 1999 Maildrwx------ 2 castano icc 4096 Feb 4 1999 Newsdrwx------ 2 castano icc 4096 Feb 27 2003 llamadas

Ficheros modificados por ultima vez en Maydrwx------ 2 castano icc 4096 May 6 1999 guionesdrwx------ 4 castano icc 4096 May 7 2001 DeGustavo

Ficheros modificados por ultima vez en Juldrwx------ 2 castano icc 4096 Jul 22 13:15 bindrwxr-x--x 2 castano icc 4096 Jul 22 15:11 tmpdrwx------ 2 castano icc 4096 Jul 29 1999 nsmail$

Sistemas Operativos II (II-UJI) Introducción112

SS OOIIIIIIIIEjercicio 11 (cont.)

$ cat lordif cd $1 2> /dev/nullthen

for i in Ene Feb Mar Abr May Jun Jul Ago Sep Oct Nov Dicdo

if ls -l | sed "s/ */#/g" | cut -f6 -d# | grep "$i" > /dev/nullthen

echo "Ficheros modificados por ultima vez en $i"ls -l | grep " $i ..*" | sort -n -k 7echo

fidone

else echo "No existe el directorio $1"fi $

Sistemas Operativos II (II-UJI) Introducción113

SS OOIIIIIIIIEjercicio 12

n Realizar un guión del shell, denominado psmio, que muestre el número de identificación de todos los procesos que tiene en ejecución cada uno de los usuarios conectados en ese momento al sistema. Deberá indicarse además el número de identificación del proceso padre y del proceso abuelo asociado a cada uno de dichos procesos. En primer lugar se listarán los procesos de un usuario, a continuación los de otro y así sucesivamente.

La salida del guión correpondiente al usuario castano podría ser:

Jerarquia de procesos del usuario castano

P.HIJO P.PADRE P.ABUELO COMANDO

17736 17735 14467 login

18544 17736 17735 -bash

26042 18544 17736 /bin/sh

26044 26042 18544 sleep

Sistemas Operativos II (II-UJI) Introducción114

SS OOIIIIIIIIEjercicio 12 (cont.)

$ ps -efl | grep $LOGNAME100 S castano 4953 4932 0 70 0 - 628 wait4 14:43 pts/9 00:00:00 -bash000 R castano 5403 4953 0 78 0 - 802 - 14:45 pts/9 00:00:00 ps -efl000 S castano 5404 4953 0 70 0 - 435 pipe_w 14:45 pts/9 00:00:00 grep castano $ $ ps -efl | tail +2 | sed "s/ */ /g" | cut -f3 -d" " | sort –uaibarbarredabellvercastano $$ usu=$LOGNAME$ ps -efl | sed "s/ */#/g" | grep "#${usu}#" | cut -f4,5,15 -d# | sort -n4953#4932#-bash6344#4953#ps6345#4953#sed6346#4953#grep6347#4953#cut6348#4953#sort

Sistemas Operativos II (II-UJI) Introducción115

SS OOIIIIIIIIEjercicio 12 (cont.)

$ cat psmiofor usu in `ps -efl | tail +2 | sed "s/ */ /g" | cut -f3 -d" " | sort -u`do

echoecho "Jerarquia de procesos del usuario $usu"echo " P.HIJO P.PADRE P.ABUELO COMANDO"for par in `ps -efl | sed "s/ */#/g" | grep "#${usu}#" | cut -f4,5,15 -d# | sort -n`

doproc_hijo=` echo $par | cut -f1 -d#`proc_padre=`echo $par | cut -f2 -d#`comando=` echo $par | cut -f3 -d#`proc_abuelo=`ps -efl | grep "^[0-9] [A-Z] [0-9A-Za-z][0-9A-Za-z]*

*${proc_padre} " | sed "s/ */ /g" | cut -f5 -d" "`echo " ${proc_hijo} ${proc_padre} ${proc_abuelo} ${comando}"

donedone $

Sistemas Operativos II (II-UJI) Introducción116

SS OOIIIIIIIIEjercicio 13

n Realizar un guión del shell que muestre todos los usuarios conectados en el sistema, así como los segundos de CPU que han consumido en total los procesos que tiene activos cada uno de ellos.

Un ejemplo del resultado de ejecutar dicho guión podría ser:

El usuario aibar consumió un total de 400 segundosEl usuario castano consumió un total de 20 segundosEl usuario quintana consumió un total de 400 segundos

Sistemas Operativos II (II-UJI) Introducción117

SS OOIIIIIIIIEjercicio 13 (cont.)

$ who | head -4vjimenez pts/0 Oct 21 20:07 (terra.act.uji.es)quintana pts/1 Oct 24 07:44 (xmerche.act.uji.es)aibar pts/2 Oct 20 19:48 (chasse.act.uji.es)villapla pts/3 Oct 20 08:36 (bragalisco.uji.es) $$ $ ps -u castanoPID TTY TIME CMD4953 pts/9 00:00:00 bash9296 pts/8 00:00:00 bash

10757 pts/8 00:00:00 vim11220 pts/9 00:00:00 ps$