Está en la página 1de 26

CAPTULO 1

INTRODUCCIN, CONCEPTOS Y TIPOS DE SISTEMAS


OPERATIVOS.
1.1. Introduccin
El sistema operativo es un programa que inicia su ejecucin al encender el computador,
establece un estado inicial de los componentes de dicho computador y tiene como
funcin primaria el permitir que otros programas se ejecuten y tengan un acceso
ordenado a los recursos que ofrece el equipo. Esto lo hace suministrando procesos que
controlan a los dispositivos perifricos, administrando recursos compartidos por varias
tareas como la memoria y equipos perifricos, estableciendo las prioridades de las tareas
que ejecuta el computador. Tambin debe mantener la integridad del proceso
recuperando el control cuando algn programa falla.
La computacin del siglo 21 se mueve en dos direcciones: La conectividad de los
equipos mediante redes con Internet a la cabeza y la automatizacin de todos los
dispositivos de uso diario como celulares, agendas y otros
Para PC los sistemas operativos por excelencia son Linux y Windows pudiendo
interconectarse entre si mediante la redes. Por algn tiempo Windows ha sido parte del
panorama hoy en da amenazado por alternativas econmicas y de cdigo abierto como
Linux
Linux, que hasta ahora ha sido la adoracin del profesional de computacin rebelde
comienza a penetrar los mercados conservadores como una alternativa tipo UNIX pero
ms econmica.
En el mercado de los dispositivos y aparatos hay varios sistemas operativos como:
Windows CE, Java de Sun, Palm OS y EPOC de Psion1.
Por lo expuesto los sistemas operativos se ejecutaran en:
Computadores (Servidores, Clientes y Porttiles)
Dispositivos (Agendas, Celulares, Equipos de Oficina y Domsticos)

Sin olvidar a QNX como un sistema operativo de tiempo real que esta entrando fuertemente en el mercado.

INTRODUCCIN Y CONCEPTOS 2

1.2. Conceptos de Sistema Operativo.


Existen muchos conceptos de sistema operativo, se cita los ms apegados a la realidad:
Un sistema operativo es un programa que controla la ejecucin de los programas de
aplicacin y acta como interfaz entre el usuario y el hardware del computador.
Un sistema operativo es software desarrollado para simplificar la labor del usuario
cuando necesita hacer uso de ciertos recursos que ofrece el computador para
transformar datos en informacin.
Un sistema operativo (SO) puede ser contemplado como una coleccin organizada de
extensiones software del hardware, consistente en rutinas de control que hacen
funcionar un computador y proporcionan un entorno para la ejecucin de los programas. Otros programas se apoyan en las facilidades proporcionadas por el sistema
operativo para obtener acceso a los recursos del sistema informtico, tales como
archivos y dispositivos de entrada/salida (E/S). Los programas invocan generalmente
los servicios del sistema operativo por medio de llamadas. Adems, los usuarios
pueden interactuar con el sistema operativo directamente por medio de rdenes del
sistema operativo. En cualquier caso, el sistema operativo acta como interfaz entre
los usuarios y el hardware de un sistema informtico. Figura 1.1.

Figura 1.1.- Interaccin del SO con el hardware y usuario.

El mdulo del sistema operativo que permite que los usuarios dialoguen de forma
interactiva con el sistema es el intrprete de mandatos o shell.
Captulo 1 Sistemas Operativos

INTRODUCCIN Y CONCEPTOS 3

El shell se comporta como un bucle infinito que est repitiendo constantemente la


siguiente secuencia:
Espera una orden del usuario.
Analiza la orden y, en caso de ser correcta, la ejecuta, para lo cual emplea los
servicios del sistema operativo.
Concluida la orden vuelve a la espera.
El dilogo mediante interfaz textual exige que el usuario memorice la sintaxis de los
mandatos, con la agravante de que son distintos para cada sistema operativo (por
ejemplo para ver el contenido de un archivo en MS-DOS se emplea el mandato type,
pero en UNIX se usa el mandato more). Las ordenes o comandos permiten tener mayor
control sacrificando la facilidad de las interfases grficas.
1.3. Funciones del sistema operativo
Un sistema operativo es un programa que tiene encomendadas una serie de funciones
diferentes y cuyo objetivo es simplificar el manejo y la utilizacin de un computador,
hacindolo ms seguro y eficiente; ya que un computador en s mismo no hace nada.
Las principales funciones son: [2] J. Carretero
a) Asignar
b) Liberar recursos
c) Proteger recursos
d) Contabilizar recursos
e) Ejecutar programas y gestionar procesos
f) Manipular dispositivos de E/S
g) Gestionar archivos
h) Detectar y tratar los errores
i) Interactuar con el usuario mediante el ILO
j) Automatizar el manejo mediante shell scripts o bat.
k) Mejorar la productividad de recursos
l) Permitir la comunicacin y sincronizacin de programas

Captulo 1 Sistemas Operativos

INTRODUCCIN Y CONCEPTOS 4

1.4. El arranque de un computador.


El sistema operativo de un computador puede estar almacenado en ROM de modo
permanente o en un almacenamiento externo generalmente un disco duro, y debe
cargarse en RAM al encender el computador.
Cuando el sistema operativo est en ROM toma control del equipo al momento de
arrancar.
Si el sistema operativo est instalado en disco duro, disquete o memoria usb, una parte
muy pequea de cdigo, llamado sistema operativo de Nivel 0, est presente en ROM
para iniciar la carga del sistema operativo desde la unidad externa de almacenamiento.
Generalmente esta carga se hace en dos fases:
La fase de arranque hardware
La fase de arranque del sistema operativo.
1.4.1. Arranque hardware
Cuando se arranca la computadora, o cuando se pulsa el botn RESET, se genera una
seal elctrica que carga unos valores predefinidos en los registros. En especial, esta
seal carga en el contador de programa la direccin de comienzo del iniciador ROM, De
esta forma se cumplen todas las condiciones para que la computadora ejecute un
programa y realice funciones tiles.
El iniciador es un programa permanente grabado en una memoria ROM llamado sistema
operativo de Nivel 0. Figura 1.2.
Unidad de Memoria
Direccin
0
2.047

