Sistemas Operativos

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 14

Universidad Autó noma del Beni José Balliviá n 2018

CONTENIDO MÍNIMO
Facultad: FIT “Facultad de Ingeniería y Tecnología”
Carrera: Ingeniería de Sistemas
Asignatura: Sistemas Operativos
Sigla : CIS-600
Semestre : Sexto.
Carga Horaria Hrs. Teóricas Hrs. Prácticas Total hrs. Semestre:
Semanales : 4 Semanales : 2 102
Prerequisitos: Arquitectura de Computadoras (CIS 500)

Periodo Académico: 2018


Docente: Ing. Marco Antonio Durán Carvalho

1. Historia de los Sistemas Operativos

La historia de los sistemas operativos se puede dividir en 5 grandes etapas o

generaciones.
1ª Generación (1945-55)
a) Características
● Sin sistema operativo.
● Sólo hardware, sin lenguajes de programación.
b) Ejemplos
● Mainframe IBM 701 y 704.
2ª Generación (1955-64)
a) Características
● Sistemas operativos de procesamiento por lotes.
● Sistema operativo básico. Se utilizan lenguajes de programación.
b) Ejemplos
● El primer sistema operativo fue desarrollado por General Motors Research
Laboratory en 1956 para su mainframe IBM 701 (véase la Figura 1.4) con
el fin de automatizar la carga de los trabajos.
1.4.3. 3ª Generación (1965-1968)
a) Características
● Sistemas operativos multiprogramados.
● Más lenguajes de programación y multiprogramación.
b) Ejemplos
● IBM OS/360. Desarrollado por IBM para su mainframe System/360.

Ingeniería de Sistemas Pá gina 1


Universidad Autó noma del Beni José Balliviá n 2018

4ª Generación
Esta generación abarca desde mediados de los años 60 hasta finales de la
década de los 70.
a) Características
● Sistemas operativos de tiempo compartido.
● Aparecen los programas interactivos y las máquinas virtuales.
b) Ejemplos
● MULTICS. Fue anunciado en 1964 como el primer sistema operativo
de propósito general fruto de la colaboración entre el MIT, General Electrics y Bell
Labs (véase la Figura 1.5).

5º Generación (años 1980, 1990 y 2000):


Esta generación abarca desde la década de los 80 hasta la actualidad.
a) Características
● Sistemas operativos de escritorio y ordenadores personales (PC).
● Monousuario, multitarea, sistemas distribuidos, sistemas paralelos,
sistemas de tiempo real, etc.
b) Ejemplos
● CP/M. Sistema operativo estándar para la primera generación de
microcomputadores.
● MS-DOS. Sistema operativo estándar para la segunda generación de
icrocomputadores.
● OS/2. Sistema operativo creado por Microsoft e IBM y posteriormente
desarrollado por IBM en exclusiva. Se creó como el sistema operativo predilecto
para la segunda generación de ordenadores personales de IBM, equipados con
procesador Intel 80286.
● Windows 3.x. La familia Windows 3.x de Microsoft Windows fue desarrollada
desde 1990 hasta 1994. La 3.0 fue la primera versión de éxito de Windows,
permitiendo a Microsoft competir con el Macintosh de Apple Computer y el
Commodore Amiga.
● Windows 95, 98, Me. Sistemas operativos híbridos gráficos de 16-bit/32-bit
sucesores de Windows 3.x.
● Windows NT. Sistema operativo de 32-bit antecesor del actual Windows 7.
● Windows 2000, XP, Vista, 7. Sistemas operativos sucesores de Windows NT.
● GNU/Linux. Se trata del más famoso ejemplo de software libre y de
desarrollo de fuente abierta.
● Mach. Es un núcleo de sistema operativo desarrollado en la Universidad
Carnegie-Mellon (CMU). El proyecto en CMU se desarrolló desde 1985 hasta
1994.

Ingeniería de Sistemas Pá gina 2


Universidad Autó noma del Beni José Balliviá n 2018

Ingeniería de Sistemas Pá gina 3


