Está en la página 1de 28

República Bolivariana de Venezuela

Ministerio del Poder Popular para la defensa


Universidad Nacional Experimental Politécnica de la Fuerza Armada Nacional Bolivariana
UNEFA - Núcleo Puerto Cabello

Informe de Sistema Operativo

Profesora: Bachiller:

Marisela Materano Victor Cuauro


C.I.: 26671901
Robert Sanchez
C.I: 27307525
6to Semestre Ing. De Sistemas.

Puerto Cabello, Mayo de 2021


I-CONCEPTOS BASICOS DE SISTEMAS OPERATIVO

INTRODUCCION A LOS SISTEMAS DE COMPUTACIÓN

La computadora se ubica desde cuando aparece la necesidad de contar y tener el control


adecuado desde nuestras pertenencias, así como la necesidad de registrar o guardar
memoria; al transcurrir el tiempo el ser humano ha desarrollado conceptos y herramientas
de apoyo para actuar cada vez con mayor facilidad, precisión y con menor tiempo en el
proceso y registro de la información.

De esta manera la computación tiene como antecedente la necesidad del ser humano de
contar con herramientas y medios que le permitan registrar y manipular la información y
desarrollar procedimientos lógicos para obtener diversos resultados a partir de la
información; la cual se ha manifestado desde el caso simple de sumar y restar cantidades,
hasta alcanzar las nuevas formas de almacenar, procesar y manipular todo tipo de
información.

Aquí tenemos unos conceptos básicos:

 Informática: Según el Diccionario de la Real Academia Española es el “Conjunto


de conocimientos científicos y técnicas que hacen posible el tratamiento
automático de la información por medio de ordenadores”. Su origen esta
relacionado con la acuñación de la palabra Informatik del alemán Karl Steinbuch
en 1957, la cual es una contracción de las palabras información y automatic.

 Computador (Ordenador): es un dispositivo electrónico al que se le puede


introducir datos para que realice ciertas operaciones y genere información útil al
usuario; es un conjunto de dispositivos periféricos que se interconectan a través
de protocolos y puertos de comunicación estándares, a un sistema de circuitos
integrados con el propósito de facilitar la captura de datos el procesamiento de los
mismos y la emisión de sus resultados.

 Dato: En términos informáticos es la unidad mínima de información dispuesta de


tal forma que pueda ser captura y procesada por un computador.

 Información: Desde el punto de vista de la informática es un conjunto ordenado


de datos que tiene un sentido y significado para el sistema al cual está destinado
sea este computacional o humano
Hardware

Representa los componentes físicos tangibles de un sistema de computación, estos


elementos por si solos no pueden realizar ninguna acción, por lo tanto requieren del
Software para su funcionamiento. Es parte tangible o dispositivos físicos de la
computadora; como la placa base, la unidad central de almacenamiento, periféricos y el
monitor. Entre los más importantes se encuentra:

Placa Base: es uno de los componentes más importantes de la computadora y esenciales


para su funcionamiento (también conocida como Placa madre), que es una placa de circuito
impreso que aloja a la Unidad Central de Procesamiento (CPU) o microprocesador, Chipset
(circuito integrado auxiliar), Memoria RAM, BIOS o Flash-ROM, etc., además de
comunicarlos entre sí.

Los componentes y dispositivos del Hardware se dividen en básico y complementario

El Hardware Básico: son las piezas fundamentales e imprescindibles para que la


computadora funcione como son: Placa base, monitor, teclado y ratón.

El Hardware Complementario: son todos aquellos dispositivos adicionales no esenciales


como pueden ser: impresora, escáner, cámara de vídeo digital, webcam, etc.

Software

Constituye la parte lógica intangible en un sistema de computación, se refiere al conjunto


de programas que son utilizados para administrar los componentes de Hardware, y permitir
la interacción entre estos y el usuario.

El Software son los programas de aplicación y los sistemas operativos, que según las
funciones que realizan pueden ser clasificados en:

 Software de Sistema: Se le llama así al conjunto de programas que sirven para


interactuar con el sistema, confiriendo control sobre el hardware, además de dar
soporte a otros programas.

El Software de Sistema se divide en:

 Sistema operativo: es un conjunto de programas que administran los recursos de


la computadora y controlan su funcionamiento. Un sistema operativo, realiza
cinco funciones básicas:

1. Suministro de interfaz al usuario: Permite al usuario comunicarse con la


computadora por medio de interfaces que se basan en comandos, interfaces que
utilizan menús, e interfaces gráficas de usuario.
2. Administración de recursos: Administran los recursos del hardware como la CPU,
memoria, dispositivos de almacenamiento secundario y periféricos de entrada y de
salida.

3. Administración de archivos: Controla la creación, borrado, copiado y acceso de


archivos de datos y de programas.

4. Administración de tareas: Administra la información sobre los programas y


procesos que se están ejecutando en la computadora. Puede cambiar la prioridad
entre procesos, concluirlos y comprobar el uso de estos en la CPU, así como
terminar programas.

5. Servicio de soporte: Los Servicios de Soporte de cada sistema operativo dependen


de las implementaciones añadidas a este, y pueden consistir en inclusión de
utilidades nuevas, actualización de versiones, mejoras de seguridad, controladores
de nuevos periféricos, o corrección de errores de software.

 Controlador de dispositivos: son programas que permiten a otro programa de mayor


nivel como un sistema operativo interactuar con un dispositivo de hardware.

 Programas utilitario: realizan diversas funciones para resolver problemas


específicos, además de realiza tareas en general y de mantenimiento. Algunos se
incluyen en el sistema operativo.

 Software de Aplicación: El Software de Aplicación son los programas diseñados


para o por los usuarios para facilitar la realización de tareas específicas en la
computadora, como pueden ser las aplicaciones ofimáticas (procesador de texto,
hoja de cálculo, programa de presentación, sistema de gestión de base de datos…), u
otros tipos de software especializados como software médico, software educativo,
editores de música, programas de contabilidad, etc.

 Software de Programación: El Software de Programación es el conjunto de


herramientas que permiten al desarrollador informático escribir programas usando
diferentes alternativas y lenguajes de programación.

Este tipo de software incluye principalmente compiladores, intérpretes, ensambladores,


enlazadores, depuradores, editores de texto y un entorno de desarrollo integrado que
contiene las herramientas anteriores, y normalmente cuenta una avanzada interfaz gráfica
de usuario (GUI).
Firmware

También conocido como soporte lógico inalterable, es el programa básico que controla los
circuitos electrónicos de cualquier dispositivo. Este programa o software es una porción de
código encargada de controlar qué es lo que tiene que hacer el hardware de un dispositivo,
y el que se asegura de que el funcionamiento básico es correcto. Es una unidad de memoria
de sólo lectura que contiene un conjunto de instrucciones básicas permitiendo a su vez la
comunicación entre el Hardware y el Software.

Tú puedes tener varios circuitos conectados en el interior de tu dispositivo, pero esos


circuitos necesitan una lógica primaria, unas instrucciones básicas que les digan cómo
tienen que funcionar, cómo tienen que arrancar y qué operaciones tienen que realizar. Eso,
simplificándolo para que se entienda, viene a ser lo que significa el firmware.

El código que compone el firmware de cualquier dispositivo suele venir en chips de


memoria a parte de las principales. Esto quiere decir que desde tu ratón hasta tu lavadora,
en todos los dispositivos hay una mínima memoria ROM en la que está almacenado este
firmware. Gracias a él, también se establece una interfaz para la configuración del sistema y
permite controlar el arranque y las conexiones y funciones principales del dispositivo.

INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS

El primer objetivo es un sistema operativo es que el computador sea cómodo de usar. El


segundo objetivo es que la máquina sea usada eficientemente.

Un Sistema Operativo es un programa que actúa como intermediario entre el usuario y la


máquina. El propósito de un sistema operativo es proveer un ambiente en que el usuario
puede ejecutar sus aplicaciones. Las aplicaciones son todos aquellos programas que el
usuario ejecuta para mejorar su productividad o para divertirse. Sin el software, una
computadora no es más que una masa metálica sin utilidad. Con el software, una
computadora puede almacenar, procesar y recuperar información, encontrar errores de
ortografía en manuscritos, tener aventuras e intervenir en muchas otras valiosas actividades
para ganar el sustento.

El software para computadoras puede clasificarse en general en dos clases: los programas
de sistema, que controlan la operación de la computadora en sí y los programas de
aplicación, los cuales resuelven problemas para sus usuarios. El programa fundamental de
todos los programas de sistema es el sistema operativo (SO), que controla todos los
recursos de la computadora y proporciona la base sobre la cual pueden escribirse los
programas de aplicación
Qué es un Sistema Operativo

Desde su creación, las computadoras digitales han utilizado un sistema de codificación de


instrucciones en sistema de numeración binaria, es decir con los 0S. Esto se debe a que los
circuitos integrados funcionan con este principio, es decir, hay corriente o no hay corriente.
En el origen de la historia de las computadoras (hace unos cuarenta años), los sistemas
operativos no existían y la introducción de un programa para ser ejecutado se convertía en
un increíble esfuerzo que solo podía ser llevado a cabo por muy pocos expertos. Esto hacia
que las computadoras fueran muy complicadas de usar y que se requiriera tener altos
conocimientos técnicos para operarlas. Era tan complejo su manejo, que en algunos casos el
resultado llegaba a ser desastroso.

Uno de los propósitos del sistema operativo que gestiona el núcleo intermediario consiste
en gestionar los recursos de localización y protección de acceso del hardware, hecho que
alivia a los programadores de aplicaciones de tener que tratar con estos detalles. La mayoría
de aparatos electrónicos que utilizan microprocesadores para funcionar, llevan incorporado
un sistema operativo (teléfonos móviles, reproductores de DVD, computadoras,
enrutadores, etc.). En cuyo caso, son manejados mediante una interfaz gráfica de usuario,
un gestor de ventanas o un entorno de escritorio, si es un celular, mediante una consola o
control remoto si es un DVD y, mediante una línea de comandos o navegador web si es un
enrutador.

El sistema operativo de escritorio dominante es Microsoft Windows con una cuota de


mercado de alrededor del 82,74%. macOS de Apple Inc. ocupa el segundo lugar (13,23%),
y las variedades de GNU/Linux están colectivamente en tercer lugar (1,57%).2 En el sector
móvil (incluidos teléfonos inteligentes y tabletas), la participación de Android es de hasta
un 70% en el año 2017.3 Las distribuciones Linux son dominantes en los sectores de
servidores y supercomputación4. Existen otras clases especializadas de sistemas operativos,
como los sistemas integrados y en tiempo real, para muchas aplicaciones.

Estructura

Un sistema está constituido por partes claramente diferenciables, sus elementos,


relacionadas entre sí de algún modo particular, combinación que constituye su estructura.
Esta estructura es un ordenamiento que se atribuye a los elementos mediante sus relaciones.
Los elementos pueden ser objetos materiales, como piezas metálicas de un puente, o
ideales, como las palabras de una oración. Es decir, las estructuras son ordenamientos
reales o ideales de elementos

Se considera la organización interna del sistema operativo y para ello debemos observar
dos tipos de requisitos:

Requisitos del usuario:

- Sistema fácil de usar y aprender

- Seguro
- Rápido

- Adecuado al uso al que se quiere destinar

Requisitos de software:

- Mantenimiento

- Forma de operación

- Restricciones de uso

- Eficiencia

- Tolerancia frente a errores

- Flexibilidad

A medida que fueron creciendo las necesidades de los usuarios y se perfeccionaron los
sistemas, se hizo necesaria una mayor organización del software del sistema operativo,
donde una parte del sistema contenía subpartes y esto organizado en forma de niveles.

Es una estructura jerárquica, con mayor organización del software del sistema operativo. El
sistema operativo se divide en partes o niveles, cada uno perfectamente definido y con un
claro interface (comunicación) con el resto de los elementos.

Niveles que conforman el sistema operativo

 Núcleo (Kernell)

 Es la parte primordial del sistema operativo. El núcleo o centro del sistema


operativo administra todo el sistema, sincroniza todos los procesos. A nivel de
núcleo solo se trabaja con procesos.

 Gestión de entrada/salida

 El sistema operativo administra los dispositivos externos a través de sus


controladores.

 Gestión de memoria

 El sistema operativo administra todos los aspectos relativos a memoria real y


memoria virtual.

 Sistemas de archivos
 El sistema operativo se ocupa de administrar los archivos del usuario a través de una
estructura de directorios con algún tipo de organización.

 Intérprete de comandos

 Es un mecanismo de comunicación entre los usuarios y el sistema. Lee las


instrucciones del usuario y hace que se ejecuten las funciones del sistema
solicitadas.

Evolución histórica

El concepto de Sistema Operativo surge en la década de los 50. El primer Sistema


Operativo de la historia fue creado en 1956 para un ordenador IBM 704, y básicamente lo
único que hacía era comenzar la ejecución de un programa cuando el anterior terminaba.

En los años 60 se produce una revolución en el campo de los Sistemas Operativos.


Aparecen conceptos como sistema multitarea, sistema multiusuario, sistema
multiprocesadores y sistema en tiempo real.

Es en esta década cuando aparece UNIX, la base de la gran mayoría de los Sistemas
Operativos que existen hoy en día.

En los años 70 se produce un boom en cuestión de ordenadores personales, acercando estos


al público general de manera impensable hasta entonces. Esto hace que se multiplique el
desarrollo, creándose el lenguaje de programación C (diseñado específicamente para
reescribir por completo el código UNIX).

Como consecuencia de este crecimiento exponencial de usuarios, la gran mayoría de ellos


sin ningún conocimiento sobre lenguajes de bajo o alto nivel, hizo que en los años 80, la
prioridad a la hora de diseñar un sistema operativo fuese la facilidad de uso, surgiendo así
las primeras interfaces de usuario.

En los 80 nacieron sistemas como MacOS, MS-DOS, Windows.

En la década de los 90 hace su aparición Linux, publicándose la primera versión del núcleo
en septiembre de 1991, que posteriormente se uniría al proyecto GNU, un sistema operativo
completamente libre, similar a UNIX, al que le faltaba para funcionar un núcleo funcional.
Hoy en día la mayoría de la gente conoce por Linux al Sistema Operativo que realmente se
llama GNU/Linux.
Reentrancia
En informática, un programa informático o subrutina se llama re-entrada si puede ser
interrumpido en medio de su ejecución y volver a llamarse de forma segura ("re-entrar")
antes de que las invocaciones anteriores completen su ejecución.

Una función reentrante no tiene variables estáticas en sucesivas llamadas, ni retorna un