Celdas
Zona
ROM

Unidad de Memoria
Direccin

Celdas

1.046.528
1.048.575

1.048.575

Zona
ROM

Figura 1.2.- La memoria de un computador tiene RAM y ROM

El iniciador ROM realiza tres funciones.


Captulo 1 Sistemas Operativos

INTRODUCCIN Y CONCEPTOS 5

Primero hace una comprobacin del sistema, que sirve para detectar sus
caractersticas y comprobar si los dispositivos funcionan correctamente.
Lectura y almacenamiento en memoria del programa cargador del sistema operativo.
Da el control al programa cargador.
En el caso de una computadora de tipo PC, la memoria ROM contiene, adems del
programa iniciador, software de E/S denominado BIOS (basic input-output system). El
BIOS de una computadora proporciona el fabricante y suele contener procedimientos
para leer y escribir de disco, leer caracteres del teclado y escribir en la pantalla,
comunicarse con el usuario con sonidos cuando un dispositivo bsico falla, por ejemplo
si no existe o esta mal instalada la tarjeta de video o memoria.
Un sistema operativo que se encuentra instalado en una unidad de disco duro, tiene una
disposicin como la que se muestra en la Figura 1.3, lo que interesa ahora es el
programa cargador del sistema operativo.2 Este programa est almacenado en una zona
predefinida del disco, generalmente los primeros sectores del disco, y tiene un tamao
prefijado.
Programa cargador
(identificador)

Disco

Sistema Operativo

Figura 1.3.- Disposicin del SO en un disco duro.

Para una mayor seguridad, el programa cargador del sistema operativo se incluye en una
posicin prefijada por el iniciador ROM, y puede tener una contrasea.
1.4.2. Arranque del sistema operativo
El programa cargador del sistema operativo tiene por misin traer a memoria principal
algunos de los componentes del sistema operativo. Una vez cargados estos
componentes, se pasa a la fase de iniciacin, que incluye las siguientes operaciones:
Comprobacin del sistema. Se completan las pruebas del hardware realizadas por el
iniciador ROM y se comprueba que el sistema de archivos tenga un estado coherente.
2

LLamado Boot en Windows y Lilo o Grub en Linux.

Captulo 1 Sistemas Operativos

INTRODUCCIN Y CONCEPTOS 6

Esta operacin exige revisar todos los directorios, lo que supone un largo tiempo de
procesamiento
Se establecen las estructuras de informacin propias del sistema operativo, tales
como la tabla de procesos, las tablas de memoria y las de E/S. El contenido de estas
tablas se describir a lo largo del libro.
Se carga en memoria principal aquella parte del sistema operativo que ha de estar
siempre en memoria, parte que se denomina sistema operativo residente.
Se crea un proceso de inicio o login por cada terminal definido en el sistema, as
como una serie de procesos auxiliares o servicios llamados demonios (por ejemplo:
el demonio de impresin o el demonio de comunicaciones).
Los procesos de inicio presentan en su terminal el mensaje de bienvenida y se quedan a
la espera de que un usuario arranque una sesin, para lo cual ha de teclear el nombre de
su cuenta y su contrasea o password. El proceso de inicio autentifica al usuario,
comprobando que los datos introducidos sean correctos y lanza un proceso shell. El
proceso shell primero ejecuta uno o varios archivos de mandatos, como es el
autoexec.bat en MS-DOS o los login y cshrc en UNIX. A continuacin, el shell
se queda esperando rdenes de los usuarios, ya sean textuales o como acciones sobre un
men o un icono. Para llevar a cabo las operaciones solicitadas por el usuario, el shell
genera uno o varios procesos.
La Figura 1.4 resume las actividades ms importantes que se realizan en el arranque de
la computadora [2] J.Carretero

Captulo 1 Sistemas Operativos

INTRODUCCIN Y CONCEPTOS 7

Bajo el control del


iniciador ROM

Test del hardware


Carga en memoria del cargador del SO

Bajo el control del


cargador (boot) del SO

Carga en memoria componentes del SO

Inicializacin bajo el
control de la parte
residente del SO

Test del sistema de ficheros


Creacin de estructuras de datos internas
Completa la carga del SO residente
Creacin de procesos login

Se entra en la fase normal de funcionamiento del SO

Figura 1.4.- El arranque de una computadora

1.5. Evolucin e historia de los sistemas operativos.


1.5.1. Procesamiento serie
En una secuencia tpica, se empieza cargando el programa editor para preparar el cdigo
fuente del programa. El paso siguiente es cargar y ejecutar el traductor de lenguaje y
alimentarle con el cdigo fuente del programa de usuario. Los traductores de lenguaje
de mltiples pasos pueden requerir que se reintroduzca el cdigo fuente durante cada
paso, cuando se usan dispositivos de entrada serie, tales como lectoras de tarjetas. Si se
detectan errores de sintaxis debe repetirse el proceso completo desde el principio.
Eventualmente, el cdigo objeto producido a partir del cdigo fuente corregido
sintcticamente es cargado y ejecutado. Si se detectan errores en tiempo de ejecucin, se
puede examinar y modificar el estado de la mquina mediante los interruptores de la
consola, o con la ayuda de un programa llamado depurador. [1] Milan Milenkovic,
1.5.2. Procesamiento por lotes
El siguiente paso lgico en la evolucin de los sistemas operativos fue automatizar la
secuencia de operaciones involucradas en la ejecucin de un programa y los aspectos
mecnicos del desarrollo de programas. El propsito era incrementar la utilizacin de
los recursos del sistema y la productividad del programador mediante la reduccin o
eliminacin de los tiempos muertos de los componentes ocasionados por las
comparativamente lentas operaciones manuales.

