Está en la página 1de 8

Instituto Tecnológico de Santo Domingo 

 
INTEC 

Trabajo Final - Diseño de un Sistema Operativo 

 
 

Sistemas Operativos 

 
Jack Damiolix Pacheco Luciano  1065816 
   
 

Facilitador 
Edwin Emil Pérez Arias 

Fecha de Entrega 
Domingo 17 de enero del 2021 

Ingeniería de Software (IDS) 

   
Diseño de un Sistema Operativo 
 
Podríamos definir como diseño de sistemas al proceso de definición de la arquitectura, módulos, 
interfaces y datos de un sistema. Lo mismo aplica para el diseño de un sistema operativo, el mismo 
posee un proceso de aplicación de los diversos puntos que influyen en la arquitectura y composición 
del mismo. 

El sistema operativo debe constar de las características primordiales como lo son: 

● Conveniencia: U ​ n Sistema Operativo hace más conveniente el uso de una computadora. 


● Eficiencia: ​Un Sistema Operativo permite que los recursos de la computadora se usen de la 
manera más eficiente posible. 
● Habilidad para evolucionar: U​ n Sistema Operativo deberá construirse de manera que 
permita el desarrollo, prueba o introducción efectiva de nuevas funciones del sistema sin 
interferir con el servicio. 
● Administrar Hardware: E ​ l Sistema Operativo se encarga de manejar de una mejor manera 
los recursos de la computadora en cuanto a hardware se refiere, esto es, asignar a cada 
proceso una parte del procesador para poder compartir los recursos. 
● Relación de Dispositivos: ​El Sistema Operativo se debe encargar de comunicar a los 
dispositivos periféricos, cuando el usuario así lo requiera. 
● Organización de Datos. 
● Manejo de las redes: ​El Sistema Operativo permite al usuario manejar con alta facilidad todo 
lo referente a la instalación y uso de las redes de computadoras. 
● Procesamiento de Flujo. 
● Facilitar Entradas y Salidas: ​Un Sistema Operativo debe hacerle fácil al usuario el acceso y 
manejo de los dispositivos de Entrada/Salida de la computadora. 
● Técnicas de recuperación de errores. 
● Evitar interferencia de otros usuarios: E
​ l Sistema Operativo evita que los usuarios se 
bloqueen entre ellos, informándoles si esa aplicación está siendo ocupada por otro usuario. 
● Generación de estadísticas. 
● Permite compartir hardware y datos entre usuarios. 

Clasificación de los SO 

Con el paso del tiempo, los Sistemas Operativos fueron clasificándose de diferentes maneras, 
dependiendo del uso o de la aplicación que se les daba. A continuación se mostrarán diversos tipos 
de Sistemas Operativos que existen en la actualidad, con algunas de sus características: 

Sistemas Operativos por lotes. 

Los Sistemas Operativos por lotes, procesan una gran cantidad de trabajos con poca o ninguna 
interacción entre los usuarios y los programas en ejecución. Se reúnen todos los trabajos comunes 
para realizarlos al mismo tiempo, evitando la espera de dos o más trabajos como sucede en el 
procesamiento en serie. Estos sistemas son de los más tradicionales y antiguos, y fueron 
introducidos alrededor de 1956 para aumentar la capacidad de procesamiento de los programas. 
Cuando estos sistemas son bien planeados, pueden tener un tiempo de ejecución muy alto, porque 
el procesador es mejor utilizado y los Sistemas Operativos pueden ser simples, debido a la 
secuenciabilidad de la ejecución de los trabajos. Algunos ejemplos de Sistemas Operativos por lotes 
exitosos son el SCOPE, del DC6600, el cual está orientado a procesamiento científico pesado, y el 
EXEC II para el UNIVAC 1107, orientado a procesamiento académico. 

Sistemas Operativos de tiempo real. 

