0% encontró este documento útil (0 votos)
265 vistas26 páginas

Capitulo 1

El documento describe los conceptos básicos de los sistemas operativos. Explica que un sistema operativo controla los recursos de un computador y permite la ejecución ordenada de otros programas. También describe las funciones clave de un sistema operativo como asignar recursos, ejecutar procesos, manejar dispositivos y archivos. Por último, resume las etapas del arranque de un computador, incluyendo el arranque del hardware y la carga del sistema operativo desde el disco duro.

Cargado por

Descon
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
265 vistas26 páginas

Capitulo 1

El documento describe los conceptos básicos de los sistemas operativos. Explica que un sistema operativo controla los recursos de un computador y permite la ejecución ordenada de otros programas. También describe las funciones clave de un sistema operativo como asignar recursos, ejecutar procesos, manejar dispositivos y archivos. Por último, resume las etapas del arranque de un computador, incluyendo el arranque del hardware y la carga del sistema operativo desde el disco duro.

Cargado por

Descon
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

CAPÍTULO 1

INTRODUCCIÓN, CONCEPTOS Y TIPOS DE SISTEMAS


OPERATIVOS.

1.1. Introducción
El sistema operativo es un programa que inicia su ejecución al encender el computador,
establece un estado inicial de los componentes de dicho computador y tiene como
función 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 periféricos, administrando recursos compartidos por varias
tareas como la memoria y equipos periféricos, estableciendo las prioridades de las tareas
que ejecuta el computador. También debe mantener la integridad del proceso
recuperando el control cuando algún programa falla.
La computación del siglo 21 se mueve en dos direcciones: La conectividad de los
equipos mediante redes con Internet a la cabeza y la automatización 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 algún tiempo Windows ha sido parte del
panorama hoy en día amenazado por alternativas económicas y de código abierto como
Linux
Linux, que hasta ahora ha sido la adoración del profesional de computación rebelde
comienza a penetrar los mercados conservadores como una alternativa tipo UNIX pero
más económica.
En el mercado de los dispositivos y aparatos hay varios sistemas operativos como:
Windows CE, Java de Sun, Palm OS y EPOC de Psion1.
1
Sin olvidar a QNX como un sistema operativo de tiempo real que esta entrando fuertemente en el mercado.
INTRODUCCIÓN Y CONCEPTOS 2

Por lo expuesto los sistemas operativos se ejecutaran en:


• Computadores (Servidores, Clientes y Portátiles)
• Dispositivos (Agendas, Celulares, Equipos de Oficina y Domésticos)

1.2. Conceptos de Sistema Operativo.


Existen muchos conceptos de sistema operativo, se cita los más apegados a la realidad:
• Un sistema operativo es un programa que controla la ejecución de los programas de
aplicación y actúa 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 información.
• Un sistema operativo (SO) puede ser contemplado como una colección organizada de
extensiones software del hardware, consistente en rutinas de control que hacen
funcionar un computador y proporcionan un entorno para la ejecución de los pro-
gramas. Otros programas se apoyan en las facilidades proporcionadas por el sistema
operativo para obtener acceso a los recursos del sistema informático, tales como
archivos y dispositivos de entrada/salida (E/S). Los programas invocan generalmente
los servicios del sistema operativo por medio de llamadas. Además, los usuarios
pueden interactuar con el sistema operativo directamente por medio de órdenes del
sistema operativo. En cualquier caso, el sistema operativo actúa como interfaz entre
los usuarios y el hardware de un sistema informático. Figura 1.1.

Capítulo 1 Sistemas Operativos


INTRODUCCIÓN Y CONCEPTOS 3

Figura 1.1.- Interacción del SO con el hardware y usuario.

El módulo del sistema operativo que permite que los usuarios dialoguen de forma
interactiva con el sistema es el intérprete de mandatos o shell.
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 diálogo 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 gráficas.
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 utilización de un computador,
haciéndolo más 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.
Capítulo 1 Sistemas Operativos
INTRODUCCIÓN Y CONCEPTOS 4

k) Mejorar la productividad de recursos


l) Permitir la comunicación y sincronización de programas

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 pequeña de código, 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 botón RESET, se genera una
señal eléctrica que carga unos valores predefinidos en los registros. En especial, esta
señal carga en el contador de programa la dirección 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.

Capítulo 1 Sistemas Operativos


INTRODUCCIÓN Y CONCEPTOS 5