Captulo 1 Sistemas Operativos

INTRODUCCIN Y CONCEPTOS 8

Un concepto relacionado, llamado a veces phasing, es el de preorganizar los trabajos


de forma que los anlogos se siten en el mismo lote. Por ejemplo, agrupando en lotes
varios trabajos de compilacin Fortran, el compilador Fortran slo necesita ser cargado
una vez para procesarlos a todos de golpe.
Mejoras adicionales en el procesamiento por lotes se consiguieron principalmente
incrementando la productividad y la utilizacin de los recursos mediante el
solapamiento de las operaciones de entrada y salida. Estos desarrollos coincidieron con
la introduccin de:
Los canales de acceso directo a memoria (DMA, Direct Memory Access),
Los controladores de perifricos,
Los procesadores de entrada/salida dedicados.
Almacenamiento intermedio (bffer) de E/S.
SPOOL (simultaneous perpheral operations)
Archivos denominados BAT y Scripts
1.5.3. Multiprogramacin
Incluso con las mejoras anteriores, el procesamiento por lotes dedica los recursos del
sistema informtico a un nico programa cada vez. En el curso de su ejecucin, la
mayora de los programas oscilan entre fases intensivas en procesamiento o clculo e
intensivas en E/S. Como se ilustra en la Figura 1.5

Procesamiento
Entrada/salida
Tiempo
Figura 1.5.- Fases en que oscila un programa.

La ejecucin serie de los programas provoca que o bien el procesador o bien los
dispositivos de E/S se encuentren inactivos en algn momento incluso cuando el flujo
de trabajos a la entrada nunca est vaco. Un modo de abordar este problema es asignar
alguna otra tarea al procesador y a los dispositivos de E/S cuando de otro modo se
vayan a encontrar inactivos. Si se permite que los programas se ejecuten
Captulo 1 Sistemas Operativos

INTRODUCCIN Y CONCEPTOS 9

concurrentemente, pueden proporcionarse amplios suministros de trabajos pendientes


para que sean asignados a los componentes infrautilizados.
Se pueden lograr ganancias significativas de rendimiento intercalando la ejecucin de
los programas, o multiprogramando, que es como se le denomina generalmente a este
modo de operacin. El nmero de programas activamente en competencia por los
recursos de un sistema informtico multiprogramado se denomina grado de
multiprogramacin. En principio, mayores grados de multiprogramacin deberan
producir mayor utilizacin de recursos. La multiprogramacin ha sido tradicionalmente
empleada para aumentar la utilizacin de los recursos de un sistema informtico y para
soportar mltiples usuarios simultneamente activos. [1] Milan Milenkovic,
1.6. Generaciones de los Sistemas Operativos.
Se pueden encontrar las siguientes etapas en el desarrollo de los sistemas operativos,
que coinciden con las cuatro generaciones de las computadoras.
Prehistoria.-En esta etapa no existan sistemas operativos. El usuario deba codificar
su programa a mano y en instrucciones mquina, y deba introducirlo personalmente
en la computadora, mediante conmutadores o tarjetas perforadas. Las salidas se
impriman o se perforaban en cinta de papel para su posterior impresin.
Primera generacin.- Aos cincuenta, corresponde a los sistemas operativo serie y
de lotes.
Segunda generacin.-Con la aparicin de la segunda generacin de computadoras
principios de los sesenta la multiprogramacin se impuso en sistemas de lotes como
una forma de aprovechar el tiempo empleado en las operaciones de E/S. Una forma
de aprovechar ese tiempo consiste en mantener varios trabajos simultneamente en
memoria principal y compartir el tiempo de procesador (tcnica llamada de
multiprogramacin).
Tambin en esta poca aparecen otros modos de funcionamiento muy importantes:
Equipos multiprocesadores.- en los que varios procesadores forman una sola
mquina de mayores prestaciones.
Sistemas de tiempo compartido o timesharing.- Estos sistemas, a los que
estamos muy acostumbrados en la actualidad3, permiten que varios usuarios
trabajen de forma interactiva o conversacional con la computadora desde
3

Windows o Linux

Captulo 1 Sistemas Operativos

INTRODUCCIN Y CONCEPTOS 10

terminales. El sistema operativo se encarga de repartir el tiempo de la UCP


entre los distintos usuarios, asignando de forma rotativa pequeos intervalos de
tiempo de UCP denominadas rodajas (time slice). En sistemas bien
dimensionados, cada usuario tiene la impresin de que la computadora le
atiende exclusivamente a l, respondiendo rpidamente a sus rdenes. Aparecen
as los primeros planificadores.
Primeros sistemas de tiempo real.- En este caso, la computadora est conectada
a un sistema externo y debe responder de acuerdo a los sucesos externos.
Aparecen implementaciones con memoria virtual, es decir si no existe memoria
RAM suficiente se utiliza el disco duro.
Tercera generacin (aos setenta).- La tercera generacin es la poca de los
sistemas de propsito general y se caracteriza por los sistemas operativos multimodo
de operacin, esto es, capaces de operar en lotes, en multiprogramacin, en tiempo
real, en tiempo compartido y en modo multiprocesador. Esta dcada fue importante
por la aparicin de dos sistemas que tuvieron una gran difusin como UNIX y MVS
de IBM.
Cuarta generacin (aos ochenta hasta la actualidad).- La cuarta generacin se
caracteriza por una evolucin de los sistemas operativos de propsito general de la
tercera generacin, tendiente a su especializacin, a su simplificacin y a dar ms
importancia a la productividad del usuario que al rendimiento de la mquina.
Adquiere cada vez ms importancia el tema de las redes de computadoras, tanto
redes de largo alcance como locales. En concreto, la disminucin del coste del
hardware hace que se difunda el proceso distribuido, en contra de la tendencia
centralizadora anterior. El proceso distribuido consiste en disponer de varias
computadoras, cada una situada en el lugar de trabajo de las personas que la emplean,
en lugar de una nica central. Estas computadoras suelen estar unidas mediante una
red, de forma que puedan compartir informacin y perifricos.
Se difunde el concepto de mquina virtual e interfaz grafica.
Los sistemas operativos que domina el campo de las computadoras personales son
UNIX, LINUX, y Windows NT hasta Windows 2003.

