Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
1. INTRODUCCION
Una computadora sin el software es en esencia una masa metálica sin utilidad, con el
software una computadora puede almacenar, procesar y recuperar información.
El software para computadora puede clasificarse en general en dos clases: los programas
de sistema que controlan las operaciones de la computadora y los programas de
aplicación, los cuales resuelven problemas para los usuarios. El programa fundamental
en todos los sistemas de comp utación es el Sistema Operativo.
1
2. HISTORIA DE LA EVOLUCION DE LOS SISTEMAS OPERATIVOS
El primer nivel, constituido por los sistemas operativos básicos, q ue surgieron en los
años cincuenta con las primeras computadoras, donde todo el trabajo consistía en
controlar y secuenciar la ejecución de los programas y sus datos, que en aquella época
estaban sustentados en tarjetas perforadas. Apareció la denominada secuencia
automática de trabajos consistente en intercalar entre las tarjetas de un programa y otro,
una serie de tarjetas de control con instrucciones o comandos del lenguaje de control
de trabajos (JCL- Job Control Language). El programa que controlaba el
secuenciamiento de los trabajos se denominó monitor y constituyo el primer sistema
operativo.
Proceso On-line
Proceso Off-line
Con el tiempo aparecieron dispositivos de E/S más veloces que se utilizaron para
resolver el problema existente, aunque también aumento la velocidad y capacidad del
proceso del procesador.
Aparecieron las cintas magnéticas, cuya velocidad era mayor que la de las lectoras de
tarjetas, pero el acceso para escribir directamente en ellas era complicado. Por ello, se
impuso una técnica consistente en perforar los programas en tarjetas, que eran leídas por
una lectora de tarjetas y grabadas en una cinta magnética directamente. Esta cinta se
pasaba a la computadora en bloque para la ejecución de los programas, grabándose los
2
resultados en la nueva cinta. Por último, la cinta de resultados se volcaba sobre la
impresora. Las acciones de copiado de tarjetas a cinta y de cinta a impresora, al ser
lentas y separarse del control de la computadora, permitían a ésta realizar otros trabajos
distintos. Este tratamiento se conoce como Off -line.
Otras técnicas para mejorar el rendimiento que ha venido utilizando los sistemas
operativos de este nivel son las deno minadas buffering y spooling.
Buffering
Una forma de mejorar el tiempo que se pierde en los proceso de carga de las cintas es
utilizar una memoria intermedia, también denominada buffer, donde la cinta va
grabando datos hasta que se lle na, volcándose éstos en la memoria de una vez, y
mientras el procesador realiza operaciones con los datos recibidos, en paralelo se vuelve
a cargar el buffer. A esta forma de trabajo se denomina buffering.
Spooling
3
Los procesos actuales son en su mayoría interactivos o conversacionales y necesitan un
determinado dialogo con el usuario. Por ello aparece el tiempo compartido, consistente
en un conjunto de terminales que están continuamente solicitando atención del
procesador, siendo el sistema operativo quien va intercalando dicha atención entre los
distintos usuarios.
Para diseñar un sistema operativo lo primero que hay que decidir es su finalidad y el
tipo de procesos que se quiere realizar a través de él (proceso por lotes, tiempo
compartido, multiprocesos, etc.).
Para ello es preciso tener en cuenta las n ecesidades que pueden plantearse:
Estructura monolítica
Estructura Jerárquica (por Capas)
Máquina virtual
Modelo cliente-Servidor
4
1. Estructura Monolítica
Por ejemplo en la figura. (1) Cuando el programa del usuario es atraído hacia el núcleo,
el sistema operativo examina los parámetros de llamada p ara determinar cual de ellas
(#de servicio) se desea realizar. (2) A continuación el sistema operativo analiza una
tabla que contiene en la entrada k un apuntador al procedimiento que realiza la k -ésima
llamada al sistema. (3) Esta operación identifica el procedimiento de servicio al cuál se
llama. (4) Finalmente la llamada al sistema termina y el control regresa al programa del
usuario.
2. Estructura jerárquica
A medida que fueron creciendo las necesidades de los usuarios y se perfeccionaron los
sistemas, se hizo necesaria una mayor organización del software.
Se dividió el sistema operativo en pequeñas partes , de tal forma que cada una de
ellas estuviera perfectamente definida y con un claro interface con el resto de elementos.
Se constituyó una estructura jerárquica o de niveles en los sistemas operativos, el
primero de los cuales fue el denominado THE (Tech nische Hogeschool, Eindhoven), de
Dijkstra, que se utilizó con fines didácticos.
Nivel 5 - Usuario
Nivel 4 - Archivos
Nivel 3 - Entrada / salida
Nivel 2 - Comunicaciones
Nivel 1 - Memoria
Nivel 0 - Gestión CPU
3. Maquina Virtual
Estos sistemas operativos separan dos conceptos que suelen estar unidos en el resto de
sistemas.
- La multiprogramación
- La máquina extendida
4. Modelo cliente-servidor
Este sistema sirve para todo; por tanto, es de propósito general y s e basa en lo mismo
que el resto de sistemas operativos convencionales: el núcleo y los proceso,
presentando grandes diferencias en cuanto a la forma de distribuir lo trabajos entre sus
distintas partes.
- Procesos
- Memoria
- Comunicación entre procesos.
El núcleo tiene como misión establecer o controlar la comunicación entre los clientes y
los servidores. Los procesos pueden ser tanto servidores como clientes. Por ejemplo, un
programa de aplicación normal es un cliente que llama al servidor correspondiente para
acceder a un archivo o realizar una operación de E/S sobre un dispositivo concreto. A
su vez, un proceso cliente puede actuar como servidor para otro.
6
CAPITULO 2
PROCESOS
1. INTRODUCCION
Actualmente las computadoras pueden realizar varias tareas al mismo tiempo. Es decir,
mientras ejecuta el programa de un usuario, una computadora puede asimismo estar
leyendo un disco e imprimiendo en una impresora.
En cualquier instante de tiempo la CPU e stá ejecutando solo un programa, por eso en el
curso de un segundo puede trabajar en varios programas, con lo que se da al usuario la
ilusión de paralelismo.
Algunas veces las personas hablan de pseudo paralelismo para referirse a estos
cambios que la CPU realiza entre programas, a fin de compararlo con el verdadero
paralelismo del hardware de la operación de esta unidad mientras corren uno o más
dispositivos de entrada o salida.
2. CONCEPTO
Uno de los conceptos más importantes que gira en torno a un sist ema operativo es el de
proceso. Este concepto surgió por primera vez con la multiprogramación, donde se
puede ejecutar más de un programa simultáneamente con el fin de aprovechar al
máximo los recursos de la computadora .
3. MODELO DE PROCESOS
En este modelo la CPU alterna los proces os; es decir el conjunto de procesos en
ejcución la CPU alterna entre un proceso y otro rápidamente, a esta forma de alternar se
denomina multiprogramación.
7
decir su contador de programas) y se ejecuta en forma independiente (solo uno de ellos
se encuentra en ejecución).
Los estados de los procesos son internos del sistema opera tivo y transparentes al
usuario. Para éste, su proceso estará siempre en ejecución independientemente del
estado en que se encuentre internamente en el sistema.
2. Listo. Aquellos procesos que están dispuestos para ser ejecutados, pero no
están en ejecución por alguna causa (interrupción, haber entrado en la
estando otro proceso en ejecución, etc.).
Frecuentemente los procesos requieren una c omunicación entre ellos, por ejemplo: en
un entubamiento donde la salida del primer proceso debe transferir al segundo, y este al
tercero y así sucesivamente. Existe la comunicación entre procesos de preferencia en
una forma estructurada sin utilizar inter rupciones.
En algunos sistemas ope rativos los procesos que trabajan juntos comparten con
frecuencia un espacio común para almacenamiento, en el que cada uno puede leer o
escribir dentro del espacio compartido; este puede encontrarse en la memoria principal o
ser un archivo compartido.
8
Las condiciones de competencia se manifiestan cuando dos o mas procesos leen o
escriben en ciertos datos compartidos y el resultado final depende de quien ejecuta y
en que momento. Por ejemplo cuando dos procesos desean tener aaceso a la memoria
compartida al mismo tiempo, el proceso B comienza a utilizar una de las variables
compartidas, antes que el proceso A termine con ella.
Para tener una solución adecuada al problema de la Exclusión mutua se necesitan que
cumplan cuatro condiciones:
1. Nunca dos procesos pueden encontrase simultáneamente dentro de sus
secciones criticas.
2. No se hacen suposiciones acerca de las velocidades relati vas de los procesos
o del número de CPU.
3. Ningún proceso suspendido fuera de la sección critica debe bloquear a otros
procesos.
4. Nunca un proceso debe querer entrar en forma arbitraria en su sección
critica.
Existen varios métodos para lograr la exclusión m utua, entre ellas tenemos:
El mecanismo más común que poseen los sistemas operativos actuales para realizar la
gestión del procesador se conoce con el nombre de planificación, cuyo objetivo
principal es el de dar un buen s ervicio a todos los procesos que existan en un momento
dado en el sistema.
La planificación del procesador que es una parte del sistema operativo, es el que decide
que proceso conviene ejecutar primero, es decir, se refiere a la manera de decidir cuánto
tiempo de ejecución y cuando se le asignan a cada proceso del sistema. Obviamente, si
el sistema es monousuario y monotarea no hay mucho que decidir, pero en el resto de
los sistemas esto es crucial para el buen funcionamiento del sistema.
9
5.1. Niveles de planificación
El nivel alto decide que trabajos (conjunto de procesos) son candidatos a convertirse
en procesos compitiendo por los recursos del si stema.
El nivel intermedio decide que procesos se suspenden o reanudan para lograr ciertas
metas de rendimiento.
El nivel bajo es el que decide que proceso, de los que ya están listos (y que en algún
momento pasó por los otros dos planificadores) es al que le toca ahora estar
ejecutándose en la unidad central de procesamiento.
En adelante se revisaran principalmente los planificadores de bajo nivel porque son los
que finalmente eligen al proceso en ejecución.
Justicia o Imparcialidad
Maximizar la Producción
Minimizar el Tiempo de Respuesta .
Los criterios que se deben tener en cuenta a la hora de elegir o diseñar un algoritmo de
planificación son los siguientes:
Tiempo de respuesta.
Tiempo de servicio.
Tiempo de ejecución.
Tiempo de procesador.
Tiempo de espera.
Eficiencia.
Rendimiento.
5.5 Medidas
10
Tiempo de espera (E): E=T –t
Planificación apropiativa
Planificación no apropiativa
En esta política de planificación F CFS (First Come, First Served), el procesador ejecuta
cada proceso hasta que termina; por tanto, los procesos que entran en cola de procesos
preparados permanecerán encolados en el orden en que lleguen hasta que les toque su
ejecución. Este método se cono ce también como “primero en entrar, primero en salir”
(First Input, First Output - FIFO).
Esta política, cuya traducción podría ser asignación cíclica o planificación en rueda, es
una mejora de la FCFS. Trata de ser más justa e n cuanto a la respuesta tanto de los
procesos cortos como de los largos.
El método SJN (Shortest Job Next) es una política de planificación no apropiativa que
trata de cubrir los mismos objetivos que la RR.
Esta política toma de la cola de procesos preparados el que necesite menos tiempo de
ejecución para realizar su trabajo. Para ello debe saber el tiempo de procesador que
necesita cada proceso, lo cual es tarea nada fácil, pero posible a través de diversos
métodos como puede ser la información suministrada por el propio usuario o por el
propio programa.
La política SRT (shortest Remaining Time) es una mezcla de los dos métodos anteriores
y trata de obtener las ventajas de ambos. Para ello esta técnica cambia el proceso que
11
esta en ejecución cuando se ejcuta un proceso (paso del planificador de largo plazo al de
corto plazo), Con una exigencia de tiempo de ejecución total menor que el que está
ejecutando en el procesador. El valor del tiempo de respuesta medio de los procesos
largos mejora con respecto a SJN.
El tiempo de Espera E es bastante corto para la mayoria de los procesos. SRT consigue
una buena eficiencia, ya que logra que la lista de procesos prepa rados sea lo ma´s corta
posible.
5.7.5. Prioridad
En esta política se asocia a cada proceso una prioridad, de manera que el procesador se
asigna al proceso de mayor prioridad.
12
CAPITULO 3
ADMINISTRACIÓN DE ENTRADA/SALIDA
1. INTRODUCCIÓN
El control de las operaciones de entrada/salida (E/S) es otra de las misiones que debe realizar un sistema
operativo para facilitar el uso de los distintos dispositivos que forman parte de un sistema informático.
Distintas personas analizan de varias maneras de Hardware de E/S. Los ingenieros electricistas lo
conciben en términos de chips, cables, fuentes de poder, motores y demás componentes físicos que
conforman el hardware. Los programadores observan la interfaz que se presenta al software (los
comandos que el hardware acepta, las funciones que lleva a cabo y los errores que se pueden informar).
En este caso, nos concierne la pr ogramación de los dispositivos de E/S no el diseño, construcción o
mantenimiento de ellos; así nuestro interés estará restringido a la forma de programar el hardware y no a
su funcionamiento interno. Sin embargo es frecuente que la programación de muchos d ispositivos de E/S
este íntimamente ligada con su operación interna.
Dispositivos de E/S
Los dispositivos hardware de la computadora cuya misión es la de intercambiar datos con el procesador y
la memoria principal en un sentido, en otro o en ambos, común mente denominados periféricos, no son
fáciles ni cómodos de utilizar directamente por los procesos. Por otro lado, los procesos no necesitan
conocer las peculiaridades ni características de dichos dispositivos, sino únicamente intercambiar datos
con ellos. Por tanto, estos detalles deben ser ocultados para que de este modo las operaciones de E/S sean
independientes del tipo o modelo del dispositivo.
Los Discos son los dispositivos para almacenamiento secundario más comunes. Acepta n y recuperan datos a alta velocidad.
Los datos son transferidos entre el disco y la memoria en bloques. Los discos pueden ser fijos y removibles. Los primeros no se
pueden cambiar, mientras que los segundos pueden ser intercambiados, con lo que se consi gue un mayor volumen de
almacenamiento.
13
- Físicos, como pude ser la propia línea, y los adaptadores a la línea
denominados módem.
- Lógicos como pueden ser el protocolo de comunicación y el
método de control y detección de errores que se utilice.
La velocidad y la complejidad de los periféricos determinan cómo deben ser conectados al procesador.
3.1. Registros
Los dispositivos se pueden conectar al procesador por los registros de los dispo sitivos que pueden ser
14
Ahora bien, el procesador sólo puede dar comienzo a las operaciones de E/S sin poder
controlar su terminación, pero para ver cuándo se ha completado una operación se
pueden emplear dos métodos:
3.2. Controladores
Los dispositivos complejos (discos…) no se conectan directamente al procesador, sino que lo hacen a
través de un controlador que contiene el estado del dispositivo (status), controla el mismo y chequea los
datos transferidos.
El controlador es el que acepta las órdenes del procesador y se comunica con él a través
de registros como se tratara de un dispositivo.
3.3. Canales
Los canales son manejados por comandos y cuando terminan la operación d evuelven el
status correspondiente e interrumpen al procesador.
Se define driver como “el software formado por un conjunto de rutinas y tablas que, formando parte del
núcleo del sistema operativo, ejecutan y controlan todas las operaciones de E/S sobre cualquier periférico
conectado a la computadora, siendo particulares para cada dispositivo”.
15
Un driver no es un proceso o tarea independiente gestionado por el sistema operativ o, sino un conjunto de
tablas en las que aloja la información que caracteriza a cada periférico conectado a la computadora, y una
serie de rutinas que controlan toda la gestión de los mismos y las informaciones que fluyen en un sentido
en otro. Se encuentran permanentemente alojados en memoria principal y requieren una elevada rapidez
de ejecución sin formar parte del proceso de usuario que los utilice.
Proceso de usuario
DRIVER
Periférico
Las funciones básicas del software independiente del dispositivo es llevar a cabo las
funciones de E/S comunes a todos los dispositivos, además de proporcionar una interfaz
uniforme del software a nivel de usuario.
Proceso de usuario
Software independiente de
los dispositivos
Despachador de E/S
Manejador de
interrupciones
HARDWARE
16
4.1. Funciones de un driver
Entre las funciones que realiza un dr iver podemos citar las siguientes:
Son los puntos de entrada al driver y pueden ser llamadas directamente por el
núcleo del sistema operativo o por una interrupción hardware del dispo sitivo
periférico. En general, en un driver podemos encontrar las siguientes rutinas:
Atención de peticiones de E/S. Esta rutina atiende todas las peticiones de los
procesos de usuario para realizar operaciones de E/S.
Otras. Existen otras rutinas menos importantes, como puede ser: el time-out que
controla el tiempo de proceso de la operación y el Power –fail que actúa en el
arranque y reanudarse el proceso desp ués de un corte de alimentación del sistema.
Las rutinas de un driver para dar un correcto servicio a las peticiones de E/S necesitan para cada
dispositivo una serie de datos que se encuentran en estructura de datos en fo rma de tabla. Las cuales son
17
Bloque de control del driver (BCD)
Es la representación del driver desde el punto de vista del sistema operativo. Contiene aquellos
parámetros que son susceptibles de ser variados dinámicamente y a quellos que definen el tipo de
dispositivo que puede ser atendido por el driver. Los datos que suelen contener son:
Cada dispositivo físico se relaciona desde el punto de vista del sistema operativo como una unidad dentro
del tipo al que le corresponda y es definido e identificado por el sistema operativo por medio de su B CU.
Cuando un proceso de usuario intent a hacer una operación de E/S, el sistema operativo
crea un paquete asociado a dicho proceso y a dicha petición para ser tratado por el
driver. Este paquete se coloca en una cola prioritaria para ser atendido por el driver al
que va dirigido. Los datos que normalmente contiene son:
18
Función a realizar (entrada o salida)
Identificador del dispositivo.
Identificador de la unidad.
Dirección de la lista de parámetros de entrada de la llamada al sistema operativo.
5. INTERRUPCIONES VECTORIZADAS
Por tanto, el vector de interrupción es un número que nos indica la palabra que contiene
la dirección de una rutina que debe tratar una interrupción.
19
CAPITULO 5
ADMINISTRACIÓN DE ARCHIVOS
1. INTRODUCCIÓN
El sistema de archivos consta de dos partes distintas: una colección de archivos, cada uno de los
cuales contiene datos relacionados, y una estructura de directorios, que organiza todos los
archivos del sistema y proporciona información sobre ellos.
En este capítulo consideraremos los diversos aspectos de los archivos y las distintas estructuras
de directorios. También describiremos formas de manejar la protección de los archivos, que es
necesaria en un entorno en el que múltiples usuarios tienen acceso a los archivos.
2. ARCHIVOS
Un archivo tiene un nombre, para comodidad de sus usuarios, y usamos ese nombre
para hacer referencia al archivo. El nombre suele ser una cadena de caracteres, como
“ejemplo.c”. Algunos sistemas distinguen entre las let ras mayúsculas y minúsculas en
los nombres, mientras que en otros las consideran equivalentes.
Un archivo tiene otros atributos que varían de un sistema operativo a otro, pero que
generalmente son:
Nombre: El nombre simbólico del archivo es la única infor mación que se mantiene
en forma comprensible para seres humanos.
Tipo: Esta información se necesita en sistemas que reconocen distintos tipos.
Ubicación: Esta información es un puntero a un dispositivo y la posición del
archivo en ese dispositivo.
20
Tamaño: Este atributo incluye el tamaño actual del archivo y tal vez el tamaño
máximo permitido.
Protección: La información de control de acceso determina quién puede leer,
escribir, ejecutar, etc., el archivo.
Hora, fecha e identificación del usuario : Esta información podría mantenerse para
la creación, la ultima modificación y el último uso. Estos datos pueden ser útiles
para protección, seguridad y control de su uso.
Los archivos representan datos y programas. Los archivos de datos pueden ser
numéricos, alfabéticos, binarios. Un archivo es una secuencia de bits, bytes, líneas,
registros, de acuerdo a lo que necesita el usuario creador de ese archivo.
Text file:
Source file:
Object file
Executable file:
METODOS DE ACCESO
Algunos sistemas ofrecen un solo método de acceso a sus usuarios. Otros, por el
contrario, permiten utilizar varios y será el usu ario el que decida cual usar.
21
Acceso secuencial
Las rutinas del método de acceso secuencial mantendrán un apuntador al siguiente registro lógico a
acceder. Una operación de l ectura o escritura, lee o escribe el registro y avanza el apuntador al siguiente.
Acceso directo
Este método permite el acceso directo a cualquier parte del a rchivo, es decir, no es necesario pasar por la
información anterior para acceder a un determinado registro.
Solo puede existir este tipo de acceso en aquellos soportes que por su naturaleza lo permitan. Es el caso
de los discos, mientras las cintas no pued en tener este tipo de acceso.
Para este método, el archivo se visualiza como una secuencia numerada de bloques o
registros. Un archivo de acceso directo permite leer o escribir bloques arbitrarios. Así,
podríamos leer el bloque 14, luego el 53 y luego escribir el bloque 7. No hay
restricciones sobre el orden de lectura o escritura de un archivo.
Los archivos de acceso directo son muy útiles para obtener acceso inmediato a grandes
cantidades de información. Las bases de datos suelen ser de este tipo.
En este caso se construye un índice o tabla de las relaciones entre las claves y sus
bloques físicos para cada archivo.
22
DIRECTORIOS
Cada sistema organiza esta información a su manera: algunos construyen una cabecera
(header del archivo) y la separan del directorio, quedando información primaria en el
directorio para localización del archivo y el resto en el header. Otros estructuran el
directorio como una simple lista, con una entrada por archivo, como si fuera un archivo
secuencial donde el nombre de cada archivo es la clave.
La estructura de dicha tabla podrá ser más o menos compleja dependiendo de los
distintos sistemas operativos, per o en cualquier caso deberán permitir la realización de
las siguientes operaciones básicas:
23