Unidad 1

Descargar como pptx, pdf o txt
Descargar como pptx, pdf o txt
Está en la página 1de 57

SISTEMAS OPERATIVOS

UNIDAD
1

Introducción y
conceptos básicos
CONCEPTOS BÁSICOS

El sistema operativo es el principal


01 programa que se ejecuta en toda
computadora de propósito general.

La importancia de estudiar este tema radica


no sólo en comprender los mecanismos que
emplean los sistemas operativos para cumplir
02 sus tareas sino en entenderlos para evitar los
errores más comunes al programar, que
pueden resultar desde un rendimiento
deficiente hasta pérdida de información.
Funciones y Objetivos

Administración
Abstracción
de recursos
Funciona como una interfaz entre el Al gestionar toda la asignación de recursos,
software y el hardware del sistema, el sistema operativo puede implementar
proveyendo una plataforma de hardware políticas que los asignen de
consistente sobre la cual corren las forma efectiva y acorde a las necesidades
aplicaciones. establecidas para dicho sistema.

Aislamiento

En un sistema multiusuario y multitarea cada


proceso y cada
usuario no tendrá que preocuparse por otros
que estén usando el mismo
sistema
Evolución de los sistemas
operativos
La multitarea se extendió hasta
Es la ejecución de un programa sin el convertirse en sistemas interactivos y
control o supervisión directa del multiusuarios, en buena medida
usuario. Los programas que ejecutan diferenciados de los anteriores por la
por lotes suelen especificar su aparición de las terminales
funcionamiento mediante scripts o
guiones (procedimientos) en los que
se indica qué se quiere ejecutar y,
posiblemente, qué tipo de recursos
necesita reservar.

Un mecanismo de entrada/salida que


permitía que una computadora de
Denota un sistema operativo que,
propósito específico, mucho más
además de soportar procesos
económica y limitada, leyera las tarjetas y
concurrentes múltiples, permite que
las fuera convirtiendo a cinta magnética,
residan simultáneamente en la
un medio mucho más rápido, teniéndola
memoria primaria las instrucciones y
lista para que la computadora central la
los datos procedentes de dos o más
cargara cuando terminara con el
procesos distintos.
trabajo anterior.
Proceso por lotes Sistemas en lotes Sistemas de
(batch Sistemas
con dispositivos tiempo
processing) multiprogramados
de carga (spool) compartido
Evolución de los sistemas
operativos
Multitarea cooperativa o no Multitarea preventiva o
apropiativa apropiativa

La implementaron En los sistemas de tiempo


los sistemas multiprogramados: compartido, el reloj del sistema
cada proceso tenía control del interrumpe periódicamente a
CPU hasta que éste hacía una lla- los diversos procesos,
mada al sistema (o indicara su transfiriendo forzosamente el
disposición control nuevamente al
a cooperar por medio de la llama- sistema operativo. Éste puede
da yield: ceder el paso). entonces elegir otro proceso
Un cálculo largo no era interrum- para continuar
pido por el sistema operativo, en la ejecución.
consecuencia
un error de programador podía
congelar la computadora comple-
ta.
Primeros sistemas
Las primeras computadoras personales eran
SISTEMAS
distribuidas sin sistemas operativos o lenguajes de
programación; la interfaz primaria para programarlas era PARA PC
mediante llaves (switches), y para recibir sus resultados,
se utilizaban bancos de LEDs. Claro está, esto requería
conocimientos especializados, y las computadoras
personales eran aún vistas sólo como juguetes caros.

La revolución de los 8 bits


Poco tiempo más tarde, comenzaron a venderse computadoras
personales con salida de video (típicamente por medio de una
televisión) y entrada por un teclado. Estas computadoras
popularizaron el lenguaje BASIC, diseñado para usuarios novatos
en los sesenta, y para permitir a los usuarios gestionar sus
recursos (unidades de cinta, pantalla posicionable, unidades de
disco, impresoras, modem, etc.) llevaban un software mínimo de
sistema —nuevamente, un proto-sistema operativo.
SISTEMAS
La computadora para fines “serios”: la familia PC
Sus sistemas operativos se comenzaron a diferenciar
de los equipos previos al separar el entorno de
desarrollo en algún lenguaje de programación del
entorno de ejecución. El papel principal del sistema PARA PC
operativo ante el usuario era administrar los archivos
de las diversas aplicaciones mediante una sencilla
interfaz de línea de comando, y lanzar las
aplicaciones que el usuario seleccionaba.