Captulo 1 Sistemas Operativos

INTRODUCCIN Y CONCEPTOS 11

Durante esta etapa se desarrollan tambin los sistemas operativos de tiempo real,
encargados de ofrecer servicios especializados para el desarrollo de aplicaciones de
tiempo real. Algunos ejemplos son: QNX, RTEMS y VRTX .
A mediados de los ochenta aparecen los sistemas operativos distribuidos. Un sistema
operativo distribuido es un sistema operativo, comn utilizado en una serie de
computadores conectados por una red. Figura. 1.6.
Usuarios
Programas
Sistema Operativo Distribuido
Hardware

Hardware

Red de Interconexin

Figura 1.6.- Sistema operativo distribuido.

1.7. Tipos de Sistemas Operativos


Clasificacin

Tipo de Sistema Operativo


Monoproceso.
Multiproceso

Por el nmero de
Procesos

Monoprograma
Multiprograma

Por el nmero de
Programas

Monousuario
Multiusuario.

Por el nmero de
Usuarios
Por

el

nmero

Monoprocesador

Captulo 1 Sistemas Operativos

INTRODUCCIN Y CONCEPTOS 12

Multiprocesador.

Procesadores
Por el algoritmo de
Planificacin

Por el nmero de
Accesos

De Red
Distribuidos

Por las conexiones


el

tipo

arquitectura

Uni acceso
Multiacceso
Monoltico
Por Capas
o Microkernel
o Cliente Servidor.

Por la estructura

Por

Serie
Lotes
Multitarea:
o Tiempo Compartido
o Tiempo Real
o Propsito General.
o Combinados

de
del

Monoplataforma
Multiplataforma.

equipo
Por

la

forma

comercializar

de

Cdigo Propietario.
Cdigo Libre

Las diferencias ms importantes en la forma de trabajo se dan en los siguientes sistemas


operativos:
En Serie y Lotes
Captulo 1 Sistemas Operativos

INTRODUCCIN Y CONCEPTOS 13

Multiprogramacin. Las variedades de tiempo compartido, de tiempo real,


combinados y distribuidos.
Cada tipo de sistema operativo tiene diferentes formas de realizar su trabajo en relacin
a los siguientes aspectos:
Planificacin del procesador
Gestin de la memoria.
Gestin de la E/S.
Gestin de archivos
1.8. Diferentes perspectivas de un sistema operativo
El sistema operativo es percibido de diferente forma por las diferentes clases de
usuarios. Como son:
Usuario Final.- Obtienen servicios del sistema operativo mediante rdenes, es decir,
tecleando en el terminal o incorporando rdenes a un trabajo por lotes, o interfaz
grfica.
Programador.- Invocan servicios del sistema operativo mediante llamadas al sistema
en tiempo de ejecucin. stas se encuentran generalmente incluidas en programas y
son activadas durante su ejecucin.
Diseador.- Es un usuario que crea el sistema operativo.
1.8.1. El sistema operativo usado como lenguaje de rdenes
Los lenguajes de rdenes del sistema operativo suelen ser especficos de cada sistema.
Aunque su sintaxis difiere de un sistema a otro, el rango y funcionalidad de las rdenes
del sistema son mucho menos variables. Algunas de las clases funcionales tpicas de las
rdenes del sistema operativo aparecen a continuacin: [1] Milan Milenkovic

TIPO DE ORDEN

ORDENES TPICAS

Conexin y mantenimiento

LOGIN,
LOGOUT,
CAMBIAR_CLAVE
Activacin y Control de CARGAR,
EJECUTAR,
Captulo 1 Sistemas Operativos

INTRODUCCIN Y CONCEPTOS 14

Programas

ABORTAR

Gestin de Archivos

CREAR,
ELIMINAR,
RENOMBRAR, COPIAR

Informes de Estado

LISTAR PROGRAMAS
ACTIVOS
LISTAR_USUARIOS
CONECTADOS.
CREAR_CUENTA,
LISTAR_ERRORES.

Administracin del Sistema

1.8.2. El sistema operativo usado con llamadas al sistema


Los programadores de aplicaciones y sistemas suelen invocar servicios del sistema
operativo desde sus programas por medio de llamadas al sistema lo que a veces se
denomina interfaces de programacin de aplicaciones (API Aplication-Programing
Interfaces). Las API mas conocidas con WIN32 para Windows y POSIX en Linux
1.9. Recorrido de la ejecucin de una orden.
Para valorar el papel y cometido de los diferentes componentes del sistema, esta seccin
sigue un recorrido tpico de la ejecucin de una orden del sistema operativo. Para los
fines de este ejemplo, consideremos la secuencia de sucesos que pueden ocurrir en
respuesta a la orden del usuario.
EDITAR ARCHIVO.TXT
EL BIOS recibe cada letra individual pulsada en el teclado que produce una
interrupcin que es procesada por una rutina de dispositivos de teclado de bajo nivel.
Cuando recibe la seal de la tecla ENTER, el BIOS sabe que la lnea completa ya
esta ensamblada y la rutina de dispositivo de teclado transfiere la lnea de entrada al
intrprete del lenguaje de rdenes (ILO).
El ILO, llamado shell en Unix y COMMAND en Windows, analiza la lnea y deduce
que requiere la ejecucin de un programa EDITOR para el ejemplo. El resto de la
lnea ARCHIVO.TXT se guarda para transferirla como parmetro al programa
solicitado como parmetro.
Captulo 1 Sistemas Operativos

