Documente Academic
Documente Profesional
Documente Cultură
H. M. Deitel, Sistemas Operativos, unix- os/2- ms-dos- macintosh- vm- mvs- sistemas abiertos, Pg. 3.
manipular los archivos tanto en una como en otra plataforma. Si el S.O. cumple
bien el objetivo de abstraccin, un mismo programa puede funcionar sobre dos
mquinas de arquitectura diferente con el mismo sistema operativo, sin que
haga falta modificar el cdigo del programa.
Adems de estas funciones, el S.O. tiene otro conjunto destinado al
funcionamiento eficiente de la mquina: asignacin de recursos, gestin de
procesos.
Prcticamente, estos dos grandes grupos de funciones determinan todo lo que
hace un S.O., por un lado, las que facilitan la vida al programador y, por otro,
las que hacen que stas ltimas se ejecuten en un medio con consistencia. De
nada servira que el sistema permitiese abrir 5 archivos simultneamente si es
incapaz de dejar algo de memoria para la ejecucin del programa que los ha
abierto.
Veamos ahora algunos de estos tipos de llamadas al sistema, o servicios que
ofrece el sistema:
En todos los casos el sistema ha de ser capaz de responder con xito a estos
sucesos, o en su defecto, evitar la prdida de datos. Alguno de estos
problemas, como la imposibilidad de asignar recursos solicitados por una
aplicacin han causado muchos quebraderos de cabeza a los programadores y
se han llegado a escribir captulos enteros sobre las posibles soluciones.
Compilacin de la informacin.
5
se refiere, esto es, asignar a cada proceso una parte del procesador para
poder compartir los recursos.
Administracin de tareas:
Administracin de usuarios:
Manejo de recursos:
7
Procesadores.
Almacenamiento.
Dispositivos de e / s.
Datos.
Operadores.
Programadores de aplicaciones.
Programas.
Hardware.
Usuarios.
Cuando enciendes una computadora, lo primero que sta hace es llevar a cabo
un autodiagnstico llamado auto prueba de encendido (Power On Self Test,
POST). Durante la POST, la computadora identifica su memoria, sus discos, su
teclado, su sistema de vdeo y cualquier otro dispositivo conectado a ella. Lo
siguiente que la computadora hace es buscar un S.O para arrancar (boot). Una
vez que la computadora ha puesto en marcha su S.O, mantiene al menos parte
de ste en su memoria en todo momento. Mientras la computadora est
encendida, el S.O tiene 4 tareas principales:
segn
las
siguientes
generaciones
CON
sus
principales
caractersticas.
A finales de los aos 40, con la aparicin de la primera generacin de
computadores, se realizaba lo que se llama el proceso en serie. Por aquel
entonces no existan los sistemas operativos, y los programadores deban
interactuar con el hardware del computador sin ayuda externa. Esto haca que
el tiempo de preparacin para realizar una tarea fuera excesivo. Adems para
poderse utilizar el computador deba hacerse por turnos. Para ello se rellenaba
un formulario de reserva en el que se indicaba el tiempo que el programador
necesitaba para realizar su trabajo. Hay que tener en cuenta que por aquel
entonces los computadores eran mquinas muy costosas y que eran esto haca
que estuvieran muy solicitadas y que slo pudieran utilizarse en periodos
breves de tiempo.
A finales de los 40's el uso de computadoras estaba restringido a aquellas
empresas o instituciones que podan pagar su alto precio, y no existan los
sistemas operativos. En su lugar, el programador deba tener un conocimiento y
contacto profundo con el hardware, y en el infortunado caso de que su
10
programa fallara, deba examinar los valores de los registros y paneles de luces
indicadoras del estado de la computadora para determinar la causa del fallo y
poder corregir su programa, adems de enfrentarse nuevamente a los
procedimientos de apartar tiempo del sistema y poner a punto los
compiladores, ligadores, etc; para volver a correr su programa, es decir,
enfrentaba el problema del procesamiento serial ( serial processing ).
11
primero que nos toc utilizar. De la misma manera, fue tambin el comienzo
para Bill Gates y su empresa Microsoft.
En sus principios fue desarrollado junto con la empresa IBM, pero diferencias
entre las partes hicieron que no fuera un lanzamiento en conjunto. Por el
contrario, cada una de las empresas present "su" sistema operativo: PC-DOS
(IBM) y MS-DOS (Microsoft).
Un tercer competidor para estos sistemas operativos fue el DR-D.O.S. de la
empresa Digital Research que inclua comandos ms detallados y de mayor
funcionalidad, pero que con el tiempo, y gracias a las campaas publicitarias de
Microsoft fue quedando relegado a un segundo lugar compartido con el PCDOS de IBM. Luego de unos aos DR-D.O.S. fue adquirido por Novell que
present una nueva versin conocida como Novell D.O.S. que realmente casi
no tuvo cabida en el mercado, aunque era muy buena.
D.O.S. era simplemente una pantalla de texto con una lnea de comandos que
nos indicaba en qu directorio nos encontrbamos como nico dato orientativo.
Uno tena que saber que cosas haba que escribir para que la mquina "hiciera
algo". No haba menes contextuales, ni pantallas grficas que nos guiaran.
Careca por completo de algn nivel intuitivo. D.O.S. todava hoy utiliza
antiguos comandos
12
Generacin Cero
(dcada de 1940):
Carencia
total de
S. O.
Completo acceso al
lenguaje de mquina
Generacin
Carencia de S. O.
En los aos
cincuenta comienzan
como transicin entre
trabajos, haciendo la
misma ms simple.
Segunda
generacin
(1955-1965): transistores y
sistemas de procesamiento
por lotes (batch):
En los aos sesenta aparecen
los S. O. para sistemas
compartidos con:
Multiprogramacin:
varios
programas de usuarios se
encuentran al mismo tiempo en
el almacenamiento principal,
cambiando
el
procesador
rpidamente de un trabajo a
otro.
Multiprocesamiento:
varios
procesadores se utilizan en un
mismo
sistema
para
incrementar
el
poder
de
procesamiento.
Posteriormente
aparece
la
independencia de dispositivo:
El
programa
del
usuario
especifica las caractersticas de
los dispositivos que requieren
los archivos.
El S. O. asigna los dispositivos
correspondientes segn los
requerimientos
y
las
disponibilidades.
Cuarta
generaci
n
(19801990):
computa
doras
personal
es.
Difusin de la multiprogramacin:
Particin de la memoria en porciones, con trabajos
distintos en cada una de ellas.
Aprovechamiento
del
tiempo
de
espera
consecuencia de operaciones de e/s, para utilizar
la CPU para otros procesos.
Proteccin por hardware del contenido de cada
particin de memoria.
Aparicin de tcnicas de spooling:
Simultaneous Peripheral Operation On Line:
operacin simultnea y en lnea de perifricos.
Almacenamiento de trabajos de entrada y de
salida en dispositivos transitorios rpidos (discos),
para disminuir el impacto de los perifricos mas
lentos.
Son sistemas de modos mltiples, es decir que
deben soportar sistemas de propsitos
generales; son grandes y complejos pero muy
poderosos.
Interponen una capa de software entre el usuario
y el hardware.
Aparecen los lenguajes de control de trabajos,
necesarios para especificar el trabajo y los
recursos requeridos.
Soportan timesharing (tiempo compartido),
variante de la multiprogramacin con usuarios
conectados mediante terminales en lnea,
permitiendo la operacin en modo interactivo o
conversacional.
Aparecen los sistemas de tiempo real, que
requieren tiempos de respuesta muy exigentes,
especialmente para usos industriales o militares.
13
1.4 Clasificacin
Debido a la evolucin de los S.O fue necesario realizar una clasificacin;
considerando las diferencias existentes entre sus componentes los podemos
clasificar en:
por lotes.
multiprogramacin.
multiusuario.
de tiempo compartido.
de tiempo real.
14
por la parte residente del sistema operativo, y la otra es utilizada para cargar
programas transitorios durante su ejecucin. Cuando un programa transitorio
termina, se carga un nuevo programa en la misma rea de memoria.
Puesto que en cada momento hay como mximo un programa en ejecucin los
sistemas de lotes no requieren ninguna gestin de dispositivos crtica en el
tiempo. Por esta razn, muchos sistemas .operativos por lotes y serie utilizan el
sencillo mtodo E/S.
Los S.O por lotes requieren que la informacin est reunida en bloque o "lote"
(el programa, los datos, y las instrucciones). Los trabajos son procesados en el
orden de admisin, segn el modelo de "primero en llegar primero en ser
atendido". En estos sistemas la memoria se divide en dos zonas. Una de ellas
es ocupada por el S.O, y la otra se usa para cargar programas transitorios para
su ejecucin. Cuando termina la ejecucin de un programa se carga un nuevo
programa en la misma zona de memoria.
Sistemas operativos multiprogramacin
A una instancia de un programa en ejecucin se le denomina proceso o tarea.
Un S.O multitarea se distingue por su capacidad de soportar la ejecucin
concurrente de dos o ms procesos activos. La
multitarea se implementa
15
16
17
18
19
20
Modelo cliente-servidor
Una tendencia de los sistema operativos modernos es la de trasladar el cdigo
a capas superiores, y eliminar la mayor parte posible del sistema operativo para
mantener un ncleo mnimo. El punto de vista usual es el implantar la mayora
de las funciones del sistema operativo como procesos de usuario. Para solicitar
un servicio, como la lectura de un bloque de cierto fichero, un proceso de
usuario (denominado en este caso proceso cliente) enva la solicitud a un
proceso servidor, que realiza el trabajo y devuelve la respuesta.
21
En este modelo, que se muestra en la figura 5.3, lo nico que hace el ncleo es
controlar la comunicacin entre los clientes y los servidores. Al separar el
sistema operativo en partes, cada una de ellas controla una faceta del sistema,
como el servicio a ficheros, servicio a procesos, servicio a terminales o servicio
a la memoria; cada parte es pequea y controlable. Adems, puesto que todos
los servidores se ejecutan como procesos en modo usuario, y no en modo
ncleo, no tienen acceso directo al hardware. En consecuencia, si hay un error
en el servidor de ficheros ste puede fallar, pero esto no afectar en general a
toda la mquina.
Otra de las ventajas del modelo cliente-servidor es su capacidad de adaptacin
para su uso en sistemas distribuidos (vase la figura 5.4). Si un cliente se
comunica con un servidor mediante mensajes, el cliente no necesita saber si el
mensaje se gestiona de forma local, en su mquina, o si se enva por medio de
una red a un servidor en una mquina remota. En lo que respecta al cliente, lo
mismo ocurre en ambos casos: se envi una solicitud y se recibi una
respuesta.
con acceso total al hardware, pero de forma que se comuniquen con los dems
procesos mediante el mecanismo normal de mensajes.
La otra forma es construir una cantidad mnima de mecanismos dentro del
ncleo, pero manteniendo las decisiones de poltica relativos a los usuarios
dentro del espacio de los usuarios. Por ejemplo, el ncleo podra reconocer que
cierto mensaje enviado a una direccin especial indica que se tome el
contenido de ese mensaje y se cargue en los registros del controlador de algn
disco, para iniciar la lectura del disco. En este ejemplo, el ncleo ni siquiera
inspeccionara los bytes del mensaje para ver si son vlidos o tienen algn
sentido; slo los copiara ciegamente en los registros del controlador del disco.
Es evidente que debe utilizarse cierto esquema para limitar tales mensajes slo
a los procesos autorizados. La separacin entre mecanismos y poltica es un
concepto importante, aparece una y otra vez en diversos contextos de los
sistemas operativos.
Estructura jerrquica.
23
5 Operador
4 Programas del Usuario
3 Control de Entrada Salida
2 Comunicaciones Operador Proceso
1 Administracin de la Memoria y del Disco
0 - Asignacin del Procesador y Multiprogramacin
Tabla 1: Estructura del S.O. en capas "THE".
Descripcin de capas:
Capa 0:
Administra la memoria.
24
Capa 2:
Administra la comunicacin entre cada proceso y la
consola del operador.
Por sobre esta capa, cada proceso tiene su propia
consola de operador.
Capa 3:
Controla los dispositivos de e / s y almacena en buffers los flujos de
informacin entre ellos.
Por sobre la capa 3 cada proceso puede trabajar con dispositivos
abstractos de e / s en vez de con dispositivos reales.
Capa 4:
Aloja los programas del usuario.
Los programas. del usuario no tienen que
preocuparse por el proceso, memoria, consola o
control de e / s.
Capa 5:
Localiza el proceso operador del sistema.
25
En el sistema de anillos, cada uno tiene una apertura, conocida como puerta o
trampa (trap), por donde pueden entrar las llamadas de las capas inferiores. De
esta forma, las zonas ms internas del sistema operativo o ncleo del sistema
estarn ms protegidas de accesos indeseados desde las capas ms externas.
Las capas ms internas sern, por tanto, ms privilegiadas que las externas.
(Simultaneous Peripheral Operation On Line: operacin simultnea de perifricos en lnea
Mquina Virtual.
Se trata de un tipo de S.O que presentan una interface a cada proceso,
mostrando una mquina que parece idntica a la mquina real subyacente.
Estos S.O separan dos conceptos que suelen estar unidos en el resto de
sistemas: la multiprogramacin y la mquina extendida. El objetivo de los S.O
de mquina virtual es el de integrar distintos sistemas operativos dando la
sensacin de ser varias mquinas diferentes.
26
Se ejecuta en el hardware.
Realiza la multiprogramacin.
Las mquinas virtuales instrumentan copias exactas del hardware simple, con
su modo ncleo/usuario, E/S, interrupciones y todo lo dems que posee una
mquina real.
Pueden ejecutar cualquier S.O. que se ejecute en forma directa sobre el
hardware.
Las distintas mquinas virtuales pueden ejecutar distintos S.O. y en general as
lo hacen. Soportan perifricos virtuales.
Ejemplo de S.O. representativo de esta estructura: VM/370 de IBM (Ver Fig.
1.4):
27
El ncleo de estos S.O se denomina monitor virtual y tiene como misin llevar a
cabo la multiprogramacin, presentando a los niveles superiores tantas
mquinas virtuales como se soliciten. Estas mquinas virtuales no son
mquinas extendidas, sino una rplica de la mquina real, de manera que en
cada una de ellas se pueda ejecutar un sistema operativo diferente, que ser el
que ofrezca la mquina extendida al usuario (Ver Fig. 1.5).
Cliente-servidor ( Microkernel)
El tipo ms reciente de sistemas operativos es el denominado Cliente-servidor,
que puede ser ejecutado en la mayora de las computadoras, ya sean grandes
o pequeas.
Este sistema sirve para toda clase de aplicaciones por tanto, es de propsito
general y cumple con las mismas actividades que los sistemas operativos
convencionales.
El ncleo tiene como misin establecer la comunicacin entre los clientes y los
servidores. Los procesos pueden ser tanto servidores como clientes. Por
ejemplo, un programa de aplicacin normal es un cliente que llama al servidor
correspondiente para acceder a un archivo o realizar una operacin de
28
Fig. 1.6 Para solicitar un servicio (por ejemplo: lectura de un bloque de cierto archivo) segn el
modelo cliente/servidor:
29
1.6
Todas las operaciones en las que participan procesos son controladas por la
parte del sistema operativo denominada ncleo. El ncleo normalmente
representa solo una pequea parte de lo que por lo general se piensa que es
todo el sistema operativo, pero es tal vez el cdigo que mas se utiliza. Por esta
razn, el ncleo reside por lo regular en la memoria principal, mientras que
otras partes del sistema operativo son cargadas en la memoria principal solo
cuando se necesitan.
Una de las funciones ms importantes incluidas en el ncleo es el
procesamiento de las interrupciones. En los grandes sistemas multiusuarios se
dirige al procesador un flujo continuo de interrupciones, por lo cual es necesario
dar una respuesta rpida a tales interrupciones para aprovechar bien los
recursos del sistema y proporcionar tiempos de respuesta aceptables a los
usuarios interactivos.
30
Manejo de interrupciones
Despacho
Sincronizacin de procesos.
31
Microncleos
El enfoque microncleo consiste en definir una abstraccin muy simple sobre el
hardware, con un conjunto de primitivas o llamadas al sistema que
32
AIX
La familia de microncleos L4
Minix
MorphOS
QNX
RadiOS
VSTa
33
Microsoft Windows NT, usado en todos los sistemas que usan el cdigo
base de Windows NT
DragonFly BSD
ReactOS
Hay gente que confunde el trmino ncleo hbrido con los ncleos
monolticos que pueden cargar mdulos despus del arranque, lo que es un
error. Hbrido implica que el ncleo en cuestin usa conceptos de
arquitectura o mecanismos tanto del diseo monoltico como del microncleo,
especficamente el paso de mensajes y la migracin de cdigo no esencial
hacia el espacio de usuario, pero manteniendo cierto cdigo no esencial en
el propio ncleo por razones de rendimiento.
Exoncleos
Los exoncleos, tambin conocidos como sistemas operativos verticalmente
estructurados, representan una aproximacin radicalmente nueva al diseo de
S.O.
La idea subyacente es permitir que el desarrollador tome todas las decisiones
relativas al rendimiento del hardware. Los exoncleos son extremadamente
pequeos, ya que limitan expresamente su funcionalidad a la proteccin y el
35
nivel (first level interript handlers, FLIH) para procesar las diferentes clases de
interrupciones. Por tanto, hay seis manejadores de interrupciones de primer
nivel: FLIH de SVC, FLIH de E/S, FLIH externo, FLIH de reinicio, FLIH de
verificacin del programa y FLIH de verificacin de la maquina. Cuando ocurre
una interrupcin, el S.O guarda el estado de proceso interrumpido y transfiere
el control al manejador de interrupciones de primer nivel apropiado. Esto se
logra mediante una tcnica llamada cambio de contexto. Los manejadores de
interrupciones de primer nivel deben distinguir entre interrupciones de la misma
clase; el procesamiento de estas interrupciones es realizado entonces por
alguno de los manejadores de interrupciones de segundo nivel. 6
Aunque algunos autores utilizan criterios distintos, nosotros veremos las
siguientes:
H. M. Deitel, Sistemas Operativos, unix- os/2- ms-dos- macintosh- vm- mvs- sistemas abiertos, Pg. 63
37
38
39
40
41
42
43
sem_op;
// clase de operacin
};
45
Cada elemento de sops es una operacin sobre algn semforo del conjunto
de semid. El algoritmo simplificado de la operacin realizada es ste (semval
es el valor entero contenido en el semforo donde se aplica la operacin).
si semop<0
si semval >= |semop|
semval -= |semop|
si semval < |semop|
si (semflag & IPC_NOWAIT)!=0
la funcin semop() retorna
si no
bloquearse hasta que semval >= |semop|
semval -= |semop|
si semop>0
semval += semop
si semop==0
si semval = 0
SKIP
si semval != 0
si (semflag & IPC_NOWAIT)!=0
la funcin semop() retorna
si no
46
/* para key_t */
1,
/* con un solo
elemento */
IPC_CREAT|PERMISOS /* lo crea (IPC_CREAT) con
unos PERMISOS
*/
);
if ( semid==-1 ) return -1;
/* Da el valor inicial al semforo */
semctl ( semid, 0, SETVAL, valor_inicial );
return semid;
}
/* abre_sem: Abrir un semforo que otro proceso ya cre */
int abre_sem (key_t clave)
{
return semget(clave,1,0);
}
/* Operaciones P y V */
void sem_P ( int semid )
/* Operacin P */
{
struct sembuf op_P [] =
{
0, -1, 0 /* Decrementa semval o bloquea si cero */
};
semop ( semid, op_P, 1 );
}
void sem_V ( int semid )
/* Operacin V */
{
struct sembuf op_V [] =
{
0, 1, 0
/* Incrementa en 1 el semforo */
};
semop ( semid, op_V, 1 );}
48
49