Dpso U4 A1 Mall

Docente: Carmen Gómez Pérez Asignatura: Programación de Sistemas Operativos Nombre del Alumno: Marco Antonio López López

Views 109 Downloads 3 File size 281KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Docente: Carmen Gómez Pérez Asignatura: Programación de Sistemas Operativos Nombre del Alumno: Marco Antonio López López Grupo: DS-DPSO-1702-B2-003 Actividad 1: Elementos del diseño de un Sistema Operativo Unidad 4 PROGRAMACION DE SISTEMAS OPERATIVOS

1

Desarrollo de un Sistema Operativo

Propósito: Identificar los parámetros para diseñar un sistema operativo mediante un resumen de proyecto de sistema operativo de un caso donde integres los elementos del diseño. Para lograr un buen diseño de un sistema operativo que sea capaz de competir con los existentes en el mercado es necesario considerar en el proceso de diseño, aspectos tales como: funcionalidad, administración de la memoria, abstracción, conectividad, visión arquitectónica, entre otros.

Objetivo:  

  

Crear un entorno en el que un usuario pueda ejecutar programas, hacer al, sistema de computador como de usar, utilizar el Hardware del computador de forma eficiente. Transportabilidad: que tenga la facilidad de que el software sea ejecutado desde un computador, un Sistema operativo o un entorno a otro distinto, que se mide por el coste relativo adicional requerido para adaptarlo al nuevo sistema con respecto al coste original de su desarrollo. Seguridad: que proteja la información que se almacena. Adhesión a la interfaz de sistema operativo portátil. Dar soporte a multiprocesadores, extensibilidad, soporte internacional y compatibilidad con aplicaciones MS-DOS y MS-Windows.

Tipo de información que almacenara y administrara En el sistema operativo podemos almacenar y administrar diferentes tipos de información la cual es a través de archivos que tienen un formato especifico, estos archivos son los archivos ASCII (American Standard Code for Information Interchange que es un estándar que asigna un valor numérico a cada carácter con lo que puede representar los documentos llamados de Texto Plano y los que son legibles para el ser humano) y los archivos binarios. Los archivos binarios con extensión:  De imagen: jpg, gif, tiff, bmp (portable bitmap), wfm (Windows meta file), png (Portable Networks Graphics), pcx (PaintBrush), etc.  De video: mpg, mov, avi, gif, mp4, 3gp, etc.  Comprimidos o empaquetados: zip, rar, Z, gz, tar, lhz.  Ejecutables o Compilados: exe, com, cgi, o, a.  Procesadores de Palabras: Doc, txt. PROGRAMACION DE SISTEMAS OPERATIVOS

2

Los archivos ASCII con extensión:  Archivos fuente: f, c, p.  Formatos de texto: tex, txt, html.  Formatos de intercambio: rtf, ps, uu.

Tipo de organización en el que se inserta El tipo de organización que se aplica para el proyecto de un sistema operativo es un sistema de módulos en capas, las capas principales son la capa de abstracción de hardware, el núcleo y el ejecutivo que se ejecutan en modo protegido y una gran colección de subsistemas que se ejecutan en modo usuario. Los subsistemas de modo usuario pertenecen a dos categorías, los subsistemas de entorno emulan diferentes sistemas operativos, los subsistemas de protección ofrecen funciones de seguridad, una de las ventajas de este tipo de arquitectura es que las interacciones entre los módulos pueden mantenerse sencillas. La HAL (Hardware Abstraction Layer, Capa de Abstracción de Hardware) es una capa de software que oculta las diferencias de hardware para que no las personan los niveles superiores del sistema operativo y Windows pueda ser más portátil. HAL exporta una interfaz de máquina virtual que el núcleo, el ejecutivo y los drivers de dispositivos utilizan, HAL también apoya al multiprocesamiento simétrico. Por razones de desempeño los controladores de E/S pueden acceder directamente al hardware. El núcleo de Windows constituye los cimientos del ejecutivo y de los subsistemas, el núcleo nunca se página con el disco y su ejecución nunca se desaloja, el núcleo tiene cuatro obligaciones principales: planificación de hilos, manejo de interrupciones y excepciones, sincronización de bajo nivel del procesador y recuperación después de una interrupción del suministro de electricidad. El núcleo está orientado a objetos, un tipo de objetos en Windows es un tipo de datos definido por el sistema que tiene un conjunto de atributos y un conjunto de métodos, un objeto no es más que un ejemplar de un tipo de objeto específico. El ejecutivo presta un conjunto de servicios que todos los subsistemas de entorno que pueden usar, los servicios pertenecen a los siguientes grupos: gestor de objetos, gestor de memoria virtual, gestor de procesos, recurso de llamadas a procedimientos locales, gestor de E/S y monitor de referencias de seguridad.

PROGRAMACION DE SISTEMAS OPERATIVOS

3