INTRODUCCIN Y CONCEPTOS 15

El ILO verifica si el programa editor se encuentra en la memoria principal.


Si no est procede a su carga y ejecucin. Que contempla los siguientes pasos:
o Localizar el archivo del programa ejecutable llamado EDITOR en el disco:
o Primero en el directorio de trabajo y luego en los directorios del camino de
bsqueda.
o Si no encuentra enva el mensaje de error
o Si es localizado, lee tamao del archivo y consecuentemente los requisitos de
memoria.
El gestor de memoria asigna la regin de memoria principal en la que el programa
editor va a ser cargado.
o Busca en las tablas de memoria las particiones libres suficientes para
almacenar.
o Si no encuentra da el mensaje de error de que no hay memoria.
o Si encuentra pasa el control a un programa cargador que toma los elementos
del archivo EDITOR y los lleva a memoria principal. Anotando las
direcciones de memoria fsica en las tablas del mapa de direcciones que se
utiliza para proteccin y para traduccin a direcciones de memoria (fsicas)
de las direcciones relativas al programa (virtuales).
Cuando el programa editor est cargado en memoria, el sistema operativo crea el
proceso. Para lo cual crea la estructura de datos llamada bloque de control de
procesos (BCP), en la cual anota:
o El nombre del programa
o El identificador interno del sistema,
o La prioridad de ejecucin
o Los punteros a la tabla de traduccin de direcciones,
o La lista de recursos asignados y otra informacin general.
Una vez creado, el proceso editor es elegible para ejecucin y es colocado en la lista
de procesos preparados, por definicin, poseen todos los recursos requeridos excepto
el procesador.
Captulo 1 Sistemas Operativos

INTRODUCCIN Y CONCEPTOS 16

Un mdulo del sistema operativo denominado planificador selecciona el siguiente


proceso de los preparados para la ejecucin.
Cuando el editor es eventualmente planificado para ejecutarse recibir el control del
procesador as como el resto de la lnea de orden invocada; es decir el parmetro
ARCHIVO. TXT. Para lo que tiene que empezar a realizar procesos similares a los
anteriores de bsqueda en disco y carga en memoria. En este caso al ser un archivo
de texto tiene que emitir una llamada especial. ABRIR (OPEN) para obtener acceso o
CREAR si no existe el archivo.
El sistema operativo realiza un trabajo importantsimo en poco tiempo, que es
transparente para el usuario.
En la Figura 1.8 se indica el funcionamiento de un sistema operativo a travs de sus
componentes.
Como vemos el SO administra los recursos como el Procesador, Memoria y Disco Duro
continuamente. Para un rendimiento ptimo del sistema no solo depende del SO, sino de
lo que puede ofrecer un buen hardware. Sobre todo la velocidad con la que el
procesador puede leer y escribir la informacin de los diferentes tipos de memoria
como: Registros, Cache, RAM y Disco Duro. La Figura 1.7 indica la jerarqua de las
memorias segn su velocidad y capacidad. La memoria que tiende hacia la punta es la
mas rpida y por ende costosa y la memora hacia la base es la de mayor capacidad.
1.10. Diseo e Implementacin de sistemas operativos
En esta seccin discutimos algunas de las cuestiones y metodologas utilizadas en el
diseo e implementacin de sistemas operativos. Comenzamos esbozando los
principales problemas y mtodos utilizados en la gestin de objetos del sistema
operativo tales como procesos, memorias y archivos. Luego presentamos una visin de
la estructura interna de los sistemas operativos.

Captulo 1 Sistemas Operativos

INTRODUCCIN Y CONCEPTOS 17

Nivel 0

Reg.

Nivel 1

M. Cache

Gestin HW

Nivel 2

Mem. Principal

Gestin S.O.

Nivel 3

Discos

Gestin S.O.

.Figura 1.7.- Jerarqua de los tipos de Memoria.

1.10.1. Requisitos funcionales


El sistema operativo proporciona varias funciones supervisoras y de control para
gestin de los procesos. Entre ellas se incluyen servicios de creacin y supresin de
procesos, control del progreso de los procesos y actuacin sobre condiciones
excepcionales que se presentan durante la ejecucin de un proceso. El sistema operativo
asigna recursos hardware y software en respuesta a requisitos del proceso y a peticiones
explcitas. Adems, el sistema operativo proporciona proteccin, control de acceso y la
seguridad necesaria para mantener la integridad del sistema en entornos de
multiprogramacin. La cooperacin entre los procesos viene facilitada por mecanismos
para comunicacin e intercambio de informacin entre procesos, tales como seales y
mensajes.
La gestin de memoria principal consiste esencialmente en asignar memoria fsica de
capacidad finita a los procesos que lo soliciten.

Captulo 1 Sistemas Operativos

INTRODUCCIN Y CONCEPTOS 18

Area del Sistema Operativo

Procesos
1 A
B C P

Cache

1 B
Programa 1

1 C

Gestin de Memoria Virtual

2 A
Programa 2

Registros

Memoria
RAM

Usuario

2 B

3 A
Programa 3

UCP
Procesos
Preparados

Disco Duro
Gestin de Archivos

Planificador

Figura 1.8.- Funcionamiento del SO

El almacenamiento de informacin a largo plazo, incluidos programas y datos, es una