Unidad de Memoria Unidad de Memoria


Dirección Celdas Dirección Celdas
0 0
Zona
ROM
2.047

1.046.528 Zona
ROM
1.048.575 1.048.575

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

El iniciador ROM realiza tres funciones.


• Primero hace una comprobación del sistema, que sirve para detectar sus
características 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, además 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 básico 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
disposición 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 tamaño
prefijado.

2
LLamado Boot en Windows y Lilo o Grub en Linux.

Capítulo 1 Sistemas Operativos


INTRODUCCIÓN Y CONCEPTOS 6

Figura 1.3.- Disposición del SO en un disco duro.

Para una mayor seguridad, el programa cargador del sistema operativo se incluye en una
posición prefijada por el iniciador ROM, y puede tener una contraseña.
1.4.2. Arranque del sistema operativo
El programa cargador del sistema operativo tiene por misión traer a memoria principal
algunos de los componentes del sistema operativo. Una vez cargados estos
componentes, se pasa a la fase de iniciación, que incluye las siguientes operaciones:
• Comprobación 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.
Esta operación exige revisar todos los directorios, lo que supone un largo tiempo de
procesamiento
• Se establecen las estructuras de información 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.

Programa cargador
(identificador) Disco

Sistema Operativo
• 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 impresión 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 sesión, para lo cual ha de teclear el nombre de
su cuenta y su contraseña 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 continuación, el shell
se queda esperando órdenes de los usuarios, ya sean textuales o como acciones sobre un

Capítulo 1 Sistemas Operativos


INTRODUCCIÓN Y CONCEPTOS 7

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 más importantes que se realizan en el arranque de
la computadora [2] J.Carretero
Bajo el control del Test del hardware
iniciador ROM Carga en memoria del cargador del SO

Bajo el control del


Carga en memoria componentes del SO
cargador (boot) del SO

Test del sistema de ficheros


Inicialización bajo el Creación de estructuras de datos internas
control de la parte
residente del SO Completa la carga del SO residente
Creación de procesos login

Se entra en la fase normal de funcionamiento del SO


Figura 1.4.- El arranque de una computadora

1.5. Evolución e historia de los sistemas operativos.


1.5.1. Procesamiento serie
En una secuencia típica, se empieza cargando el programa editor para preparar el código
fuente del programa. El paso siguiente es cargar y ejecutar el traductor de lenguaje y
alimentarle con el código fuente del programa de usuario. Los traductores de lenguaje
de múltiples pasos pueden requerir que se reintroduzca el código 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 código objeto producido a partir del código fuente corregido
sintácticamente es cargado y ejecutado. Si se detectan errores en tiempo de ejecución, se
puede examinar y modificar el estado de la máquina 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 lógico en la evolución de los sistemas operativos fue automatizar la
secuencia de operaciones involucradas en la ejecución de un programa y los aspectos
mecánicos del desarrollo de programas. El propósito era incrementar la utilización de

Capítulo 1 Sistemas Operativos


INTRODUCCIÓN Y CONCEPTOS 8

los recursos del sistema y la productividad del programador mediante la reducción o


eliminación de los tiempos muertos de los componentes ocasionados por las
comparativamente lentas operaciones manuales.
Un concepto relacionado, llamado a veces «phasing», es el de preorganizar los trabajos
de forma que los análogos se sitúen en el mismo lote. Por ejemplo, agrupando en lotes
varios trabajos de compilación Fortran, el compilador Fortran sólo 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 utilización de los recursos mediante el
solapamiento de las operaciones de entrada y salida. Estos desarrollos coincidieron con
la introducción de:
• Los canales de acceso directo a memoria (DMA, Direct Memory Access),
• Los controladores de periféricos,
• Los procesadores de entrada/salida dedicados.
• Almacenamiento intermedio (búffer) de E/S.
• SPOOL (simultaneous perípheral operations)
• Archivos denominados BAT y Scripts
1.5.3. Multiprogramación
Incluso con las mejoras anteriores, el procesamiento por lotes dedica los recursos del
sistema informático a un único programa cada vez. En el curso de su ejecución, la
mayoría de los programas oscilan entre fases intensivas en procesamiento o cálculo 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 ejecución serie de los programas provoca que o bien el procesador o bien los
dispositivos de E/S se encuentren inactivos en algún momento incluso cuando el flujo

Capítulo 1 Sistemas Operativos


INTRODUCCIÓN Y CONCEPTOS 9

