Está en la página 1de 15

DEFINICIÓN, HISTORIA Y TIPOS DE SISTEMAS OPERATIVOS

Marvin Josué Aguilar Romero, UNAH


Departamento de informática FCEAC
marvin.aguilar@unah.edu.hn

IMPORTANCIA DE LOS SISTEMAS OPERATIVOS


“El conjunto de programas informáticos que permite la administración eficaz de los
recursos de una computadora” [1]
“Un sistema operativo explota los recursos del hardware de uno o más procesadores,
para ofrecer un conjunto de servicios a los usuarios del sistema. El SO también gestiona
la memoria secundaria y los dispositivos de E/S en nombre de los usuarios” [2].
“Un sistema operativo es un programa que después de arrancado el ordenador se
encarga de gestionar todos los recursos del sistema informático, tanto de hardware como
el software, permitiendo así la comunicación entre usuario y el ordenador” [3].
Encontraremos múltiples definiciones sobre sistemas operativos, algunas más completas
que otras, sin embargo, siendo sumamente simplistas podemos concluir con que todas
coinciden en el hecho que un sistema operativo es un software que se encarga del
hardware y de los programas que se ejecutan en dicho hardware. Analizando esto último
vemos que si, en efecto, es necesaria la gestión de los recursos de hardware para que
funcione correctamente, pero también es necesaria la gestión de software para que opere
de manera correcta sobre estos recursos de hardware.
Según Tanenbaum [4] los sistemas operativos poseen dos tipos de funciones básicas
(figura 1) :
1. Proporcionar a los programadores de aplicaciones un conjunto abstracto de
recursos simples para interactuar con el hardware (máquina extendida).
2. Administrar recursos hardware.

SISTEMA OPERATIVO COMO MÁQUINA EXTENDIDA


Viéndolo como una máquina extendida, el Sistema Operativo es el encargado de la
gestión de la interactividad entre los programas y el hardware. En éste sentido el sistema
operativo se encarga de abstraer los mecanismos de operación del hardware para facilitar
la interacción con ellos “La abstracción es la clave para lidiar con la complejidad” [4]
y es que, sin duda es una ventaja para los programadores y los usuario no tener que
preocuparse por lidiar con el funcionamiento mecánico/digital del hardware y solamente
tener que considerar la parte funcional.
El sistema operativo establece un ambiente propicio para el desarrollo de aplicaciones
preocupándose por la funcionalidad de la misma más que por la parte operativa de los
dispositivos al respecto Tanenbaum expresa “una de las principales tareas del sistema
operativo es ocultar el hardware y presentar a los programas (y sus programadores)
abstracciones agradables, elegantes, simples y consistentes con las que puedan
trabajar.” [4] además de facilitar la interacción con el usuario para el manejo de todos
los dispositivos ya sea a través de una interfaz GUI o SHELL.

Figura 1. Estructura de subtemas de sistema de numeración. Fuente: Elaboración propia a partir de [4]

SISTEMA OPERATIVO COMO ADMINISTRADOR DE RECURSOS


Por otro lado, y siendo en realidad la función más asociada a los mismos, el sistema
operativo se encarga de hacer que el hardware funcione de manera correcta para poder en
manera conjunta operar la computadora. “El trabajo del sistema operativo es proporcionar
una asignación ordenada y controlada de los procesadores, memorias y dispositivos de
E/S, entre los diversos programas que compiten por estos recursos” [4]. Esta gestión de
recursos permite el funcionamiento de los dispositivos en tiempo, asignando el instante
al que se le da prioridad a un recurso, y en espacio, que es cuando se asigna a varios
procesos segmentos de un mismo recurso para que lo trabajen de manera paralela.

LAS DIFERENTES GENERACIONES DE LOS SISTEMAS OPERATIVOS


