Está en la página 1de 48

INTRODUCCIN

SISTEMA INFORMTICO CONCEPTOS DE HARDWARE INTERRUPCIONES ESTRUCTURA DEL S.O. EVOLUCION DE LOS S.O. ARRANQUE Y PARADA TIPOS DE S.O.

SISTEMA INFORMTICO
Usuario 1 Usuario 2 Usuario 3

Usuario n

Compilador

Ensamblador

Editor

Base de datos

Programas del sistema y aplicaciones

SISTEMA OPERATIVO

HARDWARE

S.O. INTRODUCCIN

CAPAS DE UN SISTEMA INFORMTICO


Nivel de usuario

Nivel de lenguaje de alto nivel

.
NIVEL DE S.O
Nivel de lenguaje mquina Y ensamblador

Nivel fsico-lgico digital

S.O. INTRODUCCIN

CAPAS DE UN SISTEMA INFORMTICO (2)


Nivel fsico-lgica digital
Circuitos combinacionales y secuenciales (contadores, registros, biestables, puertas lgicas, etc.) Se estudian los registros del procesador y la unidad aritmtico-lgica

Nivel de lenguaje mquina y ensamblador


Se estudian los cdigos de las operaciones, modos de direccionamiento, tipos de datos, registros del procesador, registros de control de dispositivos de E/S, etc. El ensamblador es similar, conceptualmente hablando, al lenguaje mquina pero usa nemotcnicos para las instrucciones, macroinstrucciones y la posibilidad de servirse de los servicios ofrecidos por el S.O. que est debajo.

Nivel de Sistema Operativo


Surge como necesidad de proteger los recursos del computador

Nivel de lenguaje de alto nivel


Su objetivo es facilitar el desarrollo de la programacin. Se encuentra orientado hacia los problemas que trata y no hacia la mquina

Nivel de usuario
En este nivel el usuario no necesita conocimientos informticos sino entender el programa y el problema que trata
S.O. INTRODUCCIN 4

ESTRUCTURA DEL COMPUTADOR


flujo de control flujo de datos MEMORIA PRINCIPAL
DATOS CODIGO
ROM E N T R A D A / S A L I D A 5 U N I D A D

UNIDAD ARITMETICOLOGICA
REGISTROS

D E

UNIDAD DE CONTROL

REGISTRO DE ESTADO PUNTERO DE PILA REGISTRO DE INSTRUCCIN CONTADOR DE PROGRAMA

S.O. INTRODUCCIN

ESTRUCTURA DEL COMPUTADOR (2)


El ciclo de ejecucin se lleva a cabo segn el conjunto de instrucciones de cada CPU. Este conjunto de instrucciones se adapta a los requerimientos fsicos de la CPU. Los elementos de que disponen para la ejecucin de las instrucciones pueden ser
Registros generales. Almacenan informacin de forma temporal Contador de programa (program counter). Contiene la direccin de la siguiente instruccin a ejecutar Apuntador de pila (stack pointer). Apunta a la parte superior de la pila actual en la memoria. La pila almacena una serie de informaciones por cada procedimiento al que se ha entrado y del que no se ha salido (parmetros de entada, variables locales y variables temporales que no se mantienen en los registros) PSW (palabra de estado del programa) contiene bits de cdigo de condicin, prioridad de la CPU, modo (kernel o usuario) y otros bits de control. Juega un papel importante en las llamadas al sistema y en E/S

Las CPU actuales tienen dos modos de funcionamiento: modo kernel y modo usuario. En el modo kernel no hay lmites en el acceso a los objetos de la CPU, en el modo usuario hay restricciones en su uso. Los programas de los usuarios se ejecutan en modo usuario. El S.O. se ejecuta en modo kernel. Hay una instruccin (TRAP, no accesible a los usuarios) para intercambiar estos modos de funcionamiento. Las operaciones de E/S y el acceso a la memoria protegida no son posibles en modo usuario. Llamadas al sistema. Es la forma que utilizan los S.O. para ejecutar aquellas acciones que los procesos de usuario no pueden hacer.
S.O. INTRODUCCIN 6

ESTRUCTURA DEL COMPUTADOR (3)


UNIDAD ARITMETICO-LOGICA
Realiza los clculos aritmticos y lgicos sobre uno o dos datos Los datos con los que se realizan los clculos se almacenan previamente en la memoria o en registros. Los resultados se llevan tambin a la memoria o a los registros. La lgica de funcionamiento de las instrucciones la determina el lenguaje mquina o ensamblador de la mquina

