PSO Unidad 5

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 38

PROGRAMACIÓN DE

SISTEMAS OPERATIVOS
UNIDAD 5. DISEÑO DE SISTEMAS
OPERATIVOS

Elaborado por: Ing. Juan Pablo Pérez Moreno


5.1 Fundamentos del diseño de
sistemas operativos
• El desarrollo de un sistema operativo, es pensar
primero de forma global sobre el proceso que
se llevará acabo para el desarrollo de los
detalles como la manipulación de la memoria,
el manejo de dispositivos de E/S y los procesos
a seguir para que realice una buena
administración de archivos, sin dejar de lado la
seguridad y protección con la que debe contar
el nuevo sistema a desarrollar

Elaborado por: Ing. Juan Pablo Pérez Moreno


Fundamentos del diseño de sistemas
operativos
• El diseño de un sistema operativo se basa en el propósito para el cual
se vaya a utilizar
Tipo de
sistema Mecanismo
Operativo Estructura y políticas

Tipo de Módulos
Hardware

Elaborado por: Ing. Juan Pablo Pérez Moreno


Objetivos de diseño en S.O

Usuario El SO debe ser


Sistema El SO debería ser fácil
de diseñar,
conveniente para su
implementar y
uso, fácil de aprender,
mantener, también
confiable, seguro y
flexible, confiable, libre
rápido.
de errores y eficiente.

Elaborado por: Ing. Juan Pablo Pérez Moreno


Implementación

Lenguajes de • Ensamblador
• C, C++
programación
• Niveles cercanos al HW en ensamblador
S.O Modernos • Cuerpo principal C
• Combinación entre C, C++ Python

Lenguajes de alto • Mas HW


• De acuerdo a al arq
nivel
Elaborado por: Ing. Juan Pablo Pérez Moreno
5.1.1 Arquitectura del sistema
operativo
• La arquitectura de un sistema operativo se
basa en un esquema del funcionamiento del
sistema en el que relaciona las funciones de
componentes hardware, con los
componentes software, y con la interacción
humana.
• De esta forma entendemos que habrá
diferentes formas de realizar estas
interacciones y por tanto distintos tipos de
arquitecturas para un sistema operativo.

Elaborado por: Ing. Juan Pablo Pérez Moreno


Arquitectura del sistema operativo

Monolítico Por Capas Modulo

Micronúcleo Maquinas
Híbridos
o Microkernel Virtuales

Elaborado por: Ing. Juan Pablo Pérez Moreno


MONOLÍTICO
• Los sistemas operativos monolíticos
se diferencian de otros debido a que
el núcleo cuenta con las cuatro
componentes fundamentales del
sistema operativo, estas funciones
son la administración de la memoria
principal, los planificadores de
procesos, organización de ficheros
y la gestión de entrada salida en
los distintos dispositivos

Elaborado por: Ing. Juan Pablo Pérez Moreno


POR CAPAS, JERÁRQUICOS O NIVELES
• El Sistema Operativo se estructura
en módulos mediante divisiones
en capas o subcapas, la estructura
se organiza con una jerarquía de
capas donde cada una de ellas
ofrece una interfaz sencilla y clara
para el mejor entendimiento para
el usuario. Capa 0 la interna y
capa 6 externa

Elaborado por: Ing. Juan Pablo Pérez Moreno


MODULAR
• La mayoría de los sistemas
operativos modernos
implementan este enfoque.
Lo que caracteriza este tipo
de estructura es que el
kernel se compone por
módulos, y cada uno de
estos módulos se encuentra
separado de forma
independiente, tal que, si
alguno falla no afecta a los
otros, ni al núcleo

Elaborado por: Ing. Juan Pablo Pérez Moreno