Aunque no sea del todo correcto puede bosquejarse una línea de tiempo con las
generaciones de los sistemas operativos ligando los mismos a la evolución de las
computadoras es por ello que en el desarrollo de esta sección usted puede encontrar
múltiples referencias a la evolución de la tecnología por cambios en el hardware.
PRIMERA GENERACIÓN: 1945 – 1955
En estos primeros días, un solo grupo de personas (generalmente ingenieros) diseñaban,
construían, programaban, operaban y daban mantenimiento a cada máquina. Toda la
programación se realizaba a bajo nivel mediante plugboards (ver figura 2) para controlar
las funciones básicas de la máquina.
Predominaban durante esta generación los tubos al vacío (figura 3) que permitían la
configuración de la computadora interrumpiendo o permitiendo el paso de corriente.
No existían los lenguajes de programación y las computadoras generalmente hacían series
de cálculos (tablas de senos, cosenos y logaritmos). Ya para 1950 se introdujeron las
tarjetas perforadas (ver figura 4) que permitían tener una secuencia de conexiones de
bulbos programada.

Figura 2. Plugboard Enigma (izquierda), Programming board ibm 407 (derecha)

Figura 3. Tubo al vacío

Figura 4. Tarjeta perforada


SEGUNDA GENERACIÓN: 1955 – 1965
Esta generación se caracteriza por el uso de los transistores y los sistemas de
procesamiento por lotes; “Por primera vez había una clara separación entre los
diseñadores, constructores, operadores, programadores y personal de mantenimiento”
[4] es acá donde nacen las mainframes.
Los programadores escribían código en fortran o ensamblador, lo colocaban en tarjetas
perforadas, entregaban las tarjetas a los operadores del cuarto de entrada de datos y
esperaban por los resultados, el trabajo era tedioso y para cargar el código de los
programadores había que cargar el lenguaje para ejecutar así que era un ir y venir de
cuarto en cuarto, de gabinete en gabinete, introduciendo tarjetas y esperando resultados;
éste proceso derivo en el sistema de procesamiento por lotes donde se dividía la entrada,
del proceso y la salida de esta forma se preparaba una secuencia de acciones que se iban
ejecutando, las lecturas se migraban a cintas que se procesaban en máquinas de mayor
potencia y guardaban su resultado en nuevas cintas que se mandaban luego a imprimir,
de esta manera mientras se imprimía un lote ya se encontraba en proceso el siguiente y se
leía el que venía en la cola. La figura 5 muestra un ejemplo de este proceso donde las
entradas y salidas (impresiones) se hacían con máquinas no tan potentes (IBM 1401,
usado generalmente como controlador periférico offline ya que leía o imprimía, pero no
lo usaban para procesar) y el procesamiento en una de mayor potencia (IBM 7094).

Figura 5. Proceso por lotes. Fuente: [4]

En esta generación tenemos dos sistemas operativos predominantes [4]:


1. Fortran Monitor System (IBM - FMS)
2. IBSYS (IBM 7094)

TERCERA GENERACIÓN: 1965 – 1980