El impacto del entorno gráfico (WIMP)


Hacia mediados de los ochenta comenzaron a aparecer
computadoras con interfaces usuario gráficas (Graphical User
Interfaces, textscguis) basadas en el paradigma WIMP (Windows,
Icons, Menus, Pointer; Ventanas, Iconos, Menúes, Apuntador),
que permitían la interacción con varios programas al mismo
tiempo. Esto no necesariamente significa que sean sistemas
multitarea: por ejemplo, la primer interfaz de MacOS permitía ver
varias ventanas abiertas simultáneamente, pero sólo el proceso
activo se ejecutaba.
SISTEMAS
PARA PC
Convergencia de los dos grandes mercados
La presencia de Microsoft Windows (originalmente un entorno operativo desde su primera
edición en 1985, evolucionando hacia un sistema operativo completo ejecutando sobre una
base de MS-DOS en 1995) se fue haciendo prevalente hasta ser la norma. Windows pasó de
ser un sistema meramente de aplicaciones propias y que operaba únicamente por reemplazo
de aplicación activa a ser un sistema de multitarea cooperativa y, finalmente un sistema que
requería protección en hardware e implementaba multitarea apropiativa.

Por el lado de Apple, la evolución fue muy en paralelo: ante un sistema ya agotado y
obsoleto, el MacOS 9, en 2001 anunció una nueva versión de su sistema operativo que fue
en realidad un relanzamiento completo: MacOS X es un sistema basado en un núcleo Unix
BSD, sobre el microkernel Mach. Y otro importante jugador que entró en escena durante los
años noventa
fue el software libre, por medio de varias implementaciones distintas de sistemas tipo Unix,
principalmente, Linux y los *BSD (FreeBSD, NetBSD, OpenBSD).
SISTEMA PARA
DISPOSITIVOS MOVILES
iOS El sistema operativo de Apple, y diseñado exclusivamente para el
hardware producido por dicha compañía. Fue el primero en implementar la
interfaz usuario multitouch y, en buena medida, se puede ver como el
responsable de la explosión y universalización en el uso de dispositivos
móviles. Al igual que el sistema operativo que emplean para sus equipos
de escritorio, MacOS X, iOS está basado en el núcleo Darwin, derivado de
FreeBSD, un sistema libre tipo Unix.
SISTEMA PARA
DISPOSITIVOS MOVILES
Android Diseñado por la compañía Google, basa la mayor parte de su
operación en software libre (un núcleo Linux, máquina virtual Java, y
muchas de las bibliotecas de sistema comunes en sistemas Linux),
agregando una capa de servicios propietarios. La estrategia de Google ha
sido inversa a la de Apple: en vez de fabricar sus propios dispositivos,
otorga licencias para el uso de este sistema operativo a prácticamente
todos los fabricantes de hardware, con lo que la amplia mayoría de los
modelos de teléfonos inteligentes y tabletas corren sobre Android.
SISTEMA PARA
DISPOSITIVOS MOVILES
Windows Phone Microsoft ofrece una versión de su sistema operativo,
compatible en API con el Windows de escritorio, pero compilado para
procesador ARM. Este sistema operativo no ha logrado conquistar gran
popularidad, en claro contraste con su dominación en el cómputo
tradicional de escritorio; el principal fabricante que vende equipos con
Windows Phone es Nokia (que, después de haber sido la compañía líder
en telefonía, fue adquirida por Microsoft mismo).
SISTEMA PARA
DISPOSITIVOS MOVILES
Symbian Si bien este sistema operativo ya está declarado como
oficialmente muerto, su efecto en el desarrollo temprano del segmento fue
fundamental, y no puede ser ignorado. Symbian fue la plataforma principal
para Nokia en su época de gloria, así como para muchos otros fabricantes.
Casi todas las empresas que antiguamente operaban con Symbian han
mudado su oferta a sistemas Android.
SISTEMA PARA
DISPOSITIVOS MOVILES
Firefox OS La fundación Mozilla, responsable del navegador Firefox (y
heredera del histórico Netscape) está intentando entrar al mercado móvil
con este sistema, basado (al igual que Android) en el núcleo de Linux, pero
orientado a ofrecer una interfaz de programación siguiendo completamente
los estándares y lenguajes para uso en la Web. Esta plataforma hace una
apuesta mucho más agresiva que las demás a un esquema de conexión
permanente a la red de datos.
Cambios en los sistemas
operativos moviles
Almacenamiento en estado sólido Multitarea, pero monocontexto
Los dispositivos móviles operan con almacenamiento en La popularización del cómputo móvil llevó, sin
estado sólido embargo, a una fuerte reducción en las
A expectativas de multitarea.
e n l ma Esto principalmente por dos razones; la primera es

