Diagrama de Flujo de un Sistema Operativo

6
Enrique Torrescano Montiel Sencillas Razones Para Sentarse Un Buen Día A Iniciar El Diseño De Un Sistema Operativo Los SISTEMAS OPERATIVOS son programas extremadamente grandes Los SISTEMAS OPERATIVOS tienen que manejar concurrencia Los SISTEMAS OPERATIVOS tienen que enfrentarse a usuarios hostiles en potencia Los SISTEMAS OPERATIVOS deben permitir a los usuarios compartir información y recursos con otros usuarios seleccionados Los SISTEMAS OPERATIVOS deben ser flexibles para poder adaptarse a posibles cambios futuros en el Hardware y en el Software Los SISTEMAS OPERATIVOS deben ser generales para poder ser usados de muchas formas distintas Los SISTEMAS OPERATIVOS deben ser (trans)portables Muchos SISTEMAS OPERATIVOS deben ser compatibles con algún SO anterior AHORA, YA QUE TIENES LA INTENCION DE INICIAR EL DISEÑO DE UN SISTEMA OPERATIVO, UNOS HUMILDES CONSEJOS Una Pregunta¿Por dónde comenzar? Pues es un tanto difícil de responder, créeme que hacer un sistema operativo, en su diseño, es una tarea ardua, bastante extenuante. Si lo hace una persona sola, puede llevarle más de un año su diseño (con una inversión diaria de al menos cinco horas), si lo hacen un grupo de personas, aún así es difícil pues el trabajo grupal ha de centrarse en el producto total llamado sistema operativo. Por un lado es difícil el diseño, pues el trabajo debe finalizar en un producto que esté hecho para que las personas, en relación con el sistema informático, el sistema operativo, sus datos y los programas, realicen cosas eficientemente y sucede que en muchas ocasiones nos encontramos con problemática, pues los sistemas operativos suelen tener fallas. Uno de los casos importantes en el de los productos Windows. Windows se caracteriza por vender producto no terminados y frecuentemente nos enfrentamos a detallitos en cuestión a fallas o imprevistos. Como medida de seguridad Windows implemento las famosas actualizaciones y los service pack, que no son otra cosa que “reparaciones” virtuales a las fallas en sus sistemas. Aparte de ello, necesitas esperar a que todo esté listo de parte de Microsoft, pues uno como usuario no puede acceder al código fuente, pues tiene propietario. Los sistemas operativos de código abierto, si bien no son los más socorridos por los usuarios (pues estamos muy acostumbrados a lo de marca) son muy eficientes en su aplicación, pues tienen la ventaja del Open Source, con ello sabemos que todo programador, ingeniero, puede acceder al código y puede hacer los arreglos que considere necesario. Si bien las compañías, Microsoft, i mac, tienen en su grupo de desarrolladores a gente muy talentosa que está luchando por hacer cada día mejor los sistemas operativos, lo cierto es que no pueden competir con los miles de desarrolladores del Open Source que día con día están haciendo las mejoras en los sistemas de código abierto. Mejoras que son puestas a la disposición de los usuarios en modo inmediato. No pretendo que esto se vea como pesimismo (criticar no es la intención de mi trabajo), es de entenderse que si estudio una carrera afín los sistemas informáticos, entonces, es cierto que todo lo referente a las computadoras me apasiona y, no tengo nada en contra de Microsoft, u otra compañía, sólo es un punto de comparación; mismo que se debe hacer. Y bueno, aun es difícil de iniciar la gestión en el diseño de un sistema operativo, en base a lo estudiado, integro puntos generales que creo deben considerarse al momento de hacer la gestión: Primero: debemos leer algunos documentos y libros para empaparnos sobre Sistemas Operativos. Tanto orientado a diseño como a conceptos, ya que si no sabemos lo que es un Sistema Operativo no podemos pretender hacer uno. Segundo: Elegir una plataforma para el Sistema Operativo, hay que limitar desde el primer momento, porque no se puede hacer un Sistema Operativo para todas las plataformas. O al menos no al principio. Tercero: Elegir un lenguaje de alto nivel, y un compilador que genere código del procesador al que tenemos de objetivo, y que proporcione facilidades a bajo nivel, porque no nos engañemos, va a haber que programar en ensamblador, y lo mejor es buscar un lenguaje de alto nivel en el que se pueda insertar código ensamblador en línea. Cuarto: Especializarse en ciertos componentes físicos del ordenador (procesador, registros, buses, puertos, tarjetas, E/S, memoria, etcétera), y su forma de programación. Quinto: Planificación del Sistema y del arranque, colocación física de los datos, tanto en disco como en memoria, esto no es asunto ligero, ya que nos quitará de muchos quebraderos de cabeza. Además hay que tener en cuenta que hay que limitar desde el primer momento, porque para ampliar siempre hay tiempo.

