Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
CARACTERIZACIN DE SISTEMAS
INFORMTICOS.
1.
2.
3.
4.
5.
6.
7.
8.
1. EL SISTEMA INFORMTICO
Informtica
Conjunto de conocimientos cientficos y tcnicas que hacen posible el tratamiento automtico de la informacin por medio de ordenadores.
Ordenador, computador o computadora
Mquina electrnica dotada de una memoria de gran capacidad y de mtodos de tratamiento de la informacin, capaz de resolver problemas aritmticos y lgicos gracias a la utilizacin automtica de programas registrados en ella.
Tratamiento de la informacin
entrada procesamiento salida
planteamiento anlisis programa (algoritmo)
Sistema informtico
Es un conjunto formado por las 3 partes siguientes interrelacionadas:
1. Fsica: hardware
2. lgica:
BIOS: firmware de la placa base del ordenador que se ejecuta al encenderlo. Una parte, el POST, reconoce y chequea los distintos componentes
(procesador, memoria, teclado, discos duros, etc.). Otras partes se cargan
en memoria para permitir al SO el acceso a los componentes. Tambin
contiene un programa de arranque (boot) que busca el programa de inicio
del sistema operativo en los distintos dispositivos de almacenamiento
(disco duro, CD-ROM,..)
Sistema operativo (SO): conjunto de programas que gestiona los recursos del
sistema y optimiza su uso, actuando como intermediario entre el usuario y el
hardware.
una aplicacin es un tipo de programa informtico diseado como herramienta para permitir a un usuario realizar uno o diversos tipos de trabajo.
Segn su uso:
o De uso general
o De uso especfico (robots industriales, videoconsolas)
En informtica, las operaciones de coma flotante por segundo son una medida del rendimiento de una computadora, especialmente en
clculos cientficos que requieren un gran uso de operaciones de coma flotante. Es ms conocido su acrnimo, FLOPS, por el ingls floating
point operations per second. FLOPS, al ser un acrnimo, no debe nombrarse en singular como FLOP, ya que la S final alude a second (o
segundo) y no al plural.
Las computadoras exhiben un amplio rango de rendimientos en coma flotante, por lo que a menudo se usan unidades mayores que el FLOPS.
Los prefijos estndar del SI pueden ser usados para este propsito, dando como resultado megaFLOPS (MFLOPS, 106 FLOPS), gigaFLOPS
(GFLOPS, 109 FLOPS), teraFLOPS (TFLOPS, 1012 FLOPS), petaFLOPS (PFLOPS, 1015 FLOPS), exaFLOPS (EFLOPS, 1018FLOPS).
el rendimiento del equipo
Nombre
flops
megaflops/megaofps
106
gigaflops/gigaofps
109
teraflops/teraofps
1012
petaflops/petaofps
1015
exaflops/exaofps
1018
zettaflops/zettaofps
1021
yottaflops/yottaofps
1024
Investiga 1:
1.
2.
3.
2. EL SISTEMA OPERATIVO
El sistema operativo (SO) es un conjunto de programas que gestiona los recursos del sistema y optimiza su uso, actuando como intermediario entre el usuario y el hardware. Puede
considerarse el sistema operativo desde dos puntos de vista:
SO como administrador de recursos: debe repartir los recursos entre los distintos
programas y y entre los usuarios de forma ptima, evitando tiempos muertos, controlando memoria, etc., pero como programa, el SO deber cumplir los requisitos que
el resto de programas que el usuario decida ejecutar, con la excepcin de que tendr
ms privilegios siendo el nico con acceso a ciertos recursos del sistema
Los objetivos que debe cumplir el sistema operativo son los tres siguientes:
Eficiencia: Permite que los recursos de un sistema informtico se aprovechen al mximo, aumentando el rendimiento global del ordenador, por ejemplo pasando a otro
programa cuando el que se est ejecutando se bloquea.
Capacidad de evolucin: Un sistema operativo debe construirse de modo que permita el desarrollo efectivo, la verificacin y la introduccin de nuevas funciones en el
sistema sin interferir en los servicios que brinda, aprovechando las actualizaciones de
nuevos tipos de hardware y ofreciendo nuevos servicios al usuario y la correccin de
posibles fallos.
En el sistema de capas, cada capa es una mquina ms abstracta para la capa superior.
Cada una 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. Estos niveles son totalmente invisibles para el usuario y se puede decir
que son los componentes internos del sistema operativo.
La divisin en capas no es la misma en todos los sistemas, as por ejemplo en Windows
NT (2000, XP y posteriores), los niveles en que se divide el sistema operativo son los cuatro
siguientes:
Capa de abstraccin de hardware (HAL, Hardware Abstraction Layer): Establece una
correspondencia entre las rdenes y respuestas genricas del hardware y aquellas
que son propias de una plataforma especfica, como un Intel 486 o un Pentium, un
Power PC de Motorola o un procesador Alpha de Digital Equipment Corporation. La
HAL hace que el bus del sistema de cada mquina, el controlador de DMA, el controlador de interrupciones, los relojes de sistema y el mdulo de memoria parezcan los
mismos para el ncleo.
Ncleo: Consta de las componentes ms usadas y fundamentales del sistema operativo. El ncleo administra la planificacin de procesos, la gestin de excepciones (cepos) e interrupciones, la sincronizacin de multiprocesadores y la gestin de memoria
virtual. En realidad se tratara de un microkernel (microncleo2).
Subsistemas: Incluyen varios mdulos con funciones especficas que hacen uso de los
servicios bsicos proporcionados por el ncleo y se ejecutan como procesos de usuario. Por ejemplo: proceso log-on y subsistema de seguridad.
Servicios del sistema: Ofrece una interfaz al software en modo usuario.
En UNIX, el hardware bsico est rodeado por el software del S.O. que se llama a menudo ncleo del sistema o, simplemente ncleo (kernel), para realzar su aislamiento de las apli-
2 La filosofa en la que se basa el microncleo es que slo las funciones absolutamente esenciales del ncleo
del sistema operativo deben permanecer en el ncleo. Las aplicaciones y los servicios menos esenciales se
construyen sobre el microncleo como subsistemas externos que interactan con ste (sistemas de archivos,
de ventanas, servicios de seguridad, etc.) y que se ejecutan en algunos casos como procesos de usuario. El
microkernel slo necesitara contener la funcionalidad bsica para crear y comunicar procesos
I.E.S. ZAIDN-VERGELES (Rev. sep 2013)
3 El shell ofrece al usuario una interfaz con el sistema operativo separando al usuario de los detalles y presentndole el sistema operativo como un simple conjunto de servicios. El shell acepta las rdenes del usuario o
las sentencias de control de trabajos, las interpreta, crea y controla los procesos segn sea necesario.
I.E.S. ZAIDN-VERGELES (Rev. sep 2013)
cual jugar el papel de procesador maestro y servir como pivote para distribuir la carga a los dems procesadores, que reciben el nombre de esclavos.
2.4.2 Por la forma de ofrecer los servicios:
Centralizados: mainframes que se encargan de todo el procesamiento. Los usuarios se conectan a terminales que no procesan. Actualmente se siguen utilizando
los sistemas centralizados (servidor Linux o Windows que ejecuta los servicios de
terminal como Windows Terminal Services o Linux Terminal Services Project) pero
los terminales ya s procesan muchas tareas por s mismos.
Distribuidos: un sistema distribuido es una coleccin de computadoras independientes que aparecen ante los usuarios del sistema como una nica computadora.
Los sistemas operativos distribuidos desempean las mismas funciones que un
sistema operativo normal, pero con la diferencia de trabajar en un entorno distribuido. Su misin principal consiste en facilitar el acceso y la gestin de los recursos distribuidos en la red. En un sistema operativo distribuido los usuarios pueden
acceder a recursos remotos de la misma manera en que lo hacen para los recursos locales. Permiten distribuir trabajos entre un conjunto de procesadores. Puede ser que este conjunto de procesadores est en un equipo o en diferentes, lo
cual es transparente para el usuario.
Investiga 2:
1.
2.
3.
10
Retail: El programa en este caso es enteramente del usuario que puede cederlo a
terceros o venderlo.
El software libre est sujeto a su vez a una serie de licencias, cada una de ellas con sus
respectivas normativas.
Investiga 3:
Qu implican los siguientes trminos en cuanto a tipos de licencia?
GPL
BSD
Copyleft
Licencia de software libre
Licencia de software propietario
Freeware
Shareware
Opensource
EULA
Indica cuales de estos trminos pueden referirse a un mismo producto y cuales son contradictorios.
11
Investiga 4:
Trabajo voluntario:
Elabora una exposicin sobre los gestores de arranque, incluyendo los arranques
de Windows y Linux y algunos gestores comerciales.
12
El sistema operativo debe asignar los recursos a los procesos en conformidad con
una poltica especfica (por ejemplo, ciertas funciones o aplicaciones son de prioridad ms alta), evitando, al mismo tiempo el interbloqueo4.
El sistema operativo podra tener que dar soporte a la comunicacin entre procesos y la creacin de procesos por parte del usuario, labores que pueden ser de
ayuda en la estructuracin de las aplicaciones.
4 Un interbloqueo se produce bsicamente si hay dos procesos que necesitan los mismos recursos para continuar y cada uno de ellos se ha apropiado de uno de los recursos. Cada proceso espera indefinidamente al recurso que le falta.
I.E.S. ZAIDN-VERGELES (Rev. sep 2013)
13
14
15
16
17
Ejemplo:
Tenemos 3 procesos (P1, P2 y P3) que se lanzan simultneamente en tiempo=0.
- P1 necesita un total de 25 ms para finalizar, siendo de clculo los primeros 15 ms y de E/S los otros 10 ms.
- P2 lee desde disco durante 3 ms, procesa durante 1 ms e imprime durante 6 ms. As hasta 3 ciclos.
- P3 es slo de clculo y necesita 15 ms.
Calcular cunto tiempo necesita en total para ejecutar los 3 procesos usando monoprogramacin, multiprogramacin clsica, multiprogramacin en tiempo paralelo con quantum de10 ms y multiprogramacin en tiempo paralelo con quantum de
5 ms.
Nota: en este ejemplo, y en los ejercicios, no consideraremos ni reflejaremos los tiempos en los que el sistema operativo
toma el control del procesador, bien sea para realizar los cambios de proceso y/o para la gestin de interrupciones.
Es decir, reflejaremos slo el tiempo que el procesador invierte en ejecutar los procesos propiamente dichos.
Solucin:
a)
monoprogramacin: 25+[(3+1+6)*3]+15 = 70 ms
1
0
1
5
2
0
2
5
3
0
3
5
Tiempo de procesador
Proceso de E/S
c)
1
0
1
5
2
0
2
5
3
0
3
5
Tiempo de procesador
Proceso de E/S
1
0
1
5
Tiempo de procesador
Proceso de E/S
2
0
2
5
3
0
3
5
hhhhhhhhh
ttttttttt
t t4 t t t t t4 t t 5
p p p p5p p p p p0
sssssssss
:::::::::
/////////
/////////
wwwwwwwww
wwwwwwwww
wwwwwwwww
. .4 . . . . .4 . .
5
d d d d5d d d d d0
rrrrrrrrr
ooooooooo
ppppppppp
bbbbbbbbb
ooooooooo
xxxxxxxxx
.........
c 4c c c c c 4c c c 5
o o o o5o o o o o0
mmmmmmmmm
/////////
sssssssss
/////////
zzzzzzzzz
000000000
rrrrrrrrr
ggggggggg
hhhhhhhhh
mmmmmmmmm
222222222
444444444
111111111
wwwwwwwww
5
5
6
0
5
5
6
0
5
5
6
0
18
6. GESTIN DE LA MEMORIA
En un sistema monoprogramado, la memoria principal se divide en dos partes: una para
el sistema operativo y otra para el programa de usuario que se ejecuta en ese instante.
En un sistema multiprogramacin, la parte de usuario de la memoria debe subdividirse
en ms partes para dar cabida a varios procesos. La tarea de subdivisin la lleva a cabo dinmicamente el sistema operativo y se conoce como gestin de la memoria.
Se entiende que una gestin de la memoria efectiva es esencial en un sistema multiprogramado. Si slo hay unos pocos procesos en memoria, la mayor parte del tiempo estarn
esperando concluir sus operaciones de E/S y es posible que se produzcan tiempos muertos
de CPU. Por ello, hace falta repartir eficientemente la memoria para albergar tantos procesos como sea posible.
Reubicacin.
Es imposible que el programador conozca, de antemano, qu otros programas residirn
en memoria en el momento en que se ejecute el suyo. El sistema operativo debe poder cargar y descargar los procesos en la memoria principal durante su tiempo de ejecucin. Con
esto se consigue maximizar el uso del procesador (ms procesos listos para su ejecucin) y
una utilizacin ms eficiente del espacio. Esto lo consigue mediante tcnicas de intercambiabilidad memoria principal-disco (swapping). Para poder llevar a cabo estas funciones se requiere espacio para intercambio en almacenamiento secundario que puede ser una particin
de disco o un fichero. El sistema operativo debe saber dnde situar un programa en concreto
en la memoria y poder ubicarlo en zonas distintas si fuese necesario a resultas del mecanismo de swapping. Adems en todo momento debe conocer la ubicacin de la informacin de
control del proceso.
Adems, el hardware del procesador y el software del sistema operativo deben ser capaces de traducir las referencias relativas a memoria encontradas en el cdigo del programa
a las direcciones fsicas reales que reflejen la posicin actual del programa en memoria principal.
19
Direccin donde se carga la primera instruccin del proceso y, a partir de la cual, se calculan el resto de las
direcciones que utiliza el proceso
20
Como se ve, este mtodo comienza bien, pero finalmente, desemboca en una situacin
en la que hay un gran nmero de huecos pequeos en memoria, problema que puede resolverse mediante la compactacin de los huecos libres. La compactacin se puede efectuar
cambiando de lugar los programas en ejecucin aprovechando la posibilidad de reubicarles
que debe ofrecer el sistema operativo.
6.1.3 Paginacin
Con este procedimiento, la memoria principal se estructura en trozos de tamao fijo
llamados marcos o marcos de pgina o simplemente bloques. Cada proceso est dividido
tambin en pequeos trozos de tamao fijo y del mismo tamao que los marcos de memoria
llamados pginas. De esta forma, las pginas pueden asignarse a marcos de pgina libres.
El fundamento de la paginacin reside en que no es necesario que un programa se almacene en posiciones consecutivas de memoria. Las pginas se almacenan en marcos libres,
independientemente de que estn o no contiguos. Eso s, cada bloque contendr, obviamente, instrucciones consecutivas.
21
6.1.4 Segmentacin
El programa se considera divido en segmentos. Hay que tener en cuenta que nos referimos a los segmentos, en este caso, como a grupos lgicos de informacin (cdigo, pila, datos, etc.) definibles por el programador o asignados por el compilador, de forma que se
puede decir que un programa es una coleccin de segmentos. Como en paginacin, una direccin lgica segmentada consta de dos partes, en este caso un nmero de segmento y un
desplazamiento.
La gestin la realiza el sistema operativo como en el caso de las particiones dinmicas,
slo que cada particin no corresponde a un programa sino a un segmento del mismo y las
particiones que ocupa un programa no tienen por qu estar contiguas.
22
23
24
25
8. GESTIN DE LA E/S
La gestin de la E/S es uno de los aspectos ms confusos en el diseo de los SO. Las caractersticas de los dispositivos de E/S suelen diferir mucho de las de la CPU, por ejemplo en
la velocidad, ancho de palabra, etc. Aparte de esto, la gran variedad de dispositivos impide
construir una solucin general para la gestin de los mismos.
Normalmente las unidades de E/S constan de dos elementos: mecnico, que es el dispositivo propiamente dicho y electrnico al que se le suele denominar controlador. El sistema
operativo casi siempre trata con el controlador.
Todos los controladores disponen de unos cuantos registros para comunicar con el procesador. Estos registros pueden formar parte del espacio normal de direcciones de memoria
(tienen un trozo de memoria reservada para esta funcin). En otros casos se utiliza un espacio de direcciones especial para E/S, con una parte del mismo asignada a cada controlador.
Para realizar operaciones de E/S, el sistema operativo escribe comandos en los registros del
controlador, el controlador acepta el comando y mientras el procesador puede dejarlo que
haga su trabajo solo y ocuparse entretanto de otras cosas.
26
27