puntero a datos estáticos. Todos los datos son suministrados por el llamador de la función,
una función reentrante no debe llamar a funciones no reentrantes. Una función no
reentrante puede a menudo, pero no siempre, identificarse por su interfaz externa y su uso.
Por ejemplo, la rutina strtok es no reentrante, pues almacena la cadena que debe ser partida
en sus elementos.

Procesos
El principal concepto en cualquier sistema operativo es el de proceso. Un proceso es un
programa en ejecución, incluyendo el valor del program counter, los registros y las
variables. Conceptualmente, cada proceso tiene un hilo (thread) de ejecución que es visto
como un CPU virtual. El recurso procesador es alternado entre los diferentes procesos que
existan en el sistema, dando la idea de que ejecutan en paralelo (multiprogramación).
Los procesos son creados y destruidos por el sistema operativo, así como también este se
debe hacer cargo de la comunicación entre procesos, pero lo hace a petición de otros
procesos. El mecanismo por el cual un proceso crea otro proceso se denomina bifurcación
(fork). Los nuevos procesos son independientes y no comparten memoria (es decir,
información) con el proceso que los ha creado.
En los sistemas operativos multihilo es posible crear tanto hilos como procesos. La
diferencia estriba en que un proceso solamente puede crear hilos para sí mismo y en que
dichos hilos comparten toda la memoria reservada para el proceso.
Exclusión Mutua
La exclusión mutua es la actividad que realiza el sistema operativo para evitar que dos o
más procesos ingresen al mismo tiempo a un área de datos compartidos o accedan a un
mismo recurso.
En otras palabras, es la condición por la cual, de un conjunto de procesos, sólo uno puede
acceder a un recurso dado o realizar una función dada en un instante de tiempo.En sistemas
de multiprogramación con un único procesador, los procesos se intercalan en el tiempo
para dar la apariencia de ejecución simultánea. Uno de los grandes problemas que nos
podemos encontrar es que el hecho de compartir recursos está lleno de riesgos.
Por ejemplo, si dos procesos hacen uso al mismo tiempo de una variable global y ambos
llevan a cabo tanto operaciones de lectura como de escritura sobre dicha variable, el orden
en que se ejecuten estas lecturas y escrituras es crítico, puesto que se verá afectado el valor
de la variable. Consiste en que un solo proceso excluye temporalmente a todos los demás
para usar un recurso compartido de forma que garantice la integridad del sistema.
La sección crítica es la parte del programa con un comienzo y un final claramente
marcados que generalmente contiene la actualización de una o más variables compartidas.
Para que una solución al problema de la exclusión mutua sea válida, se tienen que cumplir
una serie de condiciones:
 Hay que garantizar la exclusión mutua entre los diferentes procesos a la hora de
acceder al recurso compartido.
 No puede haber 2 procesos dentro de sus respectivas secciones críticas.
 No se deben hacer suposiciones en cuanto a la velocidad relativa de los procesos en
conflicto.
 Ningún proceso que este fuera de su sección crítica debe interrumpir a otro para el
acceso a la sección critica.
 Cuando más de un proceso desee entrar en su sección critica, se le debe conceder la
entrada en un tiempo finito.
Para la solución al problema de la exclusión mutua hay 3 tipos de soluciones
 Soluciones software
 Soluciones hardware
 Soluciones aportadas por el sistema operativo

Spooling
La técnica de spooling (Simultaneous Peripheral Operation On Line) permite leer y escribir
en los periféricos cuando se necesita, en lugar de tener que esperar a que todos los trabajos
estén listos. Para ello el sistema operativo mantiene una cola de impresión, es decir, con la
información de los trabajos a ser impresos.
Cuando se usan dispositivos no compartibles puede ocurrir que durante periodos de mucha
demanda varios procesos queden bloqueados esperando por el uso de los periféricos.
La técnica del spooling pretende evitar estas pérdidas de tiempo haciendo que la
transferencia se efectué sobre un soporte intermedio y no directamente sobre el periférico.
Descripción:
Aun cuando un proceso abre un stream asociado a un dispositivo no compartible, la rutina
de E/S le asigna un fichero anónimo en un soporte intermedio, de forma que se dirige a Él
todas las salidas del stream; Cuando se cierra el stream, el fichero se añade a una cola que
contiene ficheros similares creados por otros procesos;
El spooler (proceso independiente asociado al  dispositivo no compartible) se encarga de
transferir la información de los ficheros almacenados en esa cola sobre el dispositivo físico.
USO EL SPOOLING
El spooling es útil en caso de dispositivos que acceden a los datos a distintas velocidades. O
en aquellos casos en que no hay comunicación directa entre los programas que escriben los
datos y aquellos que los leen. Los datos del área temporal solo pueden ser modificados
agregando o eliminado al final del área (en general, no hay acceso aleatorio ni edición).
También es muy usado en la impresión (print spooling), donde los documentos a imprimir
son cargados al spool de impresión, y la impresora los va tomando en su debido tiempo
para imprimirlos. El spooling permite poner documentos en una "cola de impresión", que
irán imprimiéndose en ese orden, mientras el usuario hace otras tareas. Otro uso del
spooling es email spool, un área temporal de almacenamiento de emails a ser enviados por
el programa agente transmisor de emails. De todas maneras este tipo de spooling es
diferente, dado que permite el acceso aleatorio a los mensajes de email del área de
almacenamiento temporal
Kernel
El núcleo o kernel es la parte central de un sistema operativo y es el que se encarga de
realizar toda la comunicación segura entre el software y el hardware del ordenador. El
núcleo kernel es la parte más importante del sistema operativo Unix y sus derivados, como
Linux y todas las distribuciones que dependen de él.
Todos los sistemas operativos tienen un Kernel, incluso Windows 10, pero quizá el más
famoso es el Kernel de Linux, que ahora además está integrado en Windows 10 con sus
últimas actualizaciones.
Este núcleo de los sistemas operativos se ejecuta en modo privilegiado con acceso especial
a los recursos del sistema para poder realizar las peticiones de acceso que le va pidiendo el
software que lo necesita, además como los recursos no son ilimitados, también hace de
árbitro a la hora de asignarlos, decidiendo el orden de las peticiones recibidas según la
prioridad e importancia de estas. Una gestión muy importante y fundamental que en la
mayoría de las ocasiones pasa desapercibida aun siendo un trabajo esencial para coordinar
todo el hardware con el software.
El kernel de Windows es privado y su código lo tienen a salvo en el que solamente
Microsoft puede realizar modificaciones para mejorar sus próximas versiones de Windows
10, al igual pasa con el de macOS, basado en Unix pero con licencia privada se reserva al
equipo de desarrollo encargado en Apple de realizar estas modificaciones, pero Linux tiene
un Kernel público bajo licencia GPL v2 y su código (o la mayor parte) está disponible para
poder descargarlo, examinarlo o incluso realizar aportes y modificaciones útiles para los
demás usuarios.
Microprogramación
Definición de Microprogramación Es el proceso de escritura para un microcódigo para un
procesador, el cual es de un nivel inferior que define como debe funcionar un
microprocesador cuando este ejecute instrucciones de lenguaje de máquina. Normalmente,
las instrucciones en lenguaje de máquina se traducen en varias instrucciones de
microcódigo, el cual se almacena (según la computadora) en la ROM, donde no puede ser
modificado o en la EPROM, donde puede ser sustituida por versiones más recientes.
Las principales características de la microprograma son:
 Se trata de software que generalmente se localiza en la memoria de solo lectura.
 Busca las instrucciones de lenguaje de máquina para ejecutarlas como una serie de