MEMORIA
RAM y ROM. En ella reside el programa mquina a ejecutar y los datos de entrada y salida del programa

UNIDAD DE CONTROL
Se encarga de regular el funcionamiento de los distintos elementos para que funcionen coordinadamente

S.O. INTRODUCCIN

REGISTRO DE ESTADO
Modo Traza Sistema/Usuario T S 15 14 13 12 1 10 9 8 7 6 5 4 3 2 1 0

Octeto del sistema

Mascara De Interrupciones

12 11 10

Extensin Negativo Cero Desbordamiento Acarreo

X N Z V C

Octeto del usuario

S.O. INTRODUCCIN

MODELO DE PROGRAMACIN
Se caracteriza por los siguientes aspectos:
Elementos de almacenamiento
Registros generales Contador de programa Puntero/os de pila Registro de estado Memoria principal Contadores de E/S

Juego de instrucciones
Define las operaciones que es capaz de hacer el ordenador.

Modos de ejecucin
Modo usuario (tiene limitaciones: no permite realizar operaciones de E/S ni modificar parte del registro de estado ni los registros de soporte de gestin de la memoria) Modo ncleo privilegiado (sin limitaciones)

S.O. INTRODUCCIN

MODELO DE PROGRAMACIN (2)


Secuencia de funcionamiento
La unidad de control se encarga de su funcionamiento. Se trata de una secuencia que se repite sin cesar:
Lectura de la instruccin apuntada por el PC Incremento del PC Ejecucin de la instruccin

Los elementos que pueden provocar un cambio de este ciclo son:


Instruccin mquina de salto o bifurcacin Interrupciones externas o internas. El contador del programa es modificado, saltando a otro programa (el S.O.) Una instruccin mquina de llamada al sistema (p.ej.: TRAP, IN) que provoca un efecto similar a la interrupcin

S.O. INTRODUCCIN

10

QU ES UN S.O.?
Un S.O. es un programa, pero es un programa un tanto especial o diferente de los dems en el sentido que realiza funciones distintas y no relacionadas y que se describen a continuacin: EL S.O. COMO PROGRAMA
Decimos que el S.O. es un programa (o conjunto de ellos). Desde este punto de vista cumple con los esquemas elementales de todo programa informtico (algoritmos + estructuras de datos). Un S.O. es un programa en el cual los datos lo componen tablas de informacin acerca de los objetos que gestiona:
recursos fsicos (disco, impresoras, CPU... etc.) recursos lgicos (procesos de usuarios, ficheros, tiempo de CPU... etc.)

y la algoritmia es la lgica que se encarga de asignar de forma eficiente esos recursos fsicos a los recursos lgicos.

EL S.O. COMO MQUINA EXTENDIDA


Hemos dicho que la arquitectura de los ordenadores es difcil de programar, sobre todo para E/S. Una funcin fundamental del S.O. es ocultar estos detalles al usuario y presentar una interface de uso comn para todos los usuarios. El programador no necesita conocer los detalles del disco u otro hardware para hacer uso de l pues el S.O. le proporciona esa informacin a travs del software especfico (controladores de hardware) de cada uno.

EL S.O. COMO ADMINISTRADOR DE RECURSOS


Otra funcin muy importante es la de gestor de los recursos del sistema. Los programas utilizan todo tipo de hardware y es el S.O. el encargado de asignarlos a cada proceso de forma correcta. S.O. INTRODUCCIN 11

ACTIVACION DEL S.O.


Cuando finaliza el arranque del S.O., este cede el control a los procesos y a partir de ah son estos y los perifericos los que lo despiertan (activan de nuevo) mediante una interrupcin. Esta activacin puede proceder de tres fuentes diferentes:
INTERRUPCIONES LLAMADAS AL SISTEMA EXCEPCIONES

S.O. INTRODUCCIN

12

INTERRUPCIONES

Se activa con una seal que llega a la unidad de control


Cuando llega la seal (debe encontrarse activada este tipo de interrupcin), la unidad de control realiza un ciclo de activacin de interrupcin. Los pasos de este ciclo son:
Salva algunos registros del procesador Eleva el modo de ejecucin del procesador, pasndolo a ncleo Carga un nuevo valor en el contador de programa En muchos procesadores inhibe las interrupciones