Perfil y número de usuarios. Los perfiles que se den de alta en el sistema son creados en un entorno específicamente para un usuario el cual cada uno tiene una configuración de escritorio y de los programas de usuario. Cuando se inicia sesión en el equipo por primera vez, se crea automáticamente un perfil para ese usuario, los perfiles los puede configurar el administrador de la red o cualquier usuario autorizado. Los perfiles tienen ventajas que los hacen importantes crearlos en un sistema de cómputo: Múltiples usuarios pueden utilizar el mismo equipo, con la configuración de cada uno recuperada al iniciar la sesión al mismo estado en que estaba cuando se cerró la sesión. Los cambios hechos por los usuarios en el escritorio no afectan a otros usuarios. Si los perfiles de usuarios se almacenan en un servidor pueden seguir a los usuarios a cualquier equipo de la red que se ejecute (Windows server, Windows 92, Windows NT, etc.). Existen varios tipos de perfiles que podemos crea de acuerdo con la especificación en que se encuentre el usuario. Perfiles locales: perfiles creados en un equipo cuando un usuario inicie sesión, el perfil es especifico de un usuario local al equipo y se almacena en un disco duro del equipo local. Perfiles móviles: perfiles credos por un administrador y almacenados en un servidor, estos perfiles siguen al usuario a cualquier máquina de la red Windows server 2003, Windows XP, profesional, 2000 o NT. Perfiles obligatorios: perfiles móviles que solo pueden ser modificados por un administrador. En el perfil de un usuario podemos almacenar la configuración local como los datos del programa, historial y archivos temp. También podemos almacenar cookies, datos del programa como configuraciones especificas del programa determinadas por el fabricante del programa, entorno de red, escritorio, favoritos, impresoras, menú de inicio, mis documentos, plantillas de programas, elementos el menú enviar, etc. La información que se guarda en cada perfil del usuario se encuentra en el archivo Ntuser.dat incluido en el perfil Default User. La finalidad de usar los perfiles móviles son una gran ventaja para los usuarios que utilizan frecuentemente ms de un equipo, un perfil móvil se almacena en un servidor y después de que el inicio de sesión del usuario sea autenticado en el servicio del directorio se copia al equipo local, esto permite al usuario tener el mismo escritorio, la configuración de las aplicaciones y la configuración local en cualquier máquina que se ejecute el sistema operativo.

PROGRAMACION DE SISTEMAS OPERATIVOS

4

Manipulación de la memoria. 1. ¿Es necesario implementar la función de la API Win32 para la manipulación de la memoria? Si es necesaria ya que es una función que cuenta con varios mecanismos para que una aplicación utilice la memoria: memoria virtual, archivos con correspondencia en la memoria, montículos y almacenamiento local por hilos. 2. ¿Qué es un montículo? En el entorno Win32 es una región de espacio de direcciones reservada, cuando se inicia un proceso Win32, se crea un montículo por omisión de 1 MB, puesto que muchas funciones Win32 usan el montículo por omisión, el acceso al montículo se sincroniza para proteger las estructuras de los datos de asignación de espacio del montículo contra daños causados por actualizaciones concurrentes hechas por múltiples hilos. 3. ¿Cuál es el proceso que realiza una aplicación para especificar la dirección virtual en la que se asigna memoria? La aplicación llama a VirtualAlloc para reservar o confirmar memoria virtual física llamada VirtualFree para anular la confirmación o liberar memoria la cual operan con múltiplo de tamaño de página de memoria y la dirección inicial de una región asignada debe ser mayor que 0 x 10,000. 4. ¿Cuál es el número máximo de páginas de un proceso? Un proceso puede asegurar más de 30 páginas a menos que el proceso primero invoque SetProcessWoringSize para aumentar el tamaño mínimo del conjunto del trabajo, otra forma de que una aplicación puede usar la memoria es haciendo corresponder un archivo con la memoria de su espacio de direcciones, la correspondencia con memoria también es un mecanismo cómodo para que dos procesos compartan memoria: ambos procesos hacen corresponder el mismo archivo con su memoria virtual, la correspondencia con memoria es un proceso multietapas. 5. ¿Cuál es la forma en que un proceso pueda establecer una correspondencia con una parte de su espacio de direcciones y compartir una región de memoria con otro proceso? Llama a CreateFileMapping (crear correspondencia con archivo) con un mango de archivo de 0xffffffff y un tamaño especifico, el objeto correspondencia con archivo resultante se puede compartir por herencia, por búsqueda de nombre o por duplicación. 6. ¿Qué función obtiene el almacenamiento local en la memoria del disco? El almacenamiento local por hilo asigna almacenamiento global a hilos individuales, este mecanismo proporciona método tanto dinamismo como estáticos para crear almacenamiento ocal por hilo.

PROGRAMACION DE SISTEMAS OPERATIVOS

5