Universidad Autó noma del Beni José Balliviá n 2018

2. Funciones del sistema operativo

Es habitual cuando hablamos de un elemento tan complejo como un sistema


operativo que resulte más sencillo definirlo por lo que hace que por lo que es. Por
ello, comenzaremos viendo el papel del sistema operativo en el conjunto de un
sistema informático.

Un sistema informático cualquiera puede ser dividido en cuatro componentes.

El hardware, el sistema operativo, los programas de aplicación y los usuarios.

● El hardware –la CPU, la memoria, los dispositivos de entrada salida,


etc.– proporcionan los recursos computaciones del sistema.

● Los programas de aplicación –procesadores de textos, hojas de cálculo,


compiladores, navegadores de Internet–. Definen las diferentes formas en las que
los recursos de sistema son utilizados para resolver los problemas informáticos de
los usuarios.

● El sistema operativo controla y coordina el uso de hardware por parte de


las diversas aplicaciones para los diferentes usuarios del sistema. Un sistema
operativo no hace trabajo útil. Simplemente proporciona un entorno adecuado
para que otros programas puedan hacerlo.

Con el fin de entender cuáles son las funciones de un sistema operativo; se puede
explorar su papel desde dos puntos de vista: el del sistema informático y el del
usuario

Ingeniería de Sistemas Pá gina 4


Universidad Autó noma del Beni José Balliviá n 2018

2.1. Punto de vista del sistema informático

Desde el punto de vista del sistema informático, el sistema operativo es el


programa más íntimamente relacionado con el hardware. En este contexto, el
sistema operativo actúa como:
1. Gestor de los recursos de sistema informático.
2. Programa encargado del control de la ejecución de los programas de
usuario y del acceso a los dispositivos de E/S.
Un sistema informático tiene múltiples recursos tanto hardware como software –
tiempo de CPU, espacio de memoria, espacio de almacenamiento de archivos,
dispositivos de E/S, servicios de red, etc.–. El sistema operativo, como gestor de
estos recursos, los asigna a los diferentes programas, resolviendo los conflictos
en las peticiones y haciendo que el sistema opere eficientemente y resuelva los
problemas de los usuarios.
Además, como un programa encargado del control de la ejecución de los
programas de los usuarios, el sistema operativo tiene la tarea de prevenir errores y
el uso inadecuado del ordenador.

2.2. Punto de vista del usuario

Sin embargo, la función del sistema operativo desde el punto de vista del usuario
varía de acuerdo con la interfaz utilizada. Por ejemplo, los usuarios que se sientan
frente a un sistema de escritorio1.1. Funciones del sistema operativo
Sistemas Operativos - 2014/2015
(véase el apartado 1.3.2) disponen de monitor, teclado, ratón y una unidad central.
Estos sistemas se diseñan buscando la máxima productividad en equipos donde
un usuario monopoliza todos los recursos; por lo que el sistema operativo se
diseña considerando fundamentalmente la facilidad de uso, poniendo algo de
atención en el rendimiento y nada en el aprovechamiento de los recursos.
En otros casos un usuario se sienta frente a un terminal1 conectado a un
mainframe (véase el apartado 1.3.1), mientras muchos otros acceden al mismo
sistema a través de otros terminales. Por tanto, todos los usuarios comparten los
recursos del sistema informático y pueden intercambiar información. En esos
casos el sistema operativo debe maximizar el aprovechamiento de los recursos
con el objetivo de garantizar que toda la CPU, memoria y E/S sean empleadas de
forma eficiente, y que ningún usuario utiliza más que lo que le corresponde.
Otro ejemplo son los sistemas de mano (véase el apartado 1.3.5), por ejemplo
tablets y teléfonos móviles. A causa de las limitaciones de la interfaz, en el diseño
del sistema operativo debe primar la usabilidad2, aunque el rendimiento por
tiempo de vida de la batería también es importante.

3. COMPONENTES DEL SISTEMA

Un sistema operativo crea el entorno en el que se ejecutan los programas.