xt o
No emplean memoria virtual, por tanto, mantener en

te er
e s ce que, al carecer los dispositivos móviles de memoria

o
on , p
ejecución programas que excedan del espacio real de
ta na

oc rea
memoria. do m virtual, la memoria disponible se vuelve
i
Alm só ent

on ta
nuevamente un bien escaso, y el sistema operativo

m ulti
l o
to acen ido se ve obligado a limitar al número de procesos

M
en am interactivos en ejecución.
só esta ien s
t
lid do
o El jardín n ten nce
Consumo eléctrico o a
amurallado C rform Entorno cambiante
Los dispositivos móviles operan bajo una filosofía de eP
El dispositivo móvil debe ser más enérgico en sus
siempre encendido a pesar de que el usuario no esté
cambios de perfil de energía, respondiendo a un
atento a su dispositivo.

tr mo
- En caso de entrar una llamada telefónica, tiene que entorno cambiante. Puede aumentar o disminuir la

o
éc u
luminosidad de la pantalla dependiendo de la

En bia
ic
el ns

ca
responder inmediatamente alertando al usuario. La
Contents luminosidad circundante, o desactivar determinada

m
o

to nt
interfaz usuario del teléfono puede parecer apagada,
C
Performance funcionalidad si está ya en niveles críticos de

rn e
pero su lógica se mantiene activa.

o
- El equipo tiene que estar siempre alerta a las carga. Con respecto a la red, debe poder
aprovechar las conexiones fugaces mientras el
condiciones cambiantes de red (tanto telefónica
usuario se desplaza, iniciando eventos como el de
como de datos), midiendo la señal de las antenas
sincronización.
celulares más cercanas; mantenerse asociado a una
antena remota requiere más energía que a una El jardín amurallado
cercana.
Una consecuencia indirecta (y no técnica) del
nacimiento de las plataformas móviles es la
popularización de un modelo de distribución de software
conocido como una plataforma cerrada.
Seguridad Informática

Abstracción Aislamiento
Un usuario tenga derecho a
Si el sistema operativo ofrece
modificar un archivo que esté
separación entre los datos,
alojado en determinada unidad de
procesos y recursos de sus distintos
disco, no debe poder escribir
usuarios, ninguno de ellos debe
directamente al disco; su acceso
accidental o intencionalmente–
debe estar limitado a la interfaz que
tener acceso a la información que
el sistema le ofrece.
otro haya marcado como privada.

Administración de recursos Código malicioso


Si el sistema operativo definió El código malicioso (también
determinada política de asignación conocido como malware) consiste
de recursos, debe evitar que el en programas diseñados para
usuario exceda las asignaciones aprovechar dichas vulnerabilidades
aceptables, sea en el curso de su para adquirir privilegios de
uso normal, o incluso ante patrones ejecución o acceso a datos que de
de uso oportunista otro modo no habrían logrado.
Organización de los sistemas
operativos

Microkernel
El núcleo del sistema operativo se
mantiene en el mínimo posible de
funcionalidad, descargando en procesos
especiales sin privilegios las tareas que
implementan el acceso a dispositivos y
las diversas políticas de uso del sistema.
Monolíticos
Hay un sólo proceso privilegiado que
opera en modo supervisor, y dentro
del cual se encuentran todas las
rutinas para las diversas tareas que
realiza el sistema operativo. Sistemas con concepciones híbridas
Sistemas que son mayormente
monolíticos pero que manejan algunos
procesos que parecerían centrales
mediante de procesos de nivel usuario
como los microkernel (por ejemplo, los
sistemas de archivos en espacio de
usuario, FUSE, en Linux).
Monolíticos
Microkernel
Sistemas con
concepciones
híbridas
SISTEMAS OPERATIVOS
S.O COMERCIAL

Propiedad intelectual: En un sistema operativo comercial, la empresa o


entidad que lo desarrolla posee los derechos de autor y la propiedad
intelectual sobre el software.

Esto significa que el código fuente y la tecnología subyacente del sistema


operativo son considerados activos comerciales y están protegidos
legalmente.

La propiedad intelectual es un elemento central para garantizar los beneficios