pequeños pasos.
 El conjunto de instrucciones que interpreta define al lenguaje de máquina.
 En ciertas máquinas se implanta en el hardware y no es en realidad una capa
distinta.

El diseño de microprocesadores de propósito general conoce dos técnicas que conducen a


una clasificación de éstos en dos grupos:
 Microprocesadores cableados: Son aquellos que tienen una unidad de control
específicamente diseñada sobre el silicio para un juego de instrucciones concreto.
En este caso, es el hardware el que se encarga de ejecutar las instrucciones de nivel
2.
 Microprocesadores microprogramados: Son aquellos que tienen una unidad de
control genérica o prediseñada y que implementan un juego de instrucciones u otro
dependiendo de una microprograma software (paso de nivel 2 a nivel 1).
Hoy en día, la microprogramación ha desaparecido casi por completo. Esto se debe a:
 Existen herramientas avanzadas para diseñar complejos microprocesadores con
millones de transistores litografiados. Estas herramientas prácticamente garantizan
la ausencia de errores de diseño.
 Los microprocesadores cableados tienen un rendimiento mayor que cualquier
unidad microprogramada, resultando así más eficientes y competitivas.
II-INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS

Estructura de un Sistema Operativo

Un sistema está constituido por partes claramente diferenciables, sus elementos,


relacionadas entre sí de algún modo particular, combinación que constituye su estructura.
Esta estructura es un ordenamiento que se atribuye a los elementos mediante sus relaciones.
Los elementos pueden ser objetos materiales, como piezas metálicas de un puente, o
ideales, como las palabras de una oración. Es decir, las estructuras son ordenamientos
reales o ideales de elementos.

Se considera la organización interna del sistema operativo y para ello debemos observar
dos tipos de requisitos:

Requisitos del usuario:

- Sistema fácil de usar y aprender

- Seguro

- Rápido

- Adecuado al uso al que se quiere destinar

Requisitos de software:

- Mantenimiento

- Forma de operación

- Restricciones de uso

- Eficiencia

- Tolerancia frente a errores

- Flexibilidad
A medida que fueron creciendo las necesidades de los usuarios y se perfeccionaron los
sistemas, se hizo necesaria una mayor organización del software del sistema operativo,
donde una parte del sistema contenía subpartes y esto organizado en forma de niveles.

Es una estructura jerárquica, con mayor organización del software del sistema operativo. El
sistema operativo se divide en partes o niveles, cada uno perfectamente definido y con un
claro interface (comunicación) con el resto de los elementos.

Niveles que conforman el sistema operativo

 Núcleo (Kernell)

 Es la parte primordial del sistema operativo. El núcleo o centro del sistema


operativo administra todo el sistema, sincroniza todos los procesos. A nivel de
núcleo solo se trabaja con procesos.

 Gestión de entrada/salida

 El sistema operativo administra los dispositivos externos a través de sus


controladores.

 Gestión de memoria

 El sistema operativo administra todos los aspectos relativos a memoria real y


memoria virtual.

 Sistemas de archivos

 El sistema operativo se ocupa de administrar los archivos del usuario a través de una
estructura de directorios con algún tipo de organización.

 Intérprete de comandos

 Es un mecanismo de comunicación entre los usuarios y el sistema. Lee las


instrucciones del usuario y hace que se ejecuten las funciones del sistema
solicitadas.

Evolución de los Sistemas Operativos

Usar un computador no siempre fue tan fácil. Los sistemas operativos surgieron como una
necesidad para poder utilizar máquinas muy complejas en tiempos que se necesitaba
personal muy especializado para poder operarlas. La evolución de los sistemas operativos
estuvo, por lo tanto, muy ligada a las características y necesidades particulares de las
máquinas disponibles. Resulta difícil hablar de los sistemas operativos sin referirse al
mismo tiempo a la evolución del hardware, pues ambos aspectos han avanzado de la mano
durante gran parte de la historia.

Este artículo describe algunos hitos en la evolución del software que conocemos como
sistema operativo y destaca el surgimiento de conceptos que persisten en los sistemas
operativos modernos. La división de generaciones es aproximada en cuanto a años, y está
guiada principalmente por los hitos que marcaron al hardware.

Prehistoria de sistemas operativos

La primera máquina a la que se puede llamar un computador digital de propósito general


fue diseñada por el matemático inglés Charles Babbage (1791-1871), quien diseñó una
máquina mecánica digital (digital: capaz de trabajar con dígitos), conocida como la
analytical engine, o máquina de Babbage. Si bien desarrolló todos los planos, nunca pudo
terminar de construirla.

Charles Babbage (1791-1871) and the Analytical Engine. Esta reconstrucción fue hecha a
partir de los diseños de Babbage.

La máquina de Babbage, sin embargo, no tenía ningún tipo de software. La máquina podía
ser "programada" (un concepto nuevo para la época) mediante tarjetas perforadas, método
que ya se usaba para configurar máquinas en la industria textil. Ada Lovelace, matemática,
escribió un conjunto de notas que describían un procedimiento para calcular una secuencia
de números de Bernoulli usando la máquina de Babbage. Se considera este documento
como el primer programa desarrollado para una máquina computacional, y a Ada Lovelace
como la primera programadora. El lenguaje de programación Ada fue nombrado en su
honor.

Ada Lovelace (1815-1852) y el primer algoritmo para una máquina de cómputo. Ada
falleció a los 36 años de cáncer uterino.

Primera Generación (1945-55): Tubos de vacío

Posteriormente al trabajo de Babbage, el desarrollo de máquinas programables quedó


relegado al ámbito de la investigación científica, sin grandes aplicaciones prácticas. Como
ha ocurrido con tantos otros inventos, fue el periodo de la Segunda Guerra Mundial el que
vino a reimpulsar el interés en este tipo de máquinas.

Se empezaron a desarrollar las primeras máquinas electrónicas, como el Z3 de Konrad Zuse


(1941), y la máquina de Atanasoff-Berry (1942). El flujo de cómputo de estas máquinas era
controlado por switch electrónicos (relay), construidos mediante tubos de vacío (vacuum
tube). Al estar compuestas por cientos o miles de estos tubos, no era extraño que uno o
varios fallaran durante la operación. Algunas de estas máquinas eran programables, si bien
no todas eran de "propósito general" ó Turing-complete.
En 1944, un grupo de científicos en Bletchley Park, Inglaterra, entre los que se encontraba
Alan Turing, construyó el computador Colossus, cuyo modelo más conocido, el Colossus
Mark 2, utilizaba 2400 tubos de vacío. Este computador, si bien, tampoco era Turing-
complete (lo que demuestra que no basta tener a Alan Turing para ser Turing-complete) ya
que fue diseñado para una tarea criptográfica particular, sí era programable mediante cintas
de papel. Fue importante en el proceso de decriptación del criptosistema alemán Lorenz.
Colossus Mark 2 @ Bletchley Park. Reconstrucción.

En 1946, William Mauchley y J. Presper Eckert construyeron, en la Universidad de


Pennsylvania uno de los primeros computadores programables de propósito general: el
ENIAC (Electronic Numerical Integrator and Computer). Poseía 20000 tubos de vacío,
pesaba 27 toneladas, ocupaba 167m2 y consumía 150kW de electricidad. Su dispositivo de
entrada era un lector de tarjetas perforadas y su salida era un perforador de tarjetas (IBM
405). Poseía un clock de 100kHz, y utilizaba 20 registros de 10 dígitos binarios. No existía
un lenguaje de programación, ni siquiera assembler, de manera que toda la computación era
descrita en las tarjetas perforadas mediante código de máquina.