Podemos crear un sistema tan grande y complejo como un sistema operativo sólo

Ingeniería de Sistemas Pá gina 5


Universidad Autó noma del Beni José Balliviá n 2018

si lo dividimos en porciones más pequeñas. Cada una de estas partes deberá ser
un componente bien delineado del sistema, con entradas, salidas y funciones
cuidadosamente definidas. La interfaz entre el S. O. y los programas del usuario
se define como el conjunto de instrucciones ampliadas que proporciona el S. O. y
son las “llamadas al sistema”.

3.1. Gestión de procesos


Un programa no puede hacer nada si la CPU no ejecuta sus instrucciones.
Podemos pensar en un proceso como una porción de un programa en ejecución o
todo el programa.
Un proceso necesita ciertos recursos, incluidos tiempo de CPU, memoria, archivos
y dispositivos de E/S, para llevar a cabo su tarea. Estos recursos se otorgan al
proceso en el momento en que se crea, o bien se le asignan durante su ejecución.
Un proceso es la unidad de trabajo de un sistema.
El sistema consiste en una colección de procesos, algunos de los cuales son
procesos del sistema operativo (los que ejecutan código del sistema), siendo el
resto procesos de usuario (los que ejecutan código de algún usuario).

Creación de Procesos
Los sistemas operativos necesitan asegurar de alguna forma que puedan existir
todos los procesos requeridos, entonces es necesaria alguna manera de poder
crear y destruir los procesos según sea necesario durante la operación del
sistema. Los cuatro principales sucesos que provocan la creación de nuevos
procesos son:
• La inicialización del sistema
• La ejecución por parte de un proceso (en ejecución) de una llamada al sistema
de creación de un nuevo proceso.
• La petición por parte del usuario de la creación de un nuevo proceso.
• El inicio de un trabajo en batch (lotes).

Terminación de Procesos
Tras la creación de un proceso comienza su ejecución realizando el trabajo que se
le ha encomendado. Sin embargo pronto o tarde el nuevo proceso debe terminar,
usualmente debido a una de las siguientes causas:
• El proceso completa su trabajo y termina (voluntariamente).
• El proceso detecta un error y termina (voluntariamente).
• El sistema detecta un error fatal del proceso y fuerza su terminación.
• Otro proceso fuerza la terminación del proceso (por ejemplo en UNIX mediante la
llamada al sistema kill).

Estado de los procesos


Durante su existencia un proceso pasa por una serie de estados discretos, siendo
varias las circunstancias que pueden hacer que el mismo cambie de estado:

Ingeniería de Sistemas Pá gina 6


Universidad Autó noma del Beni José Balliviá n 2018

• Nuevo (new).
• Ejecutándose (running). El proceso está siendo ejecutado en la CPU.
Por lo tanto a lo más un proceso puede estar en este estado en un computado
uniprocesador.
• Listo para ejecutar (ready). El proceso está en condiciones de
ejecutarse, pero debe esperar su turno de CPU.
• Bloqueado o En espera (waiting) El proceso no está en condiciones de
ejecutarse. Está esperando que algún evento ocurra, como la finalización de una
operación de E/S. También se dice que está suspendido o en espera.
• Terminado (terminated).

ALGORITMOS DE PLANIFICACIÓN
En entornos diferentes se necesitan algoritmos de planificación diferentes. Esto se
debe a que cada área de aplicación (y cada tipo de sistema operativo) tiene
objetivos diferentes. En otras palabras, lo que el planificador debe optimizar no es
lo mismo en todos los sistemas. Es necesario distinguir aquí tres entornos:

• Batch (lotes)
• Interactivo
• Tiempo Real.

En los sistemas en batch, no existen usuarios que estén esperando