económicos y mantener una ventaja competitiva en el mercado.
SISTEMAS OPERATIVOS
S.O COMERCIAL

Modelo de negocio: Los sistemas operativos comerciales siguen un modelo


de negocio donde los desarrolladores y proveedores del software buscan
generar ingresos a través de su venta o licenciamiento.

Pueden ofrecer diferentes versiones del sistema operativo, con características


y funcionalidades adicionales en las ediciones de pago, mientras que las
versiones gratuitas o de prueba pueden tener limitaciones o restricciones.

El modelo de negocio se basa en la premisa de que los usuarios deben pagar


por el uso o la adquisición del sistema operativo.
SISTEMAS OPERATIVOS
S.O COMERCIAL

Soporte técnico y actualizaciones: Un sistema operativo comercial a


menudo incluye servicios de soporte técnico y actualizaciones periódicas
como parte del paquete.

Esto implica que los usuarios pueden recibir asistencia técnica, como soporte
telefónico o en línea, y actualizaciones que corrigen errores, mejoran la
seguridad y agregan nuevas funcionalidades.

Estos servicios suelen ser ofrecidos por la empresa o entidad que desarrolla el
sistema operativo, y pueden ser un componente importante para los usuarios
empresariales que requieren un nivel de soporte y mantenimiento profesional.
SISTEMAS OPERATIVOS
S.O COMERCIAL

Enfoque en la rentabilidad: A diferencia de los sistemas operativos libres


que tienen un enfoque en la libertad del software, los sistemas operativos
comerciales se centran en generar beneficios económicos para las empresas
o entidades involucradas.

Esto implica que las decisiones de desarrollo y diseño del sistema operativo
pueden estar influenciadas por consideraciones comerciales, como la
maximización de las ventas, el cumplimiento de las expectativas del mercado
y la obtención de beneficios financieros.
SISTEMAS OPERATIVOS
S.O COMERCIAL

Desarrollo cerrado: En muchos casos, el desarrollo de un sistema operativo


comercial se lleva a cabo de manera cerrada y no se comparte públicamente
el código fuente completo.

Esto significa que los usuarios no tienen acceso al código fuente, lo que limita
su capacidad de modificar y adaptar el sistema operativo según sus
necesidades individuales. El desarrollo cerrado también puede dificultar la
participación de la comunidad de desarrolladores externos en la mejora y la
evolución del sistema operativo.
SISTEMAS OPERATIVOS
S.O LIBRE

Un sistema operativo libre es aquel que permite a los usuarios ejecutar,


copiar, distribuir, estudiar, modificar y mejorar el software que lo
compone.

Estos sistemas operativos se basan en el concepto de libertad del


software, que defiende la idea de que los usuarios tienen el derecho de
controlar y adaptar el software que utilizan.

A continuación, se presentan algunos fundamentos clave de un sistema


operativo: libre:
SISTEMAS OPERATIVOS
S.O LIBRE

Libertad de uso: Un sistema operativo libre permite a los usuarios utilizar el


software para cualquier propósito, sin restricciones ni limitaciones impuestas
por el desarrollador o la entidad que posee los derechos de autor.

Esto permite a los usuarios adaptar el sistema operativo a sus necesidades


específicas y utilizarlo de la manera que consideren más adecuada.
SISTEMAS OPERATIVOS
S.O LIBRE

Libertad de estudio: Un sistema operativo libre proporciona a los usuarios el


acceso al código fuente completo del software.

Esto significa que los usuarios pueden examinar cómo funciona el sistema
operativo, comprender su funcionamiento interno y aprender de él. La libertad
de estudio fomenta la transparencia y el conocimiento compartido, lo que
permite a los usuarios comprender y mejorar el sistema operativo.
SISTEMAS OPERATIVOS
S.O LIBRE

Libertad de modificación: Los usuarios de un sistema operativo libre tienen


el derecho de modificar el software según sus necesidades y preferencias.

Pueden agregar, eliminar o modificar características, corregir errores y adaptar


el sistema operativo para que se ajuste mejor a sus requisitos individuales,
esto promueve la flexibilidad y la personalización del sistema operativo.
SISTEMAS OPERATIVOS
S.O LIBRE

Libertad de distribución: Un sistema operativo libre permite a los usuarios


compartir y distribuir copias del software a otras personas. Esto significa que
los usuarios pueden colaborar entre sí, compartir mejoras y contribuir al
desarrollo del sistema operativo.

La libertad de distribución promueve la creación de una comunidad de