Segunda Generación (1955-65): Transistores y Sistemas Batch

La creación de los transistores en los años 1950 revolucionó la construcción de los


dispositivos electrónicos reduciendo drásticamente las tasas de falla respecto al hardware
construido con tubos de vacío y aumentando la velocidad de respuesta. Se empezaron a
construir grandes computadores basados en transistores, conocidas como mainframes.
Debido a su costo de construcción, un computador de este tipo era solamente accesible para
grandes corporaciones, gobiernos y universidades.

La operación de un mainframe requería la colaboración de varios actores. Un mainframe


ejecuta jobs (trabajos), que consisten en el código de un programa, o una secuencia de
programas. Los programas se ingresan mediante tarjetas perforadas y se escriben en
lenguaje assembler. En 1953, John W. Backus, de IBM, propone una alternativa para hacer
más práctica la descripción de programas en lugar de assembler y desarrolla el FORmula
TRANslating system, conocido como lenguaje FORTRAN, junto con una herramienta para
hacer la traducción hacia assembler llamada compilador. Este trabajo le otorgaría el Turing
Award en 1977.

Un programa escrito en FORTRAN sobre tarjetas perforadas es entregado como input a un


lector de tarjetas. El lector de tarjetas escribe sobre una cinta que se entrega a la máquina
principal, la cual ejecuta las instrucciones, proceso que podía tardar horas dependiendo de
la complejidad del cómputo, y escribe el resultado sobre otra cinta de salida. La cinta de
salida es leída por otro dispositivo capaz de imprimir el contenido de la cinta a un papel. En
ese momento termina la ejecución del job.

Notemos que durante el tiempo que un dispositivo está leyendo las tarjetas perforadas, tanto
el dispositivo procesador como el dispositivo de salida no están haciendo ningún trabajo
útil. Dado el costo del equipamiento era poco conveniente tener estas unidades en espera
mientras se traduce una tarjeta perforada a una cinta magnética. Es por esto que se
desarrollaron soluciones como el sistema de procesamiento batch, o procesamiento por
lotes. En este modelo, un programador entrega sus tarjetas perforadas a un operador (otra
persona) que se dedica a ingresar las tarjetas a una unidad lectora de tarjetas (IBM 1402).
Cuando hay una cantidad suficiente de trabajos, el operador toma la cinta de salida y la
traslada (físicamente) a un dispositivo procesador como el IBM 1401 (3 registros, word de
6-bit con codificación BCD) o el más poderoso IBM 7094 (7 registros, word de 36-bit, y
espacio de direcciones de 15-bit: 32768 words). El operador carga un primer programa
(algo similar a un sistema operativo) que prepara al computador para leer una serie de jobs
desde la cinta. Mientras el dispositivo procesador realiza las labores de cómputo, el IBM
1402 podía seguir leyendo el siguiente conjunto de tarjetas. La salida del dispositivo
procesador iba a una cinta magnética de salida. El operador nuevamente debe tomar esta
cinta, llevarla a un dispositivo impresor (IBM 1403) que transfiera el contenido de la cinta
magnética a papel de manera offline. Esto es, no conectado al dispositivo procesador.

Este tipo de computadores se usó principamente para cómputo científico y de ingeniería.


Los programas que permitían a estos computadores procesar secuencialmente una cantidad
de jobs fueron algunos de los primeros en cumplir la tarea de un sistema operativo, como
FMS (FORTRAN Monitor System, básicamente un compilador de FORTRAN), y el
sistema del IBM 7094, IBSYS.

Un IBM 1620, como el que está en el DCC. Utiliza words codificados en BCD, y era capaz
de almacenar hasta 20000 digitos. No poseía ALU. Utilizaba tablas de 100 dígitos para
efectuar sumas y restas, y una tabla de 200 dígitos para multiplicaciones. La división se
efectuaba mediante subrutinas de software. Tenía un clock 1MHz, y tiempo de acceso a
memoria de 20usec.

Tercera Generación (1965-1980): Circuitos Integrados y Multiprogramación

En los años 1960s, los mainframes de IBM (International Business Machines Corporation),
la compañía constructora de equipamiento computacional más importante de la época,
requerían cada uno un software y periféricos distintos para funcionar, ya que las
instrucciones no eran compatibles. Un programa hecho para un modelo debía ser reescrito
ante la introducción de un nuevo modelo de hardware. La compañía decide unificar el
hardware bajo una familia llamada System/360. Ésta fue la primera línea importante basada
en la nueva tecnología de circuitos integrados capaz de integrar grandes cantidades de
pequeños transistores, lo que proporcionaba una enorme ventaja precio/rendimiento
respecto a los transistores tradicionales.
OS/360, y la multiprogramación

La idea de tener una línea de hardware mutuamente compatible y de propósito general


requería un sistema capaz de funcionar en todos los modelos. Este sistema fue el OS/360.
El software resultante resultó enormemente grande (millones de líneas de assembler) y
complejo de desarrollar, con numerosos bugs, en tiempos en que la ingeniería de software
no se desarrollaba como disciplina aún. El director del proyecto Fred Brooks describió sus
experiencias en el libro "The Mythical Man-Month", un clásico de la ingeniería de
software. Sus contribuciones a esta nueva disciplina le valieron el otorgamiento del Turing
Award en 1999..
La historia de Linux se escribe a partir de los años 90, después de que durante los años
anteriores se formase la Fundación del Software Libre y se desarrollase la Licencia pública
general de GNU. La gran cantidad de software almacenado a principio de los 90 hizo que
se pudiera desarrollar un sistema operativo completo de la mano de Linus Torvalds, que fue
quien comenzó el proyecto y el que hizo que más tarde llegara Linux.

Cuarta Generación (1980-Presente): Computadores personales

El desarrollo tecnológico de los circuitos integrados llegó al nivel conocido como VLSI
(Very Large Scale Integration), capaz de integrar hasta 1 millón de transistores en un chip
de 1cm2, lo que permitía hasta 100000 celdas lógicas. Surgieron sistemas computacionales
de uso personal denominados microcomputadores, que en principio no eran
tecnológicamente muy superiores al PDP-11, pero a un precio notablemente inferior.

Intel 8080, CP/M y el despegue de los microcomputadores

En 1974, Intel presenta el chip Intel 8080, una CPU de propósito general de 8-bit con un
clock de 2MHz, sucesora del 4004 y el 8008, los primeros microprocesadores del mercado.
Fue parte del popular MITS Altair 8800, que dió inicio a la era de los microcomputadores.

Apple y la evolución de MacOS

No sería, hasta el desarrollo del Apple Lisa (1983) y el Apple Macintosh (1984), los
primeros computadores personales en incluir una interfaz gráfica, que las GUIs se harían
populares al acercar el uso del computador al público general e incorporar el concepto de
user friendliness. Se dice que Steve Jobs, co-fundador de Apple Computer Inc. habría
tenido la idea incorporar la GUI a su próximo computador (Lisa) luego de una visita que
realizó en 1979 a Xerox PARC, sin embargo hay testimonios que indican que el plan de
incorporar una GUI al Apple Lisa existía de manera previa a dicha visita (Steve Jobs y los
ingenieros de Apple tenían suficientes motivos para visitar Xerox PARC, en cualquier caso,
y la visita efectivamente ocurrió). En cualquier caso el Apple Macintosh fue ampliamente
popular en particular en el ámbito del diseño gráfico.