Vamos a caracterizar esta generación por el uso de los circuitos integrados y la
multiprogramación; Dados los altos costos de los equipos en ésta época IBM consideró
el uso de circuitos integrados para miniaturizar los equipos además de mejorar el
rendimiento de los mismos y el precio [4].
Durante la segunda generación las computadoras se concebían para un uso específico
fuese para el desarrollo de cálculos y procesos (uso científico) o para el manejo de
caracteres y funciones que no demandase tanto poder de procesamiento (comerciales) ya
con el deseo de IBM de crear un equipo que pudiese producirse a gran escala se consideró
que los mismos pudiesen desarrollar ambas actividades (que el software de procesamiento
científico fuese compatible con el software para procesamiento de fines comerciales). Y
es así como nace la IBM 360 que era compatible con el software de los rubros de la
segunda generación y de la cual había variedad de opciones (uno podía elegir entre poseer
más dispositivos de E/S, memoria, velocidad del procesador). El sistema operativo de
estos equipos se llamaba os/360 [4].
El sistema operativo OS/360 ya contaba con la multiprogramación (ausente en las
generaciones anteriores) que permitía aprovechar los recursos del procesador para realizar
tareas simultaneas particionando la memoria y asignando un trabajo diferente a cada
partición, de por sí esta característica mejoraba notablemente la eficiencia en el trabajo
pero, en adición también se contaba con el Spooling (operación periférica simultánea en
línea) en vez de tener que leer las tarjetas, las mismas estaban cargadas en disco (y esta
tecnología también se utilizó en dispositivos de salida).
El spooling pretende realizar operaciones de Entrada y Salida guardando en un medio de
almacenamiento la información suministrada por dispositivos de entrada (o poniendo
información a disposición de los dispositivos de salida) y permite al usuario leer un
trabajo, procesar y enviar a un dispositivo de salida otro de manera simultánea. La
información guardada en el medio de almacenamiento permanece ahí mientras se le
requiera y luego es eliminada, un claro ejemplo es la impresión; Se procesa la salida, se
envía la misma a la impresora y la misma almacena de manera temporal lo que se va a
imprimir y puede comenzar a imprimirlo mientras nosotros usamos la computadora para
algo diferente. Buffering y Spooling son conceptos diferentes a nivel de operación [5].
Sin embargo, aún se manejaba el procesamiento por lotes y se tenía siempre que esperar
a que un trabajo terminase para comenzar el procesamiento del siguiente. El deseo de
minimizar aún más los tiempos de espera hizo propicio el desarrollo del tiempo
compartido (variante de la multiprogramación que pretendía compartir no solo la
memoria sino también el procesador) [4].
El primer sistema operativo de tiempo compartido fue el CTSS desarrollado por MIT
quienes en asociación con Bell laboratorios y General Electrics trabajaron muchos años
en el desarrollo de MULTICS un sistema operativo que simulaba la red de distribución de
energía eléctrica, existía una super computadora a la cual si una terminal se conectaba
podía hacer uso de sus capacidades de procesamiento, MULTICS se desarrolló a medias
y pasaron muchos años hasta que pudo ser un sistema tal y como fue concebido [4].
Ken Thompson, empleado de Bell Labs que trabajó en el proyecto MULTICS aprovechó
una minicomputadora (PDP-7) y en ella desarrolló una versión simple del MULTICS
(para un solo usuario) el sistema operativo UNIX [4].
UNIX facilitaba el código fuente lo que trajo el desarrollo de clones del sistema como
System V de AT&T y BSD de Berkeley entre otros, con el inconveniente que al ser
versiones desarrolladas por entidades independientes las mismas eran incompatibles entre
si por ello la IEEE desarrolló un estándar conocido como POSIX que regulaba una
interfaz mínima de llamadas al sistema que todos los derivados de UNIX debían respetar
para garantizar la compatibilidad entre sistemas. Uno de los clones más importantes de
UNIX es MINIX (1987 por Andrew S. Tanenbaum) desarrollado en un inicio con fines
educativos es la fecha, según un artículo de noticia publicado en OMICRONO, el sistema
operativo más usado en el mundo por estar incluido en los procesadores INTEL [6],
además MINIX históricamente también es muy importante ya que, debido a su robustez,
un estudiante finlandés lo tomó de base para el desarrollo de un sistema operativo capaz
de distribuirse en una versión de producción más que educativa, pero de forma gratuita y
así Linus Torvalds desarrolló LINUX [4].

CUARTA GENERACIÓN: 1980 – A LA FECHA


Destacan las computadoras personales, al fin ya las personas podían tener una
computadora gracias al desarrollo de los circuitos integrados. El primer sistema operativo
fue el CP/M (Programa de control para microcomputadoras) IBM había desarrollado una
computadora personal pero ocupaban un sistema operativo que no solo funcionara con
disco como el CP/M y contrató a Bill Gates quien después de una excelente jugada facilitó
el MS-DOS.
En 1960 Doug Engelbart inventó la Interfaz Gráfica de Usuario (GUI) aprovechada por
completo por Steve Jobs para su computadora personal LISA y luego por la Apple
Macintosh.
Gates aprovechó el éxito de Apple y en la siguiente versión de MS-DOS incluyó un Shell
en el mismo denominado WINDOWS, de 1985 a 1995 windows era solo un entorno
gráfico más que un sistema operativo WINDOWS 95 es ya el primer sistema operativo
independiente de MS-DOS de Microsoft.
De este punto proliferan un sin número de sistemas operativos y aparecen modificaciones
basadas en existentes, sistemas operativos con más de una interfaz gráfica además
sistemas operativos que funcionan en red y permiten acceso remoto a otros equipos o
inicio de sesión en diversos puntos.

REVISIÓN DEL HARDWARE DE LA COMPUTADORA


