2. Sistema Operativo
● Definición: Un sistema operativo
(SO, frecuentemente OS, del inglés
Operative System) es un programa
o conjunto de programas que en un
sistema informático gestiona los
recursos de hardware y provee
servicios a los programas de
aplicación, ejecutándose en modo
privilegiado.
3. Sistemas Operativos
El sistema operativo es el primero embalado en la
PC. Sin ellos, un equipo es insuficiente. Su
objetivo es organizar y administrar aplicaciones y
componentes para que actúe de una manera
versátil pero prevista.
Más recientemente, han comenzado a desarrollar
sistemas operativos para dispositivos móviles
también.
4. El sistema operativo lleva a cabo una gran
cantidad de funciones. Por lo tanto, es el nivel
más bajo del software y administra todas las
operaciones básicas del ordenador:
– Controla los componentes de hardware
– Gestiona el almacenamiento secundario
– Asigna el tiempo a las tareas
– Administra la memoria
– Administra los recursos del CPU
– Proporciona la Interfaz Gráfica de Usuario
La elección del sistema operativo realmente depende de
qué sistema sea de la preferencia del usuario y de los
requerimientos del negocio.
5. Funciones y Características
● Conveniencia. Un SO hace mas conveniente el
uso de una computadora.
● Eficiencia. Un SO permite que los recursos de
la computadora se usen de la manera mas
eficientemente posible.
● Habilidad para evolucionar. Un SO deberá
construirse de manera que permita el
desarrollo, prueba o introducción efectiva de
nuevas funciones del sistema sin interferir con
el servicio.
6. Características y funciones
● Encargado de administrar el hardware. El Sistema
Operativo se encarga de manejar de una mejor
manera los recursos de la computadora en cuanto a
hardware se refiere, esto es, asignar a cada proceso
una parte del procesador para poder compartir los
recursos.
● Relacionar dispositivos (gestionar a través del
kernel). El Sistema Operativo se debe encargar de
comunicar a los dispositivos periféricos, cuando el
usuario así lo requiera.
8. Organizar datos para acceso rápido y
seguro
Manejar las comunicaciones en red. El Sistema
Operativo permite al usuario manejar con alta
facilidad todo lo referente a la instalación y uso de
las redes de computadoras.
9. Procesamiento por bytes de flujo a través
del bus de datos
Facilitar las entradas y salidas. Un Sistema
Operativo debe hacerle fácil al usuario el acceso y
manejo de los dispositivos de Entrada/Salida de la
computadora.
10. Técnica de recuperación de errores
Evita que otros usuarios interfieran. El Sistema
Operativo evita que los usuarios se bloqueen entre
ellos, informándoles si esa aplicación esta siendo
ocupada por otro usuario.
12. Los 40's
A finales de esa década, surgió la primera
generación de computadoras. Por aquel entonces
no existían los SO, y los programadores debían
interactuar con el hardware de la computadora sin
ayuda externa.
Esto hacía que el tiempo de preparación para
realizar una tarea fuera considerable. Además
para poder utilizar la computadora debía hacerse
por turnos. Para ello, se rellenaba un formulario
de reserva en el que se indicaba el tiempo que el
programador necesitaba para realizar su trabajo.
Todo se hacía en lenguaje de máquina.
13. Los 50's
Con el objeto de facilitar la interacción entre
persona y computadora, los sistemas operativos
hacen una aparición discreta y bastante simple,
con conceptos tales como:
Monitor residente Se limitaba a cargar los
programas a memoria, leyéndolos de una cinta
o de tarjetas perforadas, y ejecutarlos. El
problema era encontrar una forma de optimizar
el tiempo entre la retirada de un trabajo y el
montaje del siguiente.
14. Procesamiento por lotes Como solución para
optimizar, en una misma cinta o conjunto de
tarjetas, se cargaban varios programas, de
forma que se ejecutaran uno a continuación de
otro sin perder tiempo en la transición.
Almacenamiento temporal Su objetivo era
disminuir el tiempo de carga de los programas,
haciendo simultánea la carga del programa o la
salida de datos con la ejecución de la siguiente
tarea. Para ello se utilizaban dos técnicas, el
buffering y el spooling.
15. Los 60's
● Multiprogramación. Es una técnica por la que
dos o más procesos pueden alojarse en la
memoria principal y ser ejecutados
concurrentemente por el procesador.
Causa la impresión de realizarse
simultáneamente debido a la velocidad.
Aunque sólo es simulado, dado que el CPU
sólo puede trabajar con un proceso a la vez.
16. Anteriormente cuando un proceso en ejecución
requería hacer uso de un dispositivo de E/S, el
procesador quedaba ocioso mientras el proceso
permaneciese en espera y no retomara su
ejecución. En cambio, en un sistema
multiprogramado, cuando un proceso concluye o
se bloquea (en espera de una operación de E/S),
el núcleo del sistema operativo toma el control del
CPU para efectuar lo que se denomina un
«cambio de contexto», a fin de dar turno a otro
proceso para que se ejecute. Cuando el primer
proceso recupere su turno, reanudará su ejecución
justo en el punto exacto en que se interrumpió.
17. ● Tiempo compartido. se refiere a compartir de
forma concurrente un recurso computacional
(tiempo de ejecución, uso de la memoria, etc.)
entre muchos usuarios por medio de las
tecnologías de multiprogramación y la inclusión de
interrupciones de reloj por parte del sistema
operativo, permitiendo a este último acotar el
tiempo de respuesta del computador y limitar el
uso del CPU por parte de un proceso dado.
● Su introducción en los años 1960 representa un
cambio importante en la historia de la
computación. Al permitir que un gran número de
usuarios interactuara y ejecutara diversos
programas de forma simultanea en una sola
computadora, el coste del servicio de computación
bajó drásticamente.
18. ● Multiprocesador. Es una computadora que cuenta
con dos o más microprocesadores (CPUs).
Gracias a esto, el multiprocesador puede ejecutar
simultáneamente varios hilos pertenecientes a un
mismo proceso o bien a procesos diferentes.
Los ordenadores multiprocesador presentan
problemas de diseño que no se encuentran en
ordenadores monoprocesador. Estos problemas
derivan del hecho de que dos programas pueden
ejecutarse simultáneamente y, potencialmente,
pueden interferirse entre sí. Concretamente, en lo
que se refiere a las lecturas y escrituras en
memoria.
19. Los 70's
En el campo de la programación lógica se dio a
luz la primera implementación de Prolog, y en la
revolucionaria orientación a objetos.
Surgieron los nuevos sistemas operativos como:
20. ● Multics (Multiplexed Information and Computing
Service): Originalmente era un proyecto
cooperativo liderado por Fernando Corbató del
MIT, con General Electric y los laboratorios Bell,
que comenzó en los 60, pero los laboratorios Bell
lo abandonaron en 1969 para comenzar a crear el
sistema UNIX.
● BDOS: (Basic Disk Operating System): Traductor
de las instrucciones en llamadas a la BIOS.
21. ● CPM: (Control Program for Microcomputers) fue un
SO desarrollado por Gary Kildall para el
microprocesador Intel 8080. Se trataba del SO
más popular entre las PC en los años 70. Aunque
fue modificado para ejecutarse en un IBM PC.
El hecho que IBM eligiera MS-DOS, al fracasar las
negociaciones con Digital Research, hizo que el uso
de CP/M disminuyera hasta hacerlo desaparecer.
CP/M se convirtió en un estándar de industria para
los primeros micro-ordenadores.
22. Los 80's
Empezó el auge de los ordenadores personales. En
éstos se dejó un poco de lado el rendimiento y se
buscó más que el sistema operativo fuera amigable,
surgiendo menús, e Interfaces gráficas. Esto reducía
la rapidez de las aplicaciones, pero se volvían más
prácticos y simples para los usuarios. En esta época,
siguieron utilizándose lenguajes ya existentes, como
Smalltalk o C, y nacieron otros nuevos, de los cuales
se podrían destacar: C++ e Eiffel dentro del
paradigma de la orientación a objetos, y Haskell y
Miranda en el campo de la Programación declarativa.
23. Un avance importante que se estableció a mediados
de la década de 1980 fue el desarrollo de redes de
computadoras personales que corrían sistemas
operativos en red y sistemas operativos distribuidos.
En esta escena, dos sistemas operativos eran los
mayoritarios: MS-DOS escrito por Microsoft para IBM
y otras computadoras que utilizaban el procesador
Intel 8088, y UNIX.
Surgieron además tres Sistemas Operativos muy
importantes:
24. ● MS-DOS. En 1981 Microsoft compró un
sistema operativo llamado QDOS que, tras
realizar unas pocas modificaciones, se convirtió
en la primera versión de MS-DOS (Micro Soft
Disk Operating System).
● WINDOWS. A mediados de los años 80 se crea
este sistema operativo, pero no es hasta la salida
de Windows 95 que se le puede considerar un
sistema operativo, solo era una interfaz gráfica del
MS-DOS en el cual se disponía de unos diskettes
para correr los programas.
25. ● Mac OS. El lanzamiento oficial del ordenador
Macintosh en enero de 1984, al precio de US
$1,995 (después cambiado a $2,495 dólares).
Incluía su sistema operativo Mac OS cuya
características novedosas era una GUI (Graphic
User Interface), Multitareas y Mouse. Provocó
diferentes reacciones entre los usuarios
acostumbrados a la línea de comando y algunos
tachando el uso del Mouse como juguete.
26. Los 90's
● GNU/Linux. Este sistema al parecer es una
versión mejorada de Unix, basado en el estándar
POSIX, un sistema que en principio trabajaba en
modo comandos. Hoy en día dispone de Ventanas,
gracias a un servidor gráfico y a gestores de
ventanas como KDE, GNOME entre muchos.
● También surgió otro Sistemas Operativo de código
abierto llamado ReactOS cuyo propósito era lograr
la compatibilidad binaria con aplicaciones de
software y controladores de dispositivos hechos
para Microsoft Windows NT versiones 5.x en
adelante (Windows XP y sus sucesores).
27. T A R E A
● Investigar la evolución de las versiones de los
sistemas operativos Windows, MAC OS y Linux (en
sus diferentes distribuciones y versiones). Desde su
aparición hasta la actualidad
29. Sistemas Operativos
Monotareas
Los sistemas operativos monotareas son más
primitivos. Solo pueden manejar un proceso en cada
momento o que solo puede ejecutar las tareas de
una en una.
Por ejemplo cuando la computadora está
imprimiendo un documento, no puede iniciar otro
proceso ni responder a nuevas instrucciones hasta
que se termine la impresión.
● El sistema operativo que soporta el monotareas es DOS.
30. Sistemas Operativos
Multitareas
Con este sistema operativo es
que la computadora procesa diferentes tareas al
mismo tiempo. Existen varios tipos de multitareas.
Estos sistemas Se distinguen por sus habilidades
para poder soportar la ejecución de dos o más
trabajos activos (que se están ejecutado) al mismo
tiempo. Esto trae como resultado que el CPU
siempre tenga alguna tarea que ejecutar,
aprovechando al máximo su utilización.
● Los sistemas operativos que soportan estas multitareas son:
UNIX, Windows 95, Windows 98, Windows NT, MAC-OS,
OS/2.
31. Sistemas Operativos
Monousuario
Son aquellos que nada más pueden atender a un
solo usuario, gracias a las limitaciones creadas por el
hardware, los programas o el tipo de aplicación que
se este ejecutando. Estos tipos de sistemas son muy
simples, porque todos los dispositivos de entrada,
salida y control dependen de la tarea que se está
utilizando, es decir, que las instrucciones que se dan,
son procesadas de inmediato; ya que existe un solo
usuario.
● Los sistemas operativos que soportan el monousuario son
DOS e incluso en el Windows XP y sus predecesores.
32. Sistemas Operativos
Multiusuario
Es todo lo contrario a monousuario; y en esta
categoría se encuentran todos los sistemas que
cumplen simultáneamente las necesidades de
dos o más usuarios, que comparten los mismos
recursos. Este tipo de sistemas se emplean
especialmente en redes.
● Los sistemas operativos que soportan el multiusuario son el
Linux, Windows 2003 y sus predecesores.
33.
34. Sistemas Operativos
Por Lotes
Con este SO se procesan una gran cantidad de trabajos con
poca o ninguna interacción entre los usuarios y los
programas en ejecución. Se reúnen todos los trabajos
comunes para realizarlos al mismo tiempo, evitando la
espera de dos o más trabajos como sucede en el
procesamiento en serie. Estos sistemas, pueden tener un
tiempo de ejecución muy alto, porque el procesador es
mejor utilizado y los Sistemas Operativos pueden ser
simples, debido a la secuenciabilidad de la ejecución de los
trabajos.
● Los sistemas operativos que soportan por lotes son el SCOPE, del
DC6600, y el EXEC II para el UNIVAC 1107.
35. Sistemas Operativos
De Tiempo Real
Los sistemas operativos de tiempo real son aquellos en los
cuales no tiene importancia el usuario, sino los procesos.
Por lo general, están subutilizados sus recursos con la
finalidad de prestar atención a los procesos en el momento
que lo requieran. se utilizan en entornos donde son
procesados un gran número de sucesos o eventos.
● Los sistemas operativos que soportan el tiempo real son VxWorks,
Solaris, Lyns OS y Spectra.
36. Sistemas Operativos
de Tiempo
Compartido
Estos sistemas permiten la
simulación de que el sistema y sus
recursos son todos para cada
usuario. El usuario hace una petición a la computadora,
esta la procesa tan pronto como le es posible, y la respuesta
aparecerá en la terminal del usuario. Los principales
recursos del sistema, el procesador, la memoria,
dispositivos de E/S, son continuamente utilizados entre los
diversos usuarios, dando a cada usuario la ilusión de que
tiene el sistema dedicado para sí mismo.
● Los sistemas operativos que soportan el tiempo compartido son
Multics, OS/360 y DEC-10.
37. Sistemas Operativos
Distribuidos
Este sistema operativo permite distribuir trabajos,
tareas o procesos entre un conjunto de
procesadores. Puede ser que este conjunto de
procesadores esté en un equipo o en diferentes, en
este caso es trasparente para el usuario. Existen dos
esquemas básicos de éstos. Un sistema fuertemente
acoplado es a aquel que comparte la memoria y un
reloj global, cuyos tiempos de acceso son similares
para todos los procesadores. En un sistema
débilmente acoplado los procesadores no comparten
ni memoria ni reloj, ya que cada uno cuenta con su
memoria local.
38. Sistemas Operativos
de Red
Son aquellos que mantienen a dos o más computadoras
unidas a través de algún medio de comunicación (físico o
no), con el objetivo primordial de poder compartir los
diferentes recursos y la información del sistema. El primer
Sistema Operativo de red estaba enfocado a equipos con un
procesador Motorola 68000, pasando posteriormente a
procesadores Intel como Novell Netware.
● Los sistemas operativos más utilizados que soportan la red son
Novell Netware, Personal Netware, LAN Manager, Windows NT
Server, UNIX, LANtastic.
39. Sistemas Operativos
Paralelos
En estos tipos de Sistemas Operativos se pretende
que cuando existan dos o más procesos que
compitan por algún recurso se puedan realizar o
ejecutar al mismo tiempo. En UNIX existe también la
posibilidad de ejecutar programas sin tener que
atenderlos en forma interactiva, simulando
paralelismo. Así, en lugar de esperar a que el
proceso termine de ejecutarse, regresa a atender al
usuario inmediatamente.
● Los sistemas operativos que soportan a los paralelos son
Alpha, PVM, la serie AIX, que es utilizado en los sistemas
RS/6000 de IBM.
40. Niveles de Diseño de un SO
Un sistema operativo está conformado básicamente
por cuatro módulos:
● Núcleo o Kernel.
● Administrador de memoria.
● Sistema de entrada/salida.
● Administrador de archivos.
41. Núcleo o kernel
Es el módulo de más bajo nivel de un
sistema operativo, pues descansa
directamente sobre el hardware de la
computadora. Entre las tareas que
desempeña se incluyen el manejo de
las interrupciones, la asignación de
trabajo al procesador y el proporcionar una vía de
comunicación entre los distintos programas. En
general, el núcleo se encarga de controlar el resto de
los módulos y sincronizar su ejecución. El núcleo
contiene un submódulo denominado "planificador", el
cual se encarga de asignar tiempo del procesador a los
programas, de acuerdo a una cierta política de
planificación que varía de un sistema operativo a otro.
42. Normalmente se utiliza una jerarquía de prioridades
que determinan cómo se asignará el tiempo del CPU
a cada programa. Una política de planificación muy
común en los sistemas de multiprogramación y
multiproceso son las técnicas de "time slicing"
(fracción de tiempo). Se asigna a cada programa un
corto intervalo de tiempo del procesador. Si el
programa no ha terminado durante este intervalo de
tiempo, vuelve a la cola de programas
43. Administrador de memoria
Este módulo se encarga de asignar ciertas porciones
de la memoria RAM a los diferentes programas o
partes de los programas que la necesiten, mientras el
resto de los datos y los programas se mantienen en
los dispositivos de almacenamiento masivo. De este
modo, cuando se asigna una parte de la memoria
principal se hace de una forma estructurada,
siguiendo un determinado orden
La forma más común de
administración de la memoria
es crear una memoria virtual;
con este sistema, la memoria de
la computadora aparece, para
cualquier usuario del sistema,
mucho mayor de lo que en realidad es.
44. Sistema de Entrada / Salida
Para los usuarios, todos los
dispositivos hardware tienen las
mismas características y son
tratados de la misma forma, siendo
que el SO es el encargado de
atender las particularidades de cada
uno de ellos (como su velocidad de
operación). Una técnica muy común, especialmente en
salida, es el uso de "spoolers". Los datos de salida se
almacenan de forma temporal en una cola situada en un
dispositivo de almacenamiento masivo (el spool), hasta
que el dispositivo periférico requerido se encuentre libre;
de este modo se evita que un programa quede retenido
porque el periférico no esté disponible. El SO dispone de
llamadas para añadir y eliminar archivos del spool.
45. Administrador de Archivos
Se encarga de mantener la estructura de los datos y
los programas del sistema y de los diferentes
usuarios (que se mantienen en archivos) y de
asegurar el uso eficiente de los medios de
almacenamiento masivo. El administrador de
archivos también supervisa la creación, actualización
y eliminación de los archivos, manteniendo un
directorio con todos los archivos que existen en el
sistema en cada momento y coopera con el módulo
administrador de memoria durante las transferencias
de datos desde y hacia la memoria principal.
46. Si se dispone de un sistema de memoria virtual,
existen transferencias entre la memoria principal y
los medios de almacenamiento masivo para
mantener la estructura de la misma. Los archivos
almacenados en los dispositivos de almacenamiento
masivo tienen distintos propósitos. Algunos contienen
información que puede ser compartida. Otros son de
carácter privado, e incluso secreto. Por tanto, cada
archivo está dotado de un conjunto de privilegios de
acceso, que indican la extensión con la que se puede
compartir la información contenida en el archivo. El
sistema operativo comprueba que estos privilegios
no sean violados.
47.
48. E L N Ú C L E O
Un “núcleo” o “kernel” (de la raíz germánica Kern,
núcleo, hueso) es un software que constituye una
parte fundamental del SO. Es el principal
responsable de facilitar a los distintos programas
acceso seguro al hardware de la computadora, es el
encargado de gestionar recursos, a través de
servicios de llamada al sistema. Se encarga de
decidir qué programa podrá hacer uso de un
dispositivo de hardware y durante cuánto tiempo, lo
que se conoce como multiplexado. Suelen
implementar una serie de abstracciones del
hardware. Esto permite esconder la complejidad, y
proporciona una interfaz limpia y uniforme al
hardware subyacente, lo que facilita su uso al
programador.
49.
50. Sistemas monolíticos
● Los sistemas Monolíticos son la estructura más
simple para un Sistema Operativo. También
llamados de Estructura Modular, fue escrito para
proporcionar una máxima funcionalidad dentro del
menor espacio posible.
● Este sistema está descrito como un conjunto de
procedimientos o rutinas entrelazadas de tal forma
que cada una tiene la posibilidad de llamar a las
otras rutinas cada vez que así lo requiera.
● cuando falla un programa se produce un error en
todo el sistema.
51. ● Si se modifica el
hardware por lo general
es necesario recompilar
el kernel para poder
disponer de las
funcionalidades. Esto
consume tiempo y
recursos porque la
compilación de un nuevo kernel puede durar varias
horas y necesita de una gran cantidad de memoria.
Cada vez que alguien añade una nueva
característica o corrige un error, significa que se
necesitará hacer una recompilación del kernel
entero.
52. Micronúcleo o Microkernel
● El Micronúcleo surge como una nueva forma de
organización para un Sistema Operativo.
53. ● En este sistema las funciones centrales son
manejadas por el núcleo(kernel) y la interfaz de
usuario es manejada por el entorno(shell). El
Microkernel se encarga de todo el código de un
sistema, y de planificar los hilos(threads) con la
finalidad de tener multitareas.
● Es más fácil corregir fallas en un sistema pequeño
ya que se pueden realizar pruebas más rigurosas
que en un sistema mucho más grande.
54.
55. Sistemas por MÓDULOS
● La mayoría de los sistemas operativos modernos
implementan este enfoque.
● 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.
– Ejemplo: Si falla el módulo que controla el servicio
de red se detiene sólo este módulo y el resto del
sistema sigue su curso normal
● Los módulos se pueden cargar dinámicamente en el
núcleo cuando se necesiten, ya sea, en tiempo de
ejecución o durante el arranque del sistema.
57. Linux (por ser código abierto) permite acceder al
kernel y modificarlo como queramos.
Ejemplo de comandos Linux para administrar módulos en el
kernel
lsmod: Muestra todos los módulos cargados en el
kernel linux
modprobe: Se utiliza para agregar, ver y eliminar
módulos
rmmod: Utilizado para descargar módulos del kernel,
con la restricción de que no estén siendo utilizados y
que no sean llamados por otros módulos
58. Práctica
Creación de una Unidad de Memoria Extraíble multi-
booteable
– Memoria USB (4GB mínimo)
– ISOs de SO (Windows 7 32 bits, Linux Ubuntu
12.04 32 bits)
– Aplicación “YUMI ”