usuarios y desarrolladores que trabajan juntos para mejorar el sistema
operativo de manera colaborativa.
SISTEMAS OPERATIVOS
S.O LIBRE

Sostenibilidad a largo plazo: Al ser un sistema operativo libre, su código


fuente está disponible para la comunidad de desarrolladores y usuarios, lo que
garantiza su sostenibilidad a largo plazo.

Si el proyecto original se detiene o el desarrollador decide abandonarlo, otros


desarrolladores pueden continuar trabajando en el sistema operativo y
mejorarlo. Esto evita la dependencia de un único proveedor o entidad y
fomenta la innovación y la evolución constante del sistema operativo.
SISTEMAS OPERATIVOS
TIPOS

Los sistemas operativos se pueden clasificar de diferentes maneras según diversos


criterios. Aquí están algunas de las clasificaciones mas comunes de los sistemas
operativos:

Según el número de tareas que pueden ejecutar simultáneamente

 Sistemas operativos monoprogramación o monotarea: Solo permiten la ejecución


de un programa a la vez.

 Sistemas operativos multiprogramación o multitarea: Permiten la ejecución de


varios programas al mismo tiempo, utilizando técnicas como la conmutación por
tiempo (time-sharing) o la conmutación por eventos (event-driven).
SISTEMAS OPERATIVOS
TIPOS

Según la forma de interactuar con el usuario

 Sistemas operativos de línea de comandos: Utilizan una interfaz de texto en la que


los comandos se ingresan mediante la escritura de instrucciones.

 Sistemas operativos con interfaz gráfica de usuario (GUI): Proporcionan una


interfaz visual basada en iconos, ventanas y menús para interactuar con el
sistema.
SISTEMAS OPERATIVOS
TIPOS

Según la forma en que se distribuyen los recursos

 Sistemas operativos centralizados: Todos los recursos y servicios están


centralizados en un solo sistema principal.

 Sistemas operativos distribuidos: Los recursos y servicios están distribuidos en


múltiples sistemas conectados en red, y se coordinan y comunican entre sí
SISTEMAS OPERATIVOS
TIPOS

Según la arquitectura del sistema operativo

 Sistemas operativos de 32 bits: Diseñados para funcionar en procesadores de 32


bits.

 Sistemas operativos de 64 bits: Diseñados para funcionar en procesadores de 64


bits.
SISTEMAS OPERATIVOS
TIPOS

Según el propósito o uso

 Sistemas operativos de propósito general: Diseñados para satisfacer las


necesidades generales de los usuarios en computadoras personales y estaciones
de trabajo.

 Sistemas operativos embebidos: Diseñados para dispositivos electrónicos


embebidos y especializados, como sistemas de control industrial, dispositivos
médicos, automóviles, etc.

 Sistemas operativos de tiempo real: Diseñados para aplicaciones en tiempo real


que requieren respuestas rápidas y deterministas.
SISTEMAS OPERATIVOS
COMPONENTES BASICOS
Núcleo (Kernel):
Es la parte central del sistema operativo y tiene la Gestor de procesos: Controla y
Gestor de memoria: Administra
responsabilidad de gestionar los recursos del coordina la ejecución de los
la memoria del sistema y su
sistema y proporcionar servicios esenciales. procesos del sistema. Asigna los
asignación a los diferentes
recursos necesarios a cada
procesos. Se encarga de
proceso, como el tiempo de CPU,
asignar y liberar memoria para
la memoria y los dispositivos de
los procesos
entrada/salida.

Sistema de archivos: Es
Gestor de dispositivos: responsable de la organización y
Administra los dispositivos de el acceso a los datos
entrada/salida del sistema. almacenados en el sistema.
Controla la comunicación entre Gestiona la estructura de
los dispositivos y los procesos directorios y archivos, realiza
del sistema operativo, y operaciones como la creación,
proporciona una interfaz lectura, escritura y eliminación de
estandarizada para acceder a los archivos, y garantiza la integridad
dispositivos. y seguridad de los datos
almacenados.
Organización de un Sistema Operativo

El núcleo fundamental de un Sistema


Operativo es lo que conocemos como
KERNEL. El Kernel de un sistema
operativo está formado por conjuntos de
programas ejecutivos, servicios funcionales
dinámicos, programas comunicacionales y
configuraciones que le indican al sistema
en todo momento cómo ejecutar estos
componentes o partes.

Desde un punto de vista funcional, todos