Tal como hemos visto existe una estrecha relación entre el hardware y el sistema
operativo, el SO debe conocer muy bien el hardware para poder administrarlo y que el
mismo pueda ser utilizado por usuarios normales y programadores. Básicamente una
computadora esta formada por 4 elementos:
1. Procesador (CPU)
2. Memoria
3. Periféricos
4. Uno o más buses que permiten la comunicación de los elementos entre sí.
A este modelo básico se le pueden agregar otros elementos como unidades de
almacenamiento, tarjetas de interfaz de red, entre otros, la figura 6 muestra una
configuración de hardware y software (controladores que poseen la información sobre el
funcionamiento del elemento para que el SO pueda gestionarlo). Las computadoras
modernas poseen más de un solo bus de comunicación entre los elementos de hardware
[4].
Figura 6. Algunos componentes de una PC. Fuente: [4]

A manera de repaso veamos cada uno de estos elementos:


1. PROCESADORES:
Elemento fundamental de la computadora se encarga de leer de memoria las
instrucciones, decodificarlas, ejecutarla, obtener la siguiente instrucción y hacer lo mismo
con ella en un ciclo que se repite hasta que el programa termina (no hay más instrucciones
por leer).
Como cada procesador es elaborado por una compañía, procesadores de compañías
diferentes no pueden ejecutar el conjunto de instrucciones de procesadores de otras
compañías, por ejemplo, un procesador PENTIUM no puede ejecutar programas de
SPARC. Los procesadores poseen ciertos registros especiales que son de nuestro interés:
• Registros generales: permiten contener variables y resultados temporales.
• Contador de programa: Dirección en memoria de la siguiente instrucción a obtener
para decodificar y ejecutar.
• Apuntador de pila: apunta a la parte superior de la pila (stack) actual en memoria para
tener acceso a valores del procedimiento al que se ha entrado (decodificado y en
ejecución), pero del cual no se ha salido (variables locales y temporales)
• PSW: contiene los bits de condición que se asignan cada vez que se ejecutan
instrucciones de comparación, prioridad de la CPU, modo (kernel o usuario) y varios
otros bits de control. El PSW puede ser leído por los usuarios pero modificable
solamente en algunos valores dependiendo del modo.
Iniciar programa, leer, decodificar, ejecutar, finalizar, leer siguiente instrucción, finalizar
programa y pasar al siguiente es una secuencia que, si se encuentra en la fase de ejecución,
puede interrumpirse para dar prioridad a otro programa para que desarrolle su propio ciclo
y el procesador debe en todo momento almacenar los valores del programa interrumpido
para poder continuar cuando regrese a él una vez finalizado el programa que ocasionó la
interrupción esto ocurre en la multiplexación (compartir recursos en tiempo y/o espacio)
del procesador.
A medida han evolucionado los procesadores los diseñadores han abandonado el modelo
lineal de obtener-decodificar-ejecutar una instrucción a la vez creando un proceso
denominado canalización (pipeline) donde se implementan unidades para cada parte del
proceso así mientras el procesador en un momento obtiene una instrucción n en la unidad
de obtención, en la unidad de decodificación se puede estar decodificando una instrucción
m que ya pasó su proceso de obtención y a la vez en la unidad de ejecución se puede estar
ejecutando otra instrucción ñ previamente decodificada, es decir no se espera a que la
misma instrucción sea obtenida, decodificada y ejecutada para comenzar con la siguiente
sino que se desarrollan casi de manera simultánea. Este razonamiento pudo extenderse
hacia la superescalar donde existen dos o más unidades de obtención y decodificación y
se ha dividido la unidad de ejecución en partes que se encargan solo de ciertas
operaciones, esto requiere de un búfer de contención donde son introducidas todas las
instrucciones decodificadas por todas las unidades de decodificación y, como la unidad
de ejecución se dividió en partes cada parte se limita a hacer lo que debe hacer y a buscar
en el búfer instrucciones correspondientes a su tipo nada más, esto implica que las
instrucciones ya no se ejecutan en orden sino que se va ejecutando aquella que encuentre
la división de su procesador libre complicando la carga de trabajo del sistema operativo
y dependiendo del correcto funcionamiento del hardware. El hardware debe garantizar
que, aunque las instrucciones se hayan ejecutado en desorden los resultados son los
mismos que los obtenidos si se hubiesen ejecutado en orden. En la figura 7 podemos ver
el funcionamiento de la canalización (pipeline) mientras que en la figura 8 el de
superescalar.

Figura 7. Funcionamiento del concepto pipeline. Fuente: [7]