Manejo de dispositivos de E/S. 7. ¿Cuál es la función del gestor de E/S? Se encarga del sistema de archivos, gestión de caches, drivers de dispositivos y controladores de red, que mantiene al tanto de cuales sistemas de archivos instalables están cargados y gestiona buffers para solicitudes de E/S, además trabaja con el gestor de VM para efectuar E/S de archivos de correspondencia de memoria y controla el gestor de caches de NT, que maneja los caches para todo el sistema de E/S. Así mismo, apoya operaciones tanto sincrónicas como asincrónicas, proporciona límite para los controladores y cuenta con mecanismos para que un controlador llame a otro. 8. ¿Qué pasa cuando el gestor de E/S tiene unas solicitudes? Convierte esas solicitudes en una forma estándar llamada Paquete de Solicitud de E/S (IRP, I/O request package) y luego remite el IRP al controlador correcto para que lo procese, una vez finalizada la operación, el gestor de E/S recibe el IRP del controlador que más recientemente efectuó una operación y termina de atender la solicitud. 9. ¿Qué pasa cuando existe un archivo abierto en la E/S de archivos? El gestor de caches mantiene un arreglo índice de VACB (bloque de control de dirección virtual) distinto, este arreglo tiene un elemento para cada trozo de 256 KB del archivo. 10. ¿Qué pasa cuando el gestor de E/S recibe una solicitud de lectura de nivel de usuario? Un IRP se envía al gestor de caches, el gestor de caches calcula cual entrada del arreglo índice de VACB de ese archivo corresponde al desplazamiento de bytes de la solicitud. La entrada apunta a la vista en el cache o bien es nula, si es nula, el gestor de cache establece una correspondencia entre vista y ese bloque, a continuación el gestor de caches intenta copiar datos del archivo con el que se estableció la correspondencia al buffer del invocador, si se puede realizar el copiado, la operación habrá finalizado, si el copiado falla, será por causa de fallo de página y esto hará que el gestor de VM envié una solicitud de lectura sin uso de cache al gestor de E/S, esto pide al driver de dispositivo apropiado lea los datos, y devuelve los datos al gestor de VM, que carga los datos del cache, los datos que ahora están en el cache, se copian en el buffer del invocador y la solicitud de E/S queda satisfecha. 11. ¿Qué pasa cuando el gestor de E/S recibe una solicitud de lectura de nivel del núcleo? En lugar de copiar los datos en un buffer en el espacio de usuario, se accede directamente a los datos del cache, para usar los metadatos del sistema de archivos, el núcleo de la interfaz de correspondencia del gestor de caches para leer los metadatos, si necesita modificar los metadatos, el sistema de archivos usa la interfaz de fijación del gestor de caches, la fijación asegura la paginad e un cuadro de memoria física para el gestor de VM no pueda cambiar de lugar ni PROGRAMACION DE SISTEMAS OPERATIVOS

6

intercambiar a disco la página, después de actualizar los metadatos, el sistema de archivos pide al gestor de caches que suelte la página, dado que la pagina ase modifico, se marca como sucia para el gestor de VM la escriba de vuelta al disco. 12. ¿Qué pasa si un proceso que escribe rápidamente en las páginas de cache y satura el sistema? Cuando la cantidad de memoria de cache libre baja mucho por el gestor de caches bloquea temporalmente los procesos que intentan escribir datos y despierta al hilo escritor de cache para que grabe las pagina en el disco. Si sucede que el proceso que escribe rápidamente es un redirector de red para un sistema de archivos de red, bloquearlo demasiado tiempo podría hacer que las trasferencias de red rebasen su tiempo límite y se retrasmitan, esta retrasmisión, desperdiciaría ancho de banda de red y para evitarlo los redirectores de red pueden ordenar al gestor de cache que no deje que se acumulen muchas escrituras en el cache.

Procesos para la administración de Archivos. 13. ¿Qué función desempeña NTFS en la administración de archivos? La entidad fundamental en el NTFS es el volumen. El administrador de disco de NT crea los volúmenes, que se basan en peticiones de disco lógicas, un volumen puede ocupar una porción de un disco, un disco entero o varios discos. En NTFS todos los metadatos (como información relativa al volumen) se almacenan en un archivo normal. NTFS no maneja sectores de disco individuales, sino que usan cúmulos como unidad de asignación de disco, un cumulo es un numero de sectores de disco que es una potencia de 2, el tamaño de cumulo se configura cuando se formatea un sistema de archivos NTFS, el tamaño de cumulo por omisión es el tamaño de sector en el caso de volúmenes de hasta 512 MB, 1KB para volúmenes de hasta 1GB, 2KB para volúmenes de hasta 2GB y 4KB para volúmenes mayores. Este tamaño de cumulo es menor que el sistema de archivos FAT de 16 bits y ayuda a reducir la fragmentación interna. 14. ¿Cuál es la forma en que calcula la administración de archivos el sistema NTFS? NTFS usa números de cúmulos lógicos como direcciones de disco; los asigna numerando cúmulos desde principio del disco hasta el final, con este esquema, el sistema puede calcular una distancia física en el disco (en bytes) multiplicando el LCN por el tamaño del cumulo. Un archivo en NTFS no es un simple flujo de bytes como MD-DOS o UNIX más bien, es un objeto estructurado que consisten en atributos. Cada atributo es un archivo de bytes independiente que puede crearse, eliminarse, leerse y escribirse. Algunos atributos son estándar para todos los archivos, incluido el PROGRAMACION DE SISTEMAS OPERATIVOS