impacientemente por una rápida respuesta ante sus terminales. En consecuencia,
son aceptables los algoritmos no expulsores, o los algoritmos expulsores con
largos periodos de tiempo para cada proceso. Con este enfoque se reduce el
número de cambios de proceso, mejorando por tanto el rendimiento.
En un entorno con usuarios interactivos es indispensable que haya expulsiones
para impedir que un proceso acapare la CPU, negando cualquier servicio de la
CPU a los demás. Incluso aunque ningún proceso tenga intención de ejecutarse
eternamente, es posible que debido a un error en el programa un proceso
mantenga parados a todos los demás indefinidamente. La expulsión es necesaria
para impedir ese comportamiento.
En los sistemas con restricciones de tiempo real, por extraño que parezca, la
expulsión es algunas veces innecesaria debido a que los procesos saben que no
pueden ejecutarse durante largos periodos de tiempo y usualmente hacen su
trabajo y rápidamente se bloquean. La diferencia con los sistemas interactivos es
que los sistemas en tiempo real sólo ejecutan programas pensados como parte de
una misma aplicación. Los sistemas interactivos por el contrario son sistemas de
propósito general y pueden ejecutar programas arbitrarios no cooperantes o
incluso maliciosos.

3.2. Gestión de la memoria principal


La memoria principal es crucial para el funcionamiento de un sistema de
computación moderno. La memoria principal es una matriz grande de palabras o
bytes, cuyo tamaño va desde cientos de miles hasta cientos de millones. Cada

Ingeniería de Sistemas Pá gina 7


Universidad Autó noma del Beni José Balliviá n 2018

palabra o byte tiene su propia dirección. La memoria principal es un depósito de


datos a los que se puede acceder rápidamente y que son compartidos por la CPU
y los dispositivos de E/S. El procesador central lee instrucciones de la memoria
principal durante el ciclo de obtención de instrucciones, y lee y escribe datos de la
memoria principal durante el ciclo de obtención de datos.

Fragmentación
La mayor dificultad con las particiones fijas está en encontrar una buena relación
entre los tamaños de las particiones y la memoria requerida para los trabajos. La
fragmentación de almacenamiento ocurre en todos los sistemas
independientemente de su organización de memoria. Existen dos tipos de
desaprovechamiento de memoria:
a) La fragmentación interna, que consiste en aquella parte de la memoria que no
se está usando pero que es interna a una partición asignada a una tarea; por
ejemplo si una tarea necesita m bytes de memoria para ejecutarse y se le asigna
una partición de n bytes (con n>m), está desaprovechando n-m bytes.
b) La fragmentación externa, que ocurre cuando una partición disponible no se
emplea porque es muy pequeña para cualquiera de las tareas que esperan.

La selección de los tamaños de las particiones es una relación entre estos dos
casos de fragmentación. Por ejemplo, 7 Mb asignados a los usuarios se reparten
en 7 particiones de 1 Mb, y la cola de tareas contiene tareas con requerimientos
de 400 Kb, 1600 Kb, 300 Kb, 900 Kb, 200 Kb, 500 Kb y 800 Kb. Se ve que hay un
trabajo de 1600 Kb que no se podrá ejecutar nunca, los otros sin embargo si se
ejecutaran pero en conjunto desperdiciaran 3044 Kb, casi la mitad de memoria
disponible. Hay, pues en este caso 1024 Kb de fragmentación externa y 3044 Kb
de fragmentación interna. Si se divide la memoria en cuatro particiones de 512 Kb,
dos de 1 Mb y una de 3 Mb, todos los trabajos se ejecutarían sin fragmentación
externa y con una pérdida de memoria en fragmentación interna de 2648 Kb.

Memoria Virtual
La idea en que se basa la memoria virtual es que el tamaño combinado del
programa, los datos y la pila puede exceder la cantidad de memoria física
disponible para él. El sistema operativo mantiene en la memoria principal las
partes del programa que actualmente se están usando, y el resto en el disco. Por
ejemplo, un programa de 16M puede ejecutarse en una máquina de 4M si se
escogen con cuidado los 4M que se mantendrán en la memoria en cada instante,
intercambiando segmentos del programa entre el disco y la memoria según se
necesite [Tanembaum].
La memoria virtual también puede funcionar en un sistema de multiprogramación,
manteniendo segmentos de muchos programas en la memoria a la vez. Mientras
un programa está esperando que se traiga a la memoria una de sus partes, está
esperando E/S y no puede ejecutarse, así que puede otorgarse la CPU a otro
proceso, lo mismo que en cualquier otro sistema de multiprogramación.