description

Secuencia que muestra el como se estructura un sistema operativo en cuanto a su seguridad

Transcript of Diagrama de Flujo de un Sistema Operativo

Page 1: Diagrama de Flujo de un Sistema Operativo

Enrique Torrescano Montiel

Sencillas Razones Para Sentarse Un Buen Día A Iniciar

El Diseño De Un Sistema Operativo

Los SISTEMAS OPERATIVOS son programas extremadamente grandes

Los SISTEMAS OPERATIVOS tienen que manejar concurrencia

Los SISTEMAS OPERATIVOS tienen que enfrentarse a usuarios hostiles en potencia

Los SISTEMAS OPERATIVOS deben permitir a los usuarios compartir información y recursos con otros usuarios seleccionados

Los SISTEMAS OPERATIVOS deben ser flexibles para poder adaptarse a posibles cambios futuros en el Hardware y en el Software

Los SISTEMAS OPERATIVOS deben ser generales para poder ser usados de muchas formas distintas

Los SISTEMAS OPERATIVOS deben ser (trans)portables

Muchos SISTEMAS OPERATIVOS deben ser compatibles con algún SO anterior

AHORA, YA QUE TIENES LA INTENCION DE INICIAR EL DISEÑO DE UN SISTEMA OPERATIVO, UNOS HUMILDES CONSEJOS

Una Pregunta…

¿Por dónde comenzar?

Pues es un tanto difícil de responder, créeme que hacer un sistema operativo, en su diseño, es una tarea ardua, bastante extenuante. Si lo hace una persona sola, puede llevarle más de un año su diseño (con una inversión diaria de al menos cinco horas), si lo hacen un grupo de personas, aún así es difícil pues el trabajo grupal ha de centrarse en el producto total llamado sistema operativo.

Por un lado es difícil el diseño, pues el trabajo debe finalizar en un producto que esté hecho para que las personas, en relación con el sistema informático, el sistema operativo, sus datos y los programas, realicen cosas eficientemente y sucede que en muchas ocasiones nos encontramos con problemática, pues los sistemas operativos suelen tener fallas.

Uno de los casos importantes en el de los productos Windows. Windows se caracteriza por vender producto no terminados y frecuentemente nos enfrentamos a detallitos en cuestión a fallas o imprevistos.

Como medida de seguridad Windows implemento las famosas actualizaciones y los service pack, que no son otra cosa que “reparaciones” virtuales a las fallas en sus sistemas.

Aparte de ello, necesitas esperar a que todo esté listo de parte de Microsoft, pues uno como usuario no puede acceder al código fuente, pues tiene propietario.

Los sistemas operativos de código abierto, si bien no son los más socorridos por los usuarios (pues estamos muy acostumbrados a lo de marca) son muy eficientes en su aplicación, pues tienen la ventaja del Open Source, con ello sabemos que todo programador, ingeniero, puede acceder al código y puede hacer los arreglos que considere necesario.

Si bien las compañías, Microsoft, i mac, tienen en su grupo de desarrolladores a gente muy talentosa que está luchando por hacer cada día mejor los sistemas operativos, lo cierto es que no pueden competir con los miles de desarrolladores del Open Source que día con día están haciendo las mejoras en los sistemas de código abierto. Mejoras que son puestas a la disposición de los usuarios en modo inmediato.

No pretendo que esto se vea como pesimismo (criticar no es la intención de mi trabajo), es de entenderse que si estudio una carrera afín los sistemas informáticos, entonces, es cierto que todo lo referente a las computadoras me apasiona y, no tengo nada en contra de Microsoft, u otra compañía, sólo es un punto de comparación; mismo que se debe hacer.

Y bueno, aun es difícil de iniciar la gestión en el diseño de un sistema operativo, en base a lo estudiado, integro puntos generales que creo deben considerarse al momento de hacer la gestión:

Primero: debemos leer algunos documentos y libros para empaparnos sobre Sistemas Operativos. Tanto orientado a diseño como a conceptos, ya que si no sabemos lo que es un Sistema Operativo no podemos pretender hacer uno.

Segundo: Elegir una plataforma para el Sistema Operativo, hay que limitar desde el primer momento, porque no se puede hacer un Sistema Operativo para todas las plataformas. O al menos no al principio.

Tercero: Elegir un lenguaje de alto nivel, y un compilador que genere código del procesador al que tenemos de objetivo, y que proporcione facilidades a bajo nivel, porque no nos engañemos, va a haber que programar en ensamblador, y lo mejor es buscar un lenguaje de alto nivel en el que se pueda insertar código ensamblador en línea.

Cuarto: Especializarse en ciertos componentes físicos del ordenador (procesador, registros, buses, puertos, tarjetas, E/S, memoria, etcétera), y su forma de programación.

Quinto: Planificación del Sistema y del arranque, colocación física de los datos, tanto en disco como en memoria, esto no es asunto ligero, ya que nos quitará de muchos quebraderos de cabeza. Además hay que tener en cuenta que hay que limitar desde el primer momento, porque para ampliar siempre hay tiempo.

Page 2: Diagrama de Flujo de un Sistema Operativo

Sexto: Elegir una plataforma de desarrollo, que nos proporcione las mayores facilidades de programación posibles, que tenga o estén disponibles muchas herramientas de programación, e incluso proyectos que nos ayuden a depurar el Sistema Operativo.

Séptimo: Comenzar a programar, recomiendo que se haga primero el arranque del sistema, y el controlador de video, para poder ver las cosas como van, y no desanimarnos tan pronto. Cuando hagamos el controlador de video, nos daremos cuenta que necesitaremos varios ficheros más, como la entrada/salida, controlador de memoria, e incluso uno de los tipos del sistema. Y cuando hagamos el controlador de memoria, necesitaremos otras cosas y así sucesivamente. Hay que hacer casi todas las cosas a la vez, y hasta que arranque el sistema no vamos a tener nada sólido, y vamos a tardar mucho.

Octavo: Buscar un nombre para el Sistema Operativo, no es que sea importante, pero si ha sido una buena obra, habrá que bautizarle un nombre de pila impuesto por nosotros

Bueno, existen infinidad de cosas, pero la verdad no soy experto en esto, ya con el tiempo y la experiencia más “experimentada”, éste apartado dará más de qué hablar. El asunto es que podamos iniciar pensando que nada será fácil y el verte entre miles de líneas de código, éstas no te atrapen y te desanimes. Piensa, cuando activas una aplicación (ejemplo negritas en Word), detrás de esto existe gente que trabajo arduamente.

Page 3: Diagrama de Flujo de un Sistema Operativo

DESEMPEÑO: En el sistema Se genera cuando se ejecuta una aplicación ésta sea de forma ágil con capacidades de poder realizar tares de multiprocesos.

FLEXIBILIDAD: Aspecto importantes en la estructura de los sistemas: monolítico que se refiere a que la máquina deberá ejecutar un núcleo tradicional que proporcione la mayoría de los servicios y micronucleo comúnmente nombrado microkernel, que debe proporcionar lo menos posible; el grueso de los servicios del sistema operativo se debe obtener a partir de los servidores al nivel de usuario.

VAMOS AL DIAGRAMA DE FLUJO, AHORA CONCEPTUALIZADO

¿QUÉ ADMINISTRA EL SISTEMA OPERATIVO?

RECURSOS DE HARDWARE: Concretamente, los principales recursos

de hardware en una PC son la memoria (RAM principalmente, ROM,

Caché, etc.), las direcciones ó puertos de I/O (Imput/Output), las IRQ (Interrupt ReQuest) y los canales de DMA.

SISTEMA

debe considerar

RECURSOS DE SOFTWARE: Software es todo el conjunto

intangible de datos y programas de la computadora.

MEMORIA: Tiene estrecha relación con la

computadora y el sistema operativo, ya

que todos los programas que se ejecuten

por el usuario, serán colocados ahí; se dice

llamados a memoria

ARCHIVOS: La parte más visible de un

sistema operativo es el sistema de

archivos. La mayoría de los programas

leen o escriben cuando menos un archivo

, la comodidad y utilidad del sistema

