0
Factores que influyen en el diseño e implementación de un S.O.
IMPLEMENTACION
DISEÑO DE
LA INTERFAZ
CONOCER SOBRE
LENGUAJE DE
PROGRAMACION
Seguridad
Asignación
de
nombres
Estructura
del s.o.
Rendimiento
ensamblador C y C++
Decidir el diseño
y por donde
empezar
Interfaz grafica
Interfaz gráfica atractiva, clara y fácil.
Inicio rápido del sistema operativo.
Accesibilidad para personas con alguna discapacidad.
Manejo fácil del sistema de archivos.
Estabilidad ante problemas en la ejecución de programas de
aplicación.
1
Decide el diseño
Existen núcleos monolíticos y micronúcleos. Los monolíticos
implementan todos los servicios en el núcleo, mientras que los
micronúcleos tienen un núcleo pequeño combinado con
servicios de implementación de usuario. En general, los
núcleos monolíticos son más rápidos, pero los micronúcleos
tienen un mejor aislamiento de fallos y fiabilidad.
2
Decide si prefieres hacerlo todo tú mismo desde cero o si
hay un núcleo existente que te gustaría usar como base para construir. Por ejemplo, programar Linux desde cero
será un proyecto para aquellos que le gustaría crear su
propia distribución de Linux.
3
Especifica qué plataforma de procesador será compatible con tu sistema operativo. Te recomendamos
las dos más comunes para las computadoras personales:
AI-32 y x86_64.
Si bien es posible crear un sistema operativo con un lenguaje como
Pascal o BASIC, será mejor si usas C o el ensamblador. El
ensamblador es absolutamente necesario, ya que algunas partes
vitales de un sistema operativo lo necesitan. Por su parte, C++
contiene palabras clave que necesitan otro sistema operativo
totalmente integrado para poder funcionar.
Decide qué lenguaje de programación vas a
utilizar.
La seguridad tiene dos mitades: impide el acceso a los objetos que no
tienen derecho a acceder y permite a los usuarios acceder a objetos
que tienen todo el derecho de acceso. A veces parece que los
sistemas operativos están escritas por los fascistas; por ejemplo, es
imposible compartir cualquier objeto en Unix de una manera
significativa. Otras veces, parece como si estuvieran escritos por
personas que no tienen la menor idea de lo que significa la
privacidad. La verdadera seguridad tiene muchas implicaciones.
La seguridad es una de las características más buscados en un
sistema operativo en la actualidad. Con las computadoras ahora están
utilizando para almacenar grandes cantidades de datos, a partir de la
información gubernamental de alto secreto a las empresas y hacer el
seguimiento de negocios de números de cuentas bancarias, la
seguridad en un sistema operativo es una necesidad.
SEGURIDAD
Diseño de los Sistemas Operativos.
MODELO CLIENTE - SERVIDOR
ESTE ENFOQUE BUSCA IMPLEMENTAR LA MAYORIA DE LAS FUNCIONES DEL SISTEMA OPERATIVO EN PROCESOS “SERVIDORES", DEJANDO UN KERNEL MÍNIMO.
PARA SOLICITAR UN SERVICIO, UN PROCESO DEL USUARIO (“CLIENTE”) ENVIA LA SOLICITUD A UN PROCESO “SERVIDOR” , QUE REALIZA ELTRABAJO Y DEVUELVE LA RESPUESTA .
EN ESTE MODELO, EL KERNEL BASICAMENTE SE ENCARGA DE LA COMUNICACIÓN ENTRE CLIENTES Y SERVIDORES.
SON ADAPTABLES A SISTEMAS DISTRIBUIDOS.
EJEMPLOS: MINIX, MACH, AMOEBA, WINDOWS NT.
7
9
Estructura del sistema capas (NIVELES)
Capa 5: Se encuentra la interfaz de usuario.
Capa 4: Aloja los programas de usuario.
Capa 3: Se controlan los dispositivos E/S (entrada y
salida).
Capa 2: Se administra la comunicación inter-proceso
y la consola del operador.
Capa 1: Administración de memoria y discos.
Capa 0: Correspondiente al Hardware, realizando
asignación del procesador, también alterna entre
procesos cuando ocurren interrupciones o se han
expirado y proporciona multiprogramación básica de la
CPU.
Asignación
de nombres
Casi todas las estructuras de datos duraderas que utiliza un SO tienen algún tipo de nombre o identificador (nombre de dispositivo, de fichero, identificador de proceso, etc.)
Es común que los nombres se asignen a dos niveles:
Externo: cadenas de caracteres (estructuradas o no) que usan los usuarios .
Interno: identificacion usada internamente por el SO.
o Debe existir algún mecanismo que permita asociar unos nombres con otros. Ejemplo: los directorios (enlazan nombres de fichero con nodos-i).
o Un buen diseño debe estudiar con detenimiento cuantos espacios de nombres van a necesitarse, qué sintaxis tendrán los nombres, cómo van a distinguirse, etc. 10
Rendimiento
En condiciones iguales, un sistema operativo rápido es mejorque uno lento. Sin embargo, un sistema operativo rápido y poco confiable no es tan bueno como uno lento peroconfiable.
Un método general para mejorar el desempeño es sacrificartiempo a cambio de espacio.
Una técnica muy conocida para mejorar el desempeño es eluso de cachés.
Los procesos y programas no actúan al azar; exhiben un altogrado de localidad en el tiempo y en el espacio, y hay variasformas de aprovechar esta información para mejorar el desempeño.
11
Tendencias en Sistemas Operativos.
Una tendencia actual es hacia los llamados Sistemas Abiertos, lo cual indica que estos sistemas operativos trabajan sobre una gran variedad de plataformas con independencia de las empresas fabricantes.
Software NO Libre: Se refiere a cualquier programa en el que su código fuente no está disponible o el acceso a éste se encuentra restringido. Caso: Windows.
Software Libre: Es aquel que proporciona a los usuarios la libertad de ejecutar, copiar, distribuir, estudiar, cambiar y mejorar el software. Caso: Linux.
12
Top Related