Los procesadores suelen incluir varias lneas de solicitud de interrupcin, cada una de las cuales puede tener una determinada prioridad. Si se activan al mismo tiempo varias de estas lneas, se atiende la de mayor prioridad, quedando las dems a la espera. Las mas prioritarias suelen ser:
Excepciones hardware asncronas Excepciones hardware sncronas (de programa) Interrupciones externas Llamadas al sistema (TRAP)

El procesador suele incluir un mecanismo de inhibicin selectiva que permite detener todas o determinadas lneas de interrupcin. La inhibicin puede afectar a todas o a las de nivel inferior. Cuando se habilitan, puede que se hayan perdido las que se produjeran durante la inhibicin o puede que hayan sido encoladas.

S.O. INTRODUCCIN

13

INTERRUPCIONES (2)
Las interrupciones se pueden generar por diversas causas
Excepciones hardware sncronas (excepciones software)
Problemas de ejecucin
Operacin invlida en la unidad aritmtica Divisin por cero Operando no normalizado Desbordamiento en el resultado Resultado inexacto en la unidad aritmtica Dispositivo no existente Regin de memoria invlida Desbordamiento de la pila Violacin de los lmites de memoria asignada Cdigo de operacin mquina invalido

Depuracin
Punto de ruptura

Fallo de pgina

S.O. INTRODUCCIN

14

INTERRUPCIONES (3)
Excepciones hardware asncronas
Error de paridad en el bus Error de paridad en la memoria Fallo de alimentacin Lmite de temperatura excedido

Interrupciones externas. Se trata de interrupciones producidas por elementos externos al procesador:


El reloj Los controladores de dispositivos de E/S Otros procesadores

Instrucciones mquina de llamadas al sistema

S.O. INTRODUCCIN

15

INTERRUPCIONES (4)

S.O. INTRODUCCIN

16

INTERRUPCIONES (5)

S.O. INTRODUCCIN

17

INTERRUPCIONES (6)
ejecutando SO P1.1 Int P1.2 SO P2.1 CP P1.1 P1.2 P1.3 P2.1 P2.2 A ? 3 21 ? 5 U1 3 3 3 3 3 V1 5 5 5 5 5 V3 2 2 2 2 2

P2.2
Int P2.3 SO P1.3

P2.3
P2.4 P1.3 P1.4

-20
-20 21 21

3
3 3 21

5
5 5 5

2
-20 -20 -20

P1.4
Int P1.5 SO P2.4 Int P2.5 SO P1.6 SO P2.6
S.O. INTRODUCCIN

P1.5
P1.6 P2.4 P2.5 P2.6 P1.6 Int P2.6 Int

21
20 -20 -20 -18 20 20 -18 -18

21
21 21 21 21 21 20 20 20

5
5 5 5 5 5 5 5 -18

-20
-20 -20 -20 -20 -20 -20 -20 -20
18

LLAMADAS AL SISTEMA
Retorno al procedimiento llamador (8) Trap al kernel (4) Colocar el cdigo para lectura en el registro (3)

Incrementar contador de programa (9) Llamada al sistema (p.e. Read) (2) Meter datos en la pila (1)

Despachador (5)

(6)

(7)

Manejador de llamadas al sistema

S.O. INTRODUCCIN

19

LLAMADAS AL SISTEMA (2)


Es la interfaz entre el S.O. y los programas de los usuarios Cuando un programa de usuario necesita realizar alguna operacin con algn objeto de la mquina (p.e. acceder al disco, impresora, pantalla ... etc) no puede hacerlo directamente y lo hace a travs de una llamada al sistema; invoca al S.O. y este realiza la operacin en su lugar. Las llamadas al sistema son especficas de cada S.O. esto implica que cada S.O. dispone de una librera de funciones que son accedidas por los lenguajes de programacin para llevar a cabo esas tareas. Generalmente estas funciones estn escritas en lenguaje ensamblador.

S.O. INTRODUCCIN

20

LLAMADAS AL SISTEMA (3)


Como ejemplo supongamos que queremos leer en un disco. El cdigo del lenguaje evolucionado puede ser READ, acompaado de :
Parmetros
Puntero al fichero (lugar de la lectura) Puntero al buffer (lugar destino de lo leido) Cantidad de bytes a leer

La especificacin de la llamada puede ser:


res_op = read (fd, buffer, num_bytes) Las siguientes diapositivas explican los detalles de esta llamada

S.O. INTRODUCCIN

21

LLAMADAS AL SISTEMA (4)