Figura 8. Funcionamiento del concepto superscalar. Fuente: [4]

En modo kernel se puede ejecutar cualquier instrucción del procesador (acceso al


hardware completo) mientras que en modo usuario existen restricciones.
Si se multiplica la capacidad de ejecución con el superscalar entonces el siguiente paso
fue multiplicar incluso la unidad de control lo que llevo al multihilamiento que no es más
que ejecutar procesos separados de manera secuencial turnándose la ejecución para tratar
los procesos al mismo tiempo dando la sensación de que se ejecuten de manera paralela.
Un ejemplo de proceso multihilado es un editor de texto ya que tiene un hilo para recibir
los datos del teclado, otro para grabar en disco la información y otro para mostrar en
pantalla la información mientras el editor este cargado sus hilos trabajan de manera
aparentemente simultánea, pero en realidad se están conmutando en el procesador para
que parezca que son paralelos los procesos [8].
El multihilamiento se da en un solo procesador, pero ahora se han desarrollado
procesadores con más de un núcleo en su interior, donde a cada minichip posee su propia
CPU independiente y para comunicarse entre los minichip es necesario el uso de una
caché, además para poder manejar un procesador multinucleo se necesita un SO
multiprocesador. La figura 9 muestra dos chips de cuatro núcleos el primero con caché
compartida y el segundo con caché separadas.

Figura 9. Chips de 4 núcleos con diferente tipo de caché. Fuente: [4]


2. MEMORIA:
Si bien el procesador es quien realiza el trabajo la memoria es un elemento igual de
importante ya que la misma no solo no puede interrumpir con el trabajo del procesador,
sino que es la que lo alimenta de las instrucciones y almacena la información de los
programas. La memoria necesita ser grande para poder almacenar la mayor cantidad de
información posible, rápida para poder acceder a esta información y muy económica, por
desgracia esto no se puede cumplir en la actualidad por lo que se diseñaron diversos
niveles de memoria para poder explotar lo que fuera necesario sabiendo que se sacrificaría
otras características deseables, por ejemplo, un disco magnético tiene una gran capacidad
de almacenamiento, pero su tiempo de acceso es grande. En la figura 10 encontramos una
jerarquía de memoria según el uso que se le da (los valores mostrados son aproximaciones
que realizó el autor de la misma).

Figura 10. Jerarquías en la memoria. Fuente: [4]

Veamos a continuación algunos de estos tipos de memoria:

a. Registros: Ubicados dentro del CPU 32x32 bits o 64x64 bits, los programas deben
administrar que enviarán a los registros para que el procesador lea, decodifique y
ejecute.
b. Líneas de caché: Por lo general 64bytes 512bits, las líneas de caché que se utilizan
con más frecuencia se mantienen en caché de alta velocidad dentro o muy cerca
del CPU (como los registros), las computadoras pueden tener dos o más líneas de
caché pero, cada caché es más grande y más lenta que la anterior. Son tan útiles
que las CPU modernas tienen dos, L1 generalmente de 16KB y L2 que son MB
utilizados recientemente la diferencia es la velocidad L1 se accede casi sin retraso
y L2 requiere uno o dos ciclos para leerse. En los chips multinúcleo (figura 9) los
diseñadores eligen si hay una compartida o cada chip posee una propia.
c. Memoria principal: RAM todo lo que no se puede satisfacer desde caché pasa para
la RAM para tenerlo cerca; la ROM es una unidad de acceso no volátil que
mantiene la información, aunque se apague el dispositivo, suele contener el
cargador de arranque y algunos periféricos poseen su propia ROM para manejar
el control de los dispositivos de bajo nivel. Así como la ROM (no volátil) existen
la EEPROM y la FLASH, la primera se puede borrar y volver a escribir pero es
más tardado que la RAM y la segunda se usa comúnmente como almacenamiento
en dispositivos portátiles y se encuentra (en velocidad de acceso) entre la RAM y
los discos duros sin embargo se desgasta con el uso. Finalmente tenemos la CMOS
utilizada para guardar la fecha y hora del sistema.