Microsoft y la evolución de Windows

Fuertemente influenciado por el éxito del Apple Macintosh, a inicios de 1980s Microsoft
planeaba un sucesor para MS-DOS que tuviera su propia GUI. Su primer intento fue un
sistema administrador de ventanas llamado Windows 1.0 (1985) que funcionaba como una
aplicación sobre MS-DOS. La versión que consiguió mayor adopción fue Windows 3.11,
para sistemas de 16-bit. Fue en 1995, con el lanzamiento de Windows 95 y luego Windows
98, que se incorporó código para aprovechar las nuevas CPU de 32-bit, aun cuando parte
del sistema operativo debía soportar aún aplicaciones de 16-bit por retrocompatibilidad.
MS-DOS seguía siendo usado para iniciar el sistema y como soporte subyacente para
aplicaciones antiguas.

Ya desde 1987, Microsoft había trabajado en conjunto con IBM para construir un sistema
operativo con GUI. Este sistema se conoció como OS/2, sin embargo nunca alcanzó gran
popularidad ante Macintosh y los mismos Windows 9x. Eventualmente Microsoft tomó
parte del trabajo desarrollado para OS/2 y reimplementó Windows usando código
completamente de 32-bit. Este nuevo sistema se llamó Windows NT (Windows New
Technology), mientras OS/2 fue eventualmente abandonado por IBM.
Quinta Generación (1990-Presente): Computadores Móviles

Hasta 1993, los dispositivos telefónicos móviles no era más que dispositivos de
comunicación que usaban sistemas embebidos, dedicados, para administrar su hardware. El
concepto de utilizar estos dispositivos para realizar actividades más allá de la telefonía
surgió con los dispositivos conocidos como PDA (Personal Digital Assistant), entre los
cuales se encuentra el Apple Newton que incluía un sistema operativo Newton OS escrito
en C++, y con un pionero uso de reconocimiento de escritura manual. Poseía una API para
aplicaciones desarrolladas por terceros, sin embargo no obtuvo gran adopción.

Talvez el primer dispositivo llamado un smartphone fue el IBM Simon, con una interfaz de
pantalla touch (con stylus) y un sistema operativo ROM-DOS, compatible con MS-DOS y
desarrollado por la empresa Datalight. Su batería de una hora de duración no le permitió
competir con los nuevos dispositivos.

Nokia y SymbianOS

El éxito de Palm llevó a otros protagonistas de la telefonía móvil como Nokia a co-fundar y
posteriormente adquirir completamente a Symbian Ltd.. El consorcio fundador incluía a
Psion, una compañía que estaba detrás de EPOC, un sistema operativo single-user de 32-bit
con preemptive multitasking del año 1998, que bajo Symbian se convertiría en Symbian OS
cuya primera versión (6.0) fue utilizada en el Nokia 9210 Communicator. Symbian OS
corría sobre procesadores ARM, una arquitectura RISC. En su mejor momento, Symbian
OS fue el sistema preferido por manufacturadores como Samsung, Motorola, Sony
Ericsson, y principalmente Nokia. Poseía un microkernel llamado EKA2 que soportaba
preemptive multithreading, protección de memoria, y scheduling para tareas de tiempo real
(RTOS). Poseía un diseño orientado a objetos y estaba escrito en C++. Symbian OS
dominó gran parte del mercado de los sistemas operativos móviles hasta su abandono
paulatino por Samsung, Sony Ericsson y eventualmente Nokia (que lo reemplazaría por
Windows Phone), lo que lo hizo perder terreno ante la irrupción de iOS y Android.

Microsoft y el Windows Phone

Microsoft había desarrollado desde 1996 un sistema operativo embebido llamado Windows
CE (actualmente Windows Embedded Compact) diseñado para una especificación de
plataformas incialmente denominado Pocket PC. Los primeros dispositivos con Windows
CE se lanzaron en 2002. Windows CE contenía un kernel híbrido escrito en C y soportaba
arquitecturas x86, ARM, MIPS y PowerPC. La serie de sistemas operativos móviles
basados en Windows CE fue conocida como Windows Mobile (incluyendo el media player
Zune) y fue desarrollado hasta 2010. Posteriormente Microsoft reimplementaría su sistema
operativo móvil basado en la línea de Windows NT, dando inicio a Windows Phone, línea
que fue descontinuada en 2017 debido al poco interés de los desarrolladores en generar
aplicaciones para esta plataforma ante la dominancia de iOS y Android.

RIM y Blackberry OS

En 2002 la compañía canadiense Research In Motion (RIM) desarrolló su propia línea de


dispositivos móviles conocidos como BlackBerry y su propio sistema operativo BlackBerry
OS (RIM con el tiempo cambiaría su nombre a BlackBerry Ltd.). BlackBerry OS era un
sistema multitasking con soporte para aplicaciones mediante la plataforma especial para
dispositivos embebidos Java Micro Edition (JavaME). Incluía soporte para WAP, un stack
de protocolos de comunicación para móviles que dejó de ser adoptado cuando los
dispositivos móviles fueron suficientemente poderosos para procesar el tradicional stack
TCP/IP. En 2010, BlackBerry OS fue reemplazado por BlackBerry 10, un sistema basado
en el microkernel de tiempo real (RTOS) QNX. Desde 2016, los dispositivos producidos
por BlackBerry empezaron a usar Android en lugar de BlackBerry 10, cuyo soporte ha sido
anunciado al menos hasta 2019.

Apple: el iPhone y iOS

El año 2007 ocurrió la entrada de uno de los principales competidores cuando Apple
presentó su iPhone junto con su sistema operativo iOS (originalmente iPhone OS). iOS, al
igual que MacOSX se basa en el kernel híbrido XNU y el sistema operativo (UNIX-like)
Darwin. Desde el año 2010, con iOS 4, el sistema añadió soporte de APIs para multitasking
por parte de aplicaciones de usuario. Previamente el multitasking estaba restringido solo a
ciertos servicios del sistema. La disponibilidad del iOS SDK (Software Development Kit)
atrajo el desarrollo de múltiples aplicaciones nativas disponibles desde una tienda online
(App Store), popularizando rápidamente el uso del iPhone y posicionándolo como uno de
los principales competidores.

Android, la entrada de Google

Meses después del lanzamiento del primer iPhone, un conjunto de compañías lideradas por
Google, incluyendo a HTC, Sony, Dell, Intel, Motorola, Samsung, LG, Nvidia, entre otros,
forman la Open Handset Alliance (OHA). Con el soporte de OHA, Google lanza en 2008 la
primera versión de Android, un sistema operativo monolítico (UNIX-like) de código
abierto basado en el kernel Linux. Android inició su desarrollo bajo la compañía Android,
Inc. fundada en 2003. El año 2005 Google adquirió Android, Inc. y fue bajo su alero que el
equipo de desarrollo terminó la primera versión Android 1.0. De manera similar a App
Store, Android lanzó el Android Market (más tarde Google Play Store), y el Android SDK
para el desarrollo de aplicaciones (escritas principalmente en Java, y recientemente en
Kotlin) para terceros. El soporte de OHA, integrado por importantes actores del mercado
smartphone fue clave para posicionar a Android como el sistema operativo dominador en
los dispositivos móviles desde el año 2010, con iOS como su único (y distante) competidor
real.

A diferencia de Linux, el kernel de Android no utiliza la tradicional GNU C Library glibc,