Los Sistemas Operativos de tiempo real son aquellos en los cuales no tiene importancia el usuario, 
sino los procesos. Por lo general, están subutilizados sus recursos con la finalidad de prestar 
atención a los procesos en el momento que lo requieran. se utilizan en entornos donde son 
procesados un gran número de sucesos o eventos. Muchos Sistemas Operativos de tiempo real son 
construidos para aplicaciones muy específicas como control de tráfico aéreo, bolsas de valores, 
control de refinerías, control de laminadores. También en el ramo automovilístico y de la electrónica 
de consumo, las aplicaciones de tiempo real están creciendo muy rápidamente. 

Sistemas Operativos de multiprogramación (o Sistemas Operativos de multitarea). 

Se distinguen por sus habilidades para poder soportar la ejecución de dos o más trabajos activos 
(que se están ejecutado) al mismo tiempo. Esto trae como resultado que la Unidad Central de 
Procesamiento (UCP) siempre tenga alguna tarea que ejecutar, aprovechando al máximo su 
utilización. Su objetivo es tener varias tareas en la memoria principal, de manera que cada uno está 
usando el procesador, o un procesador distinto, es decir, involucra máquinas con más de una UCP. 

Sistemas Operativos como UNIX, Windows 95, Windows 98, Windows NT, MAC-OS, OS/2, 
soportan la multitarea. 

Sistemas Operativos de tiempo compartido. 

Permiten la simulación de que el sistema y sus recursos son todos para cada usuarios. El usuario 
hace una petición a la computadora, esta la procesa tan pronto como le es posible, y la respuesta 
aparecerá en la terminal del usuario. 

Los principales recursos del sistema, el procesador, la memoria, dispositivos de E/S, son 
continuamente utilizados entre los diversos usuarios, dando a cada usuario la ilusión de que tiene el 
sistema dedicado para sí mismo. Esto trae como consecuencia una gran carga de trabajo al Sistema 
Operativo, principalmente en la administración de memoria principal y secundaria. 

Sistemas Operativos distribuidos. 

Permiten distribuir trabajos, tareas o procesos, entre un conjunto de procesadores. Puede ser que 
este conjunto de procesadores esté en un equipo o en diferentes, en este caso es transparente para 
el usuario. Existen dos esquemas básicos de éstos. Un sistema fuertemente acoplado es aquel que 
comparte la memoria y un reloj global, cuyos tiempos de acceso son similares para todos los 
procesadores. En un sistema débilmente acoplado los procesadores no comparten ni memoria ni 
reloj, ya que cada uno cuenta con su memoria local. 

 
Los sistemas distribuidos deben de ser muy confiables, ya que si un componente del sistema se 
compone de otro componente debe de ser capaz de reemplazarlo. Entre los diferentes Sistemas 
Operativos distribuidos que existen tenemos los siguientes: Sprite, Solaris-MC, Mach, Chorus, 
Spring, Amoeba, Taos, etc. 

Sistemas Operativos de red. 

Son aquellos sistemas que mantienen a dos o más computadoras unidas a través de algún medio de 
comunicación, con el objetivo primordial de poder compartir los diferentes recursos y la información 
del sistema. 

El primer Sistema Operativo de red estaba enfocado a equipos con un procesador Motorola 68000, 
pasando posteriormente a procesadores Intel como Novell Netware. Los Sistemas Operativos de red 
más ampliamente usados son: Novell Netware, Personal Netware, LAN Manager, Windows NT 
Server, UNIX, LANtastic. 

Sin embargo dentro de estas características y clasificaciones hay puntos fuertes a tomar en 
consideración, como la estructura mínima de un sistema operativo, dentro de las formas posibles de 
estructurar el código de un sistema operativo tenemos varios diseños, como los son: 