Ingeniería de Sistemas Pá gina 8


Universidad Autó noma del Beni José Balliviá n 2018

3.3. Gestión de archivos


Un archivo es una colección de información relacionada definida por su creador.
Por lo regular, los archivos representan programas (en forma tanto fuente como
objeto) y datos.
Los archivos de datos pueden ser numéricos, alfabéticos o alfanuméricos. Los
archivos pueden ser de forma libre, como los de texto, o tener un formato rígido. El
sistema operativo posee un sistema de archivos que se encarga de estructurar,
organizar, gestionar estos archivos.

Operaciones con archivos


Los archivos existen para almacenar información que posteriormente se pueda
recuperar. Los diferentes sistemas ofrecen distintas operaciones de
almacenamiento y recuperación. Podemos pensar en un archivo como en un tipo
abstracto de datos, al que se pueden aplicar operaciones como: Abrir, Cerrar,
Crear, Destruir, Copiar, Renombrar, Listar. A los ítems que forman el archivo
(bytes, registros, etc.) se pueden aplicar operaciones como: Leer, Modificar,
Agregar (al final), Insertar, Borrar. Estas operaciones están implementadas a
través de llamadas al sistema (systems calls). Las llamadas al sistema más
comunes relacionadas con archivos son:
CRÉATE. El archivo se crea sin datos. El propósito de la llamada es anunciar que
va a haber un archivo y establecer algunos de los atributos.
DELETE. Cuando el archivo ya no se necesita, es preciso eliminarlo para
desocupar el espacio en disco. Siempre hay una llamada al sistema para este fin.
OPEN. Antes de usar un archivo, un proceso debe abrirlo. El propósito de la
llamada OPEN es permitir al sistema que obtenga los atributos y la lista de
direcciones de disco y los coloque en la memoria principal a fin de agilizar el
acceso en llamadas posteriores.
CLOSE. Una vez concluidos todos los accesos, los atributos y las direcciones de
disco ya no son necesarios, por lo que se debe cerrar el archivo para liberar el
espacio correspondiente en las tablas internas.
READ. Se leen datos del archivo. Por lo regular, los bytes provienen de la posición
actual. El invocador debe especificar cuántos datos se necesitan y también debe
suministrar un buffer para colocarlos.
WRITE. Se escriben datos en el archivo, también, por lo regular, en la posición
actual. Si dicha posición es el final del archivo, el tamaño del archivo aumenta. Si
la posición actual está a la mitad del archivo, se sobreescribe en los datos
existentes, que se pierden irremediablemente.
APPEND. Esta llamada es una forma restringida de WRITE que sólo puede
agregar datos al final del archivo. Los sistemas que ofrecen un juego mínimo de
llamadas al sistema generalmente no cuentan con APPEND, pero muchos
sistemas ofrecen varias formas de hacer una misma cosa, y a veces incluyen
APPEND.
SEEK. En el caso de archivos de acceso aleatorio, se requiere un método para
especificar el lugar del que deben tomarse los datos. Un enfoque común es tener
una llamada al sistema, SEEK, que ajuste el apuntador a la posición actual

Ingeniería de Sistemas Pá gina 9


Universidad Autó noma del Beni José Balliviá n 2018

haciéndolo que apunte a un lugar específico del archivo. Una vez efectuada esta
llamada, se pueden leer datos de esa posición o escribirlos en ella.
GET ATTRIBUTES. Es frecuente que los procesos necesiten leer los atributos de
un archivo para realizar su trabajo.
SET ATTRIBUTES. Algunos de los atributos pueden ser establecidos por el
usuario y modificarse después de que se creó el archivo.
RENAME. Es común que un usuario necesite cambiar el nombre de un archivo
existente.