7

nombre de archivo, la hora de creación y el descriptor de seguridad que especifica el control de acceso. Otros atributos son específicos para ciertas clases de archivos. 15. ¿De qué forma almacena los archivos y como los identifica para su selección dentro de la memoria? Todo archivo en NTFS se describe con uno o más registros de un arreglo que se almacena en unos archivos especial llamado tabla de archivos maestra (MFT), en el cual se guarda un puntero a cada alcance, en el caso de archivo diminuto, podría ser que hasta el atributo de datos cupiera dentro del registro MFT. Cada archivo de su volumen NTFS tiene un ID único llamado referencia de archivo, esta es una cantidad de 64 bits que consiste en un numero de archivo de 48 bits y un numero de secuencia 16 bits. El número de archivo es el número de registro de la MFT que describe el archivo. La tabla de definición de atributos indica cuales tipos de atributos se usan en el volumen y que operaciones se pueden efectuar con cada uno de ellos. El directorio raíz es el directorio de nivel más alto en la jerarquía del sistema de archivos, el archivo de mapa de bits indica cuales cúmulos de un volumen están asignados a archivos y cuales están libres. El archivo de arranque contiene el código de inicio de NT y se debe encontrar en una dirección específica del disco para que un sencillo cargador de autoarranque en ROM lo pueda localizar fácilmente. El archivo de arranque también contiene la dirección física de la MFT.

Seguridad y Proteccion 16. ¿Qué tipo de modelo de seguridad se instala en el sistema operativo? Se basa en el concepto de cuentas de usuario, el sistema operativo permite la creación de cualquier cantidad de cuentas de usuario que se pueden agrupar de cualquier manera, los accesos a los objetos del sistema pueden entonces permitirse o negarse según se desee. 17. ¿de qué forma protege al sistema operativo el modelo de seguridad? Los usuarios se identifican mediante un identificador de seguridad único, cuando un usuario entra en el sistema el sistema operativo crea un testigo de acceso de seguridad que incluye el identificador de seguridad de los usuarios, identificadores de seguridad para cualesquier grupos de lo que el usuario sea miembro y una lista de privilegios especiales de seguridad que el usuario posee como el respaldo de archivos y directorios, apagar la computadora, ingresar en el sistema de forma interactiva y modificar el reglo del sistema, etc. 18. ¿Cómo procede la validación de una cuenta de usuario? PROGRAMACION DE SISTEMAS OPERATIVOS

8

La validación de una cuenta de usuario normalmente se realiza por medio de un nombre de usuario y una contraseña, aunque el diseño modular del sistema operativo permite desarrollar paquetes de validación personalizados como un explorador de retina, huella, etc. 19. ¿En qué tipo de modelo opera el sistema operativo y como se implementa con respecto a la seguridad? Opera con un modelo cliente – servidor se usan dos clases de sujetos para controlar el acceso. Se usa el sujeto simple que es el programa de aplicación típico que un usuario ejecuta después de ingresar en el sistema, se asigna al sujeto simple un contexto de seguridad basado en el testigo de acceso de seguridad del usuario. Un sujeto servidor es un proceso implementado como servidor protegido que usa el contexto de seguridad del cliente cuando actúa a nombre de él, la técnica permite a un proceso asumir los atributos de seguridad de otro se denomina suplantación. 20. ¿de qué forma se obtienen los permisos los objetos del sistema operativo? El sistema operativo clasifica los objetos como contenedores y no contenedores, los objetos contenedores como los directorios, pueden contener lógicamente otros objetos, por omisión cuando se crea un objeto dentro de un objeto contenedor, el nuevo objeto hereda permisos del objeto padre y también lo hace si el usuario copia un archivo de un directorio a un directorio nuevo, el archivo heredara los permisos del directorio de destino, sin embargo, si se cambian los permisos de un directorio, los nuevos permisos no aplican automáticamente a los archivos y subdirectorios existentes, el usuario pasa una archivo a un nuevo directorio, los permisos actuales del archivo se transfieren con él.

Determinación de la Arquitectura 21. ¿Cuáles deben de ser las características que debe tener el sistema operativo para crear la arquitectura de diseño?  que sea compatible con aplicaciones hechas en plataformas anteriores, es decir, que corrieran la mayoría de las aplicaciones existentes hechas sobre versiones anteriores a la actual (las de 16 bits de MS-DOS y Microsoft Windows 3.1).  que reúna los requisitos gubernamentales para POSIX (Portable Operating System Interface for UNIX).  Que reúna los requisitos de la industria y del gobierno para la seguridad del sistema operativo.  Que sea fácilmente adaptable al mercado actual soportando código Unicode.  Que sea un sistema que corra y balance los procesos de forma paralela en varios procesadores a la vez.  Sea un sistema operativo de memoria virtual.