El programa invoca la llamada al sistema read
El programa que usa la librera coloca los parmetros en la pila (stack)
Los compiladores de C y C++ los colocan en orden inverso.
el primero y el tercer parmetros se pasan por valor (es una copia de los parmetros) El segundo valor se pasa por referencia (la direccin del buffer &)

Se hace la llamada a la funcin


Esta instruccin es una llamada estandar para cualquier procedimiento o funcin

La funcin pone el nmero de la llamada al sistema en un lugar conocido para el S.O. (un registro del procesador) La funcin utiliza una instruccin TRAP
TRAP cambia de modo ususario a modo privilegiado o sistema

S.O. INTRODUCCIN

22

LLAMADAS AL SISTEMA (5)


El kernel del S.O. analiza el nmero de la llamada al sistema
Con este nmero se lleva a cabo la llamada
Existe una tabla de llamadas a funciones que tratan las llamadas del sistema (system call handlers, manejadores de llamadas al sistema)

Se ejecuta la funcin del sistema Acabada la ejecucin de la funcin se retorna el control a la librera de procedimientos (vuelve al modo usuario)
La instruccin a ejecutarse ser la siguiente a la TRAP

Se retorna del procedimiento al programa de ususario El programa de ususario limpia la pila (stack) El programa de ususario puede seguir su ejecucin normal

S.O. INTRODUCCIN

23

ESTRUCTURA DEL SISTEMA OPERATIVO

ADMINISTRACIN DE PROCESOS
Una de las tareas primordiales de todo S.O. es la ejecucin de programas del usuario. Pero en el sistema existen otros programas en ejecucin que no son los creados por los usuarios. En un sistema con diversos procesos para su ejecucin hace falta llevar una gestin de los mismos, de esta se encarga el S.O. Un proceso necesita determinados recursos: tiempo de CPU, memoria, archivos, dispositivos de E/S... etc. Un S.O. es responsable de las siguientes actividades relacionadas con la administracin de procesos:
Crear y eliminar los procesos de usuario y del sistema. Suspender y reanudar la ejecucin de los procesos. Proporcionar mecanismos para la sincronizacin de los procesos. Proporcionar mecanismos para la comunicacin de los procesos. Proporcionar mecanismos para el manejo de bloques mutuos.

S.O. INTRODUCCIN

24

ESTRUCTURA DEL SISTEMA OPERATIVO (2)

ADMINISTRACIN DE MEMORIA PRINCIPAL


La memoria es un depsito de datos de acceso rpido compartido por la UCP y los dispositivos de E/S. La UCP slo tiene acceso a la memoria para los programas y datos que utiliza, es por ello que deben encontrarse ambos en la misma antes de ser utilizados. Si existen diversos procesos en ejecucin es evidente que deberan encontrarse en la memoria los diferentes cdigos y datos que se vayan a usar. Se hace necesario gestionar el espacio para la ubicacin de los mismos. El S.O. es responsable de las siguientes actividades relacionadas con la administracin de la memoria:
Llevar un control de cules son las zonas de memoria que se estn usando y quin las usa. Decidir qu procesos se cargarn en memoria cuando haya espacio disponible. Asignar y recuperar el espacio en memoria segn se requiera.

S.O. INTRODUCCIN

25

ESTRUCTURA DEL SISTEMA OPERATIVO (3)

ADMINISTRACIN DE ALMACENAMIENTO SECUNDARIO


Los programas y datos se encuentran almacenados en dispositivos de almacenamiento masivo (discos). De ellos son trados a memoria y a ellos son llevados despus de ser usados. Es responsabilidad del S.O. las siguientes actividades relacionadas con la administracin del disco:
Administracin del espacio libre. Asignacin del almacenamiento. Planificacin de las operaciones sobre el disco.

S.O. INTRODUCCIN

26

ESTRUCTURA DEL SISTEMA OPERATIVO (4)

ADMINISTRACIN DE E/S
Uno de los objetivos del S.O. es ocultar al usuario las particularidades de los dispositivos del hardware. Por ejemplo, en UNIX, las particularidades de los dispositivos de E/S se ocultan del resto del sistema operativo por medio de un sistema de E/S, el cual consiste en:
Un sistema de memoria cach mediante buffers. Una interfaz general con los manejadores de dispositivos. Manejadores para dispositivos de hardware especficos (cuya funcin es conocer las particularidades del dispositivo).

S.O. INTRODUCCIN

27