sino que utiliza una implementación alternativa de la biblioteca de C desarrollado por
Google, llamada Bionic, la cual posee un menor memory footprint que glibc y fue diseñado
para CPUs funcionando a menor frecuencia de clock (y por lo tanto, optimizada para menor
consumo energético). Bionic, sin embargo, no implementa toda la interfaz POSIX,
haciendo que Android sea Non-POSIX compliant.

Objetivo y funcionalidad de cada una de las partes que componen un Sistema


operativo

El sistema operativo es el núcleo de un ordenador: sin este software complejo, el resto de


programas no pueden funcionar. Las tareas de las que se encarga son de lo más diversas.
Algunas se ejecutan completamente en segundo plano, y muchas ocurren en paralelo.

 Gestión del hardware: Esta función, una de las más importantes del sistema
operativo, suele quedar en segundo plano, es decir, que se oculta al usuario. El
programa gestiona todo el hardware, tanto de entrada como de salida. Para ello,
utiliza controladores proporcionados por los fabricantes del hardware, que le sirven
para recibir y reenviar los comandos de los dispositivos, así como para transferir sus
propios comandos al hardware. Así es como funcionan el teclado, el ratón, la
pantalla, el disco duro, la tarjeta gráfica y todos los demás componentes de un
ordenador.

 Gestión del software: Por lo general, cuando te bajas algún programa de Internet,
puedes elegir entre varias versiones para los diferentes sistemas operativos en la
página de descarga, lo que demuestra hasta qué punto la programación de las
aplicaciones está relacionada con las especificaciones del sistema operativo. Los
sistemas de base de los ordenadores tienen interfaces que regulan la comunicación
con todas las aplicaciones. De esta manera, es posible asignarles memoria,
permitirles utilizar los recursos del procesador o ejecutar las acciones efectuadas
con el teclado y el ratón.

 Gestión de archivos: Si has redactado un documento, puedes imprimirlo (para lo


cual el programa pasa la orden al sistema operativo, que a su vez la pasa a la
impresora) o puedes guardarlo como archivo en una carpeta. El hecho de poder
trabajar con una estructura de carpetas solo es posible gracias al sistema operativo,
ya que en el propio disco duro no existe ese orden.
 Administración de derechos: En ciertas situaciones, por ejemplo, en el ámbito
empresarial, varias personas trabajan con un mismo dispositivo. Sin embargo, no
todas deberían poder configurar el sistema. Por lo tanto, los sistemas operativos
modernos permiten crear diferentes usuarios y otorgarles derechos individualmente.
Además, cada cuenta puede protegerse con una contraseña.

 Orientación al usuario: Todo el mundo debería poder utilizar un ordenador sin


ningún problema, hasta las personas sin muchos conocimientos de informática. Por
lo tanto, es importante que el sistema operativo facilite las funciones y opciones lo
máximo posible. También los aspectos más importantes deberían ser fáciles de
utilizar para el usuario básico, aunque muchos sistemas operativos (especialmente
los de PC) ofrezcan opciones adicionales para los profesionales.

 Funciones de red: Como el sistema operativo gestiona el hardware, también es


responsable de la tarjeta de red y, por lo tanto, de la conexión a Internet y otras
redes. Por lo general, es posible configurar el ordenadorcomo un nodo de red a
través del sistema operativo y, por ejemplo, asignarle una dirección IP concreta. En
la configuración, también puedes introducir las especificaciones de la LAN y otras
subredes para que el equipo pueda conectarse a otros ordenadores. La configuración
de red también permite establecer individualmente el servidor DNS.

 Medidas de seguridad: Tradicionalmente, la seguridad no es una tarea propia del


sistema operativo, aunque también puede sumarse a sus funciones mediante un
software adicional. Como los ordenadores constantemente conectados a Internet
están expuestos a peligros, los sistemas operativos también han implementado sus
propias medidas de seguridad. Por ejemplo, Windows ya lleva incorporado un
firewall y un antivirus.

Funcionamiento de un Sistema Operativo

El sistema operativo provee al ordenador de rutinas básicas para poder controlar todos los
dispositivos del equipo y administrar, escalar y realizar la interacción de tareas.

Su principal tarea es administrar las tareas  y recursos del equipo, coordinar el hardware y
organizar los archivos y directorios en los dispositivos de almacenamiento del ordenador.

Pero también cumple otras funciones como gestionar el intercambio de memoria interna
entre las diversas aplicaciones; ejecutar varios programas al mismo tiempo y determinar en
qué orden y en cuánto tiempo se deben ejecutar; gestionar el intercambio de la memoria
interna entre las aplicaciones; se ocupa de la entrada y la salida de los dispositivos de
hardware que están conectados como los discos duros, impresoras o puertos.

Algunos sistemas operativos permiten administrar una gran cantidad de usuarios y otros
controlar dispositivos de hardware. Una de las funciones más conocidas del sistema
operativo es la de cargar en la memoria y facilitar la ejecución de los programas que el
usuario utiliza.

Cuando un programa se está ejecutando, el sistema operativo continúa su trabajo, dado que
muchos programas necesitan realizar acceso al teclado, por ejemplo, vídeo, impresora o
acceso al disco duro para poder leer y grabar archivos, por ejemplo.

El sistema operativo tiene una gran responsabilidad, ya que se encarga de que todos los
programas y los componentes del ordenador funcionen bien.

El sistema operativo se compone por un conjunto de paquetes de software que pueden ser
utilizados para gestionar las interacciones con el hardware.

Estos paquetes se incluyen en el siguiente conjunto de software:

 El núcleo; representante de las funciones básicas del sistema operativo, como la


gestión de la memoria, de los procesos, de los archivos, etc.
 El intérprete de comandos; hace posible la comunicación con el sistema operativo
mediante un lenguaje de control, que permite al usuario controlar los periféricos sin
necesidad de conocer las características del hardware utilizado.
 Sistema de archivos; permite que los archivos se registren en una estructura arbórea

Servicios de un Sistema Operativo

Los servicios son pequeños script que realizan acciones sobre una selección haciendo uso
de las funcionalidades de la aplicación que los instala o funcionan de forma independiente.
Según se instalen a partir de una aplicación o vengan integrados en el sistema tendrán
ubicaciones diferentes.1

 Interfaz de Usuario

Casi todos los sistemas operativos disponen de una interfaz de usuario (UI, user interface),
que puede tomar diferentes formas. Uno de los tipos existentes es la interfaz de línea de
comandos (CLI, command-line interface) que usa comandos de texto, y por otra parte se
utiliza una interfaz gráfica de usuario (GUI, graphical user interface) compuesta por
ventanas.

 Ejecución de Programas

El sistema tiene que poder cargar un programa y ejecutar dicho programa. Todo programa
debe poder terminar su ejecución, de forma normal o anormal (indicando un error).

 Operaciones de E/S

Un programa en ejecución puede necesitar llevar a cabo operaciones de E/S, dirigidas a un


archivo o dispositivo de E/S. Para ciertos dispositivos es deseable disponer de funciones
especiales . Por cuestión de eficiencia y protección, los usuarios no pueden controlar de
modo directo los dispositivos de E/S; el sistema operativo debe proporcionar medios para
realizar la E/S.

 Manipulación del sistema de archivos

El sistema de archivos tiene una importancia especial. Obviamente, los programas