de trabajos a la entrada nunca está vacío. 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
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 ejecución de
los programas, o multiprogramando, que es como se le denomina generalmente a este
modo de operación. El número de programas activamente en competencia por los
recursos de un sistema informático multiprogramado se denomina grado de
multiprogramación. En principio, mayores grados de multiprogramación deberían
producir mayor utilización de recursos. La multiprogramación ha sido tradicionalmente
empleada para aumentar la utilización de los recursos de un sistema informático y para
soportar múltiples usuarios simultáneamente 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 existían sistemas operativos. El usuario debía codificar
su programa a mano y en instrucciones máquina, y debía introducirlo personalmente
en la computadora, mediante conmutadores o tarjetas perforadas. Las salidas se
imprimían o se perforaban en cinta de papel para su posterior impresión.
• Primera generación.- Años cincuenta, corresponde a los sistemas operativo serie y
de lotes.
• Segunda generación.-Con la aparición de la segunda generación de computadoras
principios de los sesenta la multiprogramación 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 simultáneamente en
memoria principal y compartir el tiempo de procesador (técnica llamada de
multiprogramación).
También en esta época aparecen otros modos de funcionamiento muy importantes:
• Equipos multiprocesadores.- en los que varios procesadores forman una sola
máquina de mayores prestaciones.

Capítulo 1 Sistemas Operativos


INTRODUCCIÓN Y CONCEPTOS 10

• 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
terminales. El sistema operativo se encarga de repartir el tiempo de la UCP
entre los distintos usuarios, asignando de forma rotativa pequeños intervalos de
tiempo de UCP denominadas rodajas (time slice). En sistemas bien
dimensionados, cada usuario tiene la impresión de que la computadora le
atiende exclusivamente a él, respondiendo rápidamente 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 generación (años setenta).- La tercera generación es la época de los
sistemas de propósito general y se caracteriza por los sistemas operativos multimodo
de operación, esto es, capaces de operar en lotes, en multiprogramación, en tiempo
real, en tiempo compartido y en modo multiprocesador. Esta década fue importante
por la aparición de dos sistemas que tuvieron una gran difusión como UNIX y MVS
de IBM.
• Cuarta generación (años ochenta hasta la actualidad).- La cuarta generación se
caracteriza por una evolución de los sistemas operativos de propósito general de la
tercera generación, tendiente a su especialización, a su simplificación y a dar más
importancia a la productividad del usuario que al rendimiento de la máquina.
Adquiere cada vez más importancia el tema de las redes de computadoras, tanto
redes de largo alcance como locales. En concreto, la disminución 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 información y periféricos.
Se difunde el concepto de máquina virtual e interfaz grafica.

3
Windows o Linux

Capítulo 1 Sistemas Operativos


INTRODUCCIÓN Y CONCEPTOS 11

Los sistemas operativos que domina el campo de las computadoras personales son
UNIX, LINUX, y Windows NT hasta Windows 2003.
Durante esta etapa se desarrollan también 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, común utilizado en una serie de
computadores conectados por una red. Figura. 1.6.

Usuarios

Programas

Sistema Operativo Distribuido

Hardware Hardware

Red de Interconexión

Figura 1.6.- Sistema operativo distribuido.

1.7. Tipos de Sistemas Operativos

Clasificación
Tipo de Sistema Operativo

Por el número de • Monoproceso.


• Multiproceso
Procesos

Por el número de • Monoprograma


• Multiprograma
Programas

Por el número de • Monousuario


• Multiusuario.
Usuarios

Capítulo 1 Sistemas Operativos


INTRODUCCIÓN Y CONCEPTOS 12

Por el número • Monoprocesador


• Multiprocesador.
Procesadores
• Serie
Por el algoritmo de
• Lotes
Planificación • Multitarea:
o Tiempo Compartido
o Tiempo Real
o Propósito General.
o Combinados

Por el número de • Uni acceso


• Multiacceso
Accesos

Por la estructura • Monolítico


• Por Capas
o Microkernel
o Cliente Servidor.

• De Red
Por las conexiones
• Distribuidos

Por el tipo de
• Monoplataforma
arquitectura del • Multiplataforma.
equipo

Por la forma de • Código Propietario.


• Código Libre
comercializar

Las diferencias más importantes en la forma de trabajo se dan en los siguientes sistemas
operativos:

Capítulo 1 Sistemas Operativos