22. ¿Cuál es la arquitectura que se debe crear para su buen desarrollo? PROGRAMACION DE SISTEMAS OPERATIVOS

9

Esta arquitectura debe de diseñarse del tipo cliente-servidor, la arquitectura que se debe diseñar debe estar compuesta por una serie de componentes separados donde cada cual es responsable de sus funciones y brinden servicios a otros componentes, los programas de aplicación son contemplados por el sistema operativo como si fuesen clientes a los que hay que servir y para lo cual viene equipado con distintas entidades servidoras.

23. ¿Cuál son las categorías en las que se pueden dividir los procesos? Estas categorías deben estar asociadas a los modos actuales por los microprocesadores, estos modos proporcionan a los programas a los programas que corren dentro de ellos diferentes niveles de privilegios para acceder al hardware o a otros programas que están corriendo en el sistema. Se pueden crear dos tipos de privilegios: modo privilegiado (kernel) y modo no privilegiado (usuario).

PROGRAMACION DE SISTEMAS OPERATIVOS

10

24. ¿En qué consisten esos dos privilegios identificados para el diseño de la arquitectura? El modo usuario es un modo menos privilegiado de funcionamiento sin acceso directo al hardware, el código que corre en este modo solo actúa en su propio espacio de dirección, este usara las APIs (System Aplication Program Interfaces) para pedir los servicios del sistema. El modo kernel es un modo privilegiado de funcionamiento, donde el código tiene acceso directo a todo el hardware y toda la memoria, incluso a los espacios de dirección de todos los procesos del modo usuario, el kernel es un conjunto de servicios disponibles a todos los componentes del sistema operativo, donde cada grupo de servicios es manipulado por componentes que son totalmente independientes (entre ellos el núcleo) entre sí y se comunican a través de interfaces bien definidas. 25. ¿Cuáles son las características más significativas en los sistemas operativos modernos? Dan soporte a un único usuario interactivo, y por lo tanto son multitarea, ya que, con el incremento de la velocidad y la capacidad de memoria de los microprocesadores junto con el soporte para memoria virtual, las aplicaciones se han vuelto más complejas e interrelacionadas. En un entorno multitarea el usuario abre cada aplicación cuando la necesita y la deja abierta, la información se puede mover entre las aplicaciones fácilmente, cada aplicación tiene una o más ventanas abiertas y una interfaz gráfica con un dispositivo puntero tal como un ratón permite al usuario navegar fácilmente en este entorno. Una segunda motivación para la multitarea es el aumento de la computación cliente/servidor, este se puede llevar acabo en una red de área local formada por computadoras personales y servidores o por medio de un enlace entre un sistema usuario y un gran Host. Una aplicación puede implicar a uno o más computadoras personales y uno o más dispositivos de servidor, para proporcionar la respuesta requerida, el sistema operativo necesita dar soporte al hardware de comunicación en tiempo real, los protocolos de comunicación asociados y las arquitecturas de transferencias de datos y a la vez dar soporte a la interacción de los usuarios.

Elaboración del plan de desarrollo 26. ¿Cuáles son las etapas que se deben considerar para el desarrollo de un proyecto de un sistema operativo?  Métricas de Software las cuales involucra las mediciones y métricas para el proyecto para entender tanto el proyecto técnico que se va a utilizar para el desarrollo del sistema operativo, el proceso se mide para intentar mejorarlo e intentar aumentar su calidad de los ya existentes.  Estimación que es una de las actividades cruciales del proceso de gestión de proyectos de software donde se tiene que obtener estimaciones de esfuerzo humano requerido (personas-mes) de la duración cronológica del proyecto (fechas) y del costo (dinero).

PROGRAMACION DE SISTEMAS OPERATIVOS

11







Análisis de riesgos el cual consiste realmente en una serie de pasos de control de los riesgos que nos permiten combatirlos e identificar las estrategias de control de riesgos, resolución de riesgos y supervisión de riesgos, estos pasos se aplican a lo largo del proceso de ingeniería de software. Planificación el proyecto la cual se identifica con una serie de tareas del proyecto, en el cual, se establecen interdependencias entre las tareas, se contempla el esfuerzo asociado a cada tarea, la cual se hace la asignación de personal y de otros recursos. Seguimiento y control el cual el gestor del proyecto sigue la pista a cada tarea establecida en la agenda, si una tarea se sale de la agenda el gestor puede utilizar una herramienta de planificación automática sobre el proyecto para determinar el impacto del error de planificación sobre los hitos intermedios y sobre la fecha final de entrega. En este caso se pueden reasignar recursos, reordenar tareas, modificar los compromisos de entrega para resolver el problema no detectado, de este modo se puede controlar mejor el desarrollo del software.