funcin importante en un sistema operativo. La informacin se almacena generalmente
en dispositivos de memoria secundaria en forma de colecciones de entidades
relacionadas llamadas archivos.
Los entornos multiusuario y multiprogramacin imponen algunos requisitos adicionales
para la manipulacin y almacenamiento de archivos. Anlogamente a la informacin en
memoria principal, la informacin en archivos debe estar protegida contra accesos no
autorizados y a los usuarios cooperativos les debe ser permitida la comparticin e
incluso el acceso concurrente a archivos comunes.
1.10.2. Componentes
El Nivel 1 con frecuencia denominado ncleo o kernel del sistema operativo, gestiona
bsicamente los procesos. El ncleo lleva la cuenta de los procesos activos mediante
estructuras de datos que muestran el estado del sistema. Este nivel contiene un
planificador que selecciona qu proceso ejecutar a continuacin cuando se desactiva el
proceso actualmente en ejecucin. Al asignar la UCP a un nuevo proceso, el ncleo
efecta una operacin de cambio de contexto que incluye salvar el estado del proceso
que acaba y restaurar el estado del proceso que llega. El Nivel 1 gestiona las
interrupciones enmascarndolas cundo y cmo sea necesario y proporciona facilidades
para conectar rutinas de servicio a interrupciones hardware. Este nivel tambin puede
Captulo 1 Sistemas Operativos

INTRODUCCIN Y CONCEPTOS 19

proporcionar mecanismos bsicos para sincronizacin y posiblemente comunicacin


entre procesos tales como semforos o mensajes.
El Nivel 2 proporciona bsicamente facilidades de bajo nivel para la gestin de
memoria secundaria necesaria para soportar la gestin de memoria principal en el Nivel
3, El Nivel 2 permite que se transfieran bloques de datos entre los almacenamientos
primario y secundario. Proporciona una abstraccin de muy bajo nivel de la memoria
secundaria como secuencia lineal de bloques de datos para fines de lectura y escritura.
Las peticiones efectuadas de este modo se traducen por rdenes hardware para mover y
posicionar las cabezas del disco.
El Nivel 3 gestiona la memoria principal. Asigna memoria a los procesos al cargarlos y
la libera cuando ya no es necesaria. El aislamiento de los distintos espacios de
direcciones y algunas formas controladas de comparticin de memoria tambin se
soportan en el Nivel 3. La memoria virtual, que proporciona la ilusin de disponer de
una memoria mayor de la que es fsicamente accesible, puede implementarse a este
nivel. Los mdulos del Nivel 3 manejan las interrupciones hardware que revelan
intentos de direccionar datos que no se encuentran en la memoria principal. En este
caso, los bloques de datos ausentes son trados desde el almacenamiento secundario
utilizando facilidades del Nivel 2. Si no hay espacio disponible, se desocupa el espacio
necesario mediante la retirada temporal de algunos datos llevndolos al almacenamiento
secundario.
El Nivel 4 proporciona facilidades para almacenamiento a largo plazo y manipulacin
de archivos con nombre. En el Nivel 4 se implementan formas ms sofisticadas de
asignacin de espacio y acceso a datos en memoria secundaria que las proporcionadas
por el Nivel 2. Los archivos o partes de ellos, pueden ser accedidos y actualizados por
medio de rdenes de alto nivel sin necesidad de especificar los nmeros o direcciones
de los bloques de datos tal como requiere el Nivel 2. En el Nivel 4, la informacin es
generalmente direccionada de una manera relativa a archivos.
El Nivel 4 tambin gestiona los dispositivos y perifricos externos, tales como
impresoras y terminales. Las diferencias hardware entre diferentes tipos de dispositivos,
tales como si estn orientados a carcter o estructurados en bloques, son encubiertas por
el software a este nivel para proporcionar una visin uniforme de archivos y
dispositivos para los niveles superiores y finalmente para los usuarios del sistema. Este
interfaz estndar tambin puede extenderse con una facilidad de comunicacin entre
programas denominada cauce (pipe), que es esencialmente un canal de comunicacin
Captulo 1 Sistemas Operativos

INTRODUCCIN Y CONCEPTOS 20

virtual unidireccional. Se pueden escribir flujos de datos en un extremo del cauce y


leerlos en el otro utilizando bsicamente el mismo grupo de llamadas, tales como
ABRIR y LEER, que estn disponibles para manipulacin de archivos y dispositivos.
El Nivel 5 es el intrprete del lenguaje de rdenes. Proporciona la interfase entre los
usuarios interactivos y el sistema operativo. Los mdulos del Nivel 5 utilizan
facilidades proporcionadas por los niveles inferiores para aceptar lneas de rdenes
desde los terminales. Estas lneas de entrada son entonces analizadas sintcticamente
para separar las rdenes de los parmetros e identificar el tipo de servicio solicitado. Las
llamadas al sistema en otros niveles se emplean para proporcionar realmente el servicio.
Cuando se solicita ejecutar un programa, el software de este nivel crea el entorno de
trabajo e invoca a los procesos correspondientes.
1.10.3. Estructura
Los sistemas operativos est formado por una serie de componentes especializados en
determinadas funciones. Cada sistema operativo estructura estos componentes de forma
distinta. En funcin de esta estructura se pueden agrupar los sistemas operativos en dos
grandes grupos: sistemas operativos monolticos y sistemas operativos estructurados.
1.10.3.1. Sistemas operativos monolticos
Un sistema operativo de este tipo no tiene una estructura clara y bien definida. Todos
sus componentes se encuentran integrados en un nico programa (el sistema operativo)
que ejecuta en un nico espacio de direcciones. En este tipo de sistemas todas las
funciones que ofrece el sistema operativo se ejecutan en modo ncleo.
Ejemplos claros de este tipo de sistemas son MS-DOS, UNIX y LINUX. Ambos
comenzaron siendo pequeos sistemas operativos, que fueron hacindose cada vez ms
grandes debido a la gran popularidad que adquirieron.
El problema que plantea este tipo de sistemas radica en lo complicado que es modificar
el sistema operativo para aadir nuevas funcionalidades y servicios. En efecto, aadir
una nueva caracterstica al sistema operativo implica la modificacin de un gran
programa, compuesto por miles de lneas de cdigo fuente y funciones, cada una de las
cuales puede invocar a otras cuando as lo requiera. Adems, en este tipo de sistemas no
se sigue el principio de ocultacin de la informacin. Para solucionar este problema es
necesario dotar de cierta estructura al sistema operativo.

