Cap1 SO
Cap1 SO
Cap1 SO
U s u a rio s
P ro g ra m a s d e u s u a rio
S h e ll
S e rv ic io s
N c le o
A PI
S is te m a
o p e ra tiv o
H a rd w a re
Todo Sistema Operativo tiene que tener 3 prestaciones fundamentales:
1. Permitir que existan n usuarios trabajando sobre m aplicaciones (simultneamente
o no).
2. Adems tiene que tener una serie de facilidades: procesadores de texto,
compiladores, ensambladores, montadores...
3. Debe asegurar un flujo continuo de trabajo en forma de tareas batch o interactivas
multiacceso.
Las funciones de todo Sistema Operativo conforman las distintas partes con que se
construye un SO. Las funciones que tiene un Sistema Operativo de propsito general
varan mucho de unos a otros, pero las que todos tienen que tener son las siguientes:
- Multiacceso
- Gestin de memoria
- Secuenciamiento de trabajos
- Control de procesos
- Intrprete de OSCL
- Gestin de operaciones de E/S
- Gestin de dispositivos y ficheros
- Gestin de interrupciones
- Planificacin
- Control de errores y proteccin
2
I.
tiempos de no utilizacin de la mquina (me sobra tiempo del que haba reservado)
el tiempo reservado se me queda corto.
Monousuario
En estos sistemas, la mquina virtual (la presentada por el S.O., es decir, la que ve el
usuario) tiene un slo usuario y generalmente est dedicada a una sola funcin (crear
ficheros, nombrar ficheros, guardar ficheros, ejecutar programas, etc.).
El interface del S.O. constar, entonces, de un gestor de ficheros sencillo, utilidades
de E/S y un intrprete de comandos tambin sencillo.
Podemos enumerar las caractersticas de estos sistemas como sigue:
Caractersticas
- gestin de ficheros (crear, borrar, guardar...)
- componer, ejecutar y modificar nuevos programas
- transferir informacin entre programas y dispositivos de E/S
Funciones
- sistema de gestin de ficheros sencillo
- intrprete de OSCL sencillo
- facilidades para operaciones de E/S
Cualidades
- facilidad de uso, es decir, proporcionar un buen interface
- eficacia, dado que el resultado del soporte hardware suele ser limitado
- facilidad de mantenimiento y de extensin, tanto en cuanto a dispositivos como en
cuanto a programas
- fiabilidad
Multiusuario
- Sistema de consulta de informacin
6
Existen muchos tipos de sistemas de tiempo real, como los sistemas de control de
procesos, los de seguimiento de trayectorias, pilotaje de aviones, vigilancia mdica,
gestin de centrales telefnicas, control de robots, etc.
Todos estos sistemas tienen algo en comn, que es la limitacin de tiempo de proceso
informtico: tienen que dar respuestas a unas determinadas entradas en un tiempo
mnimo, tienen que responder casi instantneamente (de aqu lo de tiempo real).
Caractersticas
- respuesta en tiempo real, es decir, existe una limitacin del tiempo empleado en el
tratamiento informtico
- interconexin con elementos externos
- registro de informacin
- tratamiento de procesos prioritarios (sistemas de riesgo)
Funciones
- regulacin, es decir, la accin sobre elementos externos. Tanto para captar
informacin como para actuar sobre el proceso
- seguridad, es decir, debe haber una reaccin inmediata ante cualquier suceso o
evento externo
- grabacin. Debe llevarse un registro del comportamiento del sistema controlado
Cualidades
- fiabilidad
- disponibilidad, es decir, debe garantizarse la seguridad de los dispositivos
controlados cumpliendo las restricciones de tiempo dadas
- debe incluir servicios mnimos en caso de anormalidades
Sistemas Transaccionales
Ejemplos de estos sistemas son: reservas de plazas en lneas areas, gestin de
cuentas bancarias, consulta de documentos, etc.
Funciones
- gestionar un gran volumen de informacin (por ello, la Base de Datos suele estar
presente siempre)
- existencia de un gran nmero de puntos de acceso, a veces, geogrficamente
dispersos
- ejecutar operaciones predefinidas de forma interactiva
- existencia de un gran nmero de transacciones desarrollndose en forma paralela
(concurrencia)
Cualidades
- fiabilidad y seguridad. Deben existir unas reglas de integridad que aseguren la
coherencia de la informacin compartida
- disponibilidad, es decir, que haya una tolerancia a fallos y un tiempo de respuesta
adecuado
Sistemas "Time Sharing" y Multiprogramados
Caractersticas
7
1.4
Arranque de la Computadora
Inicializacin bajo
el control de la
parte residente del
SO
Arranque hardware
Software de E/S
(BIOS)
Programa
en ROM
Programa de
arranque
Seal elctrica
Iniciador ROM
Reset
Iniciador ROM
extrae
Memoria
Principal
Programa
Cargador SO
enva
Se establecen las estructuras de informacin propias del SO, tales como tablas de
procesos, de memoria y las de E/S.
Programa cargador
(identificador)
Disco
Sistema operativo
1.5.1 Monolticos
Es la estructura de los primeros sistemas operativos constituidos fundamentalmente
por un solo programa compuesto de un conjunto de rutinas entrelazadas de tal forma
que cada una puede llamar a cualquier otra. Las caractersticas fundamentales de este
tipo de estructura son:
Construccin del programa final a base de mdulos compilados separadamente
que se unen a travs del enlace.
Buena definicin de parmetros de enlace entre las distintas rutinas existentes,
que puede provocar mucho acoplamiento.
Carecen de protecciones y privilegios al entrar a rutinas que manejan
diferentes aspectos de los recursos de la computadora, como memoria, disco,
etc.
10
11
12
U s u a rio s
P r o g r a m a s d e u s u a r io
S h e ll 1
W in 3 2
V a ria s A P I
S h e ll 2
P O S IX
G e s ti n d e S e g u r id a d C o m u n ic a c .
G e s ti n d e G e s ti n d e G e s ti n d e
y
a r c h iv o s y
y
p ro c e s o s
m e m o r ia
la E /S
d ir e c to r io s p r o te c c i n s in c r o n iz .
S is te m a
o p e ra tiv o
N c le o
H a rd w a re
13
Los servicios
se suelen agrupar segn su funcionalidad en varios
componentes, entre los cuales podemos mencionar:
Gestin de procesos: encargada de la creacin , planificacin, y destruccin
de procesos.
Gestin de memoria: componente encargada de saber que partes de la
memoria estn libres y cules ocupadas, as como de la asignacin y liberacin
de memoria segn la necesiten los procesos.
Gestin de E/S: se ocupa de facilitar el manejo de los dispositivos perifricos.
Gestin de archivos y directorios: se encarga del manejo de archivos y
directorios y de la administracin del almacenamiento secundario.
Comunicacin y sincronizacin entre procesos: encargada de ofrecer
mecanismos para que los procesos puedan comunicarse y sincronizarse.
Seguridad y proteccin: este componente debe encargarse de garantizar la
identidad de los usuarios y de definir lo que pueden hacer cada uno de ellos
con los recursos del sistema.
Se deben observar dos tipos de requisitos cuando se construye un sistema operativo,
los cuales son:
Requisitos de usuario: Sistema fcil de usar y de aprender, seguro, rpido y adecuado
al uso al que se le quiere destinar.
Requisitos del software: Donde se engloban aspectos como el mantenimiento, forma
de operacin, restricciones de uso, eficiencia, tolerancia frente a los errores y
flexibilidad.
14
15
Multitareas
Un sistema operativo multitarea es aqul que le permite al usuario estar realizando
varias labores al mismo tiempo. Por ejemplo, puede estar editando el cdigo fuente de
un programa durante su depuracin mientras compila otro programa, a la vez que est
recibiendo correo electrnico en un proceso en background. Es comn encontrar en
ellos interfaces grficas orientadas al uso de mens y el ratn, lo cual permite un
rpido intercambio entre las tareas para el usuario, mejorando su productividad.
Uniproceso
Un sistema operativo uniproceso es aqul que es capaz de manejar solamente un
procesador de la computadora, de manera que si la computadora tuviese ms de uno
le sera intil. El ejemplo ms tpico de este tipo de sistemas es el DOS y MacOS.
Multiproceso
Un sistema operativo multiproceso se refiere al nmero de procesadores del sistema,
que es ms de uno y ste es capaz de usarlos todos para distribuir su carga de
trabajo. Generalmente estos sistemas trabajan de dos formas: simtrica o
asimtricamente. Cuando se trabaja de manera asimtrica, el sistema operativo
selecciona a uno de los procesadores el 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. Cuando se trabaja de manera simtrica, los procesos o partes de
ellos (threads) son enviados indistintamente a cualesquiera de los procesadores
disponibles, teniendo, tericamente, una mejor distribucin y equilibrio en la carga de
trabajo bajo este esquema.
Se dice que un thread es la parte activa en memoria y corriendo de un proceso, lo cual
puede consistir de un rea de memoria, un conjunto de registros con valores
especficos, la pila y otros valores de contexto. Us aspecto importante a considerar en
estos sistemas es la forma de crear aplicaciones para aprovechar los varios
procesadores. Existen aplicaciones que fueron hechas para correr en sistemas
monoproceso que no toman ninguna ventaja a menos que el sistema operativo o el
compilador detecte secciones de cdigo paralelizable, los cuales son ejecutados al
mismo tiempo en procesadores diferentes. Por otro lado, el programador puede
modificar sus algoritmos y aprovechar por s mismo esta facilidad, pero esta ltima
opcin las ms de las veces es costosa en horas hombre y muy tediosa, obligando al
programador a ocupar tanto o ms tiempo a la paralelizacin que a elaborar el
algoritmo inicial.
17
18
Adems es poco flexible porque cada vez que queremos que reconozca un nuevo
comando necesitamos hacer las modificaciones en el cdigo fuente, volverlo a
compilar y linkar.
2. Implementar cada comando como un programa del sistema. En este caso el
intrprete de comandos no ejecuta el comando, lo nico que hace es usar ese
comando para buscar un programa del sistema que se llame igual. Y cuando se
encuentre, el programa ser cargado en memoria y ejecutado.
Ventajas (con respecto a la primera forma de implementacin):
- Es reducido su tamao
- Su tamao no depende del nmero de comandos que reconozca
- Es flexible (para aadir un nuevo comando basta aadir al sistema un nuevo
programa llamado igual que el nuevo comando a reconocer y cuyo cdigo sea el
correspondiente a la funcin realizada por ese comando).
Inconvenientes:
- Es ms lento
- Los parmetros tienen que fluir del intrprete de comandos al programa del sistema,
por tanto, hay que ofrecer mecanismos para transmitir esta informacin.
En cualquiera de los dos casos, deben establecerse a priori unas reglas de diseo
para que los usuarios sepan cmo llamar a los comandos y pasarles los parmetros
adecuadamente.
19
Solicitud
de
servicio
al SO
Llamada a
una Funcin
SO
1.8 Interfaces
Estn:
A. Las interfaces del programador, es la que recupera los servicios y llamadas
al sistema que los usuarios pueden utilizar directamente des sus programas.
En la actualidad hay dos interfaces: POSIX y los servicios de Win32.
POSIX
POSIX (Portable Operating System Interface for UNIX- Computer Enviroment). Es
un conjunto de normas definidas por el Instituto de Ingenieros Elctricos y
Electrnicos (IEEE) con el fin de crear interfaces que permitan la portabilidad del
software (distintos entornos UNIX) entre diferentes sistemas operativos abiertos o
sistemas abiertos.
La norma se ha implementado no slo en muchas versiones de UNIX, sino
tambin en otros sistemas operativos como Windows NT, VMS, etc. Se trata de un
conjunto de 23 normas, identificadas como IEEE 1003.0 a IEEE 1003.22, o
tambin POSIX.0 a POSIX.22, de las cuales el subsistema POSIX soporta la
POSIX.1 (conocido tambin como P1003.1), que define un conjunto de llamadas
al sistema en lenguaje C. El subsistema sirve las llamadas interactuando con el
Executive. Se encarga tambin de definir aspectos especficos del s.o. UNIX,
como pueden ser las relaciones jerrquicas entre procesos padres e hijos (las
cuales no existen en el subsistema Win32, por ejemplo, y que por consiguiente no
aparecen implementadas directamente en el Executive). Entre las reas cubiertas
por los estndares POSIX estn las llamadas al sistema, bibliotecas,
herramientas, interfaces, verificacin y prueba, caractersticas en tiempo real y
seguridad.
WIN32
En realidad, Win32 significa "Windows 32 bits". En otras palabras, hace referencia
a todas las plataformas de 32 bits del sistema operativo Windows: Windows NT,
Windows 95, Windows 98, Windows CE.
Es el ms importante, ya que atiende no slo a las aplicaciones nativas de
Windows NT, sino que para aquellos programas no Win32, reconoce su
tipo y los lanza hacia el subsistema correspondiente. En el caso de que la
aplicacin sea MS-DOS o Windows de 16 bits (Windows 3.11 e inferiores), lo que
hace es crear un nuevo subsistema protegido. As, la aplicacin DOS o Win16 se
ejecutara en el contexto de un proceso llamado VDM (Virtual DOS Machine,
mquina virtual DOS), que no es ms que un simulador de un ordenador
funcionando bajo MS-DOS. Las llamadas al API Win16 seran correspondidas con
las homnimas en API Win32. Microsoft llama a esto WOW (Windows On Win32).
El subsistema soporta una buena parte del API Win32. As, se encarga de todo lo
22
relacionado con la interfaz grfica con el usuario (GUI), controlando las entradas
del usuario y salidas de la aplicacin
Win32 permite la comunicacin entre la pantalla y el teclado, as como varios de
los procesos grficos y bibliotecas propias de windows.
B. Interfaz del usuario del SO, utilizado por el usuario al momento que interacta
con el SO para poder llevar a cabo operaciones tales como ejecutar un
programa, borrar archivo, sin necesidad de escribir un programa que realice
dicha operacin utilizando los servicios del SO. Hay dos tipos de interfaz de
usuario: alfanumrica (comandos) y la grfica (GUI, Graphical User Interface).
Facilitar las entradas y salidas: Un Sistema Operativo debe hacerle fcil al usuario
el acceso y manejo de los dispositivos de Entrada / Salida de la computadora.
Tcnicas de recuperacin de errores: El sistema operativo debe proveer las rutinas
necesarias para protegerse, y poder recuperarse de los errores (ya sean de hardware,
o de software), con el menor perjuicio para los usuarios.
Evita que otros usuarios interfieran: El Sistema Operativo evita que los usuarios se
bloqueen entre ellos, informndoles si esa aplicacin esta siendo ocupada por otro
usuario.
Generacin de estadsticas: Para poder cobrarle a los diferentes usuarios del centro
de costos la parte proporcional que les corresponde del gasto generado por el
mantenimiento del mismo.
Permite que se pueda compartir: tanto el hardware como los datos de los usuarios y
entre los usuarios.
Requisitos Funcionales
24