ESTRUCTURA DEL SISTEMA OPERATIVO (5)

ADMINISTRACIN DE ARCHIVOS
La administracin de archivos puede considerarse uno de los componentes ms visibles de un S.O. Para usar cmodamente un sistema de computacin, el S.O. ofrece una perspectiva lgica uniforme de almacenamiento de la informacin. Un S.O. se vale de las propiedades fsicas de sus dispositivos de almacenamiento para definir una unidad de almacenamiento lgico: el archivo. Por medio del S.O., los archivos se relacionan con los dispositivos fsicos. El S.O. es responsable de las siguientes actividades relacionadas con la administracin de archivos:
La creacin y eliminacin de archivos. La creacin y eliminacin de directorios. El manejo de operaciones primitivas para manipular archivos y directorios. La copia de seguridad de archivos en medios de almacenamiento estables.

S.O. INTRODUCCIN

28

ESTRUCTURA DEL SISTEMA OPERATIVO (6)

SISTEMA DE PROTECCIN
Los distintos procesos de un S.O. deben ser protegidos unos de otros. Los segmentos de memoria, la UCP, los archivos y otros recursos pueden ser usados nicamente por los procesos que han recibido la correspondiente autorizacin. Por ejemplo, el hardware de direccionamiento a memoria asegura que un proceso slo puede trabajar dentro de su espacio de direcciones. El cronmetro asegura que ningn proceso puede obtener el control de la UCP sin perderlo eventualmente. Por ltimo no se permite que un usuario realice por su cuenta operaciones de E/S, para proteger as la integridad de los dispositivos fsicos.

EL INTRPRETE DE COMANDOS (SHELL)


Uno de los programas de sistema ms importantes para el usuario es el intrprete de comandos o shell. Algunos S.O., en especial los de microcomputadores, incluyen al intrprete de comandos en su ncleo. Otros S.O. , sobre todo en las computadoras de gran tamao, tratan al intrprete de comandos como un programa especial que se ejecuta al iniciar un trabajo o cuando el usuario se conecta por primera vez al sistema (en sistemas de tiempo compartido).
S.O. INTRODUCCIN 29

SERVICIOS DEL SISTEMA


Un S.O. no debe considerarse hoy en da como una herramienta que slo gestiona los recursos del sistema sino que adems proporciona una serie de servicios que hace ms cmoda la labor del usuario de un sistema informtico. Para ello suelen proporcionar una serie de utilidades que, si bien no pueden considerarse S.O. en el sentido que nos interesa a nosotros, se consideran utilidades imprescindibles en todo sistema informtico y suelen venir a disposicin del usuario con el S.O.. estas podemos dividirlas en:
Manipulacin de archivos. Estos programas crean, eliminan, copian, renombran, imprimen, vuelcan, muestran y en general manipulan archivos y directorios. Informacin de estado. Algunos programas simplemente solicitan al sistema fecha, hora, espacio de memoria o disco disponible, nmero de usuarios... etc. Modificacin de archivos. Es normal que exista algn editor que permita la manipulacin de ficheros en sus aspectos bsicos.

S.O. INTRODUCCIN

30

SERVICIOS DEL SISTEMA (2)


Apoyo a lenguajes de programacin. Es usual que se ofrezcan compiladores, interpretes, ensambladores para los lenguajes ms habituales. Hoy en da se ofrecen por separado. Carga y ejecucin de programas. Una vez ensamblado o compilado el programa, se debe cargar en la memoria para ejecutarlo. El sistema puede ofrecer cargadores absolutos, cargadores relocalizables, editores de enlace y cargadores de superposicin. Comunicaciones. Estos programas proporcionan el mecanismo para crear conexiones virtuales entre procesos, usuarios y diferentes sistemas de computacin; permiten a los usuarios enviar mensajes a la pantalla de los dems, transferir archivos entre mquinas, enviar correo y conectarse en forma remota a otros computadores. Programas de aplicacin. Es normal que se entreguen con el S.O. programas como: generadores de grficos, sistemas de Bases de datos, juegos... etc.

S.O. INTRODUCCIN

31

EVOLUCION DE LOS SISTEMAS OPERATIVOS

1GENARACIN (1945-1955): TUBOS DE VACO Y TABLEROS DE CONMUTACIN