operativo dependen principalmente de la

interfaz, estructura y confiabilidad del

sistema de archivos

DISPOSITIVOS ENTRADA: Son

aquellos que sirven para introducir

datos a la computadora para su

proceso. Los datos se leen de los

dispositivos de entrada y se

almacenan en la memoria central o

interna. Los dispositivos de entrada

convierten la información en

señales eléctricas que se

almacenan en la memoria central.

/ SALIDA

SUS BASES

PRINCIPALES

AMPLITUD DE FUNCIONES Y ADMINISTRADOR DE ERRORES: es conveniente aumentar las posibilidades de multiprocesamiento de los sistemas operativos, para permitir la ejecución de varias aplicaciones sin que

el sistema operativo colapse

ABSTRACCION: Define qué hace el sistema operativo, sin

tomar en cuenta el cómo lo hace

ESTANDARIZACION: ESTABLECE LA COMUNICACIÓN

ENTRE LAS DIFERENTES ARQUITECTURAS

UN SISTEMA OPERATIVO

CON VISION PROFESIONAL

CONECTIVIDAD DEL

SISTEMA OPERATIVO

ORIENTACION A OBJETOS APLICACIÓN

CLIENTE/SERVIDOR

SERVICIOS

NACE EL (SO) CON VISION

PROFESIONAL

TRANSPARENCIA: La transparencia suele determinarse sobre el diseño de interfaces de llamadas al sistema, de modo que no sea visible la existencia de dos o más procesadores.

Sistema Operativo (SO): Software básico de una computadora que provee una interfaz entre el resto de programas del ordenador, los dispositivos hardware y el usuario. Funciones básicas del Sistema Operativo; Administrar los recursos de la máquina, coordinar el hardware y organizar archivos y directorios en dispositivos de

almacenamiento. Sistemas Operativos más utilizados son , Windows, Linux y Mac. Algunos SO ya vienen con un navegador integrado, como Windows que trae el navegador Internet Explorer.

MIRA EL SISTEMA OPERATIVO…

La interacción entre el Software y el Hardware hace operativa la máquina, es decir, el

Software envía instrucciones al Hardware haciendo posible su funcionamiento.

DISPOSITIVOS

DE SALIDA: Son los que permiten

representar los resultados (salida) del

proceso de datos. El dispositivo de

salida típico es la pantalla o monitor.

Otros dispositivos de salida son:

impresoras (imprimen resultados en

papel), trazadores gráficos (plotters),

bocinas, entre otros...

SEGURIDAD Y PROTECCIÓN: Se prevén los mecanismos de protección para poder

implementar políticas de seguridad. Definen qué hay que hacer , qué datos y recursos

deben protegerse de quién. Los mismos mecanismos, si son flexibles, pueden usarse

para implementar distintas políticas.

Los mecanismos que ofrece el sistema operativo necesariamente deben

complementarse con otros de carácter externo; impedir el acceso físico de personas

no autorizadas a los sistemas es un mecanismo de protección cuya implementación

no tiene nada que ver con el sistema operativo.

Un aspecto importante de la seguridad es el de impedir la pérdida de información, la

cual puede producirse por diversas causas: fenómenos naturales, guerras, errores de

hardware o de software, o errores humanos.

Necesaria la conjugación de forma interactiva ya que entre ellos se ofrecerá al usuario la solución global para el desarrollo del sistema. Mediante la

visión profesional del desarrollo del sistema, se puede aprovechar para crear aplicaciones con funciones específicas para los usuarios basándose en

el rendimiento del sistema y aprovechamiento de cada dispositivo conectado al sistema

INTERFAZ

Es el medio por el cual se ingresa a

un sistema operativo. Por lo general

se tiene que, mientras más completa,

sencilla e integra sea la cara de un

sistema operativo, este podrá ser

sencillo de utilizar por el usuario.

CONFIABILIDAD: Aspecto de mucha importancia, ya que dependiendo de la objetividad del sistema; o, si falla algún proceso, otro adicional al sistema operativo deberá

encargarse del trabajo. Importante el diseño y la arquitectura, la seguridad, la tolerancia a los fallos del sistema

ESCALABILIDAD: Si el software “normal” debe ser escalable, imaginar el sistema operativo, como parte fundamental de una computadora, entonces, La nueva era de tecnologías indica que se tiene que ir mejorando en cuestiones básicas de administración de dispositivos de E/S, para que se esté al día con los requerimientos del sistema operativo que deberá tener la capacidad de mejorar su procesos y gestión de recursos.

