

















Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Los mejores documentos en venta realizados por estudiantes que han terminado sus estudios
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Descubre las mejores universidades de tu país según los usuarios de Docsity
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Este documento proporciona una introducción a la estructura y funcionamiento de los sistemas operativos, explorando conceptos clave como la multiprogramación, la gestión de recursos, la seguridad y la arquitectura de capas. Se analizan diferentes tipos de sistemas operativos, incluyendo los monolíticos y los basados en microkernels, y se destaca la importancia de los sistemas operativos en la interacción entre el software y el hardware. Ideal para estudiantes de ingeniería en sistemas computacionales o profesionales de la informática que buscan una comprensión básica de los sistemas operativos.
Tipo: Apuntes
1 / 25
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!
A finales de la década de 1940, apareció lo que se podría considerar la primera generación de computadoras en el mundo. Se accedía directamente a la consola de la computadora desde la que se actuaba sobre micro interruptores que permitían introducir el programa en su memoria.
A principios de los años 1950 para facilitar la interacción entre persona y computadora, los sistemas operativos aparecen discretos y bastante simples, con conceptos como el monitor residente y el almacenamiento temporal. Monitor residente Su funcionamiento era bastante simple, se limitaba a cargar programas a la 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. 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 produjeron cambios notorios en varios campos de la informática, con la aparición de circuitos integrados la mayoría orientados a seguir incrementando el potencial de los ordenadores. Sistema operativo multiprogramación En un sistema "multiprogramado" la memoria principal alberga a más de un programa de usuario. La CPU ejecuta instrucciones de un programa, cuando el que se encuentra
en ejecución realiza una operación de E/S; en lugar de esperar a que termine la operación de E/S, se pasa a ejecutar otro programa.
Sistemas operativos desarrollados Además del Atlas Supervisor y el OS/360 , los años 1970 marcaron el inicio de UNIX , a mediados de los 70 aparece Multics, sistema operativo multiusuario - multitarea desarrollado por los laboratorios Bell de AT&T y Unix, convirtiéndolo en uno de los pocos SO escritos en un lenguaje de alto nivel. 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, Smalltalk. Sistemas operativos desarrollados
Con la creación de los circuitos LSI (integración a gran escala), chips que contenían miles de transistores en un centímetro cuadrado de silicio, 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. SunOS SunOS fue la versión del sistema operativo derivado de Unix y BSD desarrollado por Sun Microsystems para sus estaciones de trabajo y servidores hasta el principio de los años
SymbOS SymbOS es un sistema operativo desarrollado originalmente en 2001 para los ordenadores Amstrad CPC. Se trata de un sistema operativo gráfico con una estética e interfaz similar a Windows 95. A pesar de la baja potencia que desarrollan estos ordenadores, alrededor de 4 MHz, está minuciosamente optimizado para el hardware en el cual funciona, por lo que el rendimiento es más que aceptable. Mac OS Mac OS, antes llamado Mac OS X, es un sistema operativo basado en Unix, desarrollado, comercializado y vendido por Apple Inc. La primera versión del sistema fue Mac OS X Server 1.0 en 1999, y en cuanto al escritorio, fue Mac OS X v10.0 (publicada el 24 de marzo de 2001).
IllumOS Illumos es un proyecto de software libre derivado de OpenSolaris. Fue anunciado por conferencia web desde Nueva York el 3 de agosto de 2010. El nombre del proyecto es un neologismo procedente del latín "Illum" (la luz) y de "OS" (operating system, sistema operativo).
Este es uno de los tipos de software más importantes, ya que se encarga de administrar los recursos del sistema. Se trata de una colección de programas y componentes que sirven de intermediarios entre el usuario y el hardware (aquellas partes físicas del sistema como la memoria o tarjetas de gráficos).
El objetivo principal del software de sistema es ofrecer funcionalidad a los usuarios, así como ser la plataforma donde correrá el programa de aplicación. Una de sus características es que no es muy manipulable al estar en un segundo plano y difícilmente lo podrás operar como usuario, ya que tiene un diseño complejo. Por eso, está más orientado al sistema y al hardware que a los usuarios, de ahí que se le considere como lenguaje de bajo nivel para interactuar con las máquinas de la mejor forma posible.
Este es el tipo de software con el que quizá estés más familiarizado, ya que está pensado para que el usuario final lo utilice para realizar tareas específicas. Aquí la interacción es la palabra clave, pues esta permite un diálogo para satisfacer todo tipo de necesidades como la manipulación de datos, la organización de información, el manejo de recursos y hasta la creación de video. Al contrario del software de sistema, puedes agregar y quitar el software de aplicación sin que esto afecte al sistema operativo.
Por lo general, este tipo de software se escribe en lenguajes de alto nivel, los cuales expresan los algoritmos de tal manera que los humanos los podamos entender. Esto permite llevar a cabo acciones específicas que significan un ahorro de tiempo y recursos del usuario. Este tipo de software es el más común, lo que significa que existen diversas opciones de programas según tus requerimientos y presupuesto.
Existen muchos ejemplos de software de aplicación, te compartimos algunos de los más populares. Procesadores de texto Es uno de los programas más populares, ya que permite a los usuarios escribir, editar, dar formato, guardar y compartir textos. Es una opción ampliamente utilizada por estudiantes y profesionales. Algunos ejemplos son Microsoft Word, Pages y Google Docs. Navegadores web Para obtener acceso a la web y leer esta información, necesitas un navegador que recupere información para mostrarla en tu dispositivo. Esto lo logra mediante el protocolo de transferencia de hipertexto (HTTP por sus siglas en inglés, Hypertext Transfer Protocol) que crea un enlace entre tu computadora y el servidor. Por ejemplo: Safari, Firefox y Google Chrome.
de alto nivel (algoritmos que podemos entender los humanos) a lenguaje de máquina (números binarios que solo entienden los dispositivos) y viceversa.
Estos tipos de software ayudan a programadores y desarrolladores a escribir código, corregir errores y dar mantenimiento a los programas que utilizamos a diario. Por lo general, un software de programación cuenta con diversos editores de lenguaje, compiladores, que es el proceso de traducción, y depuradores para identificar fallos.
GitHub Una plataforma para desarrollar programas que cuenta con herramientas que sugieren código y hacen más eficiente el trabajo de los programadores. Es perfecta para aquellos que quieren aprender a programar, hasta empresas que quieren extender sus operaciones. Android Studio Esta es la plataforma oficial para desarrollar aplicaciones de Android y que te permite diseñar, programar, probar y publicar tus creaciones. Además, es muy amigable con los principiantes que buscan llevar su idea a la realidad. Visual Studio Code Otra buena herramienta para principiantes y avanzados que buscan desarrollar programas. Este editor de código es compatible con distintos lenguajes de programación.
En la estructura de un sistema operativo deberá considerar dos aspectos importantes los cuales son:
Los cuatro diseños más conocidos son:
Figura 1- 16. Estructura monolítica
Figura 1 - 17. Modelo de estructuración sencillo para un sistema monolítico
Una generalización del enfoque de la Fig. 1-17 consiste en organizar el sistema operativo como una jerarquía de capas, cada una construida sobre la que está abajo de ella. El primer sistema que tuvo esta estructura fue el sistema THE construido en la Technische Hogeschool Eindhoven de los Países Bajos por E. W. Dijkstra (1968) y sus estudiantes. El sistema THE era un sencillo sistema por lotes para una computadora holandesa, la Electrologica X8, que tenía 32K de palabras de 27 bits (los bits eran costosos en esos tiempos).
reparto del procesador, conmutando entre procesos cuando ocurrían interrupciones o expiraban temporizadores. Más arriba de la capa 0, el sistema consistía en procesos secuenciales, cada uno de los cuales podía programarse sin tener que preocuparse por el hecho de que múltiples procesos se estuvieran ejecutando en un solo procesador. En otras palabras, la capa 0 se encargaba de la multiprogramación básica de la CPU. Figura 1-18. Estructura de capas del sistema operativo THE
memoria principal y en un tambor de 512K palabras que servía para contener partes de los procesos (páginas) para las que no había espacio en la memoria principal. Más arriba de la capa 1, los procesos no tenían que preocuparse por si estaban en la memoria o en el tambor; el software de esa capa se encargaba de que se colocaran en la memoria las páginas en el momento en que se necesitaban.
operador. Por encima de esta capa cada proceso tenía efectivamente su propia consola de operador.
buffers las corrientes de información provenientes de y dirigidas a ellos. Más arriba de la capa 3 cada proceso podía tratar con dispositivos de E/S abstractos con propiedades bonitas, en lugar de dispositivos reales con muchas peculiaridades.
El concepto de máquina virtual se usa mucho hoy día en un contexto diferente: la ejecución de viejos programas para MS-DOS en una Pentium (u otra CPU Intel de 32 bits).
Una tendencia en los sistemas operativos modernos es llevar aún más lejos esta idea de trasladar código a capas superiores y quitarle lo más que se pueda al sistema operativo, dejando un kernel mínimo. El enfoque usual consiste en implementar la mayor parte de las funciones del sistema operativo en procesos de usuario. Para solicitar un servicio, como leer un bloque de un archivo, un proceso de usuario (ahora llamado proceso cliente) envía la solicitud a un proceso servidor , el cual realiza el trabajo y devuelve la respuesta. Figura 1-20. El modelo cliente-servidor En este modelo, que se muestra en la Fig. 1-20, lo único que el kernel hace es manejar la comunicación entre los clientes y los servidores. Al dividir el sistema operativo en partes, cada una de las cuales sólo se encarga de una faceta del sistema, como el servicio de archivos, de procesos, de terminales o de memoria, cada parte puede ser pequeña y manejable. Además, dado que todos los servidores se ejecutan como procesos en modo de usuario, y no en modo de kernel, no tienen acceso directo al hardware. Por tanto, si se activa un error en el servidor de archivos, es posible que el servicio de archivos se caiga, pero normalmente esto no hará que se caiga toda la máquina.
Otra ventaja del modelo cliente-servidor es su adaptabilidad para usarse en sistemas distribuidos (véase la Fig. 1-21). Si un cliente se comunica con un servidor enviándole mensajes, el cliente no necesita saber si el mensaje será atendido localmente en su propia máquina o si se envió a través de la red a un servidor en una máquina remota. En lo que al cliente concierne, sucede lo mismo en ambos casos: se envía una solicitud y se obtiene una respuesta. Figura 1-21. El modelo cliente-servidor en un sistema distribuido La imagen que acabamos de presentar de un kernel que sólo se encarga del transporte de mensajes de los clientes a los servidores y de regreso no es del todo realista.
El kernel es el componente central de un sistema operativo. Actúa como un intermediario entre el software y el hardware y facilita la comunicación y la gestión eficiente de los recursos del sistema. En esencia, el kernel es el supervisor encargado de coordinar las operaciones del sistema operativo y garantizar un funcionamiento coherente y seguro. Con el avance de la tecnología, algunos sistemas operativos permiten el cambio dinámico de kernels, adaptándose a las necesidades específicas del usuario. Este enfoque, conocido como exokernel o exonúcleo, permite una mayor personalización y eficiencia al permitir que los usuarios seleccionen y modifiquen partes específicas del núcleo según sus requerimientos
Administración de recursos: asigna y libera recursos del sistema, como memoria y procesador, para garantizar un uso eficiente y equitativo entre las aplicaciones en ejecución.