Nombre de Ruta de Acceso Absoluta:


Cada archivo tiene una ruta de acceso absoluta. Consta de la ruta de acceso
desde el directorio raíz hasta el archivo. Los componentes de la ruta de acceso se
separan mediante algún caracter llamado separador. Por ejemplo, la ruta
/datos/joa/mailbox indica que el directorio raíz contiene un subdirectorio “datos”,
que a su vez contiene un subdirectorio “joa”, el cual contiene el archivo “mailbox”.
En UNIX los componentes de la ruta se separan con “/”. En MS-DOS y Windows el
separador es “\”. Sea cual sea el carácter empleado, si el primer carácter del
nombre de rutas es el separador, la ruta es absoluta.

Nombre de Ruta de Acceso Relativa:


Se utiliza junto con el concepto de directorio de trabajo o directorio activo
(directorio actual). Todos los nombres que no comiencen en el directorio raíz se
toman en relación con el directorio de trabajo. El nombre absoluto de la ruta de
acceso siempre funciona, sin importar cuál sea el directorio de trabajo. Un usuario
puede definir un directorio como directorio de trabajo actual, en cuyo caso todos
los nombres de archivo que comiencen en el directorio raíz se tomarán en relación
con el directorio con el trabajo. Por ejemplo si el directorio de trabajo actual es
/datos/joa, entonces se podrá hacer referencia al archivo cuya ruta absoluta es
/datos/joa/mailbox simplemente como mailbox. En otras palabras, el comando de
UNIX

cp /datos/joa/mailbox /datos/joa/mailbox.bak
Y el comando
cp mailbox mailbox.bak

Harán exactamente lo mismo si el directorio de trabajo es /datos/joa. La forma


relativa suele ser más cómoda, pero hace lo mismo que la forma absoluta.
Algunos programas necesitan acceder a un archivo específico sin considerar el
directorio de trabajo. En tal caso, siempre deben usar nombres de ruta absolutos.
Por ejemplo, un revisor ortográfico podría necesitar leer /usr/lib/dictionary para
efectuar su trabajo. En este caso, el programa deberá usar el nombre de ruta
absoluto completo porque no sabe cuál será el directorio de trabajo cuando sea
invocado. El nombre de ruta absoluta siempre funciona, sea cual sea el directorio
de trabajo.

Ingeniería de Sistemas Pá gina 10


Universidad Autó noma del Beni José Balliviá n 2018

La mayor parte de los sistemas operativos que manejan un sistema de directorios


jerárquico tiene dos entradas especiales en cada directorio, "." y "..", generalmente
pronunciados "punto" y "punto punto".
Punto se refiere al directorio actual; punto punto se refiere a su padre.

3.4. Gestión del sistema de E/S


Uno de los objetivos de un sistema operativo es ocultar las peculiaridades de
dispositivos de hardware específicos de modo que el usuario no las perciba.

Las aplicaciones utilizan los dispositivos (devices) para realizar la E/S (entrada-
salida). Estos dispositivos son variados y trabajan de manera diferente:
secuencialmente, random; transfieren datos asincrónicamente o sincrónicamente;
pueden ser de sólo lectura ( read only) o lectura-escritura ( read-write), etc. El
sistema operativo debe permitir que las aplicaciones puedan utilizar esos
dispositivos, proveyendo una interfaz que los presente de la manera más simple
posible. Los dispositivos son una de las partes más lentas de un sistema de
cómputo. Por lo tanto, el SO, debe manejar la situación como para salvar esa
diferencia de velocidad.
Una de las funciones principales de un S. O. es el control de todos los dispositivos
de E /S de la computadora [Tanenbaum].
Las principales funciones relacionadas son:
• Enviar comandos a los dispositivos.
• Detectar las interrupciones.
• Controlar los errores.
• Proporcionar una interfaz entre los dispositivos y el resto del sistema.

Principios del Hardware de E / S


El enfoque que se considerará tiene que ver con la interfaz que desde el hardware
se presenta al software:
[Tanenbaum]
• Comandos que acepta el hardware.
• Funciones que realiza.
• Errores que puede informar.