los sistemas operativos contemplan la
misma estructura funcional (Windows,
Linux, MacOS, ReactOS, FreeDos, etc).
Igualmente, comparten esta organización
los sistemas operativos de distintos
componentes electrónicos (PC's,
Notebooks, Palms, Teléfonos celulares,
iPODs, iPADs, etc).
Organización de un Sistema Operativo

El Kernel está constituido integralmente por tres componentes principales:

 Drivers: Un conjunto de utilidades que le garantizan al sistema operativo en primer


término la comunicación con todos los dispositivos conectados al sistema principal
Micro+Chipset+Ram. Esto se logra gracias a la incorporación de un conjunto de
Controladores o Drivers. Sin estos programas comunicacionales, el sistema no
podría conectar con los componentes del sistema. Justamente para garantizar esta
comunicación fluída los drivers son los primeros componentes que se cargan en un
sistema operativo.
 Programas: Un conjunto de programas que permiten poner en marcha al sistema
operativo para atender a las tareas que debe realizar para mantener funcionando
correctamente al sistema (administración de la memoria, ejecución de tareas,
almacenamiento de datos y configuraciones, etc), un conjunto de funciones que
garanticen el flujo continuo y sincronizado de datos desde el corazón del sistema a
los periféricos y viceversa.
Organización de un Sistema Operativo

 Servicios: Un conjunto de funcionalidades que le permiten reaccionar ante un evento


que suceda en el sistema para dar una respuesta dinámica y eficaz, lo que constituye
la máxima potencialidad posible del sistema operativo y le permite la escalabilidad
necesaria para poder aceptar diferentes configuraciones. Los servicios sólo pueden
ser sostenidos gracias a la existencia de programas que se ponen a funcionar en un
sistema operativo en un modo de "escucha" y que esperan la producción del evento
que provocará su reacción.

Cada uno de estos componentes del Kernel puede ser controlado y visualizado por el
técnico gracias a un conjunto de herramientas provistas por los mismos sistemas
operativos para controlar la ejecución correcta y coordinada de cada uno.
Organización de un Sistema Operativo

En el caso de Windows, estas herramientas son

 El Administrador de Servicios para ver las funcionalidades disponibles que


responden a distintos eventos dentro del sistema
 El Administrador de Programas para ver los Procesos cargados en memoria Ram
que esperan por los eventos que los activarán. Recuerde el técnico que un
programa que se carga en Ram recibe el nombre de PROCESO.
 El Administrador de Dispositivos, que permite saber el estado comunicacional del
sistema con el exterior, vale decir Micro+Chipser+Ram con Periféricos

El Kernel opera con un lenguaje de programación básico y primitivo, orientado


principalmente a mantener contacto fluído con el bajo nivel de hardware. Esto
quiere decir que está más relacionado al uso de programas preparados para
interpretar señales eléctricas que a comunicarse con el alto nivel o software del
usuario
Organización de un Sistema Operativo

Como el Kernel tiene un tipo de comunicación básicamente binaria, por ese motivo
requiere para su comunicación con el software de una interface comunicacional,
que se conoce como API. La API (Applicattions Programmers Interface) es un
conjunto de programas que prestan funcionalidades de "traducción" entre el
software que carga el sistema operativo y el Kernel o núcleo.

API es un término acuñado por los sistemas operativos de Microsoft (Windows),


pero la API existe como concepto bajo diversos nombres en todos los sistemas
operativos. La capa de la API no sólo funciona como intérprete comunicacional, sino
que coexisten con ella diversos sistemas de control que permanentemente
monitorean la funcionalidad del sistema operativo y en casos de errores, intentan
proteger la integridad del Kernel para evitar que algún problema se filtre al núcleo y
provoque la inestabilidad general del Sistema Operativo.
Organización de un Sistema Operativo

Los núcleos actuales de los sistemas operativos Linux y Windows (este último
basado en núcleos NT) son muy estables y fiables. La mayor parte de las veces las
inestabilidades generadas en NT dependen de malas configuraciones técnicas y
una administración deficiente del personal humano y no de problemas de diseño del
sistema operativo.

Así como desde el punto de vista técnico el sistema PC está compuesto de capas
funcionales, un sistema operativo también requiere de la combinación de varios
componentes:
Unidad de procesamiento
Es la parte fundamental de todo sistema de cómputo. Esta es la encargada de
ejecutar tanto los programas del usuario como el sistema operativo en sí mismo.

