Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad

Introducción a los Sistemas Operativos: Gestión de Recursos y Hardware, Apuntes de Sistemas Operativos

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

2023/2024

Subido el 19/09/2024

valeria-garcia-corona
valeria-garcia-corona 🇲🇽

1 documento

1 / 25

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Tecnológico Nacional de México
Instituto Tecnológico de Veracruz
Ingeniería en Sistemas Computacionales
Sistemas Operativos
Trabajo de investigación
No. de equipo:
Equipo #5
Integrantes:
Salas Chávez Aarón
Santos Espinoza Juan Alberto
García Corona Valeria
García Lara Hugo
Profesor: Córdoba del valle Rafael
Fecha: 01/09/2024
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19

Vista previa parcial del texto

¡Descarga Introducción a los Sistemas Operativos: Gestión de Recursos y Hardware y más Apuntes en PDF de Sistemas Operativos solo en Docsity!

Tecnológico Nacional de México

Instituto Tecnológico de Veracruz

Ingeniería en Sistemas Computacionales

Sistemas Operativos

Trabajo de investigación

No. de equipo:

Equipo

Integrantes:

Salas Chávez Aarón

Santos Espinoza Juan Alberto

García Corona Valeria

García Lara Hugo

Profesor: Córdoba del valle Rafael

Fecha: 01/09/

Índice

1. EVOLUCIÓN HISTÓRICA DE LOS SISTEMAS OPERATIVOS

1.1 La década de 1940

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.

1.2 La década de 1950 (Sistema Batch)

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.

1.3 La década de 1960

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.

1.4 La década de 1970

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

  • Multics (Multiplexed Information and Computing Service)
  • BDOS ( B asic D isk O perating S ystem):
  • CP/M : (Control Program for Microcomputers)

1.5 La década de 1980

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

  1. Esta estaba basada en los UNIX BSD con algunos añadidos de los System V UNIX en versiones posteriores. MS-DOS En 1981 Microsoft compró un sistema operativo llamado QDOS que, tras realizar unas pocas modificaciones, se convirtió en la primera versión de MS-DOS ( M icro S oft D isk O perating S ystem). A partir de aquí se sucedieron una serie de cambios hasta llegar a la

1.7 La década de 2000

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).

1.8 La década de 2010

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).

2. FUNCIONES Y CARACTERÍSTICAS DE LOS SISTEMAS OPERATIVOS

2.1 Funciones de los sistemas operativos

  • Gestión de recursos: El SO gestiona el tiempo de CPU, la memoria y otros recursos y los asigna entre los diversos programas que se ejecutan en el ordenador.
  • Gestión de procesos: El SO se encarga de gestionar, detener e iniciar los programas y procesos. Controla el tiempo de los procesos.
  • Gestión de la memoria: Gestiona la memoria del ordenador y ofrece mecanismos para avanzar en el uso de la memoria.
  • Contabilidad de trabajos: Realiza un seguimiento de los recursos y el tiempo utilizados por los distintos usuarios para sus tareas.
  • Seguridad: Un sistema operativo proporciona un entorno más seguro para las aplicaciones, los datos y los usuarios mediante la aplicación de varios mecanismos y políticas de seguridad, como el cifrado, los controles de acceso, etc.
  • Gestión de dispositivos: El sistema operativo gestiona los dispositivos de entrada y salida, como teclados, ratones, impresoras y pantallas. Además, proporciona las interfaces y los controladores necesarios para permitir la comunicación entre el ordenador y los dispositivos externos.
  • Redes: El SO ofrece funciones de red, como la gestión de conexiones de red, el uso compartido de recursos, el manejo de protocolos de red y el establecimiento de conexiones entre varias redes.
  • Gestión de archivos: El SO organiza y gestiona el sistema de archivos, como la creación, manipulación y eliminación de directorios y archivos.
  • Copia de seguridad y recuperación: El SO ofrece mecanismos para hacer copias de seguridad instantáneas de los datos importantes y recuperarlos en caso de errores, desastres y fallos del sistema.
  • Interfaz de usuario: Un SO ofrece una interfaz de usuario que permite a los usuarios interactuar con los dispositivos. Se trata de la interfaz de línea de comandos (CLI), la interfaz gráfica de usuario (GUI) o una combinación de CLI y GUI.
  • Llamadas al sistema: El SO proporciona llamadas al sistema que permiten a una aplicación interactuar con un SO para acceder a los recursos. Las llamadas al sistema ofrecen una interfaz estándar entre el sistema operativo y las aplicaciones, lo que garantiza la compatibilidad y portabilidad entre varias plataformas de software y hardware.
  • 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.