Dispositivos de E/S
Los dispositivos de E/S se pueden clasificar en dispositivos de almacenamiento,
dispositivos de comunicación y dispositivos de interfaz con humanos.
Ortogonalmente, se pueden clasificar como dispositivos de bloques o de
caracteres.
Dispositivos por bloques. Almacena información en bloques de tamaño fijo,
cada uno con su propia dirección.
Los tamaños de bloque comunes van desde 512 bytes hasta 32768 bytes. La
propiedad esencial de un dispositivo por bloques es que es posible leer o escribir
cada bloque con independencia de los demás. Los discos son los dispositivos por
bloques más comunes.

Ingeniería de Sistemas Pá gina 11


Universidad Autó noma del Beni José Balliviá n 2018

Dispositivos por caracteres. Suministra o acepta una corriente de caracteres, sin


contemplar ninguna estructura de bloques; no es direccionables y no tiene una
operación de búsqueda. Las impresoras, interfaces de red, ratones y casi todos
los demás dispositivos que no se parecen a los discos pueden considerarse como
dispositivos por caracteres.

3.5. Gestión de almacenamiento secundario


El propósito principal de un sistema de computación es ejecutar programas. Estos
programas, junto con los datos a los que acceden, deben estar alojados en la
memoria principal (almacenamiento primario) durante la ejecución. Dado que la
memoria principal es demasiado pequeña para dar cabida a todos los datos y
programas, y que pierde su información cuando deja de recibir corriente eléctrica,
el sistema de computación debe contar con algún almacenamiento secundario
para respaldar la memoria principal. La mayor parte de los sistemas de
computación modernos utiliza discos como principal medio de almacenamiento. El
sistema operativo se encarga de las siguientes actividades relacionadas con la
gestión de discos: Administración del espacio libre, Asignación del
almacenamiento y Planificación del disco.

3.6. Sistema de protección


En los primeros computadores, el operador tenía el control completo del sistema.
Con el tiempo, se fueron desarrollando los sistemas operativos, y parte del control
se traspasó a ellos. Además, para mejorar la utilización del sistema, se comenzó
primero a manejar varios programas en memoria en forma simultánea, y luego a
atender simultáneamente a varios usuarios. Pero el remedio trajo su propia
enfermedad, ya que un programa podía por error o por mala intención de su
creador, modificar datos de otros programas, o peor aún, modificar el propio
sistema operativo, lo que podía “colgar” todo el sistema.

En general, un programa puede alterar el normal funcionamiento del sistema de


las siguientes formas:
• Ejecutando una instrucción de E/S ilegal (por ejemplo, que borre todos los
archivos del disco).
• Sobrescribiendo áreas de la memoria que pertenecen al sistema operativo.
• No devolviendo el control de la CPU al sistema operativo.

Para evitar esto, es indispensable el apoyo del hardware, a través de los


siguientes mecanismos:

3.6.1. Operación dual


Para asegurar una operación adecuada, se debe proteger al sistema operativo y
todos los programas del malfuncionamiento de cualquier otro programa. Para eso,
el hardware debe proveer al menos dos modos de operación.
• Modo usuario.
• Modo sistema (o privilegiado, protegido o supervisor).

Ingeniería de Sistemas Pá gina 12


Universidad Autó noma del Beni José Balliviá n 2018

El bit de modo indica el modo de operación actual. Cuando se enciende el


computador y se carga el sistema operativo, se comienza en modo sistema. El
sistema operativo siempre cambia a modo usuario antes de pasar el control a un
proceso de usuario. Cuando ocurre una interrupción, el hardware siempre cambia
a modo sistema. De esta manera, el sistema operativo siempre ejecuta en modo
sistema. Hay ciertas operaciones críticas que sólo pueden ser ejecutadas en modo
sistema.

3.6.2. Protección de E/S


