Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Tema 1. Concepto de
sistema operativo
Índice
Esquema
Ideas clave
1.7. Seguridad
A fondo
Bibliografía
Test
Esquema
Para estudiar este tema lee las Ideas clave que encontrarás a continuación.
punto de vista de que han sido diseñados para cumplir una serie de objetivos.
▸ Procesos.
▸ Gestión de memoria.
▸ Sistemas de ficheros.
▸ Seguridad.
▸ Shell.
Sin software un ordenador no es más que un amasijo de metal y plástico. Por medio
películas, enviar correos, navegar por Internet y realizar muchas otras tareas
mismo tiempo. Algunos de ellos son más visibles para el usuario porque él mismo ha
decidido instalarlos o cargarlos y los ejecuta cuando los necesita para realizar las
tareas para las que adquirió su equipo. Desde nuestro punto de vista las
programas que se ocupen de realizar las tareas que permiten que el sistema
▸ A esto hay que unir lo necesario para la conexión del equipo con otros equipos a
No hace falta enumerar todos los elementos posibles para caer en la cuenta de que
puedan manejar correctamente todos los elementos del sistema, cuando cada vez
son más complejos y cuando cambian tan rápidamente las tecnologías y además
difícil.
Si cada programador tuviera que estar preocupado por cómo funciona un gestor de
discos duros, con los innumerables errores que se pueden dar solamente cuando se
lee un bloque de datos, su trabajo sería la ingeniería más compleja de las que
existen.
Hace ya muchos años que quedó meridianamente claro que había que encontrar un
subyacente.
conocer los servicios que están a su disposición, los cuales pueden utilizar otros
servicios de bajo nivel aún. En resumen, el control de los recursos siempre lo tiene
datos y sus rutas son controladas por software, llamado microprograma. En otras
arquitectura del nivel del conjunto de instrucciones (ISA: Instruction Set Architecture).
necesarios en los registros de los dispositivos para que estos realicen las
Así, por ejemplo, para leer una variable de un fichero que está almacenado en un
disco duro, no se le indica la variable que tiene que leer, sino un número de bloque
lógico y una dirección de memoria física para que sea un microprograma el que se
datos por la red o a un ratón o una impresora tiene una gran complejidad. Cuando
el sistema operativo es el único software que tiene los privilegios suficientes para
ejecutar las instrucciones y acceder a los registros necesarios, está evitando una
aplicaciones de usuario.
muy bajo nivel o por ser antiguos). Este mecanismo de diseño impide a una
aplicación cambiar, por ejemplo, el código de las interrupciones del reloj del sistema.
los de tiempo real pueden prescindir de esta división porque se han creado para
albergar aplicaciones determinadas y no para que cualquier usuario pueda ejecutar
los programas que desee. Los sistemas basados en máquinas virtuales tampoco
tiene que permitir a los usuarios cambiar sus claves de alguna manera. Para eso
tiene que existir un programa que realice esta operación aunque sea una aplicación
como otros servicios extras disponibles para las aplicaciones. Al mismo tiempo el
tipo, organizándolos para que todas las aplicaciones puedan hacer uso de los
mismos de forma equitativa. Vamos a pasar a describir cada una de estas funciones.
Sin entrar dentro de los detalles reales, debería haber quedado claro que el
que el programador quiere es tenérselas que ver simplemente con un nivel alto de
abstracción.
En el caso de las unidades de disco una abstracción típica podría consistir en ver el
identificador. Este identificador puede ser un número único, pero eso es muy fácil
humano.
Por lo tanto, la abstracción debe permitir asignar a cada fichero una cadena de
Las interfaces gráficas de los sistemas modernos permiten crear la ilusión de que el
usuario ve realmente sus ficheros tal cómo se imagina que están. En las interfaces
de programación, los programadores saben que primero deben abrir el fichero que
la aplicación quiere usar y cerrarlo después de que se completen todas las órdenes
El kernel del sistema operativo, junto con otros programas auxiliares que van
puede hacer con ellos, para que las aplicaciones puedan consultarlos y modificarlos
por una imagen virtual más simple y fácil de usar que la realidad completa del uso
Por eso, decimos que una función fundamental del sistema operativo es la de ofrecer
extendida o una máquina virtual, que es más fácil de utilizar que el hardware
subyacente. Para explicar de forma resumida cómo esta función se consigue llevar a
cabo con éxito tenemos que centrarnos en el conjunto de servicios que el sistema
operativo ofrece a los programas y que estos pueden utilizar usando unos comandos
recorreremos algunas docenas de las más importantes para los sistemas operativos
más utilizados.
Otra visión alternativa, de abajo a arriba, sostiene que el sistema operativo tiene la
dispositivos externos.
dispositivos de E/S entre todos los programas que compiten por acaparar su uso.
impresora. Podría ocurrir que las primeras líneas de la página de salida fueran del
programa uno, las siguientes del programa dos, luego otras pocas del programa
(buffering) todas las salidas de los programas cuando las envían a la impresora en
un disco. Una vez que un programa haya acabado su operación, el sistema operativo
podría entonces copiar la salida que está en el archivo del disco donde está
puede seguir generando más salida sin tener por qué ser consciente del hecho de
externos y los demás recursos es todavía mayor, ya que los usuarios podrían
interferir unos con otros. Además los usuarios con frecuencia necesitan compartir no
En resumen, esta visión del sistema operativo afirma que su tarea principal es llevar
la cuenta de quién está usando cada recurso, para garantizar la atención de las
usuarios lo usan por turnos. Primero uno adquiere permiso para usarlo, después
otro y otro sucesivamente. Por ejemplo, con una sola CPU y múltiples programas que
trabajos de impresión son puestos en cola para ser impresos en la misma impresora,
clientes mantengan turnos de uso, cada uno de ellos obtiene derechos de uso de
una parte del recurso. Por ejemplo, la memoria principal es normalmente dividida
determinado, de forma que cada uno de ellos pueda estar residiendo en ella al
Asumiendo que se tiene suficiente memoria para contener varios programas, es más
eficiente mantenerlos en memoria al mismo tiempo, que ir dando a cada uno el uso
de toda la memoria, particularmente si cada uno no va a usar más que una pequeña
función típica de gestión de recursos por parte del sistema operativo es la asignación
del espacio del disco y la contabilidad de quién está usando cada bloque de datos.
La interfaz entre el sistema operativo y los programas de usuario está definida por el
conjunto de instrucciones extendidas que proporciona el sistema operativo.
sistemas.
las llamadas al sistema es diferente para sistema operativo pero los conceptos
subyacentes son similares. Por eso, merece la pena estudiar uno o dos conjuntos de
A esto hay que añadir el conjunto de registros del proceso, que incluye el contador
Para entender esto podemos pensar en los sistemas que permiten que varios
segundo.
más tarde en el mismo estado que tenía cuando fue detenido. Esto significa que
varios archivos abiertos a la vez para leer de los mismos. Asociado a cada archivo
la dirección o el número del byte o del registro que será el siguiente en una operación
esos punteros para que la llamada al sistema de lectura que se ejecute después de
una lista enlazada de registros, uno por cada uno de los procesos activos
procesos son las que tienen que ver con la creación y la terminación de los
procesos.
comandos o Shell, el cual lee los comandos desde un terminal. Imaginemos que un
usuario acaba de teclear un comando que solicita que un cierto programa sea
compilado. El Shell debe en este momento crear un nuevo proceso que ejecute el
Windows y otros sistemas operativos que tienen una interfaz gráfica (GUI)
proporcionan la posibilidad de que haciendo doble clic sobre un icono de escritorio se
después del indicador de comandos. En el fondo los GUI no son mucho más que
hijos) y dichos procesos a su vez pueden crear sus propios procesos hijos, tenemos
Estos procesos relacionados no es raro que hayan sido creados para realizar
temas siguientes.
que está en otra computadora lo hace por medio de enviar mensajes al proceso
enviará una señal de alarma al proceso. La señal hace que el proceso suspenda
temporalmente lo que sea que esté haciendo, que guarde los valores de sus
señal.
fallos detectados por el hardware, tales como intentar ejecutar una instrucción ilegal
o usar una dirección inválida, son también convertidos en señales que son enviadas
al proceso culpable.
Aun cuando cualquier computadora casera de hoy tiene miles de veces más
memoria que el computador más grande de hace cincuenta años, los programas y
los datos que manejan también han crecido enormemente. Parece que sigue
cumpliéndose la ley de Parkinson que afirma que los programas y sus datos crecen
usualmente para usar una jerarquía de memoria con una pequeña porción de
memoria muy rápida, pero cara y volátil, otra parte con cientos de megas de memoria
Debe existir una parte del sistema operativo que actúe de gestor de memoria
que contabilice en cada instante qué partes de la memoria están en uso y cuáles
están libres, que asigne partes de la memoria a los procesos y la libere cuando
cuando escasee el espacio para contener a todos los procesos. En la mayoría de los
sistemas operativos es una parte del kernel la que se ocupa de gestionar la memoria.
los datos que producen y procesan las aplicaciones en los discos y otros
para mantener datos consiste en los ficheros que, análogamente a carpetas que
integridad y seguridad porque contienen una buena parte del valor producido por los
sistemas de información.
Relacionadas con la gestión del sistema de ficheros existen una gran cantidad de
llamadas al sistema. Como se ha notado más arriba, una función muy importante
ficheros, lean ficheros y escriban ficheros. Antes de que un fichero pueda ser leído,
debe ser abierto, y después de haber sido leído, debe ser cerrado. Por lo tanto,
Para proporcionar una organización para la gran cantidad de archivos que los
usuario ordenado tendrá un directorio para guardar textos, otro para guardar
imágenes, otro para guardar correos, etc. El sistema operativo no se ocupa del
y para quitarlo del mismo. Un directorio no solo puede contener ficheros, también
puede contener otros directorios que su vez pueden contener ficheros y, tal vez,
directorios. Así emerge una estructura de árbol que recorre todo el sistema de
ficheros.
Así que, tanto los procesos como los ficheros, están organizados como jerarquías
en forma de árbol. Sin embargo, las jerarquías de procesos no suelen tener muchos
normal que tengan muchos más niveles de profundidad. Los árboles de procesos no
suelen tener vidas largas más allá de unos pocos minutos. Los árboles de directorios
procesos hijo, pero no es raro que se pueda dar acceso a un fichero a usuarios muy
En cada instante un proceso tiene un directorio de trabajo asociado, a partir del cual
se pueden referir también las rutas de los nombres de los ficheros que maneja.
de trabajo.
Las rutas de los ficheros de esos dispositivos removibles no se pueden usar porque
las rutas siempre comienzan en el directorio raíz que está en un disco del sistema.
En algunos sistemas como Windows se puede prefijar la ruta por un nombre que
En otros sistemas como UNIX existe una llamada que permite «montar» una unidad
le asocia una ruta de un directorio del sistema. Si un sistema contiene varios discos
especial no contiene bytes de datos. Son abstracciones que permiten manejar los
ellos usando las mismas llamadas al sistema con las que se leen y se escriben los
ficheros de disco.
Una última funcionalidad que vamos a ver en este apartado es una que relaciona los
El sistema operativo es el código ejecutable que lleva a cabo las funciones de las
operativo, por muy importantes y útiles que sean. Dicho esto, sin embargo, el
intérprete de comandos, llamado Shell, aunque no sea una parte del sistema
operativo, es el que hace un uso tan extensivo de una gran parte de las
Hoy en día muchos sistemas operativos ofrecen una interfaz gráfica al usuario, la
cual ofrece una experiencia más amigable para que el usuario utilice la funcionalidad
básica del sistema operativo. Sin embargo, esa interfaz gráfica no puede
subyace, por eso los usuarios que no quieren o no pueden verse limitados por las
posibilidades de las interfaces gráficas, tienen que volver al uso del terminal de texto,
Cuando un usuario entra en el sistema, se inicia la ejecución del Shell. El Shell tiene
ángulo, el cual indica al usuario que está esperando a que teclee un comando.
proceso hijo, el Shell vuelve a mostrar el carácter indicador y trata de leer la siguiente
línea de entrada.
El usuario puede especificar que la salida del comando sea redirigida a un fichero o
que la entrada del mismo sea tomada de otro fichero. La salida de un comando
puede ser dirigida a la entrada de un segundo comando, como si hubiera una tubería
que los conectara a ambos. También se puede indicar al Shell que no espere sin
hacer nada hasta que se termine un comando. Todo esto se expresa por medio de
características tan interesantes y una productividad tan alta que justifica que aún hoy
en día a pesar de la facilidad de las interfaces gráficas y táctiles, los usuarios que
quieran sacar partido a la potencia de sus sistemas, tienen que conseguir dominar
1.7. Seguridad
moderno. Con el uso hoy en día de los computadores para almacenar vastas
esencial hasta las empresas y los negocios que contabilizan los números de las
importancia.
seguridad se basa también es las listas de control de acceso que por cada objeto
del sistema mantiene una lista de los actores que pueden manipularlo. Algunos
sistemas operativos lo hacen al revés. Para cada actor mantienen una lista de los
objetos sobre los que el actor tiene permiso para actuar. Se denominan sistemas
En la terminología de la seguridad:
▸ Un actor es todo lo que pueda llevar a cabo una acción. Puede ser un usuario, un
▸ Un objeto es todo lo que pueda ser manipulado por un actor. Por ejemplo ficheros,
actores pueden ser también objetos, de otros actores. Como cuando un proceso
(actor) produce la terminación de otro proceso (que es entonces un objeto).
▸ Una acción o un derecho es algo que un actor puede hacer hacia un objeto.
propietario de un objeto es quien decide quién más tendrá acceso al mismo. Otra
forma alternativa sería tener un control mandatario no discrecional. Existe una serie
de reglas que obligan por seguridad estableciendo permisos que los usuarios no se
pueden saltar. Esto evita, por ejemplo, que los miembros de una empresa puedan
vender secretos a la competencia. También evita errores por parte de los usuarios.
página cero, donde se sitúan las rutinas de gestión de interrupciones para facilitar su
invocación, o las páginas donde está cargado el código del núcleo del sistema
bloqueando completamente el sistema. Desde el Z80 las CPU fueron diseñadas para
impedir que los procesos de usuario sobrescribieran por error las zonas de memoria
señaladas como del sistema.
memoria protegida y el acceso a las áreas de usuario. Cada área de usuario tiene su
propia interrupción software y tiene que realizar una llamada al sistema para acceder
Como se ha visto, los sistemas operativos que son más usuales han tenido éxito a la
los mecanismos que se han implementado porque son soluciones que han
demostrado ser eficientes y eficaces. Al mismo tiempo los sistemas operativos están
Podríamos intentar una lista de los objetivos que se buscan en el sistema operativo
ideal:
▸ Seguridad ortogonal.
▸ Elegancia.
▸ Simplicidad.
▸ Integridad.
▸ Resiliencia.
▸ Robustez.
▸ Modularidad.
▸ Uniformidad o consistencia.
▸ Extensibilidad.
▸ Distribución.
▸ Orientación a objetos.
▸ Auto documentación.
▸ Predictabilidad.
▸ Reversibilidad.
▸ Corrección probada.
por fallos del hardware. También se puede referir a la capacidad del sistema para
protegerse y proteger a sus usuarios de los daños causados por las aplicaciones de
Todos los sistemas operativos que aspiren a durar en el tiempo saben están
hardware o nuevas tecnologías de software. Por lo tanto, los diseñadores tienen que
denomina extensibilidad.
para ejecutar programas escritos para otros sistemas operativos o para versiones
más antiguas del mismo sistema.
No todos los objetivos deseables son compatibles entre sí, ni lógica ni prácticamente.
Sin embargo, merece la pena la tarea de crear nuevos diseños y mejorar los
probar que todo el código de un kernel es correcto, sería perfecto, pero el coste es
prohibitivo. La pregunta es siempre: ¿cuáles son los objetivos de diseño que son más
http://jeasoft.wordpress.com/2008/07/12/sistemas-operativos-libres/
Este vídeo te va a ayudará a entender mejor cómo el sistema operativo gestiona los
Accede al vídeo:
https://www.youtube.com/embed/Y7rEqzHf-1Y
Aunque este vídeo está en inglés, con él puedes completar los conceptos básicos de
Accede al vídeo:
https://www.youtube.com/embed/fBjtp9zWxyk
http://www.comprendamos.org/alephzero/63/sistemas.html
http://gnujavier.blogspot.com.es/2011/06/sistemas-operativos-embebidos.html
artículos.
Bibliografía
Silberschatz, A. & Galvin, P. B. (2008). Operating System Concepts. John Wiley &
Sons.
1. «El sistema operativo ofrece una máquina extendida». ¿Qué significa una
máquina extendida?
A. El lenguaje de programación.
B. El tipo de compilador.
D. La memoria.
E. El idioma de uso.
A. Va más rápido.
A. Verdadero.
B. Falso.
A. Falso.
B. Verdadero.
A. Gestión de memoria.
B. Compiladores.
E. Cambio de passwords.
A. Elegancia.
B. Simplicidad.
C. Integridad.
D. Resiliencia.
E. Globalización.
F. Robustez.
A. Tamaño.
B. Resistencia.
C. Valoración.
D. Modularidad.
E. Flexibilidad.
10. ¿Por qué es difícil conseguir demostrar que un sistema operativo es totalmente
correcto?