A mediados de la dcada de 1940, Howard Aiken en Harvard, John von Neuman en el Institute for Advanced Study en Princeton. J. Presper Eckert y William Mauchley en la University of Pennsylvania y Konrad Zuse en Alemania, entre otros, lograron construir mquinas calculadoras usando tubos de vaco. En estos primeros das, un solo grupo de personas diseaba, programaba, operaba y mantena la mquina. Toda la programacin se realizaba en lenguaje mquina absoluto, a menudo alambrando tableros de comunicacin para controlar las funciones bsicas de la mquina. No existan los lenguajes de programacin (ni siquiera los ensambladores) ni, por supuesto, los S.O. La forma de operar usual consista en que el programador se anotaba para recibir un bloque de tiempo en la hoja de reservas, luego pasaba a la sala de mquinas, insertaba su tablero de conmutacin en la mquina, y pasaba las siguientes horas esperando que no se fundiera ninguno de los 20.000 tubos de vaco. Prcticamente todos los problemas eran clculos numricos directos.

S.O. INTRODUCCIN

32

EVOLUCION DE LOS S.O. (2)

2GENARACIN (1955-1965): TRANSISTORES Y SISTEMAS POR LOTE


A principios de la dcada de 1950, el trabajo haba mejorado un poco con la introduccin de las tarjetas perforadas. Ahora se poda escribir el programa en tarjetas e introducirlas para ser ledas, en lugar de usar tableros de conmutacin; por lo dems, el procedimiento era el mismo. A mediados de 1950 se introdujo el transistor en los computadores y esto cambi el panorama totalmente, aument la fiabilidad. Aparece la separacin entre diseadores, constructores, operadores, programadores y personal de mantenimiento. Estas mquinas tenan equipos profesionales para operarlas. Como ejemplo un operador se encargaba del montaje de la maquina y liberaba al programador de la tarea. Para ejecutar un trabajo (un programa o serie de ellos), un programador escriba primero el programa en papel (FORTRAN o ensamblador) y luego lo perforaba en tarjetas. Despus, llevaba el grupo de tarjetas al cuarto de entrada y lo entregaba a uno de los operadores. Cuando este acababa el resultado era enviado a un cuarto de salida donde el programador recoga los resultados del trabajo. Si el siguiente trabajo necesitaba de otro compilador, haba que cargarlo; esto implicaba un desperdicio de tiempo.
S.O. INTRODUCCIN 33

EVOLUCION DE LOS S.O. (3)


La solucin a esto fue el sistema por lotes. El principio de esta forma de trabajo consista en reunir una serie de trabajos en el cuarto de entrada, leerlos y grabarlos en una cinta magntica usando una computadora pequea (IBM 1401, til para leer tarjetas, copiar cintas e imprimir salidas, pero no para clculos) y luego procesarlos en una ms grande (IBM 7094). Como se procesaban varios trabajos similares seguidos, se ide un programa que resida en memoria cuya funcin primordial consista en activar el siguiente trabajo despus de finalizar el anterior es decir, se encargaba de la secuencia automtica de trabajos. Este programa conocido como monitor residente fue el origen de lo que hoy son los Sistemas Operativos. Este primitivo S.O. o monitor residente tena la siguiente estructura:
CARGADOR SECUENCIADOR DE TRABAJOS INTERPRETE DE TARJETAS DE CONTROL REA DE PROGRAMAS DE USUARIO

S.O. INTRODUCCIN

34

EVOLUCION DE LOS S.O. (4)


Una vez que estaban finalizados los trabajos, se pasaba la cinta de salida de nuevo a la IBM 1401 para efectuar la salida impresa fuera de lnea (no conectada a la computadora principal). Las computadoras grandes de la segunda generacin se usaban primordialmente para clculos cientficos y de ingeniera. Estas mquinas generalmente se programaban en FORTRAN y lenguaje ensamblador. Los sistemas operativos tpicos eran FMS (Fortran Monitor System) e IBSYS (el S.O. de IBM para la 7094).

S.O. INTRODUCCIN

35

EVOLUCION DE LOS S.O. (5)


3G. (1965-1980): CIRCUITOS INTEGRADOS Y MULTIPROGRAMACIN
A principios de la dcada de 1960, la mayora de los fabricantes tenan dos lneas de produccin: una orientada al trabajo cientfico otra orientada a los aspectos administrativos Para paliar este problema IBM trat de crear una mquina que sirviera para ambos tipos de trabajo e ide la System/360. Puesto que todas las mquinas tenan la misma arquitectura y conjunto de instrucciones, los programas escritos para una mquina podan ejecutarse en todas las dems, al menos en teora. La 360 fue la primera computadora en usar circuitos integrados (IC) y esto le dio una ventaja competitiva muy fuerte frente a la competencia.
S.O. INTRODUCCIN 36