● Sistemas monolíticos: ​Este tipo de organización es, con diferencia, la más común. El sistema 
operativo se escribe como una colección de procedimientos, cada uno de los cuales puede 
llamar a los demás cada vez que así lo requiera. Cuando se usa esta técnica, cada 
procedimiento del sistema tiene una interfaz bien definida en términos de parámetros y 
resultados, y cada uno de ellos es libre de llamar a cualquier otro, si este último proporciona 
un cálculo útil para el primero. Para construir el programa objeto real del sistema operativo 
siguiendo este punto de vista, se compilan de forma individual los procedimientos, o los 
ficheros que contienen los procedimientos, y después se enlazan en un sólo fichero objeto 
con el enlazador. En términos de ocultación de la información, ésta es prácticamente nula: 
cada procedimiento es visible a los demás (en contraste con una estructura con módulos o 
paquetes, en la que la mayoría de la información es local a un módulo, y donde sólo los 
datos señalados de forma expresa pueden ser llamados desde el exterior del módulo). Los 
servicios (mediante llamadas al sistema) que proporciona el sistema operativo se solicitan 
colocando los parámetros en lugares bien definidos, como los registros o la pila, para 
después ejecutar una instrucción especial de trampa, a veces referida como llamada al 
núcleo o llamada al supervisor. 
● Modelo cliente-servidor: ​Una tendencia de los sistema operativos modernos es la de 
trasladar el código a capas superiores, y eliminar la mayor parte posible del sistema 
operativo para mantener un núcleo mínimo. El punto de vista usual es el implantar la 
mayoría de las funciones del sistema operativo como procesos de usuario. Para solicitar un 
servicio, como la lectura de un bloque de cierto fichero, un proceso de usuario (denominado 
en este caso proceso cliente) envía la solicitud a un proceso servidor, que realiza el trabajo y 
devuelve la respuesta. Dentro del mismo lo único que hace el núcleo es controlar la 
comunicación entre los clientes y los servidores. Al separar el sistema operativo en partes, 
cada una de ellas controla una faceta del sistema, como el servicio a ficheros, servicio a 
procesos, servicio a terminales o servicio a la memoria; cada parte es pequeña y controlable. 
Además, puesto que todos los servidores se ejecutan como procesos en modo usuario, y no 
en modo núcleo, no tienen acceso directo al hardware. En consecuencia, si hay un error en el 
servidor de ficheros éste puede fallar, pero esto no afectará en general a toda la máquina. 
Otra de las ventajas del modelo cliente-servidor es su capacidad de adaptación para su uso 
en sistemas distribuidos (véase la figura 5.4). Si un cliente se comunica con un servidor 
mediante mensajes, el cliente no necesita saber si el mensaje se gestiona de forma local, en 
su máquina, o si se envía por medio de una red a un servidor en una máquina remota. En lo 
que respecta al cliente, lo mismo ocurre en ambos casos: se envió una solicitud y se recibió 
una respuesta. 

Comunicación de los procesos 

La comunicación entre procesos es una función básica de los sistemas operativos. Los procesos 
pueden comunicarse entre sí a través de compartir espacios de memoria, ya sean variables 
compartidas o buffers, o a través de las herramientas provistas por las rutinas de IPC. 

Los procesos pueden ejecutarse en una o más computadoras conectadas a una red. Las técnicas de 
IPC están divididas dentro de métodos para: paso de mensajes, sincronización, memoria compartida 
y llamadas de procedimientos remotos (RPC). El método de IPC usado puede variar dependiendo del 
ancho de banda y latencia (el tiempo desde el pedido de información y el comienzo del envío de la 
misma) de la comunicación entre procesos, y del tipo de datos que están siendo comunicados. El 
sistema operativo provee mínimamente dos primitivas, enviar y recibir, normalmente llamadas send 
y receive. Asimismo, debe implementarse un enlace de comunicación entre los procesos de la 
comunicación. Este enlace puede ser unidireccional o multidireccional según permita la comunicación 
en solo uno o en varios sentidos. 

Existen diversos tipos de comunicación como los son: 

● Síncrona o asíncrona. 
● Persistente o momentánea. 
● Directa o indirecta. 
● Simétrica o asimétrica. 
● Con uso de buffers explícito o automático. 
● Envío copia del mensaje o por referencia. 
● Mensajes de tamaño fijo o variable. 

Gestión de la memoria 

La gestión de memoria representa la relación entre la cantidad y el rendimiento de la misma, el 


objetivo de esta es conseguir que varios procesos puedan ejecutarse de forma concurrente. 

