Upload
dangtruc
View
219
Download
3
Embed Size (px)
Citation preview
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$