EVOLUCION DE LOS S.O. (6)


Esta idea de tener "una familia" fue tambin su gran debilidad. La idea era que todo el software, incluido el sistema operativo, funcionara en todos los modelos. El software tena que funcionar en mquinas potentes y no tanto, con procesos orientados al clculo cientfico y con otros orientados al trabajo administrativo, con pocos y con muchos perifricos... etc., si aadimos que adems se le peda que lo hiciera siempre de forma eficiente, podemos vislumbrar el origen de los problemas con los que se encontr el sistema operativo. La pretensin de dar respuesta a todas estas necesidades dio origen a un S.O. enorme, muy complejo y con millones de lneas en ensamblador escritas por diferentes programadores y que contena miles de errores. Cada intento de corregirlos daba lugar a otra tanda de ellos y sin visos de solucin definitiva. A pesar de todo dio respuesta "satisfactoria" a la mayora de los clientes y sirvi para introducir en los S.O. una forma de gestin de los procesos conocida como multiprogramacin.
S.O. INTRODUCCIN 37

EVOLUCION DE LOS S.O. (7)


En la 7094, cuando un trabajo haca una pausa para hacer una operacin de E/S, la CPU permaneca ociosa esperando a que finalizara dicha operacin. En clculos cientficos la prdida de tiempo no es exagerada pero en el procesamiento de datos comerciales esto puede significar el 8090% del tiempo total. La decisin que se tom para solucionar el problema fue dividir la memoria en varias secciones, con un trabajo distinto en cada particin. Mientras un trabajo estaba esperando por una operacin de E/S otro poda estar usando la CPU. Si se consigue mantener en memoria diversos programas podra mantenerse la CPU trabajando casi todo el tiempo. Mantener en memoria ms de un programa implica tener un hardware especial que impida que un programa invada la particin de otros. El procesamiento off-line permiti simultanear las operaciones de E/S con el uso de la UCP. Pero si queremos que este trabajo se realice sobre una sola mquina; se debe colocar ciertos elementos entre los dispositivos y la UCP para permitir una separacin similar de la ejecucin. Adems es necesario desarrollar una arquitectura adecuada para permitir este almacenamiento temporal
S.O. INTRODUCCIN 38

BUFFER
Un buffer, o almacenamiento temporal, es un mtodo para hacer simultnea la E/S de un trabajo con su propio cmputo. Consiste en reservar espacio de memoria para traer o llevar informacin del dispositivo de E/S, as el trabajo se activa porque la lectura o escritura sobre el dispositivo puede hacerse en un momento diferente al de su utilizacin lgica por la UCP. El manejo de buffers es generalmente una funcin del sistema operativo. El monitor residente o los manejadores de dispositivo incluyen buffers del sistema para cada dispositivo de E/S.
Los trabajos de esta poca se caracterizaban por estar limitados por E/S con lo que la utilizacin de buffers no era suficiente.
S.O. INTRODUCCIN 39

SPOOLING
La utilizacin del disco supuso una evolucin importante para los sistemas operativos.

Al disponer de un acceso directo a la informacin, la utilizacin de la misma no es imperativo que se haga de forma secuencial. Esto va a permitir que se pueda simultanear la utilizacin de un dispositivo de E/S de un programa con el procesamiento de otro programa. A esta forma de trabajo se la conoce como spool (simultaneous peripheral operation on-line). Fundamentalmente se trata de utilizar el disco como un gran buffer de almacenamiento masivo.
El spooler puede llevarse al extremo de llevar a disco toda una cinta y gravar la misma de nuevo al disco, posteriormente se imprime la salida. A esta operacin se la conoce como pasar por etapas (staging) la cinta. La utilizacin del spooling proporciona una estructura de datos muy importante: el deposito de trabajos (job pool). Al disponer de varios trabajos almacenados en disco, se puede seleccionar el orden de entrada (con la cinta el orden es secuencial) y mejorar el rendimiento del sistema, esto hace necesaria una planificacin del trabajo.

S.O. INTRODUCCIN

40