La funciones del sistema operativo respecto a la unidad de procesamiento son:

 Inicialización: Luego de ser cargado el sistema operativo debe realizar varias


tareas de inicialización como habilitar las interrupciones de hardware y software
(excepciones y trampas), configurar el sistema de memoria virtual (paginación,
segmentación), etcétera.
Unidad de procesamiento
La funciones del sistema operativo respecto a la unidad de procesamiento son:

 Atender las interrupciones y excepciones: Como se verá más adelante, la unidad


de procesamiento puede encontrar una situación que no puede resolver por sí
misma (una instrucción o dirección inválida, una división por cero, etc.), ante lo
cual le pasa el control al sistema operativo para que éste trate o resuelva la
situación.

 Multiplexación En un sistema multiproceso, el sistema operativo es el encargado


de administrar la unidad de procesamiento dando la ilusión a los procesos que
están ejecutando de forma exclusiva.
Unidad de procesamiento
Luego de ser cargado el sistema operativo
debe realizar varias tareas de inicialización
como habilitar las interrupciones de
hardware y software (excepciones y
trampas), configurar el sistema de memoria

In
virtual (paginación, segmentación), etcétera.

ic
.

ia
l iz
ac
i ón
Como se verá más adelante, la unidad
de procesamiento puede encontrar una
situación que no puede resolver
por sí misma (una instrucción o dirección
inválida, una división
l as nes por cero, etc.), ante lo cual le pasa el control
d er cio nes al sistema operativo para
ten rrup cio que éste trate o resuelva la situación.
A te ep
in exc
y
En un sistema multiproceso, el sistema
operativo es el encargado
M

de administrar la unidad de procesamiento


ul

dando la ilusión a los


ti
pl

procesos que están ejecutando de forma


ex

exclusiva.
ac
i
ón
Unidad de procesamiento
Jerarquía de almacenamiento.
Los programas y datos necesitan estar en el almacenamiento principal para ser
ejecutados o para poder hacer referencia de ellos. Los programas o datos que no
se necesitan de inmediato pueden guardarse en el almacenamiento secundario
hasta que se necesiten, y en ese momento se transfieren al almacenamiento
principal para ser ejecutados o hacer referencia a ellos. Los sistemas con varios
niveles de almacenamiento requieren destinar recursos para administrar el
movimiento de programas y datos entre niveles
Unidad de procesamiento
Jerarquía de almacenamiento.
Unidad de procesamiento
Jerarquía de almacenamiento.
La memoria caché o memoria de alta velocidad es mucho más rápida que el
almacenamiento principal. La memoria caché es extremadamente cara, por lo que sólo se
utilizan memorias caché relativamente pequeñas.

La memoria caché introduce un nivel adicional de transferencia de información en el


sistema, los programas son traspasados de la memoria principal al caché antes de su
ejecución.

Los programas en la memoria caché se ejecutan mucho más rápido que en la memoria
principal.

Al utilizar memoria caché se espera que la sobrecarga que supone el traspaso de


programas de un nivel de memoria a otro sea mucho menor que la mejora en el
rendimiento obtenida por la posibilidad de una ejecución mucho más rápida en la caché.
Unidad de procesamiento
Jerarquía de almacenamiento.
Unidad de procesamiento
Registros
La memoria más rápida de la computadora son los registros, ubicados en cada uno de los
núcleos de cada CPU.

Interrupciones y excepciones
La ejecución de los procesos podría seguir siempre linealmente, atendiendo a las
instrucciones de los programas tal como fueron escritas, pero en el modelo de uso de
cómputo actual, eso no serviría de mucho: para que un proceso acepte interacción, su
ejecución debe poder responder a los eventos que ocurran alrededor del sistema. Y los
eventos son manejados mediante las interrupciones y excepciones (o trampas). Cuando
ocurre algún evento que requiera la atención del sistema operativo, el hardware encargado
de procesarlo escribe directamente a una ubicación predeterminada de memoria la
naturaleza de la solicitud (el vector de interrupción) y, levantando una solicitud de
interrupción, detiene el proceso que estaba siendo ejecutado.
Unidad de procesamiento
El sistema operativo entonces ejecuta su rutina de manejo de interrupciones
(típicamente comienza grabando el estado de los registros del CPU y otra
información relativa al estado del proceso desplazado) y posteriormente la atiende.

Las interrupciones pueden organizarse por prioridades, de modo que una