Aplicación de la memoria. ​La misma podría encargarse de la gestión, cálculo y procesamiento de los 
paquetes de programas. 

Requisitos de gestión de memoria. ​Para la misma existen cinco requisitos, reubicación, protección, 
compartición, organización lógica y organización física. 
Participacionamiento de la memoria. L ​ a memoria principal se divide en un conjunto de particiones 
de tamaño fijo durante el inicio del sistema. Cualquier proceso cuyo tamaño sea menor o igual que el 
tamaño de la partición puede cargarse en cualquier partición libre, un programa puede que no se 
ajuste a una partición y por ello el programador debe diseñar el programa mediante superposiciones. 

Paginación de la memoria. ​En sistemas operativos de computadoras, los sistemas de paginación de 
memoria dividen los programas en pequeñas partes o páginas. Del mismo modo, la memoria está 
dividida en trozos del mismo tamaño que las páginas llamadas marcos de página. 

Segmentación de la memoria. L
​ a segmentación de memoria es una técnica de gestión de memoria 
que pretende acercarse más al punto de vista del usuario. Los programas se desarrollan, 
generalmente, en torno a un núcleo central desde el que se bifurca a otras partes o se accede a 
zonas de datos. 

Administración de ficheros 

Un fichero o archivo es un sistema real o virtual de organización de la información mediante una 


clasificación determinada. Se le llama fichero a un conjunto de información clasificada y almacenada 
de diversas formas para su conservación y fácil acceso en cualquier momento. Un archivo o fichero 
informático es un conjunto de bytes que son almacenados en un dispositivo. Un archivo es 
identificado por un nombre y la descripción de la carpeta o directorio que lo contiene. 

Organización y acceso a los ficheros. ​El ordenador debe tener acceso a los ficheros creados por los 
usuarios, ya sea para tomar de ellos alguna información o para grabarla. El acceso a un fichero está 
íntimamente ligado a la organización de dicho fichero. La organización del fichero indica cómo están 
dispuestos los registros en el soporte material con objeto de conseguir su utilización más eficiente. 
Los tipos de organización de ficheros son básicamente cuatro: organización secuencial, organización 
secuencial encadenada, organización secuencial indexada, y organización directa o aleatoria. 

Directorios. E
​ s un contenedor virtual en el que se almacenan una agrupación de archivos 
informáticos y otros subdirectorios, atendiendo a su contenido, a su propósito o a cualquier criterio 
que decida el usuario. 

Compartición de ficheros. ​La compartición de ficheros es el proceso por el cual una serie de ficheros 
se ponen a disposición de los usuarios de una red, dándoles acceso para trabajar sobre ellos, 
descargarlos o modificarlos. 

Bloques y registros. S
​ e define como bloque a la cantidad más pequeña de datos que pueden 
transferirse de una operación de E/S entre la memoria principal de un ordenador y los dispositivos 
periféricos o viceversa. El tamaño del bloque o registro físico dependerá de las características del 
ordenador. En la mayoría de los casos el tamaño del bloque suele ser mayor que el del registro 
lógico. La adaptación consiste en empaquetar en cada bloque tantos registros lógicos como se 
pueda. El empaquetamiento puede ser de tipo fuerte o débil, según que se permita o no aprovechar 
el sobrante de un bloque, situando registros a caballo entre dos bloques contiguos. 

Gestión de almacenamiento secundario. E


​ l procesador es el dispositivo encargado de ejecutar 
instrucciones dadas a una computadora las cuales toma de la memoria de acceso aleatorio (RAM). 
Este tipo de memoria constituye la memoria principal, la cual tiene una velocidad de lectura y 
escritura elevadas; más no es posible almacenar de forma indefinida información, es decir, en el 
momento en que se detenga el flujo de corriente, la información contenida en él se perderá. 
Existen otros medios de almacenamiento, capaces de retener la información de forma indeterminada 
en el tiempo sin necesidad de un flujo constante de corriente. Estos medios se denominan 
dispositivos de almacenamiento secundario. Estos dispositivos, en contraste con la memoria de 
acceso aleatorio, tienen una velocidad de lectura y escritura mucho menor. El sistema operativo tiene 
la responsabilidad de gestionar el almacenamiento secundario. Los dispositivos de almacenamiento 
secundario difieren en sus procedimientos para leer y escribir. Todo sistema operativo debe 
encargarse de gestionar el almacenamiento secundario porque es básico para muchas funciones, 
sobre todo el disco magnético, que al ser de acceso aleatorio permite ser visto como una extensión 
de la memoria principal. 