necesitan leer y escribir en archivos y directorios. También necesita crearlos y borrarlos
usando su nombre, realizar búsquedas en un determinado archivo o presentar la
información contenida en un archivo. Algunos programas incluyen mecanismos de gestión
de permisos para conceder o denegar el acceso a los archivos o directorios dependiendo de
quien es el propietario.

 Comunicaciones

Hay muchas circunstancias en las que un proceso necesita intercambiar información con
otro. Dicha comunicación puede tener lugar entre procesos que se están ejecutando en la
misma computadora o entre procesos en computadoras diferentes conectadas por red. La
comunicaciones se pueden implementar utilizando memoria compartida, procedimiento en
el que el sistema operativo transfiere paquetes de información entre unos procesos y otros.

 Detección de errores

El sistema operativo necesita detectar constantemente los posibles errores. Estos errores
pueden producirse en el hardware del procesador y de memoria, en un dispositivo de E/So
en los programas de usuario. Para cada tipo de error, el sistema operativo debe llevar a cabo
la operación apropiada para asegurar el funcionamiento correcto y coherente.

 Asignación de recursos

Cuando hay varios usuarios, o hay varios trabajos ejecutándose al mismo tiempo, deben
asignarse a cada uno de ellos los recursos necesarios. El sistema operativo gestiona muchos
tipos diferentes de recursos; algunos pueden disponer de código de software especial que
gestionen su asignación, mientras que otros pueden tener código que gestione de forma
mucho más general su solicitud y liberación.

Características de un Sistema Operativo

 Es el intermediario entre el usuario y el hardware.

 Es necesario para el funcionamiento de todos los computadores, tabletas y teléfonos


móviles.
 Otorga seguridad y protege a los programas y archivos del ordenador.

 Está diseñado para ser amigable con el usuario y fácil de usar.

 Permite administrar de manera eficiente los recursos del ordenador.

 La mayoría requiere del pago de una licencia para su uso.

 Permite interactuar con varios dispositivos.

 Es progresivo, ya que existen constantemente nuevas versiones que se actualizan y


adaptan a las necesidades del usuario

Tipos de Sistema Operativo

Los tipos de sistema operativo varían según el hardware y la función de cada dispositivo.
Existen algunos para ordenadores y otros para dispositivos móviles.

 Según el usuario pueden ser: multiusuario, sistema operativo que permite que varios
usuarios ejecuten simultáneamente sus programas; o monousuario, sistema
operativo que solamente permite ejecutar los programas de un usuario a la vez.

 Según la gestión de tareas pueden ser: monotarea, sistema operativo que solamente
permite ejecutar un proceso a la vez; o multitarea, sistema operativo que puede
ejecutar varios procesos al mismo tiempo.

 Según la gestión de recursos pueden ser: centralizado, sistema operativo que solo
permite utilizar los recursos de un solo ordenador; o distribuido, sistema operativo
que permite ejecutar los procesos de más de un ordenador al mismo tiempo.

Algunos ejemplo de los Sistemas Operativos:

1. Microsoft Windows. De los más populares que existen, inicialmente se trató de un


conjunto de distribuciones o entornos operativos gráficos, cuyo rol era brindar a
otros sistemas operativos más antiguos como el MS-DOS una representación visual
de soporte y de otras herramientas de software. Se publicó por primera vez en 1985
y desde entonces se ha actualizado a nuevas versiones.

2. MS-DOS. Se trata del Sistema Operativo de Disco de MicroSoft (siglas en inglés de


MicroSoft Disk Operating System), uno de los sistemas operativos más comunes
para computadoras personales IBM durante la década de 1980 y mediados de los 90.
Contaba con una serie de comandos internos y externos mostrados en una pantalla
oscura de manera secuencial.
3. UNIX. Este sistema operativo fue desarrollado en 1969 para ser portable, multitarea
y multiusuario. Se trata realmente de una familia entera de SO similares, algunas de
cuyas distribuciones se han ofrecido comercialmente y otros en formato libre,
siempre a partir del núcleo llamado Linux.

4. MacOS. Es el sistema operativo de los computadores Macintosh de Apple, también


conocido como OSX o Mac OSX. Basado en Unix y desarrollado y vendido en
computadores Apple desde 2002, se trata de la competencia más acérrima del
popular Windows.

5. Ubuntu. Este sistema operativo es libre y de código abierto, o sea, todo el mundo
puede modificarlo sin violar derechos autorales. Toma su nombre de cierta filosofía
surafricana ancestral, enfocada en la lealtad del hombre hacia su propia especie por
encima de todo. Basado en GNU/Linux, Ubuntu se orienta hacia la facilidad de uso
y la libertad total. La empresa británica que lo distribuye, Canonical, subsiste
brindando servicio técnico.

6. Android. Este sistema operativo basado en el núcleo Linux opera en teléfonos


celulares y tablets y otros artefactos dotados de pantalla táctil. Fue desarrollado por
Android Inc. y comprado posteriormente por Google, gracias a lo cual es tan
popular que las ventas de sistemas informáticos Android superan a las de IOS (para
teléfonos celulares Macintosh) y a las de Windows Phone (para teléfonos celulares
MicroSoft).

Aspectos que afectan el diseño de un Sistema Operativo

1. REENTRANCIA :

programa o módulo que pueden ser utilizado simultaneamente por varios usuarios al
mismo tiempo.

consiste en dos partes: - un código puro (parte no modificable). - un area de memoria para
cada uno de los procesos de usuario. sistema operativo programa reentrante información
usuario 1 información usuario 2 información usuario n mem. ppal.

2. INTERRUPCIONES:

 es un evento que altera la sercuencia normal de funcionamiento del procesador.


actividades:

1- el s.o. toma el control del computador.

2- el s.o. guarda el estado del proceso interrumpido


3- se inhabilitan las interrupciones.

4- el s.o. analiza la interrupcion.

5- se procesa la interrupcion. (rutina manejadora).

6- se reestablece el estado del proceso interrumpido.

7- se habilitan las interrupciones.

8- el procesador continua la ejecucion del proceso.

3.- PROCESADORES DE E /S

 Procesador de propósito especial dedicado al control de las operaciones de e /s,


independientemente del c.p.u.

 Ejecutan instrucciones (comandos) agrupados en programas denominados “


programas de canal" . Memoria principal 3 end i/o procesador e/s dispositivo e/s
dispositivo e/s 1 2 start i/o c.p.u

4.- RELOJES:

 interval time (cronómetro de intervalos): - después de un cierto intervalo de tiempo,


el reloj genera una interrupción como señal de aviso al procesador. - es útil en
sistemas multiusuarios para evitar que un trabajo monopolice el CPU.

 tiempo y hora: mantiene la hora y el calendario en el sistema.

5.- SPOOL: (simultaneous peripheral operations on line). -consiste en interponer un


dispositivo de alta velo-cidad entre un programa en ejecucion y un dispo-sitivo de baja
velocidad relacionado con la entrada/salida del programa ejemplo:

1. impresora.

2. cpu

3. programa

4. disco

5. impresora
6.- EMULACIÓN:

 técnica que permite que un computador se comporte como si fuera otro.

 los programas en lenguaje de máquina de la máquina ¨emulada¨ pueden ejecutarse


en forma directa en la maquina anfitriona.

 los fabricantes de equipos, usan esta técnica cuando presentan nuevos sistemas.

microprogramacion.

* programas formados por microinstrucciones (primitivas).

* cada instruccion en lenguaje de maquina que puede se ejecutada por el procesador, tiene
su correspondiente microprograma.

* implementada en memoria rom.

También podría gustarte