MICROKERNEL
• El objetivo es conseguir una
unión entre la sencillez y el
rendimiento de la
arquitectura monolítica con
la seguridad y organización
de la arquitectura jerárquica.
La idea fundamental es
obtener un núcleo "lo más
compacto y efectivo posible,
y sobrecargarlo lo más
mínimo.
Elaborado por: Ing. Juan Pablo Pérez Moreno
HIBIRIDO
• Este tipo de arquitectura
consiste básicamente en un
esquema
de micronúcleo que incluye
algo de código
complementario para
hacerlo más rápido,
aunque buena parte de las
funciones del sistema
operativo siguen
ejecutándose en modo
usuario
Elaborado por: Ing. Juan Pablo Pérez Moreno
MAQUINA VIRTUAL
• Una máquina virtual lleva la
propuesta por capas a su
conclusión lógica. Trata el
hardware y el kernel del sistema
operativo como si fuera todo
hardware.
• Una máquina virtual provee una
interfaz idéntica al hardware
primitivo subyacente.
• El sistema operativo crea la
ilusión de múltiples procesos,
cada uno ejecutando en su
propio procesador con su propia
memoria(virtual).

Elaborado por: Ing. Juan Pablo Pérez Moreno


5.1.2 Características funcionales
del sistema operativo
• El definir la arquitectura a usar en el
momento del desarrollo de un sistema da
origen a los requerimientos, los cuales son los
puntos a seguir y establecen el
funcionamiento o comportamiento que el
sistema va a tener.

Elaborado por: Ing. Juan Pablo Pérez Moreno


Características funcionales del sistema
operativo
Abstracción Evolución
Donde los desarrolladores pueden El diseño de la arquitectura sirve
establecer el comportamiento global como memoria para el sistema, lo
del sistema, en el que se toma en que va evolucionando en tiempo de
cuenta el funcionamiento, desarrollo, este sirve para el proceso
rendimiento, confiabilidad, etc., así, de mejorar el sistema, ya que se
una excelente arquitectura hace del conocen los antecedentes y el
diseño un sistema fácil de establecer, camino hacia lo que se quiere lograr,
ya que el usuario solo visualiza lo cambiar o mejorar del diseño que ya
que el sistema hace y no se se tenía.
preocupa por el cómo lo hace
Elaborado por: Ing. Juan Pablo Pérez Moreno
5.2 Diseño de interfaces
• En el entorno de interacción persona-
ordenador, la interfaz (o interfaz de usuario)
es lo que permite que la interacción entre
persona y ordenador ocurra. se tiene que
asegurar de que el proceso de interacción se
puede efectuar de manera fácil e intuitiva y
que el usuario puede acceder a la información
o ejecutar las acciones que desea

Elaborado por: Ing. Juan Pablo Pérez Moreno


DISEÑO DE INTERFACES

Interfaz
Interfaz de Interfaz Humano -
grafica de
usuario alternativa Computador
usuario

Recuerda que el diseño de interfaces es lo que el usuario


podrá ver y la manera en que se comunica con la
computadora y para que cumpla con su función debe cubrir
ciertos aspectos básicos.

Elaborado por: Ing. Juan Pablo Pérez Moreno


DISEÑO DE INTERFACES
Humano-computador
• Relacionada con el estudio, diseño,
construcción e implementación de Interfaz en Texto
sistemas de cómputo interactivos • Solo eran capaces de desplegar
centrados en el usuario. códigos ASCII en pantalla. Estos
➢diseñar pantallas o menús programas trataban al área de
➢dispositivos de interfaz, nuevas despliegue como un arreglo de
técnicas de traficación por bloques, donde cada uno solo
computadora y técnicas de diálogo puede contener un carácter.

Elaborado por: Ing. Juan Pablo Pérez Moreno


DISEÑO DE INTERFACES

Interfaces alternativas
• Interfaz basada en el habla
Grafica de usuario
• Interfaz neuronal
• es un programa de interfaz que
aprovecha las capacidades de
despliegue gráfico de la
computadora que permite hacer
más sencillo el uso de los
programas.

Elaborado por: Ing. Juan Pablo Pérez Moreno


5.2.1 Paradigmas en el diseño de interfaces