Gestión de Entrada y Salida 

Dispositivos de E/S. ​Se conoce como periféricos de entrada y salida a cualquier tipo de dispositivo 
periférico de un computador capaz de interactuar con los elementos externos a ese sistema de forma 
bidireccional, es decir, que permite tanto que sea ingresada información desde un sistema externo, 
como emitir información a partir de ese sistema. 

Organización del sistema de E/S.​ Para que un computador pueda ejecutar un programa debe ser 
ubicado previamente en la memoria, junto con los datos sobre los que opera, y para ello debe existir 
una unidad funcional de entrada de información capaz de escribir en la memoria desde el exterior. 
Análogamente, para conocer los resultados de la ejecución de los programas, los usuarios deberán 
poder leer el contenido de la memoria a través de otra unidad de salida de datos. La unidad de 
Entrada/Salida (E/S) soporta estas funciones, realizando las comunicaciones del computador 
(memoria) con el mundo exterior (periféricos). 

Utilización de buffers de E/S. E


​ l uso de buffers es una técnica que amortigua los picos en la 
demanda de E/S. Sin embargo, por muchos buffers que se utilicen, estos no permitirán a un 
dispositivo de E/S mantener el ritmo de un proceso indefinidamente cuando la demanda media del 
proceso sea mayor que la que puede servir el dispositivo de E/S. Incluso con múltiples buffers, todos 
los buffers acabarán llenándose y el proceso tendrá que esperar después de procesar cada 
fragmento de datos. Sin embargo, en un entorno de multiprogramación, donde hay diversas 
actividades de E/S y distintos procesos que hay que atender, el uso de buffers es una técnica que 
puede incrementar la eficiencia del sistema operativo y el rendimiento de los procesos individuales. 

Aspectos de diseño del sistema operativo 

Al aplicar definiciones con respecto a este concepto podríamos centrarnos en lo que conocemos 
como sistemas operativos distribuidos. La idea base de los sistemas operativos distribuidos es la de 
obtener sistemas mucho más rápidos que los utilizados de procesador único, Y para lograr esto 
tenemos que olvidar la idea antigua de ejecutar los programas en estos procesadores y pensar en 
distribuir las tareas a los procesadores libres más rápidos en cada momento. 

Los sistemas operativos distribuidos desempeñan las mismas funciones que un sistema operativo 
normal, pero con la diferencia de trabajar en un entorno distribuido. Su Misión principal consiste en 
facilitar el acceso y la gestión de los recursos distribuidos en la red. 

   
Dentro de sus aspectos de diseño están: 

● Escalabilidad:​ Los sistemas distribuidos están basados en las ideas básicas de 
transparencia, eficiencia, flexibilidad, escalabilidad y fiabilidad. 
● Transparencia:​ El concepto de transparencia de un Sistema operativo distribuido va ligado a 
la idea de que todo el sistema funcione de forma similar en todos los puntos de la red, 
debido a esto queda como labor del sistema operativo coordinar el mecanismo que logre la 
unificación de todos los sistemas y recursos totalmente transparente para el usuario o 
aplicación. 
● Eficiencia:​ Obtener sistemas mucho más rápidos que los utilizados en un procesador único. 

Componentes básicos de un sistema operativo 

Para el desarrollo de un sistema operativo, hay que tener en cuenta sus cuatro componentes básicos, 
de manera sintetizada podemos listarlos: 

● Gestión de procesos. 
● Administración de memoria principal. 
● Administración de ficheros. 
● Gestión de los dispositivos de E/S. 

También podría gustarte