INTRODUCCIÓN Y CONCEPTOS 13

• En Serie y Lotes
• Multiprogramación. Las variedades de tiempo compartido, de tiempo real,
combinados y distribuidos.
Cada tipo de sistema operativo tiene diferentes formas de realizar su trabajo en relación
a los siguientes aspectos:
• Planificación del procesador
• Gestión de la memoria.
• Gestión de la E/S.
• Gestión 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
gráfica.
• Programador.- Invocan servicios del sistema operativo mediante llamadas al sistema
en tiempo de ejecución. Éstas se encuentran generalmente incluidas en programas y
son activadas durante su ejecución.
• Diseñador.- 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 específicos 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 típicas de las
órdenes del sistema operativo aparecen a continuación: [1] Milan Milenkovic

TIPO DE ORDEN ORDENES TÍPICAS


Conexión y mantenimiento LOGIN, LOGOUT,

Capítulo 1 Sistemas Operativos


INTRODUCCIÓN Y CONCEPTOS 14

CAMBIAR_CLAVE
Activación y Control de CARGAR, EJECUTAR,
Programas ABORTAR

Gestión de Archivos CREAR, ELIMINAR,


RENOMBRAR, COPIAR

Informes de Estado LISTAR PROGRAMAS


ACTIVOS
Administración del Sistema LISTAR_USUARIOS
CONECTADOS.
CREAR_CUENTA,
LISTAR_ERRORES.

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 programación de aplicaciones (API Aplication-Programing
Interfaces). Las API mas conocidas con WIN32 para Windows y POSIX en Linux
1.9. Recorrido de la ejecución de una orden.
Para valorar el papel y cometido de los diferentes componentes del sistema, esta sección
sigue un recorrido típico de la ejecución 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
interrupción que es procesada por una rutina de dispositivos de teclado de bajo nivel.
• Cuando recibe la señal de la tecla ENTER, el BIOS sabe que la línea completa ya
esta ensamblada y la rutina de dispositivo de teclado transfiere la línea de entrada al
intérprete del lenguaje de órdenes (ILO).
• El ILO, llamado shell en Unix y COMMAND en Windows, analiza la línea y deduce
que requiere la ejecución de un programa EDITOR para el ejemplo. El resto de la

Capítulo 1 Sistemas Operativos


INTRODUCCIÓN Y CONCEPTOS 15

línea ARCHIVO.TXT se guarda para transferirla como parámetro al programa


solicitado como parámetro.
• El ILO verifica si el programa editor se encuentra en la memoria principal.
• Si no está procede a su carga y ejecución. 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
búsqueda.
o Si no encuentra envía el mensaje de error
o Si es localizado, lee tamaño del archivo y consecuentemente los requisitos de
memoria.
• El gestor de memoria asigna la región 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 física en las tablas del mapa de direcciones que se
utiliza para protección y para traducción a direcciones de memoria (físicas)
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 ejecución
o Los punteros a la tabla de traducción de direcciones,
o La lista de recursos asignados y otra información general.

Capítulo 1 Sistemas Operativos


INTRODUCCIÓN Y CONCEPTOS 16

• Una vez creado, el proceso editor es elegible para ejecución y es colocado en la lista
de procesos preparados, por definición, poseen todos los recursos requeridos excepto
el procesador.
• Un módulo del sistema operativo denominado planificador selecciona el siguiente
proceso de los preparados para la ejecución.
• Cuando el editor es eventualmente planificado para ejecutarse recibirá el control del
procesador así como el resto de la línea de orden invocada; es decir el parámetro
ARCHIVO. TXT. Para lo que tiene que empezar a realizar procesos similares a los
anteriores de búsqueda 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 importantísimo en poco tiempo, que es
transparente para el usuario.
En la Figura 1.8 se indica el funcionamiento de un sistema operativo a través 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 información de los diferentes tipos de memoria
como: Registros, Cache, RAM y Disco Duro. La Figura 1.7 indica la jerarquía de las
memorias según su velocidad y capacidad. La memoria que tiende hacia la punta es la
mas rápida y por ende costosa y la memora hacia la base es la de mayor capacidad.
1.10. Diseño e Implementación de sistemas operativos
En esta sección discutimos algunas de las cuestiones y metodologías utilizadas en el
diseño e implementación de sistemas operativos. Comenzamos esbozando los
principales problemas y métodos utilizados en la gestión de objetos del sistema
operativo tales como procesos, memorias y archivos. Luego presentamos una visión de
la estructura interna de los sistemas operativos.