interrupción de menor jerarquía no interrumpa a una más importante, dado que las
interrupciones muchas veces indican que hay datos disponibles en algún buffer, el
no atenderlas a tiempo podría llevar a la pérdida de datos.
Unidad de procesamiento
El sistema operativo puede elegir ignorar (enmascarar) ciertas interrupciones,
pero hay algunas que son no enmascarables. Se hace la distinción entre
interrupciones y excepciones según su origen:
Una interrupción es generada por causas externas al sistema (un dispositivo
requiere atención), mientras que una excepción es un evento generado por un
proceso (una condición en el proceso que requiere la intervención del sistema
perativo). Si bien hay distinciones sutiles entre interrupciones, trampas y
excepciones, en el nivel de discusión que se abordará basta con esta distinción.

Los eventos pueden ser, como ya se mencionó, indicadores de que hay algún
dispositivo requiriendo atención, pero pueden también provenir del mismo sistema,
como una alarma o temporizador (que se emplea para obligar a todo programa a
entregar el control en un sistema multitareas) o indicando una condición de error
(por ejemplo, una división sobre cero o un error leyendo de disco).
Unidad de procesamiento
Administrar el hardware manejador de interrupciones Punto de entrada al sistema operativo
Esto incluye el enmascarado y desenmascarado de las Muchos procesadores y sistemas operativos utilizan las
interrupciones, asignar y configurar interrupciones a cada interrupciones
dispositivo, notificar al manejador cuando la interrupción ya como medio por el cual un proceso de usuario realiza una
ha sido atendida, etcétera. llamada
al sistema.

FUNCIONES
DEL S.O
RESPECTO A
LAS
INTRUCCIONES

Abstraer las interrupciones Atender excepciones y fallas


El sistema operativo oculta a los programas de usuario que Como se discutió antes, durante la ejecución de un
ocurren interrupciones de hardware ya que éstas son programa pueden ocurrir situaciones anómalas.
dependientes de la arquitectura del procesador. En cambio Desde el punto de vista del CPU, esto es similar a una
el sistema operativo lo comunica de una forma unificada interrupción de hardware y debe ser tratada por el sistema
por medio de distintos mecanismos, por ejemplo mensajes operativo.
o señales o deteniendo el proceso que espera la acción Dependiendo de la causa de la excepción, el sistema
relacionada con una interrupción y continuando su operativo tomará acción para resolver en lo posible esta
ejecución cuando ésta ocurre. situación.
Llamadas al sistema
RASGOS Mantenimiento de la información
Control de procesos 4 Obtener o modificar la hora del sistema;
Crear o finalizar un proceso, obtener 1 pedir detalles acerca de procesos o
atributos del proceso, esperar la archivos, etcétera.
finalización de un proceso o cierto
tiempo, asignar o liberar memoria,
etcétera.

Comunicaciones
Manipulación de archivos 5
Crear, borrar o renombrar un archivo; 2 Establecer una comunicación con
determinado proceso (local o remoto),
abrir o cerrar un archivo existente; aceptar una solicitud de comunicación
El sistema operativo protege a
modificar sus metadatos; leer o escribir de otro proceso, intercambiar
de un descriptor de archivo abierto, un proceso de otro, y previene
información sobre un canal establecido.
etcétera. que un proceso ejecutándose en
espacio no privilegiado
tenga acceso directo a los Protección
Manipulación de dispositivos
dispositivos. Cuando un 6
Solicitar o liberar un dispositivo; leer,
3 proceso requiere de alguna
Consultar o modificar la información
relativa al acceso de objetos en el disco,
escribir o reposicionarlo, y otras varias. acción privilegiada, accede a otros procesos, o la misma sesión de
Muchas de estas llamadas son análogas usuario.
ellas realizando una llamada al
a las de manipulación de archivos, y
varios sistemas operativos las ofrecen sistema.
como una sola.
EXPOSICION
1. Rootkits
2. Sistemas basados en malla o grid
3. El Módulo de Plataforma Confiable (TPM o SecureBoot)
4. Sistemas de arranque modernos en sistemas tipo Unix
5. Planificación en sistemas operativos reales
6. Núcleo prevenible, tiempo real y optimización fina
7. Las clases de planificación en Linux y SCHED_DEADLINE
8. Esquemas de asignación de memoria en una realidad NUMA
9. Mecanismos para mantener la coherencia en caché
10.Sistemas de archivos distribuidos
11.Desduplicación
12.Sistemas operativos mínimos para la nube
13.Detalles de los sistemas de archivos en flash

También podría gustarte