MULTIPROGRAMACIN
Creado el software que permita un control del spool es lgico pensar que el siguiente paso es poder simultanear la ejecucin de diversos trabajos la UCP. Teniendo en cuenta que el paso significa cambiar de un proceso a otro por abandono del anterior de la UCP. Esto paso implica para el sistema operativo la necesidad de determina cual es el proceso al que se le va a asignar la UCP, esta decisin se conoce como planificacin de la UCP.

S.O. INTRODUCCIN

41

TIEMPO COMPARTIDO
El tiempo compartido (o multitarea) es una extensin lgica de la multiprogramacin. La UCP ejecuta las diversas tareas alternando entre ellas pero los cambios se hacen por iniciativa del sistema operativo, el cual va asignando tiempo (quantum) a cada proceso y va permitiendo que todos se vayan ejecutando "simultneamente". Esto implica la necesidad de una mejor planificacin de trabajos para decidir cuestiones como: a quien se le asigna la CPU?, duracin del quantum? ...etc.

Adems, permite una interaccin entre el programa y el usuario. Antes los programas se ejecutaban de forma secuencial y esto tena implicaciones para los programadores pues tenan que prever todas las posibilidades de desarrollo de los programas.
S.O. INTRODUCCIN 42

ARANQUE Y PARADA DEL SISTEMA


1 2 3
Bajo el control del iniciador ROM Test del hardware Carga en memoria del cargador del S.O. Carga en memoria componentes del S.O Test del sistema de ficheros Creacin de estructuras de datos internas Paso a modo de memoria virtual Completa la carga de S.O. residente Habilita las interrupciones Creacin del proceso login

Bajo el control del cargador (boot) del S.O. Inicializacin bajo el control de la parte residente del S.O.

Entra en la fase normal de funcionamiento del S.O. a la espera de que se produzca una interrupcin

S.O. INTRODUCCIN

43

ARRANQUE DEL SISTEMA


Tiene dos fases: arranque hardware y arranque del S.O. Arranque hardware
Al enchufar la mquina se cargan unos valores predefinidos en los registros. En el contador de programa va la direccin de comienzo del iniciador de ROM, adems la mquina se pone en modo privilegiado y con las interrupciones inhibidas. El iniciador ROM realiza lo siguiente:
Lleva a cabo una comprobacin del sistema para ver si est en buen estado y obtener algunos datos como la cantidad de memoria y los perifricos conectados Lee y almacena en memoria el programa cargador del S.O. o boot. Se pasa el control al boot. Todo esto se hace en modo privilegiado y real (sin MMU instalada)

S.O. INTRODUCCIN

44

ARRANQUE DEL SISTEMA (2)


Arranque del S.O.
Comprobacin del sistema
Completa las pruebas de hardware iniciadas por el iniciador de ROM y comprueba la coherencia del sistema de ficheros Se carga en memoria la parte del S.O. que reside permanentemente en memoria (sistema operativo residente) Se crean las estructuras de datos con las que trabaja el S.O.: tabla de interrupciones IDT (Interrupt Description Table), tabla de procesos, tablas de memoria y de E/S En su caso, creadas las tablas de pginas, se activa la MMU, pasando a modo virtual. Se habilitan las interrupciones Se crea un proceso login por cada terminal as como un conjunto de procesos auxiliares y demonios (un conjunto de procesos que no tienen comunicacin con el usario).
S.O. INTRODUCCIN 45

PARADA DEL SISTEMA


El apagado del sistema implica la eliminacin de todas las estructuras de datos del sistema, pero algunas conservan infomacin relevante para el funcionamiento del sistema o informacin actualizada del sistema de ficheros que no ha sido guardada en el disco. Esta informacin debe ser guardada en el disco para su uso posterior, es por lo que el apagado de la mquina, a veces, se hace algo lenta. Algunas veces es conveniente hacer uso de opciones alternativas
Hibernar el sistema consiste en guardar en un fichero toda la informacin crtica y leerla de nuevo cuando se activa la mquina Apagado en espera (standby) consiste en parar la mquna pero mantener la alimentacin para no eliminar esta informacin relevante.

S.O. INTRODUCCIN

46

TIPOS DE S.O.
ESTRUCTURA MONOLTICA
Mdulo a Mdulo b

Mdulo c

Mdulo d Mdulo f

Mdulo e

S.O. INTRODUCCIN

47

TIPOS DE S.O.
ESTRUCTURA JERRQUICA
Gestin de CPU Gestin de E/S

Gestin de memoria
Gestin de la Informacin Intrprete de comandos Spool

Aplicacin De usuario

S.O. INTRODUCCIN

48