Capítulo 1 Sistemas Operativos


INTRODUCCIÓN Y CONCEPTOS 17

Nivel 0 Reg.

Nivel 1 M. Cache Gestión HW

Nivel 2 Mem. Principal Gestión S.O.

Nivel 3 Discos Gestión S.O.

.Figura 1.7.- Jerarquía de los tipos de Memoria.

1.10.1. Requisitos funcionales


El sistema operativo proporciona varias funciones supervisoras y de control para
gestión de los procesos. Entre ellas se incluyen servicios de creación y supresión de
procesos, control del progreso de los procesos y actuación sobre condiciones
excepcionales que se presentan durante la ejecución de un proceso. El sistema operativo
asigna recursos hardware y software en respuesta a requisitos del proceso y a peticiones
explícitas. Además, el sistema operativo proporciona protección, control de acceso y la
seguridad necesaria para mantener la integridad del sistema en entornos de
multiprogramación. La cooperación entre los procesos viene facilitada por mecanismos
para comunicación e intercambio de información entre procesos, tales como señales y
mensajes.
La gestión de memoria principal consiste esencialmente en asignar memoria física de
capacidad finita a los procesos que lo soliciten.

Capítulo 1 Sistemas Operativos


INTRODUCCIÓN Y CONCEPTOS 18

Area del Sistema Operativo

Memoria
Usuario RAM

Registros
Procesos
1 A B C P

1 B
Cache
Programa 1
1 C

Gestión de Memoria Virtual


2 A

Programa 2 2 B

UCP
3 A Procesos
Programa 3 Preparados

Disco Duro
Gestión de Archivos
Planificador

Figura 1.8.- Funcionamiento del SO

El almacenamiento de información a largo plazo, incluidos programas y datos, es una


función importante en un sistema operativo. La información se almacena generalmente
en dispositivos de memoria secundaria en forma de colecciones de entidades
relacionadas llamadas archivos.
Los entornos multiusuario y multiprogramación imponen algunos requisitos adicionales
para la manipulación y almacenamiento de archivos. Análogamente a la información en
memoria principal, la información en archivos debe estar protegida contra accesos no
autorizados y a los usuarios cooperativos les debe ser permitida la compartición e
incluso el acceso concurrente a archivos comunes.
1.10.2. Componentes
El Nivel 1 con frecuencia denominado núcleo o kernel del sistema operativo, gestiona
básicamente los procesos. El núcleo 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 continuación cuando se desactiva el
proceso actualmente en ejecución. Al asignar la UCP a un nuevo proceso, el núcleo
efectúa una operación 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 enmascarándolas cuándo y cómo sea necesario y proporciona facilidades
para conectar rutinas de servicio a interrupciones hardware. Este nivel también puede
Capítulo 1 Sistemas Operativos
INTRODUCCIÓN Y CONCEPTOS 19

proporcionar mecanismos básicos para sincronización y posiblemente comunicación


entre procesos tales como semáforos o mensajes.
El Nivel 2 proporciona básicamente facilidades de bajo nivel para la gestión de
memoria secundaria necesaria para soportar la gestión 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 abstracción 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 compartición de memoria también se
soportan en el Nivel 3. La memoria virtual, que proporciona la ilusión de disponer de
una memoria mayor de la que es físicamente accesible, puede implementarse a este
nivel. Los módulos 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 traídos 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 llevándolos al almacenamiento
secundario.
El Nivel 4 proporciona facilidades para almacenamiento a largo plazo y manipulación
de archivos con nombre. En el Nivel 4 se implementan formas más sofisticadas de
asignación 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 números o direcciones
de los bloques de datos tal como requiere el Nivel 2. En el Nivel 4, la información es
generalmente direccionada de una manera relativa a archivos.
El Nivel 4 también gestiona los dispositivos y periféricos externos, tales como
impresoras y terminales. Las diferencias hardware entre diferentes tipos de dispositivos,
tales como si están orientados a carácter o estructurados en bloques, son encubiertas por
el software a este nivel para proporcionar una visión uniforme de archivos y
dispositivos para los niveles superiores y finalmente para los usuarios del sistema. Este
interfaz estándar también puede extenderse con una facilidad de comunicación entre
programas denominada cauce (pipe), que es esencialmente un canal de comunicación

Capítulo 1 Sistemas Operativos