Análisis de los riegos del proyecto. 27. ¿Cuáles son las consecuencias o causas que pueden generar el no realizar un análisis de los riegos del proyecto? Pueden ser: Que los requerimientos no estén bien definidos. Que el jefe del proyecto no sea muy experto. Que el equipo del proyecto no esté bien formado en el entorno tecnológico del proyecto. 28. ¿Cuál es el plan de gestión de riesgos que se debe seguir para eliminar los riesgos del proyecto?  Estimación de riesgos: ya que los riesgos son “la perdida no esperada” o la muestra al riesgo es igual a la probabilidad de perdida no esperada multiplicada por la magnitud de la perdida.  Estimación de la magnitud de la pedida: consiste en la audacia de las distribuciones de probabilidades asociadas con cada uno de los riesgos.  Estimación de la probabilidad de perdida: la cual se usan las técnicas para mejorar la exactitud de esta estimación subjetiva. Disponer de la persona que esté más familiarizada con el sistema. Usar técnicas Delphi o de consenso en grupo. Realizar analogías con apuestas “aceptarías esta apuesta”. Utilice la calibración mediante objetivos.  Priorización de los riesgos: sirve para aclarar los criterios para anticipar los riesgos y establecer actividades de control de sus operaciones con el fin de mantener o disminuir el riesgo una vez que haya creado la lista de los riegos de

PROGRAMACION DE SISTEMAS OPERATIVOS

12

 

la planificación, el paso siguiente es prevalecer los riesgos donde se va a ajustar el esfuerzo para la gestión de riesgo. Control de riesgos: se deben de tener en cuenta tres aspectos de control de riesgos:  planificación de la gestión de riesgos: cómo afrontar y planificar las actividades de gestión de riesgos en el proyecto a desarrollar para que controle cada uno de los riesgos de prioridad alta.  resolución de riesgos: son los métodos que controlan un diseño:  Evite el riesgo  Eliminar el origen  Recordar  Asuma el riesgo  Comunique el riesgo  Controle el riesgo  Riesgo, alto riesgo y al azar.  monitorización de riesgo.

Nivel de Abstracción del sistema operativo 29. ¿Cuáles son los niveles de abstracción de un sistema operativo? Se realiza una proyección de los componentes más fundamentales del sistema operativo a través de la abstracción de los diferentes componentes. Los componentes en modo núcleo son:  Sistema ejecutivo: contiene los servicios básicos del sistema operativo, como la gestión de memoria, la gestión de los procesos e hilos, seguridad, E/S y comunicación entre procesos.  El núcleo: está formado por los componentes más fundamentales del sistema operativo. El núcleo gestiona la planificación de hilos, el intercambio de procesos, las excepciones, el manejo de las interrupciones y la sincronización de multiprocesadores. A diferencia del resto del sistema el sistema ejecutivo y el nivel del usuario, el código del núcleo no se ejecuta en hilos, por tanto, es la única parte del sistema operativo que no es expulsable o paginable.  Capa de Abstracción de Hardware (HAL) realiza una proyección entre mandatos y respuestas hardware genérico y aquellos que son propios de una plataforma especifica. Aísla el sistema operativo de las diferencias de hardware específicas de la plataforma, el HAL hace que el bus del sistema, el controlador de acceso a memoria directa (DMA), el controlador de interrupciones, los temporizadores del sistema y módulos de memoria de cada máquina parezcan los mismos al núcleo. También entrega el soporte necesario para multiprocesamiento simétrico (SMP).  Controladores de dispositivos: incluye tanto sistemas de ficheros como controladores de dispositivos hardware que traducen funciones de E/S de usuario en peticiones especificas a dispositivos hardware de E/S.

PROGRAMACION DE SISTEMAS OPERATIVOS

13



Gestión de ventanas y sistemas de gráficos: implementa las funciones de la interfaz gráfica de usuario (GUI), tales como la gestión de ventanas, los controles de la interfaz de usuario y el dibujo.

La evolución del diseño del sistema operativo. Windows inicia con un sistema operativo conocido como MS-DOS o PC-DOS. Que apareció en 1981, estaba compuesto por 4000 líneas de código fuente del ensamblador y ejecutaba 8 Kbytes de memoria, utilizando n microprocesador Intel 8086. Después Windows desarrollo DOS 1.0 que apareció en 1983, este sistema daba soporte al disco duro y proporcionaba jerarquía de directorios, un disco podía contener un solo directorio de ficheros soportando un máximo de 64 ficheros, proporcionaba funciones que eran realizadas como programas externos en la versión 1, entre las capacidades añadidas se encontraban algunas características de los sistemas UNIX como la redirección de E/S que consiste en la capacidad de modificar la entrada o salida de una determinada aplicación t la impresión en segundo plano, la porción de memoria residente creció a 24 Kbytes. Después se introdujo el DOS 3.0, el sistema operativo utilizaba 80286 como un 8086 rápido, si daba soporte a un nuevo teclado y periféricos de disco, incluso así, los requisitos de memoria se incrementaron a 36 Kbytes, hubo actualizaciones notables que apareció en 1984, daba soporte a la conexión a través de la red para PC, el tamaño de la porción residente no cambio, esto se logró incrementado la cantidad del sistema operativo que podía ser intercambiado. La versión DOS 3.3 apareció en 1987 y daba soporte a la nueva línea de máquinas IBM las PS/2. La porción residente había alcanzado un mínimo de 46 Kbytes incrementándose esta cantidad si se seleccionaban ciertas extensiones opcionales.