3. DISCOS
El disco convencional es un elemento mecánico por ello acceder a su información toma
más tiempo que con los tipos de memoria anteriores, en estos discos puede usarse una
Memoria Virtual la cual simula las memorias caché de los CPU pero usando a la
memoria principal (RAM)
4. CINTAS
Se usan para respaldar discos y conjuntos de datos muy extensos, es sumamente lento
llegar a un segmento de información y para ello deben rebobinarse.
5. DISPOSITIVOS DE ENTRADA Y SALIDA (E/S)
Constan de dos elementos, el hardware y el controlador. El controlador es un chip (o
grupo de chips) que controla físicamente al hardware y es el mediador entre el
procesador y el dispositivo. El software que se comunica con un dispositivo controlador
que le proporciona comando y acepta respuestas se conoce como DRIVER, para que el
procesador acceda a la información del driver se necesita estar en modo kernel y para
ello hay tres formas:
1. Enlazar el kernel con el driver y reiniciar el sistema (UNIX)
2. Crear la entrada en el sistema operativo para indicar que se ocupa un dirver y
que el SO al reiniciar los busque y los cargue (WINDOWS)
3. Que el SO acepte los drivers mientras los ejecuta y carga al instante (plug and
play)
Todo dispositivo posee registros que sirven para comunicarse con él la colección de
todos los registros del dispositivo forma el espacio de puertos de E/S.
6. BUSES
Se utilizan para comunicar los diferentes elementos de la computadora entre sí en un
inicio un solo bus bastaba, pero a medida se fueron mejorando las capacidades de los
dispositivos el uso de un solo BUS era ineficiente, por ello se han ido agregando más
buses para interconectar de manera más eficiente los elementos. Un sistema Pentium
extenso tiene 8 buses (ver figura 11):
a. Caché: Conecta con memoria Caché
b. Local: Comunica el CPU con el PCI
c. Memoria: conecta con la memoria principal RAM, ROM, CMOS.
d. PCI: En la actualidad el principal y comunica dispositivos de E/S, existe el PCI
Express.
e. SCSI: Discos, escáneres y dispositivos veloces que ocupan mucho ancho de
banda.
f. USB: Dispositivos lentos como memorias, teclado y ratón usa un cable con
cuatro conectores dos para datos y dos para energía.
g. IDE: Dispositivos como discos duros o unidades ópticas.
h. ISA: Uno de los dos buses principales, se colocó para tener compatibilidad con
tarjetas de E/S antiguas y lentas.

Figura 11. Estructura sistema Pentium extenso. Fuente: [4]

TIPOS DE SISTEMAS OPERATIVOS


Dependiendo del uso al que estén destinados por el hardware que deban gestionar
podríamos mencionar los siguientes tipos de SO:
1. SISTEMAS OPERATIVOS DE MAINFRAME
La principal diferencia está en la capacidad de E/S, un mainframe puede fácilmente tener
1000 discos y millones de GB, estos SO se centran en el procesamiento de muchos
trabajos a la vez que requieren muchas operaciones de E/S ofreciendo generalmente tres
tipos de servicio:
• Procesamiento por lotes
• Procesamiento de transacciones.
• Tiempo compartido.

2. SISTEMAS OPERATIVOS DE SERVIDORES:


Dan servicio a varios usuarios a la vez a través de una red y les permiten compartir los
recursos de hardware. Solaris, debian, freeBSS, Linux y Windows Server 200x son
ejemplos de estos SO.
3. SISTEMAS OPERATIVOS DE MULTIPROCESADORES:
Permiten el control de varios procesadores ya sea conectando varios computadores o con
procesadores multinúcleo. Muchos de los SO populares (incluyendo Llinux y Windows)
se ejecutan en multiprocesadores.
4. SISTEMAS OPERATIVOS DE COMPUTADORAS PERSONALES:
Su trabajo es proporcionar buen soporte para un solo usuario se utilizan ampliamente para
ofimática o para acceso a internet. Linux, FreeBSD, Windows 10 y Macintosh son
ejemplos de estos SO.
5. SISTEMAS OPERATIVOS DE COMPUTADORAS DE BOLSILLO:
PDA, celulares y tabletas. Android, IOS, Symbian OS, Palm OS son ejemplo de estos SO.
6. SISTEMAS OPERATIVOS INTEGRADOS:
Operan en las computadoras que controlan dispositivos que no se consideran
computadoras como hornos, televisores, autos, reproductores MP3 entre otros. Su
característica principal es que nunca se podrá ejecutar un software no confiable porque
no se actualizan por lo que no se les programa protección. QNX y VXWORKs son
populares en este dominio.
7. SISTEMAS OPERATIVOS DE NODOS DE SENSORES
Tomando como base un reloj interno son SO que trabajan en dispositivos especiales que
realizan lecturas a sensores y están conectados en red y se usan generalmente para
monitoreo. TinyOS es un SO de este tipo.
8. SISTEMAS OPERATIVOS EN TIEMPO REAL:
Usados en procesos industriales, aeronáutica, milicia y aplicaciones similares, se basan
en un control estricto de acciones que dependen del tiempo, generalmente controlan
acciones de robots en líneas de producción. E-Cos es un SO de este tipo.
9. SISTEMAS OPERATIVOS DE TARJETAS INTELIGENTES
Como su nombre lo dice se usan en tarjetas inteligentes y generalmente se usan para
pagos, usan JAVA como SO.
RECURSOS
1. Video concepto sistema operativo https://www.youtube.com/watch?v=JJM3riqBKec
2. Documental, la historia de la computadora y computación documental (45 minutos):
https://www.youtube.com/watch?v=rzy-9cJaJkI
3. FMS, un pequeño vistazo a la historia de éste sistema operativo de IBM
https://www.computer.org/csdl/proceedings/afips/1987/5094/00/50940815.pdf
4. Sistema operativo MINIX 3 http://www.minix3.org/
5. Documental Código Linux (50 miuntos) https://www.youtube.com/watch?v=Nh4SDkJNJEw
6. Sitio web en línea para ejecutar diversos sistemas operativos http://copy.sh/v86/
(ReactOS, Windows 95, FreeBSD, Oberon, Windows 98, Arch Linux, Kilibri OS, Linux 2.6,
Linux 3.18, Windows 1.01, MS-DOS, FreeDOS, OpenBSD, Solar OS, Bootchess)
7. Emulador Mac OS System 7 http://jamesfriend.com.au/pce-js/pce-js-apps/
8. Emulador Mac OS 8.6 http://www.virtualdesktop.org/complete/os8/index.html
9. Emulador Mac OS X http://www.virtualdesktop.org/complete/osx2/index.html
10. Emulador Windows 3.0 http://jamesfriend.com.au/pce-js/ibmpc-win/
11. Examen en línea sobre sistemas operativos http://cibertest.com/examen-
online/511/sistema-operativo
12. Manual usuario GE-235 http://ed-thelen.org/comp-hist/GE-235-SystemManual.pdf
13. Simulador máquina enigma (usaba plugboard) http://enigma.louisedade.co.uk/
14. Simulador máquina enigma (usaba plugboard) https://people.physik.hu-
berlin.de/~palloks/js/enigma/enigma-u_v20_en.html
REFERENCIAS

[1] J. Pérez Porto, «Definicion.de,» 2008. [En línea]. Available: https://definicion.de/sistema-


operativo/. [Último acceso: 25 Mayo 2018].

[2] W. Stallings, SIstemas Opereativos, Madrid: Pearson, 2001.

[3] Tecnología, «Sistemas Operativos,» Areatecnologia, [En línea]. Available:


http://www.areatecnologia.com/sistemas-operativos.htm. [Último acceso: 20 Mayo
2018].

[4] A. S. Tanenbaum, Sistemas Operativos Modernos 3a edición, Amsterdam: Pearson, 2009.

[5] EcuRed, «Spooling,» EcuRed, [En línea]. Available: https://www.ecured.cu/Spooling.


[Último acceso: 20 Mayo 2018].

[6] D. Perez, «Ni Windows ni Android, el sistema operativo más popular es otro y lo utilizas sin
saberlo,» OMICRONO, 6 Noviembre 2017. [En línea]. Available:
https://omicrono.elespanol.com/2017/11/minix-sistema-operativo-mas-utilizado-mundo-
nadie-conoce/. [Último acceso: 2 Junio 2018].

[7] R. Beltrán C., M. I. Fonseca y A. M. Peña, «UNA PROPUESTA PARA LA ENSEÑANZA Y EL


APRENDIZAJE DE LOS SISTEMAS DE NUMERACIÓN,» Revista EMA, vol. 4, nº 3, pp. 256-264,
1999.

También podría gustarte