INTRODUCCIÓN Y CONCEPTOS 20

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


leerlos en el otro utilizando básicamente el mismo grupo de llamadas, tales como
ABRIR y LEER, que están disponibles para manipulación de archivos y dispositivos.
El Nivel 5 es el intérprete del lenguaje de órdenes. Proporciona la interfase entre los
usuarios interactivos y el sistema operativo. Los módulos del Nivel 5 utilizan
facilidades proporcionadas por los niveles inferiores para aceptar líneas de órdenes
desde los terminales. Estas líneas de entrada son entonces analizadas sintácticamente
para separar las órdenes de los parámetros 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 función de esta estructura se pueden agrupar los sistemas operativos en dos
grandes grupos: sistemas operativos monolíticos y sistemas operativos estructurados.
1.10.3.1. Sistemas operativos monolíticos
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 núcleo.
Ejemplos claros de este tipo de sistemas son MS-DOS, UNIX y LINUX. Ambos
comenzaron siendo pequeños sistemas operativos, que fueron haciéndose cada vez más
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 añadir nuevas funcionalidades y servicios. En efecto, añadir
una nueva característica al sistema operativo implica la modificación de un gran
programa, compuesto por miles de líneas de código fuente y funciones, cada una de las
cuales puede invocar a otras cuando así lo requiera. Además, en este tipo de sistemas no
se sigue el principio de ocultación de la información. Para solucionar este problema es
necesario dotar de cierta estructura al sistema operativo.

Capítulo 1 Sistemas Operativos


INTRODUCCIÓN 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 jerarquía 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 ocultación
de la información. Una capa no necesita conocer cómo se ha implementado la capa
sobre la que se construye, únicamente necesita conocer la interfaz que ofrece. Esto
facilita enormemente la depuración y verificación del sistema, puesto que las capas se
pueden ir construyendo y depurando por separado.

Capa 5: Programas de usuario

Capa 4: Gestión de la E/S

Capa 3: Controlador de la consola

Capa 2: Gestión de memoria

Capa 1: Planificación de la CPU y multiprogramación

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 diseñado 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 sólo una
pequeña parte del sistema operativo ejecutando en modo núcleo. A esta parte se le
denomina micro-núcleo y a los procesos que ejecutan el resto de funciones se les

Capítulo 1 Sistemas Operativos


INTRODUCCIÓN Y CONCEPTOS 22

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


estructura cliente-servidor.
Procesos Procesos
cliente servidores

Servidor de Servidor Modo usuario


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

Micronúcleo Modo núcleo


Hardware

Figura 1.10.- Estructura Cliente – Servidor del SO

Minix, Mach y Amoeba son ejemplos de sistemas operativos que siguen este modelo.
Windows NT también sigue esta filosofía de diseño, aunque muchos de los servidores
(el gestor de procesos, gestor de E/S, gestor de memoria, etc.) se ejecutan en modo
núcleo 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 operación
utilizando los servicios del sistema operativo.
La interfaz de usuario de los sistemas operativos, al igual que la de cualquier otro tipo
de aplicación, ha sufrido una gran evolución. Se ha pasado de interfaces alfanuméricas,
que requerían un conocimiento bastante profundo del funcionamiento de la
computadora a interfaces gráficas, que ocultan al usuario la complejidad del sistema
proporcionándole una visión intuitiva del mismo.
1.11.1. Funciones de la interfaz de usuario
La principal misión de la interfaz, sea del tipo que sea, es permitir al usuario acceder y
manipular los objetos y recursos del sistema. En esta sección se presentarán de forma
genérica cuáles son las operaciones que típicamente ofrece el sistema operativo a sus
usuarios, con independencia de cómo lleven éstos a cabo el diálogo con el mismo:
• Manipulación de archivos y directorios.
• Ejecución de programas.

Capítulo 1 Sistemas Operativos