• Un paradigma es un modelo explicativo compartido por


una comunidad científica en un momento determinado.
En un sentido laxo, se utiliza el término a modo de
“ejemplo” o “modelo
• Es el esquema o patrón que siempre sigue siendo algo
tan cotidiano que damos por hecho que así se tiene que
hacer

Elaborado por: Ing. Juan Pablo Pérez Moreno


Paradigmas en el diseño de interfaces

Orientada a Guiado por


Imperativos Funcional Lógica Estructurada
objetos eventos

Elaborado por: Ing. Juan Pablo Pérez Moreno


5.2.2 Llamadas al sistema
• Una llamada al sistema es una rutina que permite a una
aplicación de usuario solicitar acciones que requieren
privilegios especiales. La adición de llamadas al sistema es una
de varias maneras de ampliar las funciones proporcionadas por
el kernel.
• Una de las maneras que existe para que los procesos y el
sistema operativo puedan comunicarse son las llamadas al
sistema.

Elaborado por: Ing. Juan Pablo Pérez Moreno


• Todo procesador moderno posee al menos dos modos de
funcionamiento distintos modo kernel (Protected Mode) y modo
usuario (System Management Mode – SMM). A grandes rasgos las
diferencias entre estos dos modos son las siguientes:

Modo Kernel Modo usuario


• Se encuentran disponibles todas • Tan sólo un subconjunto de las
las instrucciones y funcionalidades instrucciones y funcionalidades
que la arquitectura del procesador que la arquitectura del procesador
es capaz de brindar, sin ningún ofrece se encuentran disponibles.
tipo de restricciones En es

Elaborado por: Ing. Juan Pablo Pérez Moreno


5.3 Programación y desempeño
del sistema operativo
• Recuerda que un sistema operativo, aparte
de controlar el hardware, crea un entorno
para el usuario–máquina, esto vuelve la
tarea difícil ya que se requiere, como lo
hemos mencionado, algo que sea atractivo
y a la vez funcional. Es decir, que todos los
componentes de un equipo físico trabajen
como parte de una misma máquina
logrando así que cada componente se
integre a otro, cada uno en su función y
traspasando la información que tenga que
enviar a otro componente.
Elaborado por: Ing. Juan Pablo Pérez Moreno
5.3.1 Estructura del sistema operativo
Arq. Maquina Arq. Kernel
Monotarea
virtual monolítico

Cliente- Arq.
Multitarea
Servidor Microkernel

Arq. Orientada
Monousuario Multiproceso
a objetos

Arq. Cliente -
Multiusuario Monoproceso
Servidor

Elaborado por: Ing. Juan Pablo Pérez Moreno


5.3.2 Mecanismos del sistema operativo
Los mecanismos son parte de
la estructura del sistema
Mecanismos operativo y tienen
estructuras, arreglos y
uniones.

Las políticas van enfocadas a


los procesos de cada usuario;
la separación de estos
Políticas conceptos ayuda a la
coherencia y estructura en el
diseño de un sistema
operativo

Elaborado por: Ing. Juan Pablo Pérez Moreno


Mecanismos del sistema operativo
• Los mecanismos se pueden implementar en el núcleo y las políticas fuera o dentro
del núcleo
• Ejemplo 1. Planificación de procesos
Mecanismo: colas multinivel por prioridad donde el planificador siempre
selecciona al proceso listo de mayor prioridad
Política: planificación apropiativa o no, asignación de prioridades a procesos por
usuario, etc.
1. Ejemplo 2. Gestión de la memoria virtual
Mecanismo: administración de la MMU, listas de paginas ocupadas y libres,
transferencia de pagina entre memoria y disco
Política: reemplazo de paginas global o local, algoritmo de reemplazo de paginas,

Elaborado por: Ing. Juan Pablo Pérez Moreno