PORTABILIDAD: Antes Microsoft era para Microsoft, su software y su hardware, ahora es una necesidad básica en sistemas operativos modernos, pues suelen diseñarse a modo que se puedan utilizar en diferentes arquitecturas de hardware, y deban reconocer sin problema la mayoría de dispositivos de E/S.

Page 4: Diagrama de Flujo de un Sistema Operativo

INTERFACE ALTERNATIVA Se utilizan muy poco, sin embargo son de mucha utilidad para pensar en alguna alternativa de seguridad,. Son las que se basan en el reconocimiento de voz, la cual soporta un diálogo interactivo entre el usuario y una aplicación de software. En los dispositivos de interface neuronal el sistema provecha de los usuarios las señales eléctricas generadas por sus cuerpos para controlar una computadora o dispositivos eléctricos conectados entre sí.

LOS CONCEPTOS INCLUIDOS EN

LA ARQUITECTURA DEL (SO)

Diseño de Alto Nivel

VISION ARQUITECTONICA

PORTABILIAD

PATRONES

ARQUITECTONICOS

VISTAS

ARQUITECTONICAS

PRINCIPIOS DEL

DISEÑO

La arquitectura del diseño del sistema operativo, debe ser diferencial al diseño e implementación de un sistema operativo, la arquitectura es la base del

diseño, la implementación es la puesta en operación de un sistema operativo ya desarrollado.

CARACTERISTICAS DIFERENCIALES

SOPORTE EN MEMORIA,

TRAS SU EVOLUCION

NIVEL DE ABSTRACCION

DEL DISEÑO

EL INGREDIENTE ESENCIAL PARA EL

DISEÑO

INTERFACES, SU DISEÑO

EL DISEÑO DE INTERFACES

SUS PRINCIPIOS

FUNIONAL

EL PARADIGMA DEL

SISTEMA OPERATIVO

LOGICO IMPERATIVO

ORIENTADO A

OBJETOS ESTRUCTURADO GUIADO POR EVENTOS

Debemos entender como arquitectura de un sistema a la conformación de éste de acuerdo a sus componentes de software, sus propiedades extremamente visibles y la relación que existe entre ellos: esto es un conjunto de conceptos y decisiones de diseño relativos a la estructura del sistema operativo, que deben considerarse antes de la ingeniería, con el fin de asegurar la satisfacción del usuario. Y está concebida dentro un nivel de diseño la importancia está en ofrecer la comunicación entre las personas que van a involucradas, la documentación, restricciones de implementación, cualidades del sistema. Se basa en el diseño de alto nivel, a la estructura del sistema, los componentes del sistema sus relaciones y principios de funcionalidad, componentes, conectores, configuración y sus

restricciones.

La administración de los recursos de hardware es uno de los objetivos principales del diseño, por ello, no se puede hace a un lado el

cómo los usuarios van a interactuar con la computadora y, a través de ésta manejan el sistema y todas sus aplicaciones, pudiendo ser

este proceso fascinante, pues mucho del trabajo se puede plasmar en la presentación de cómo está planteado el sistema para su

manejo

INTERACCION HUMANO-COMPUTADORA

Esto se relaciona con la práctica del diseño, construcción e implementación de sistemas de cómputo interactivos basados en el usuario; actividad principal, el desarrollo de nuevos sistemas de interface para los usuarios, lo que implica nuevas técnicas de graficación.; ver la interfaz

INTERFACE BASADA EN TEXTO

“Arcaicamente” los desarrollos de sistemas orientados en textos o caracteres, nada más tenían la capacidad de desplegar códigos ASCII en la pantalla, contrastando esto a los orientados a gráficos, en donde la interface de texto consiste en un conjunto de comandos que el usuario debe memorizar y con los cuales se dan instrucciones al sistema para el manejo de los recursos del sistema.

INTERFACE GRAFICA DE USUARIO

Se beneficia de las capacidades de

despliegue gráfico de la computadora,

permitiendo hacer más sencillo el manejo

del sistema, utiliza iconos y menús tanto

para realizar comandos, como para abrir

archivos, ejecutar alguna acción dentro de

la aplicación.. Componentes gráficos

comunes en este tipo de interfaces: El