Para prevenir que un usuario ejecute instrucciones de E/S que puedan provocar
daño, la solución es simple: las instrucciones de E/S sólo pueden ejecutarse en
modo sistema. Así los usuarios no pueden ejecutar E/S directamente, sino que
deben hacerlo a través del sistema.
Para que este mecanismo de protección sea completo, hay que asegurarse que
los programas de usuario no puedan obtener acceso a la CPU en modo sistema.
Por ejemplo, un programa de usuario podría poner una dirección que apunte a una
rutina propia en el vector de interrupciones.
Así, cuando se produzca la interrupción, el hardware cambiaría a modo sistema, y
pasaría el control a la rutina del usuario. O, también, el programa de usuario
podría reescribir el servidor de la interrupción.

3.6.3. Protección de memoria


No sólo hay que proteger el vector de interrupciones y las rutinas servidoras, sino
que, en general, queremos proteger las áreas de memoria utilizadas por el sistema
operativo y por otros programas.
Una forma es usando dos registros: base y límite, que establecen el rango de
direcciones de memoria que el programa puede accesar legalmente.
Para que esto funcione, hay que comparar cada dirección accesada por un
programa en modo usuario con estos dos registros. Si la dirección está fuera del
rango, se genera una interrupción que es atendida por el sistema operativo, quien
aborta el programa (usualmente con un mensaje "segmentation fault"). Esta
comparación puede parecer cara, pero teniendo presente que se hace en
hardware, no lo es tanto. Obviamente, el programa usuario no debe poder
modificar estos registros: las instrucciones que los modifican son instrucciones
protegidas.

3.6.4. Protección de CPU


Lo único que falta, es asegurarse que el sistema operativo mantenga el control del
buque, o sea, hay que prevenir, por ejemplo, que un programa entre en un ciclo
infinito y nunca devuelva el control al sistema operativo. Esto se logra con un timer
(reloj).

3.6.5. Sistema de interpretación de órdenes

Ingeniería de Sistemas Pá gina 13


Universidad Autó noma del Beni José Balliviá n 2018

Uno de los programas del sistema más importantes de un sistema operativo es el


intérprete de órdenes o de comandos, que es la interfaz entre el usuario y el
sistema operativo.
Algunos sistemas operativos incluyen el intérprete de órdenes en el núcleo; otros,
como MS-DOS y Unix, tratan el intérprete de órdenes como un programa especial
que se está ejecutando cuando se inicia un trabajo, o cuando un usuario ingresa
en un sistema de tiempo compartido. La función del intérprete de línea de
comandos o shell es muy sencilla: obtener la siguiente orden y ejecutarla.

3.6.6. Llamadas al sistema


Son la interfaz entre el sistema operativo y un programa en ejecución. Pueden ser
instrucciones en lenguaje ensamblador (MSDOS) o pueden hacerse desde
lenguajes de alto nivel como C (Unix, Linux, Windows). El control pasa al vector de
interrupciones para que una rutina la atienda. El bit de modo se pone en modo
monitor. El monitor analiza la instrucción que provocó la interrupción.
Así se ejecuta la solicitud y vuelve el control a la instrucción siguiente a la llamada
al sistema. Los parámetros asociados a las llamadas pueden pasarse de varias
maneras: por registros, bloques o tablas en memoria o pilas. Hay varias categorías
de llamadas al sistema:
• Control de procesos: finalizar, abortar, cargar, ejecutar, crear, terminar,
establecer y obtener atributos del proceso, esperar un tiempo, señalar y esperar
evento, asignar y liberar memoria.
• Manipulación de archivos: crear, eliminar, abrir, cerrar, leer, escribir,
reposicionar, obtener y establecer atributos de archivo.
• Manipulación de dispositivos: solicitar, liberar, leer, escribir, reposicionar,
obtener y establecer atributos de dispositivo.
• Mantenimiento de información: obtener fecha y hora, datos del sistema,
atributos.
• Comunicaciones: crear, eliminar conexión de comunicación, enviar y
recibir mensajes, transferir información de estado, etc.

Ingeniería de Sistemas Pá gina 14

También podría gustarte