5.3.3 Estructuras estáticas y/o dinámicas
• El desarrollo de la arquitectura del sistema operativo se refiere
a la estructura que contendrá el sistema o forma del mismo,
este tipo de estructuras dinámicas o estáticas, son usadas en
las líneas de código y se pueden clasificar de dos tipos:

Elaborado por: Ing. Juan Pablo Pérez Moreno


Estructuras estáticas y/o dinámicas

• Se caracterizan por su fácil comprensión;


su programación es más simple y su uso
Estáticas es más rápido ya que no existen estos
cambios y sus datos quedan fijos.

• Este tipo de estructuras se distingue por


ser más flexibles y permiten adaptarse a
Dinámicas todos los recursos disponibles,

Elaborado por: Ing. Juan Pablo Pérez Moreno


5.3.4 Implementación descendente o
ascendente
• Una vez que ya tienes decididos todos los elementos a utilizar
en el diseño, el siguiente paso es decidir cómo vas a
implementar el sistema. Para la implementación de un
sistema, existen diferentes tipos de técnicas que son de gran
utilidad para llevar a cabo este proceso

Elaborado por: Ing. Juan Pablo Pérez Moreno


Implementación descendente o ascendente

• Esta técnica permite ocultar las


interrupciones, convirtiéndolas en
operaciones de sincronización entre
Ocultación hilos. El ocultar la arquitectura del
del hardware, permite facilitar la
hardware transportabilidad del sistema
operativo. La fuente del sistema
operativo debe ser única y una
compilación condicional.

Elaborado por: Ing. Juan Pablo Pérez Moreno


Implementación descendente o ascendente

• Para esta técnica deberá existir cierta


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

Elaborado por: Ing. Juan Pablo Pérez Moreno


Implementación descendente o ascendente

• En esta técnica se permite la


ejecución de forma simultánea de
algún fragmento de código, la
ejecución se puede dar por los
casos dentro de un multiprocesador
Rentabilidad o en un monoprocesador, en éste
pueden darse interrupciones
cuando se ejecuten las mismas
porciones del código al anterior

Elaborado por: Ing. Juan Pablo Pérez Moreno


5.3.5 Optimación del sistema operativo

• Los principios de optimización


son reglas que deben estar
presentes en todos sistemas o
módulos que se desarrollen
para un sistema operativo.

Elaborado por: Ing. Juan Pablo Pérez Moreno


Optimación del sistema operativo

Primer principio Segundo principio Tercer principio

• Una parte importante para • Deben considerarse las • Por lo general, antes de que
el desarrollo de un software funciones que se necesitan se desee optimizar un
es que su funcionalidad sea adicionar a la estructura y sistema, se debe tener
óptima; es decir que validar si es necesario presente la dimensión de la
funcione de forma rápida y modificarla para su arquitectura del sistema
común, que durante la desempeño, dependiendo para darle la seguridad,
implantación del sistema no de lo que se requiere del integridad y optimización
se generen errores de sistema: sencillo y rápido o suficiente para un buen
diseño, por lo cual es robusto y lento. desempeño.
conveniente optimizar sólo
lo necesario dentro de la
arquitectura del sistema.

Elaborado por: Ing. Juan Pablo Pérez Moreno


5.3.6 Usos de caches
• La caché es un medio de utilidad de
almacenamiento temporal, su función es
habilitar el acceso a datos que han sido
recientemente consultados; esto permite
hacer más ágil el proceso de lectura que el
sistema hace de los datos al momento de
realizar un proceso.

Elaborado por: Ing. Juan Pablo Pérez Moreno


Usos de caches

Caché de bloques
• Es un pequeños segmento de memoria RAM, que se añade a algún
sitio del disco, con la finalidad de almacenar los datos que han
sido leído con anterioridad, teniendo como resultado agilidad al
cargar los datos.

Caché de paginación
• Para este tipo de caché el almacenamiento se hace en memoria
RAM, dentro del disco duro

Elaborado por: Ing. Juan Pablo Pérez Moreno


Elaborado por: Ing. Juan Pablo Pérez Moreno

También podría gustarte