INTRODUCCIÓN 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.
• Comunicación con otros sistemas. Existirán herramientas para acceder a recursos
localizados en otros sistemas accesibles a través de una red de conexión. En esta
categoría se consideran herramientas básicas, tales como ftp,telnet y ssh.
• Información de estado del sistema. El usuario dispondrá de utilidades para obtener
informaciones tales como la fecha, la hora, el número de usuarios que están
trabajando en el sistema o la cantidad de memoria disponible.
• Configuración de la propia interfaz y del entorno. Cada usuario tiene que poder
configurar el modo de operación 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 aplicación 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 contraseña que deba introducir para acceder al sistema.
• Otras utilidades y herramientas. Tales como calculadoras o agendas.
• Sistema de ayuda interactivo.
1.11.2. Interfaces alfanuméricas
La característica principal de este tipo de interfaces es su modo de trabajo basado en
líneas de texto. El usuario para dar instrucciones al sistema, escribe en su terminal un
mandato terminado con un carácter de final de línea. 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 línea. El intérprete de mandatos,
que es como se denomina típicamente al módulo encargado de la interfaz, lee la línea
escrita por el usuario y lleva a cabo las acciones especificadas por la misma. Una vez
realizadas, el intérprete escribe una indicación (prompt) en el terminal para notificar al
usuario que está listo para recibir otro mandato. Este ciclo repetitivo define el modo de
operación de este tipo de interfaces.

Capítulo 1 Sistemas Operativos


INTRODUCCIÓN Y CONCEPTOS 24

1.11.2.1. Intérprete de mandatos internos


El intérprete 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 intérprete debe
regresar a memoria y estar siempre disponible para cuando el usuario lo necesite.
1.11.2.2. Intérprete de mandatos externos
Los mandatos externos son programas que se encuentran en almacenamiento
secundario. Por tanto se realiza el mismo tratamiento de cualquier otra aplicación. Esta
solución es más recomendable ya que proporciona un tratamiento y visión uniforme de
los mandatos del sistema y las restantes aplicaciones. El intérprete no se ve afectado por
la inclusión o la modificación de un mandato.
En los sistemas reales puede existir una mezcla de las dos estrategias. El intérprete de
mandatos de MS-DOS (COMMAND. COM) se enmarca dentro de la primera categoría,
esto es, intérprete 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 intérprete con mandatos externos exigiría que el disquete
correspondiente estuviese insertado para ejecutar un determinado mandato. Sin
embargo, dadas las limitaciones de memoria de MS-DOS, para mantener el tamaño del
intérprete dentro de un valor razonable, algunos mandatos de uso poco frecuente, como
por ejemplo DISKCOPY, están implementados como externos.
Los intérpretes de mandatos de UNIX, denominados shells, se engloban en la categoría
de intérpretes con mandatos externos. Sin embargo, algunos mandatos se tienen que
implementar como internos debido a que su efecto sólo puede lograrse si es el propio
intérprete 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 intérprete, lo cual sólo
puede conseguirse si el mandato lo ejecuta directamente el intérprete.
1.11.3. Interfaces gráficas
El auge de las interfaces gráficas de usuario (GUI, Graphical User Interface) se debe
principalmente a la necesidad de proporcionar a los usuarios no especializados una
visión sencilla e intuitiva del sistema que oculte toda su complejidad. Esta necesidad ha
surgido por la enorme difusión de las computadoras en todos los ámbitos de la vida

Capítulo 1 Sistemas Operativos


INTRODUCCIÓN Y CONCEPTOS 25

cotidiana. Sin embargo, el desarrollo de este tipo de interfaces más amigables ha


requerido un avance considerable en la potencia y capacidad gráfica de las
computadoras dada la gran cantidad de recursos que consumen durante su operación.

Figura 1.11.- Elementos de una interfaz gráfica.

En la Figura 1.11 se muestra los elementos claves de la interfaz gráfica de este tipo de
sistemas, el explorador de Windows.
A continuación, se revisan las características comunes de este tipo de interfaces. En
primer lugar, todos ellos están basados en ventanas que permiten al usuario trabajar
simultáneamente en distintas actividades. Así mismo, se utilizan iconos y menús para
representar los recursos del sistema y poder realizar operaciones sobre los mismos,
respectivamente. El usuario utiliza un ratón (o dispositivo equivalente) para
interaccionar con estos elementos. Dado el carácter intuitivo de estas interfaces, y el
amplio conocimiento que posee de ellas todo el mundo, no parece necesario entrar en
más detalles sobre su forma de trabajo.
Capítulo 1 Sistemas Operativos
INTRODUCCIÓN 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 información
entre dos aplicaciones.
Sistema de ayuda interactivo. Los sistemas de ayuda suelen ser muy sofisticados
basándose 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 más importantes de un sistema operativo, ya que
recupera la visión que como máquina extendida tiene el usuario del sistema operativo.

Capítulo 1 Sistemas Operativos

También podría gustarte