Captulo 1 Sistemas Operativos

INTRODUCCIN Y CONCEPTOS 21

1.10.3.2. Sistemas operativos estructurados


Cuando se quiere dotar de estructura a un sistema operativo, normalmente se recurre a
dos tipos de soluciones: sistemas por capas y sistemas cliente-servidor.
a) Sistemas por capas
En un sistema por capas, el sistema operativo se organiza como una jerarqua de capas,
donde cada capa, ofrece una interfaz clara y bien definida a la capa superior y solamente
utiliza los servicios que le ofrece la capa inferior.
La principal ventaja que ofrece este tipo de estructuras es la modularidad y la ocultacin
de la informacin. Una capa no necesita conocer cmo se ha implementado la capa
sobre la que se construye, nicamente necesita conocer la interfaz que ofrece. Esto
facilita enormemente la depuracin y verificacin del sistema, puesto que las capas se
pueden ir construyendo y depurando por separado.
Capa 5: Programas de usuario
Capa 4: Gestin de la E/S
Capa 3: Controlador de la consola
Capa 2: Gestin de memoria
Capa 1: Planificacin de la CPU y multiprogramacin
Capa 0: hardware

Figura 1.9.- Estructura por capas de un SO

Este enfoque lo utiliz por primera vez el sistema operativo THE, un sistema operativo
sencillo que estaba formado por seis capas, como se muestra en la Figura 1.9. Otro
ejemplo de sistema operativo diseado por capas es el OS/2, descendiente de MS-DOS.
b) Modelo cliente-servidor
En este tipo de modelo, el enfoque consiste en implementar la mayor parte de los
servicios y funciones del sistema operativo en procesos de usuario, dejando slo una
pequea parte del sistema operativo ejecutando en modo ncleo. A esta parte se le
denomina micro-ncleo y a los procesos que ejecutan el resto de funciones se les
Captulo 1 Sistemas Operativos

INTRODUCCIN Y CONCEPTOS 22

denomina servidores. La Figura 1.10 presenta la estructura de un sistema operativo con


estructura cliente-servidor.
Procesos
cliente

API

API

Procesos
servidores

Servidor de
Servidor
Servidor de Servidor de Servidor de archivos y Servidor de
de
Seguridad
procesos memoria
la E/S
directorios
Comunicac.

Microncleo

Modo usuario

Modo ncleo

Hardware

Figura 1.10.- Estructura Cliente Servidor del SO

Minix, Mach y Amoeba son ejemplos de sistemas operativos que siguen este modelo.
Windows NT tambin sigue esta filosofa de diseo, aunque muchos de los servidores
(el gestor de procesos, gestor de E/S, gestor de memoria, etc.) se ejecutan en modo
ncleo por razones de eficiencia.
1.11. Interfaz de usuario del sistema operativo.
Cuando un usuario trabaja con una computadora necesita poder interactuar con el
sistema operativo para poder llevar a cabo operaciones tales como ejecutar un programa
o borrar un archivo, sin necesidad de escribir un programa que realice dicha operacin
utilizando los servicios del sistema operativo.
La interfaz de usuario de los sistemas operativos, al igual que la de cualquier otro tipo
de aplicacin, ha sufrido una gran evolucin. Se ha pasado de interfaces alfanumricas,
que requeran un conocimiento bastante profundo del funcionamiento de la
computadora a interfaces grficas, que ocultan al usuario la complejidad del sistema
proporcionndole una visin intuitiva del mismo.
1.11.1. Funciones de la interfaz de usuario
La principal misin de la interfaz, sea del tipo que sea, es permitir al usuario acceder y
manipular los objetos y recursos del sistema. En esta seccin se presentarn de forma
genrica cules son las operaciones que tpicamente ofrece el sistema operativo a sus
usuarios, con independencia de cmo lleven stos a cabo el dilogo con el mismo:
Manipulacin de archivos y directorios.
Ejecucin de programas.
Captulo 1 Sistemas Operativos

INTRODUCCIN Y CONCEPTOS 23

Herramientas para el desarrollo de las aplicaciones. El usuario debe disponer de