3. CLASIFICACIÓN DE LOS SISTEMAS OPERATIVOS

3.1 Software de sistemas

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).

3.1.1 Funciones del software de sistemas

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.

3.1.2 Ejemplos de software de sistemas

  • Sistemas operativos Un sistema operativo es eso que comienza a operar en la pantalla cuando prendes un dispositivo y controla los recursos del software y el hardware.
  • Controlador de dispositivo Este tipo de software es una interfaz que permite enlazar al sistema operativo con hardware externo como teclados, mouse, impresoras o monitores.
  • Firmware El firmware es un software que está incorporado permanente en el hardware y controla los circuitos electrónicos diciéndoles qué deben hacer. Algunos ejemplos son BIOS y UEFI
  • Utilidad Es otro tipo de software de sistema que se encarga de analizar, configurar y dar mantenimiento al sistema de una computadora. Por lo general, se desarrollan por terceros como los antivirus, desfragmentadores de disco y programas de compresión de datos.

3.2 Software de aplicación

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.

3.2.1 Funciones del software de aplicación

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.

3.2.2 Ejemplos de software de aplicación

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.

3.3.1 Funciones del software de programación

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.

3.3.2 Ejemplos de software de programación

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.

4. ESTRUCTURA (NIVELES O ESTRATOS DE DISEÑO)

En la estructura de un sistema operativo deberá considerar dos aspectos importantes los cuales son:

  • Requisitos de usuario: Sistema fácil de usar y de aprender, seguro, rápido y adecuado al uso al que se le quiere destinar.
  • Requisitos del software: Donde se engloban aspectos como el mantenimiento, forma de operación, restricciones de uso, eficiencia, tolerancia frente a los errores y flexibilidad. La estructura interna de los sistemas operativos puede ser muy diferentes, ya que se debe tener en cuenta las metas de los usuarios (fácil uso, confiable, rápido, etc.) y las del sistema (fácil de diseñar, implementar y mantener, eficiente, etc.).

Los cuatro diseños más conocidos son:

  • Los sistemas monolíticos: Estos sistemas no tienen una estructura definida, sino que son escritos como una colección de procedimientos donde cualquier procedimiento puede invocar a otro. Ejemplos de estos sistemas pueden ser MS-DOS o Linux (aunque incluye algo de capas). Es importante tener en cuenta que ningún sistema es puramente de un tipo.
  • Los sistemas por capas: El diseño se organiza en una jerarquía de capas, donde los servicios que brinda una capa son consumidos solamente por la capa superior. La capa 0 es del Hardware y la N es la de los procesos de Usuario. La ventaja de estos sistemas es modular y la verificación se puede hacer a cada capa por separado, lo que permite más facilidad para darles mantenimiento, pero el diseño es costoso y menos eficiente que el sistema monolítico ya que pierde tiempo pasando por cada capa.
  • Las máquinas virtuales: Presenta una interface a cada proceso, mostrando una máquina que parece idéntica a la maquina real subyacente. Se reparan los conceptos que suele estar unidos en el resto del sistema: La multiprogramación y la maquina extendida.
  • Los sistemas cliente-servidor: La idea consiste en tener un núcleo que brinde los servicios mínimos de manejo de procesos, memoria y que provea la comunicación entre procesos. Todos los restantes servicios se construyen como procesos separados del micronúcleo, que ejecutan en modo usuario. Estos sistemas tienen como ventaja un diseño simple y funcional, que aumenta la portabilidad y la escalabilidad. Para agregar un nuevo servicio no es necesario modificar el núcleo, y es más seguro ya que los servicios corren en modo usuario.

4.1. Sistemas monolíticos

Figura 1- 16. Estructura monolítica

Figura 1 - 17. Modelo de estructuración sencillo para un sistema monolítico

4.2. Sistema por Capas

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).

El sistema tenía E/S capas, como se muestra en la Fig. 1-18. La capa 0 se ocupaba del

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

La capa 1 administraba la memoria, repartiendo espacio para los procesos en la

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.

La capa 2 manejaba la comunicación entre cada proceso y la consola del

operador. Por encima de esta capa cada proceso tenía efectivamente su propia consola de operador.

La capa 3 se encargaba de administrar los dispositivos de E/S y de colocar en

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).

4.4. Modelos Cliente-Servidor

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.

5. EL NÚCLEO

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

5.1. Funciones principales

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.