PROGRAMACION DE SISTEMAS OPERATIVOS

14

En 1990 Microsoft tenía una versión de la GUI conocida como Windows 3.0 que incorporaba algunas de las características más amigables de Macintosh. Después se desarrolló un nuevo y propio sistema operativo desde cero, que domino Windows NT, el cual explota las capacidades de los monoprocesadores contemporáneos y proporciona multitarea en un entorno mono o multiusuario. La primera versión de NT fue en 1993 con la misma interfaz gráfica que Windows 3.1 sin embargo, NT 3.1 era un nuevo sistema operativo de 32 bits con la capacidad de dar soporte a las aplicaciones Windows, a las antiguas aplicaciones de DOS. Después produjo el NT 4.0 tiene la misma arquitectura interna que 3.x, el cambio externo más notable es que NT4.0 proporciona la misma interfaz de usuario que Windows 95. El cambio arquitectónico más importante es que varios componentes gráficos que ejecutan en modo usuario como parte del subsistema Win32 en 3.x se mueven al sistema ejecutivo de Windows NT, que ejecuta en modo núcleo. El beneficio de este cambio consiste en la aceleración de estas funciones importantes. En 2000 Microsoft introdujo la siguiente actualización que se materializo en el sistema Windows 2000, la cual es la edición de servicios y funciones que dan soporte al procesamiento distribuido, el elemento central de las nuevas características de Windows 2000 es Active Directory que es un servicio de directorios distribuido capaz de realiza una proyección entre nombres de objetos arbitrarios y cualquier información sobre dichos objetos. Windows 2000 es la distinción entre Windows 2000 server y el escritorio ya que el núcleo, la arquitectura ejecutiva y los servicios son los mismos, pero Windows 2000 server incluye algunos servicios requeridos para su uso como servidor de red. En 2001 apareció la última versión de escritorio Windows conocida como XP, de 64 bits, en el año 2003, se presentó una nueva versión de servidor conoció como Windows server 2003, existen versiones disponibles de 32 y 64 bits, las versiones de 64 bits XP y Server 2003 están diseñadas específicamente para el hardware del Intel Itanium de 64 bits.

Las características diferenciales de un sistema operativo 

Nivel de abstracción: se puede establecer el nivel e comportamiento global del sistema en el que se toma en cuenta el funcionamiento, rendimiento, confiabilidad, etc., así, una excelente arquitectura hace del diseño un sistema fácil de establecer, ya que el usuario solo visualiza lo que el sistema hace y no se preocupa por el cómo lo hace.



Evolución del diseño del sistema: el diseño de la arquitectura sirve como memoria para el sistema, lo que va evolucionando en el tiempo de desarrollo, este sirve para el proceso de mejorar el sistema, ya que se conocen los antecedentes y el camino hacia lo que se quiere lograr o mejorar del diseño que ya se tenía.

PROGRAMACION DE SISTEMAS OPERATIVOS

15

Dificultades y obstáculos para diseñar e implementar un sistema operativo. El diseñar un sistema operativo es una labor complicada ya que son programas muy extensos, nada comparable con los pequeños programas de aplicación, ya que estos no involucran tantas situaciones que se deben de contemplar para poder llegar a diseñar de manera correcta un sistema operativo.  Como ya lo dijimos anteriormente, los sistemas operativos son programas extremadamente grandes, ninguna persona por si sola puede sentarse frente a una computadora y producir un sistema operativo, ya que por ejemplo todas las versiones de UNIX rebasan el millón de líneas de código y Windows tiene más de 29 millones de líneas de código., es por eso que se convierte en una tarea bastante compleja para la producción de un sistema operativo que cumpla con los criterios óptimos de rendimiento y funcionalidad. 

Para manejar la concurrencia de varios usuarios y múltiples dispositivos de E/S todos los cuales están activos a la vez, administrar la concurrencia es mucha más difícil que administra una sola actividad secuencia.



Los sistemas operativos suelen diseñarse de modo que sean portables, lo que significa, que tiene que funcionar en múltiples plataformas de hardware, así como también se debe reconocer ciertos o inclusos miles de dispositivos de E/S los cuales se diseñan de forma independiente.

Reflexiones ¿Qué aspectos considerar para diseñar un sistema operativo? Como diseñadores de un sistema operativo debemos de contemplar varias cuestiones que son importante para realizar la implementación del diseño:  El flujo de datos: cuales son los movimientos de datos hacía, alrededor y desde el sistema.  Almacenes de datos: conjuntos permanentes o temporales de datos.  Procesos: actividades para aceptar, manejar y suministrar datos e información, pueden ser manuales o basadas en computadora.  Procedimientos: métodos y rutinas para utilizar el sistema de información y lograr con ello los resultados esperados.  Controles: estándares y lineamientos para determinar si las actividades están ocurriendo en la forma anticipada o aceptada, es decir, si se encuentra bajo control, así mismo, especificar las acciones que deben emprenderse cuando ocurren problemas o presentan circunstancias