utilidades tales como ensambladores, enlazadores y depuradores, para construir sus
propias aplicaciones.
Comunicacin con otros sistemas. Existirn herramientas para acceder a recursos
localizados en otros sistemas accesibles a travs de una red de conexin. En esta
categora se consideran herramientas bsicas, tales como ftp,telnet y ssh.
Informacin de estado del sistema. El usuario dispondr de utilidades para obtener
informaciones tales como la fecha, la hora, el nmero de usuarios que estn
trabajando en el sistema o la cantidad de memoria disponible.
Configuracin de la propia interfaz y del entorno. Cada usuario tiene que poder
configurar el modo de operacin de la interfaz de acuerdo a sus preferencias.
Intercambio de datos entre aplicaciones. El usuario va a disponer de mecanismos que
la permitan especificar que, por ejemplo, una aplicacin utilice los datos que genera
otra.
Control de acceso. En sistemas multiusuario, la interfaz debe encargarse de controlar
el acceso de los usuarios al sistema para mantener la seguridad del mismo.
Normalmente, el mecanismo de control estar basado en que cada usuario autorizado
tenga una contrasea que deba introducir para acceder al sistema.
Otras utilidades y herramientas. Tales como calculadoras o agendas.
Sistema de ayuda interactivo.
1.11.2. Interfaces alfanumricas
La caracterstica principal de este tipo de interfaces es su modo de trabajo basado en
lneas de texto. El usuario para dar instrucciones al sistema, escribe en su terminal un
mandato terminado con un carcter de final de lnea. Cada mandato est normalmente
estructurado como un nombre de mandato (por ejemplo borrar) y unos argumentos (por
ejemplo el nombre del archivo que se quiere borrar). Observe que en algunos sistemas
se permite que se introduzcan varios mandatos en una lnea. El intrprete de mandatos,
que es como se denomina tpicamente al mdulo encargado de la interfaz, lee la lnea
escrita por el usuario y lleva a cabo las acciones especificadas por la misma. Una vez
realizadas, el intrprete escribe una indicacin (prompt) en el terminal para notificar al
usuario que est listo para recibir otro mandato. Este ciclo repetitivo define el modo de
operacin de este tipo de interfaces.
Captulo 1 Sistemas Operativos

INTRODUCCIN Y CONCEPTOS 24

1.11.2.1. Intrprete de mandatos internos


El intrprete de mandatos interno es un modulo del sistema operativo que se carga en el
arranque del sistema operativo y permanece residente en memoria todo el tiempo; a
menos que los procesos de usuario necesiten mas espacio de memoria y tengan que
descargarlo de RAM; pero tan pronto se haya liberado la memoria este intrprete debe
regresar a memoria y estar siempre disponible para cuando el usuario lo necesite.
1.11.2.2. Intrprete de mandatos externos
Los mandatos externos son programas que se encuentran en almacenamiento
secundario. Por tanto se realiza el mismo tratamiento de cualquier otra aplicacin. Esta
solucin es ms recomendable ya que proporciona un tratamiento y visin uniforme de
los mandatos del sistema y las restantes aplicaciones. El intrprete no se ve afectado por
la inclusin o la modificacin de un mandato.
En los sistemas reales puede existir una mezcla de las dos estrategias. El intrprete de
mandatos de MS-DOS (COMMAND. COM) se enmarca dentro de la primera categora,
esto es, intrprete con mandatos internos. El motivo de esta estrategia se debe a que este
sistema operativo se dise para poder usarse en computadoras sin disco duro y, en este
tipo de sistemas, el uso de un intrprete con mandatos externos exigira que el disquete
correspondiente estuviese insertado para ejecutar un determinado mandato. Sin
embargo, dadas las limitaciones de memoria de MS-DOS, para mantener el tamao del
intrprete dentro de un valor razonable, algunos mandatos de uso poco frecuente, como
por ejemplo DISKCOPY, estn implementados como externos.
Los intrpretes de mandatos de UNIX, denominados shells, se engloban en la categora
de intrpretes con mandatos externos. Sin embargo, algunos mandatos se tienen que
implementar como internos debido a que su efecto slo puede lograrse si es el propio
intrprete el que ejecuta el mandato. As, por ejemplo, el mandato cd, que cambia el
directorio actual de trabajo del usuario usando la llamada chdir, requiere cambiar a su
vez el directorio actual de trabajo del proceso que ejecuta el intrprete, lo cual slo
puede conseguirse si el mandato lo ejecuta directamente el intrprete.
1.11.3. Interfaces grficas
El auge de las interfaces grficas de usuario (GUI, Graphical User Interface) se debe
principalmente a la necesidad de proporcionar a los usuarios no especializados una
visin sencilla e intuitiva del sistema que oculte toda su complejidad. Esta necesidad ha
surgido por la enorme difusin de las computadoras en todos los mbitos de la vida
Captulo 1 Sistemas Operativos

INTRODUCCIN Y CONCEPTOS 25

cotidiana. Sin embargo, el desarrollo de este tipo de interfaces ms amigables ha


requerido un avance considerable en la potencia y capacidad grfica de las
computadoras dada la gran cantidad de recursos que consumen durante su operacin.

Figura 1.11.- Elementos de una interfaz grfica.

En la Figura 1.11 se muestra los elementos claves de la interfaz grfica de este tipo de
sistemas, el explorador de Windows.
A continuacin, se revisan las caractersticas comunes de este tipo de interfaces. En
primer lugar, todos ellos estn basados en ventanas que permiten al usuario trabajar
simultneamente en distintas actividades. As mismo, se utilizan iconos y mens para
representar los recursos del sistema y poder realizar operaciones sobre los mismos,
respectivamente. El usuario utiliza un ratn (o dispositivo equivalente) para
interaccionar con estos elementos. Dado el carcter intuitivo de estas interfaces, y el
amplio conocimiento que posee de ellas todo el mundo, no parece necesario entrar en
ms detalles sobre su forma de trabajo.
Captulo 1 Sistemas Operativos

INTRODUCCIN Y CONCEPTOS 26

Intercambio de datos entre aplicaciones. Generalmente se le proporciona al usuario un


mecanismo del tipo copiar y pegar (copy-and-past) para poder transferir informacin
entre dos aplicaciones.
Sistema de ayuda interactivo. Los sistemas de ayuda suelen ser muy sofisticados
basndose muchos de ellos en hipertexto.
1.11.4. Interfaz del Programador.
La interfaz del sistema operativo con el programador es la que recupera los servicios y
llamadas al sistema que los usuarios pueden utilizar directamente desde sus programas.
Esta es, quiz, una de las partes ms importantes de un sistema operativo, ya que
recupera la visin que como mquina extendida tiene el usuario del sistema operativo.

Captulo 1 Sistemas Operativos

También podría gustarte