apuntador, dispositivo apuntador, iconos,

menús, ventanas, y escritorio. Cada sistema

operativo tiene su propia arquitectura

gráfica.

INTERFACE DE USUARIO Tiene como principal objetivo la implementación de interfaces que sean eficientes y efectivas al ser utilizadas por el usuario, su principio de su desarrollo está en el planteamiento de prototipos de interfaces donde se determinan qué eventos ocurrirán y los procesos lógicos a seguir por tales eventos.

SUS PRINCIPIOS EFICIENCIA

Si un usuario llama al sistema y sus aplicaciones, esto debe ser de forma eficiente y transparente, entonces, la implementación de los mecanismos debe ser de forma eficaz. Para el desarrollador debe ser automático para

poder tener una eficiencia del sistema.

INTEGRIDAD Todo sistema operativo debe permitir utilizar todas y cada una de las aplicaciones, el principio de la

integridad permitirá un uso integral del mismo.

SENCILLEZ

Como literalmente suena: Evita que los usuarios

tengan complicaciones al uso del sistema, entonces

un sistema operativo debe basarse en el principio de

la sencillez al uso

Los paradigmas son de importancia extrema, pues son la clave en la programación, ya que por estos se pueden generar planteamientos y bases para poder

desarrollar un software… son:

Se basa en sentencias de cálculos sencillos e iterativas, asociadas a una dirección de memoria y al final de la iteración represente el

resultado correcto.

Nuestro código se divide en bloques, estructuras, que pueden o no comunicarse entre ellas, mismas que pueden ser controlados por secuencias, selección e interacción.

Se basa en un tipo de programación en forma de funciones matemáticas.

Los sistemas operativos basados en, poseen clases y herencias, los cuales se pueden comunicar entre ellos.

OBJETOS

En este paradigma y su ejecución de programas se determinan por los sucesos que ocurran en el sistema

Definición de reglas lógicas que va a resolver problemas planteados por el sistema.

Page 5: Diagrama de Flujo de un Sistema Operativo

En estructuras similares de datos para sistemas operativos, tenemos la posibilidad que uno sea más rápido que otro, pero también, puede ser que el sistema más rápido puede ser menos confiable que el sistema más lento. Tratar de realizar optimizaciones complejas en estructura del sistema operativo puede generar errores, para evitar estos errores es conveniente aplicarlos solo si

son necesarias. Existen diferentes técnicas que pueden ser utilizadas para mejorar el desempeño en la estructura del sistema, Son las siguientes

PARADIGMA UNIFICADOR

DE DATOS

LLAMADAS AL

SISTEMA

LLAMADAS AL SISTEMA

EN MODO GENERALIZADO LLAMADAS AL

SISTEMA, SOBRE O

SIN CONEXION

PROCEDIMIENTOS

DE BIBLIOTECA CON

SENCILLEZ

IMPLEMENTACION Y DESEMPEÑO DEL

SISTEMA OPERATIVO

INTEGRACION DE LOS

COMPONENTES

SERVICIOS OBJETOS

DISTRIBUIDOS

ESTRCUTURA DEL

SISTEMA

En informática, llamada al sistema (en inglés system call) es el mecanismo usado por una aplicación para solicitar un servicio al sistema operativo. En el proceso de las interfaces, las llamadas al sistema deben cumplir con el menor número de llamadas, es importante contar con un paradigma de datos unificador el cual es muy útil durante el proceso de diseño. Las llamadas al sistema no deberán interferir en la potencia del hardware Si una llamada al sistema es rápida los usuarios siempre podrán construir interfaces más cómodas con base en ella.

Todo sistema operativo para ser eficiente, debería de ofrecer el menor número de llamadas al sistema, por lo cual debe de cumplir con los criterios abajo mencionados

La implementación de las llamadas al sistema requiere un control de transferencia que involucra características especificas de la arquitectura del procesador. Una forma típica de implementar es usar una interrupción por software. Linux usa esta implementación en la arquitectura x86.

Para los procesadores con arquitectura RISC, ésta es la única forma, pero arquitecturas CISC como x86 soportan otras técnicas adicionales. Un ejemplo es SYSCALL/SYSRE.

CRITERIOS A

CONSIDERAR…

