Documente Academic
Documente Profesional
Documente Cultură
Operativos
Concepto de S.O.
Los ordenadores vienen equipados con una capa de
software llamado S.O. cuya labor es:
administrar todos los dispositivos del ordenador, ocultando sus
peculiaridades
proporcionar al programador una interfaz de acceso sencilla
para comunicarse con los dispositivos
Concepto de S.O
Bsicamente hay dos visiones para definir un S.O.:
Mquina extendida o virtual: (Perspectiva descendente)
presenta una abstraccin del HW subyacente ms
sencilla y fcil de usar, ocultando sus peculiaridades
presta una variedad de servicios que los
programas utilizan mediante instrucciones
especiales, i.e., llamadas al sistema
Administrador o controlador de recursos: (Perspectiva
ascendente)
Historia y Evolucin:
Primera Generacin
Historia y Evolucin:
Segunda Generacin
Monitor Residente:
Intrprete de tarjetas
Cargador de programas
Controlador de E/S
$EJECUTAR
$CARGAR
Programa en Fortran
$FORTRAN
$TRABAJO, 10,6610802,
MARVIN TANENBAUM
Historia y Evolucin:
Unidad de
cinta
Lector de
tarjetas
Cinta de
entrada
Impresora
1401
(a)
(b)
7094
(c)
(d)
1401
(e)
(f)
Historia y Evolucin:
Teniendo un nico
ordenador hay dos posibilidades, usar almacenamiento
temporal con buffers o bien Spoolers
Buffers
Almacenamiento intermedio entre dispositivos de E/S y
CPU, desde donde lee/escribe la CPU
Cuando la CPU lee los datos del buffer pasa a trabajar
con ellos
A su vez, el dispositivo de E/S inicia la siguiente lectura
Dispositivo y CPU trabajando a la vez
Ideal si velocidad de CPU es E/S
Historia y Evolucin:
Historia y Evolucin:
Tercera Generacin
Historia y Evolucin:
Cuarta Generacin
S.O. de servidor
Los servidores pueden ser PCs muy potentes, estaciones de
trabajo o incluso mainframes
Dar servicio a mltiples usuarios a travs de la red
Permiten compartir recursos HW y SW
Prestan servicios de impresin, de fi cheros o de Web
Ejemplo de S.O.: UNIX (Linux, FreeBSD, Solaris), Windows 2000
Interfaz de usuario
Interfaces alfanumricas
Su modo de trabajo est basado en lneas de texto
El usuario escribe la orden a ejecutar y sus parmetros
El intrprete de rdenes es el mdulo encargado de la
interfaz lee la orden, y ejecuta la accin especificada
Existen dos tipos de intrpretes de rdenes:
interno: un nico programa contiene el cdigo para
ejecutar todas las rdenes
externo: las rdenes no forman parte del intrprete,
son programas externos
En los sistemas reales puede existir una mezcla de las
dos estrategias
Interfaces alfanumricas
Interfaz de rdenes interno
Es ms eficiente, pero puede llegar a ser muy
grande, y posibles modificaciones o ampliaciones
exigen cambiar el cdigo del intrprete y
recompilarlo
Su funcionamiento es:
Lee la orden
Determina qu orden es, y salta a la parte del cdigo
correspondiente
Si no es una orden interna, ejecutar la aplicacin en un
nuevo proceso
Espera a que fi nalice la ejecucin
Interfaz de usuario
Interfaces grfi cas, GUI (Graphical User Interface)
El objetivo es presentar a los usuarios una visin
sencilla e intuitiva del sistema, ocultando su
complejidad
Estn basadas en ventanas que permiten trabajar
simultneamente con varias actividades
Se utilizan iconos y mens para representar los
recursos y poder realizar operaciones sobre los mismos
El ratn permite interactuar con estos elementos
Para usuarios avanzados y para agilizar el trabajo
proporcionan la posibilidad de realizar las mismas
operaciones mediante una combinacin de teclas
Interfaces grficas
La estructura interna est formada por un conjunto de
programas, los cuales trabajan conjuntamente para
realizar las peticiones del usuario, usando los servicios
del sistema
Gestor de ventanas para mantener el estado de las
mismas y permitir su manipulacin
Administrador de programas para arrancar aplicaciones
Gestor de archivos para manipular ficheros y directorios
Herramientas de configuracin de la propia interfaz y
del entorno
Ideal si tambin incluye alguna otra interfaz
programtica a nivel de scripts (importante separar la
funcionalidad de la presentacin)
Llamadas al sistema
cuenta=read(fd, buffer, nbytes);
Address
0xFFFFFFFF
Return to caller
Trap to the kernel
5 Put code for read in register
10
4
User space
Library
procedure
read
Increment SP
Call read
3 Push fd
2 Push &buffer
1 Push nbytes
11
User program
calling read
Kernel space
(Operating system)
Dispatch
0
Sys call
handler
Description
Create a child process identical to the parent
Wait for a child to terminate
Replace a process core image
Terminate process execution and return status
File management
Description
Call
Open a file for reading, writing or both
fd = open(file, how, ...)
Close an open file
s = close(fd)
Read data from a file into a buffer
n = read(fd, buffer, nbytes)
Write data from a buffer into a file
n = write(fd, buffer, nbytes)
Move the file pointer
position = lseek(fd, offset, whence)
Get a files status information
s = stat(name, &buf)
Directory and file system management
Description
Call
s = mkdir(name, mode)
Create a new directory
s = rmdir(name)
Remove an empty directory
s = link(name1, name2)
Create a new entry, name2, pointing to name1
s = unlink(name)
Remove a directory entry
s = mount(special, name, flag)
Mount a file system
s = umount(special)
Unmount a file system
Miscellaneous
Call
s = chdir(dirname)
s = chmod(name, mode)
s = kill(pid, signal)
seconds = time(&seconds)
Description
Change the working directory
Change a files protection bits
Send a signal to a process
Get the elapsed time since Jan. 1, 1970
API Win 32
Contina. . .
API Win32 cjto. de procedimientos para pedir servicios al S.O.
Se reconoce parcialmente en todas las versiones de Windows
(desde Windows 95)
Al desacoplar la interfaz de las llamadas al sistema, Microsoft se
guarda la posibilidad de modifi car las llamadas al sistema, sin
inutilizar los programas existentes
La API la forman millares de funciones, algunas provocan
llamadas al sistema, otras no (se ejecutan en modo usuario)
Difcil saber qu es una llamada al sistema o simplemente una
llamada a un procedimiento de librera en el espacio de usuario
Hablaremos de la API Win32, no de llamadas al sistema
propiamente dichas
Tambin maneja muchas caractersticas de la GUI: ventanas,
fi guras geomtricas, texto, tipos de letra, mens, etc.
API Win32
Llamadas de API llamadas al sistema de POSIX
UNIX
Win32
fork
waitpid
execve
exit
open
close
read
write
lseek
stat
mkdir
rmdir
link
unlink
mount
umount
chdir
chmod
kill
time
CreateProcess
WaitForSingleObject
(none)
ExitProcess
CreateFile
CloseHandle
ReadFile
WriteFile
SetFilePointer
GetFileAttributesEx
CreateDirectory
RemoveDirectory
(none)
DeleteFile
(none)
(none)
SetCurrentDirectory
(none)
(none)
GetLocalTime
Description
Create a new process
Can wait for a process to exit
CreateProcess = fork + execve
Terminate execution
Create a file or open an existing file
Close a file
Read data from a file
Write data to a file
Move the file pointer
Get various file attributes
Create a new directory
Remove an empty directory
Win32 does not support links
Destroy an existing file
Win32 does not support mount
Win32 does not support mount
Change the current working directory
Win32 does not support security (although NT does)
Win32 does not support signals
Get the current time
Segn el diseador/implementador
Subsistema de gestin de la memoria principal
Principal almacenamiento de datos de acceso rpido y
compartido por la CPU y los dispositivos de E/S
Los procesos deben estar total o parcialmente en memoria
Entran y salen de memoria nuevos procesos
Utilizan memoria dinmica que reservan y liberan
reas internas al S.O. como DMA y contabilidad
Segn el diseador/implementador (i
Subsistema de gestin de E/S
Ocultar las particularidades del hardware y que el usuario no las
perciba
Ofrecer una interfaz homognea
En UNIX se consigue mediante el subsistema de E/S:
Un componente de gestin de memoria que incluye el uso de buffers, cach
Interfaz general (y uniforme) con los manejadores de dispositivos
Manejadores para dispositivos hardware especfi cos
Segn el diseador/implementador
Subsistema de gestin de ficheros
Es el componente ms visible del S.O.
Disquetes, discos magnticos, discos pticos, etc.
Presentar una perspectiva lgica uniforme de almacenamiento de
informacin, abstrayndose de las propiedades del dispositivo
Fichero unidad lgica de almacenamiento
Segn el diseador/implementador
Subsistema de proteccin
Proteccin mecanismo para controlar el acceso de los
procesos o usuarios a los recursos defi nidos por un sistema de
computacin: fi cheros, impresoras, procesos, etc.
Especifi car los controles que se impondrn y cmo ponerlos
Los distintos procesos deben protegerse unos de otros
Ficheros, segmentos de memoria, CPU, etc. slo deben ser
usados por los procesos que han obtenido autorizacin
Ya hemos visto a nivel HW
Modo ncleo/usuario controlar los dispositivos HW
Registros base y lmite controlar la memoria
Cronmetros controlar la CPU
Arranque hardware
Iniciador ROM Programa de arranque disponible en
la ROM
Al arrancar el ordenador Seal elctrica Carga
valores predefinidos en los registros
Contador del programa direccin de inicio del
iniciador ROM
El iniciador ROM realiza tres funciones:
1. Comprueba el sistema, detectando sus caractersticas y
comprobando su funcionamiento
2. Lee y almacena en memoria el programa cargador del S.O.
3. Pasa el control al cargador del S.O., saltando a la direccin de
memoria donde lo ha almacenado
Arquitecturas de S.O.
Sistemas monolticos (El Gran Embrollo)
Coleccin de procedimientos sin estructura
Interfaz de procedimientos bien definida No
hay ocultamiento de informacin
Llamadas al sistema para solicitar servicios al S.O.
MS-DOS, UNIX, Windows
Estructura bsica:
Progr. ppal. procedimiento del
servicio solicitado
Procedimientos de servicio
ejecutan llamadas al sistema
Procedimientos utilitarios apoyan a
los procedimientos de servicio
Procedimiento
principal
Procedimientos
de servicio
Procedimientos
auxiliares
Arquitecturas de S.O.
Sistemas en Capas
Jerarqua de capas
Ventajas
Modularidad
Ocultacin de la informacin
Verifi cacin por capas
Inconvenientes
Difcil diseo de las capas
Dependencias mltiples
Dnde se pone esto?
THE, VENUS
MULTICS (anillos concntricos)
Layer
5
4
3
2
1
0
Function
The operator
User programs
Input/output management
Operator-process communication
Memory and drum management
Processor allocation and multiprogramming
Arquitecturas de S.O.
Mquinas virtuales
El S.O. no aade funcionalidad nueva
El monitor de mquina virtual se ejecuta sobre el HW
desnudo, realiza multiprogramacin y proporciona
varias mquinas virtuales a la capa superior
Varias Mquinas Virtuales sobre una mquina fsica
Es complejo: duplicado idntico de la mquina fsica
CMS, Modo 8086 virtual de Windows, VMWARE, JVM
Ventajas
370 virtuales
Llamadas al sistema a
CMS
CMS
CMS
VM/370
Hardware simple de la 370
Trampa aqu
Arquitecturas de S.O.
Exokernels
Presentan un clon exacto de la computadora real, pero
con un subconjunto de los recursos de la misma
Exokernel:
Se ejecuta, en modo ncleo, en la capa ms baja
Asigna recursos a las mquinas virtuales
Controlar los intentos de uso de recursos, evitando interferencias
Cada mquina virtual a nivel usuario puede ejecutar su propio
S.O. pero limitado a los recursos que se le asignan
Arquitecturas de S.O.
Modelo Cliente/Servidor
Proceso Cliente: Solicita servicios
Proceso Servidor: Provee servicios
El ncleo se convierte en un microkernel:
Maneja la comunicacin entre clientes y servidores
Servidores en modo usuario:
Proteccin: no acceso directo al hardware entonces?
Bien algunos servidores en modo ncleo (incluidos en ncleo)
Bien envan mensajes especiales que el kernel reconoce
ptimo para sistemas distribuidos (extensible, escalable, etc.)
Client
process
Client
process
Process
server
Terminal
server
File
server
Memory
server
User mode
Microkernel
Kernel mode
Client obtains
service by
sending messages
to server processes
Manejadores de dispositivos
Cada uno puede controlar uno o ms dispositivos de
E/S
Tambin pueden hacer tareas no relacionadas, como
cifrar un flujo de datos o proporcionar acceso a
estructuras de datos del kernel
No forman parte del binario del kernel (este es el mismo
para todo el mundo)
Subsistema de entorno
Est formado por tres componentes: DLLs,
subsistemas de entorno, y procesos de servicio
Se ejecutan en modo usuario
Las DLLs y los subsistemas de entorno implementan
la funcionalidad de la interfaz publicada (distinta de la
de llamadas al sistema)
Dentro de los subsistemas de entorno hay tres
distintos:
Win32 (ofi cial de W2K)
POSIX: ofrece soporte mnimo para aplicaciones UNIX
OS/2: ofrece soporte mnimo para aplicaiones OS/2