PROGRAMACION DE SISTEMAS OPERATIVOS

16



inesperadas. Puede incluirse un reporte sobre las excepciones o procedimientos para la corrección de los problemas. Funciones del personal: las responsabilidades de todas las personas que tiene que ver con el nuevo sistema incluyendo usuarios, operadores de computadora y personal de apoyo, abarca todo el espectro de componentes del sistema, incluso desde la entrada de datos hasta la distribución de salidas o resultados. A menudo las funciones del personal se establecen en forma de procedimiento.

¿Qué ventajas existen al tener códigos de acceso libre como los ya diseñados para Linux? Las ventajas que pueden existir al tener códigos de acceso libre son:  Libre uso: cualquier persona puede disponer del software libre bajo las condiciones de la licencia.  Bajo costo o gratuito  Existe la libertad de conocimiento y trabajo cooperativo entre sus usuarios lo que permite una mayor innovación tecnológica.  Rápida corrección de errores facilitando el trabajo comunitario a través de internet y de su libre acceso al código fuente.  Total independencia de un proveedor, el usuario puede administrar libremente su crecimiento y operación con total autonomía.  Independencia de las condiciones de mercado a salvo de cambios drásticos por parte del proveedor o modificaciones que realice por las condiciones del mercado o baja rentabilidad.  Contribuye a la formación de profesionales y el desarrollo de la industria local generando conocimiento y trabajo.  Facilidad para personalizar el software de acuerdo a las necesidades del usuario.  Posibilidad de traducir el mismo a cualquier idioma, inclusive a una lengua regional o indígena.  Independencia tecnológica de los estados con respecto a grandes grupos económicos.  Mayor seguridad y protección de los datos, disminuyendo los riesgos de filtración, aumenta la imposibilidad de acceso., y manipulación de los datos críticos del estado.  Asegura la durabilidad de la información y su migración gracia al acceso del código fuente.  Disminuye los riesgos de puertas traseras que introduzcan códigos maliciosos o de espionaje.  Elimina el sistema operativo monousuario ya que permite el uso y trabajo de varios usuarios al mismo tiempo.  Elimina el derecho exclusivo de la innovación.

PROGRAMACION DE SISTEMAS OPERATIVOS

17

¿Qué plus ofrecerías al diseñar un sistema con respecto a los ya diseñados en el mercado? A grandes rasgos ofrecería al diseñar un sistema operativo el que tenga un sistema de escucha de usuario en el que podríamos realizar actividades dentro del sistema operativo como que a través de la voz poder abrir aplicaciones o darle instrucciones al sistema operativo de borrar, copiar, pegar, etc. Otro ejemplo de que ofrecería es a través de la voz poder darle el dictado a la computadora mientras el escribe lo que escucha dentro de un formato de archivos doc, exe, o xls. Así disminuirá el tiempo de escribir.

Conclusiones Crear un sistema operativo es muy complicado ya que el diseñar un programa tan grande y extenso implican una variedad de problemáticas y encargos que deben contemplarse antes del diseño e implementación del diseño, pues estos no solo deben encargarse de la administración especifica de los archivos (borrar, organizar etc.) sino que también en el diseño de interfaces donde se establece la forma, color, tamaño en la que el usuario visualiza como manipular los archivos y los dispositivos. Es por ello que construir un sistema operativo implica muchas líneas de código que es un trabajo muy grande para una sola persona.

Referencias Bibliográficas 

Documento proporcionado por la UNAdM visto el 15 de Noviembre del 2017: https://unadmexico.blackboard.com/bbcswebdav/institution/DCEIT/2016_S1B2/DS/03/DPSO/U4/Unidad_4_DiseNo_de_sistemas_operativos.pdf



Tanenbaum, A. (2009) Sistemas Operativos Modernos. Tercera Edición. Edición en español. Editorial Pearson Educación México, Impreso en México.



Stallings, W. (2005) Sistemas Operativos. Primera Edición en castellano. Editorial Pearson Prentice Hall. Impreso en España.

PROGRAMACION DE SISTEMAS OPERATIVOS

18



Wolf, G. (2015) Fundamentos de Sistemas Operativos. Impreso en México. Primera Edición. Editorial Lubimsa.



Stallings, W. (1997) Sistemas Operativos. Impreso en España. Segunda Edición. Editorial Prentice Hall.



Silberschatz, G. (1999) Sistemas Operativos. Quinta Edición. México. Editorial Addison Wesley Longman de México.



Video de YouTube: “Estructura de archivos en sistemas operativos Windows, Linux y OSX” Visto el 15 de noviembre del 2017: https://www.youtube.com/watch?v=AhZ6mmPlGaE

Impreso en

 Video de YouTube: “Aspectos de diseño en sistemas operativos” Visto el 16 de noviembre del 2017: https://www.youtube.com/watch?v=ezoaS8aM3kY

PROGRAMACION DE SISTEMAS OPERATIVOS

19