Las llamadas al sistema comúnmente emplean una instrucción especial de la CPU, esto origina que el procesador transfiera el control a un código privilegiado, previamente especificado por el mismo código. Esto permite al código privilegiado especificar donde va a ser conectado así como el estado del procesador.

Cuando una llamada al sistema es invocada, la ejecución del programa que invoca es interrumpida y sus datos son guardados, normalmente en su PCB (Bloque de Control de Proceso del inglés Process Control Block), para poder continuar ejecutándose luego. El procesador entonces comienza a ejecutar las instrucciones de código de alto nivel de privilegio, para realizar la tarea requerida. Cuando esta finaliza, se retorna al proceso original, y continúa su ejecución. El retorno al proceso demandante no obligatoriamente es

inmediato, depende del tiempo de ejecución de la llamada al sistema y del algoritmo de planificación de CPU.

Generalmente, los sistemas operativos proveen bibliotecas que relacionan los programas de usuario y el resto del sistema operativo, usualmente una biblioteca C como glibc o el runtime de Microsoft C. Esta biblioteca maneja los detalles de bajo nivel para transferir información al kernel y conmutar a modo supervisor, así como cualquier procesamiento de datos o tareas que deba ser realizada en modo supervisor. Idealmente, esto reduce la dependencia entre el sistema operativo y la aplicación, e incrementa su portabilidad.

En los sistemas operativos bajo norma POSIX o similares, algunas llamadas al sistema muy usadas son open, Read (system call), write, close, wait, exec, fork, exit y kill. Los sistemas

operativos actuales tienen cientos de llamadas, por ejemplo Linux 2.x y FreeBSD tienen más de 300.

Durante la etapa de análisis del sistema operativo es aquí donde se tendrá línea para la etapa del desarrollo y para saber lo que se tiene que hacer para un futuro sistema, cómo hacerlo y cuáles serán sus límites. La arquitectura de un sistema es un paso hacia el desarrollo del mismo, y cuando se analizan y definen los requerimientos del usuario, el sistema quedará con todos los módulos o subsistemas para tener una estructura completa de los datos que se tendrán que procesar.

Un Sistema Operativo debe ser…

CAPAS Y ANILLOS En este tipo de estructura se contemplan seis capas para su formación:

ARQUITECTURA MAQUINA VIRTUAL

Arquitectura, alternativa de software, cada vez más útil para el manejo de servidores y economizador de hardware, en el sistema emula la existencia de hardware y el software convierte las peticiones a la maquina virtual en operaciones sobre la máquina física.

MICROKERNEL Y MULTIHILADO

Este tipo de arquitectura, se basa en obtener la mayor funcionalidad del kernel, se limita para que se pueda ejecutar en modo privilegiado y que permita las modificaciones y extensiones de forma simple y sencilla.

ARQUITECTURA CLIENTE SERVIDOR: Distribuye las tareas entre diferentes llamadas al sistema.

MULTIPROCESO: Permite gestionar dos o más procesadores para gestionar la carga entre ellos.

MULTIUSUARO Permite ser ocupado por dos o más usuarios durante el tiempo de ejecución de sus procesos.

MULTITAREA: Tiene la capacidad de ejecutar varias tareas a la vez

ORIENTADO A

OBJETOS

Para este tipo de

arquitecturas los

recursos que provee

el sistema operativo

es por medio grafico

u objetos.

Capa 0, se encarga de la administración de multiprogramación básica del

microprocesador

Capa 1, en esta capa se encarga de gestionar el espacio en la memoria.

Capa 2, para esta capa su principal actividad es comunicar entre cada proceso y la consola del operador.

Capa 3, en esta capa la gestión se enfoca sobre los dispositivos de E/S.

Capa 4, esta capa se gestionan los programas de los usuarios.

Capa 5, es donde se alojan los procesos del operador del sistema. No te espantes, no es que no sepa contar, es que todo inicia desde el cero

Page 6: Diagrama de Flujo de un Sistema Operativo

fuentes empleadas

Unidad 4. Diseño de Sistemas Operativos documento PDF

http://ditec.um.es/deiso/apuntes/tema1.pdf

http://so.fciencias.unam.mx/presentaciones/ch2.pdf

http://galeon.com/ipnupiicsaif/unidad4.html#1

A T E N T A M E N T E

Enrique Torrescano Montiel

IMPLEMENTACION ASCENDENTE

DESCENDENTE

CACHES

PRINCIPIOS DE OPTIMIZACION

ESTRUCTURA ESTATICA

Aquí, el tipo de estructura, se caracteriza por ser de más fácil comprensión, su programación es más simple

y su uso es más rápido.

ESTRUCTURA DINAMICA

Suele distinguirse por ser más flexible y permite adaptarse a todos los recursos disponibles, pero tiene como desventaja de que requieren de un gestor de memoria dentro del sistema operativo.

ESTRUCTURA ESTATICA O ESTRUCTURAS DINAMICAS

OCULTACION DE HARDWARE

Técnica que permite ocultar las

interrupciones, convirtiéndolas

en operaciones de

sincronización entre hilos. El

ocultar la arquitectura del

hardware, permite facilitar la

transportabilidad del sistema

operativo. La fuente del sistema

operativo deberá ser única y

una compilación condicional.

INDIRECCION

En la técnica deberá existir cierta flexibilidad por parte del sistema operativo, ya que si por algún motivo el usuario da la entrada de algún proceso por medio del teclado, al pulsar la tecla puede obtener un valor que no corresponde con lo deseado, para solucionarlo debe existir la posibilidad de utilizar configuraciones distintas de teclados.

REENTRABILIDAD

Técnica se permitirá la ejecución de forma simultánea de algún fragmento de código, la ejecución se puede dar dentro de un multiprocesador o en un monoprocesador , en este, pueden darse interrupciones cuando se ejecuten las mismas porciones del código al anterior.

Para un buen proceso de la

implementación de un sistema,

bien se podría verificar la

existencia de errores. Cuando

determinada llamada al

sistema falle, puede ser porque

los ficheros no existen dentro

del módulo o bien pertenecen a

otro, se deben considerar la

mayor parte de las pruebas al

inicio del procedimiento para

validar que la ejecución de

llamadas al sistema. sean las

correctas

CACHE DE BLOQUE

Esto representa un pequeño segmento de memoria RAM, que se añade algún sitio del disco duro con la finalidad de almacenar los datos que han sido leídos con anterioridad, teniendo como resultado agilidad al cargar los datos

CACHE DE PAGINACIÓN

Este tipo de cache se almacena en memoria RAM, esto dentro del disco duro.

BUENO, YA TENEMOS EL DISEÑO DE NUESTRO SISTEMA OPERATIVO Y NO DEBEMOS OLVIDAR UNA PARTE MUY IMPORTANTE:

TODO SISTEMA CUANDO ES RECIEN COMPRADO NOS MARAVILLA CON SUS POTENCIALIDADES EN CUANTO A LA VELOCIDAD CON QUE

TRABAJA Y VEMOS QUE LOS LLAMADOS A LAS APLICACIONES CORREN CON SORPRENDENTE VELOCIDAD, EN FIN, TODO NOS MARAVILLA.

PERO, CUANDO PASAN LOS MESES Y NOS VEMOS EN LA NECESIDAD DE INTEGAR PROGRAMAS, DE ABRIRLES Y CERRARLES, DE METERSE

A LA RED, DE GUARDAR ARCHIVOS, DE OLVIDARNOS DEL MANTENIMIENTO BÁSICO DEL SISTEMA, INICAN LOS PROBLEMA EN CUANTO A LA

VELOCIDAD.

SOBRA DECIR QUE TODO SISTEMA OPERATIVO DEBE SER DISEÑADO E IMPLEMENTADO BAJO LA METODOLOGIA DEL DESARROLLO PARA

QUE EN CUANTO SURJAN INCONVENIENTES EN CUANTO AL USO DEL HARDWARE Y EL SOFTWARE, EL SISTEMA OPERATIVO ESTE EN

POSIBILIDADES DE OPTIMIZAR SU USO.

TODA EMPRESA DESARROLLADORA DE SISTEMAS OPERATIVOS, DEBE INCLUIR EN SU DISEÑO E IMPLEMENTACIÓN, LAS FASES DE LA

OPTIMIZACIÓN, YA QUE DE ELLO DEPENDERÁ QUE EL SISTEMA NO PIERDA TANTA VELOCIDAD.

ENTONCES, ÉSTE ES UNO DE LOS PUNTOS POR DEMAS IMPORTANTES PARA EL DISEÑO DE NUESTRO SISTEMA OPERATIVO.

Espero te

haya gustado,

fue un

verdadero

gusto

desarrollarle