SO-Tema 1 Apuntes - SO, procesos e hilos, conceptos basicos sobre hardware, conceptos basicos sobre PDF

Title SO-Tema 1 Apuntes - SO, procesos e hilos, conceptos basicos sobre hardware, conceptos basicos sobre
Course Sistemas Operativos
Institution Universidad de Sevilla
Pages 18
File Size 1.1 MB
File Type PDF
Total Downloads 38
Total Views 133

Summary

SO, procesos e hilos, conceptos basicos sobre hardware, conceptos basicos sobre SO, modelos de diseño...


Description

Irene Dominguez

2020/2021

TEMA 1. FUNDAMENTOS Tabla de contenido SISTEMAS OPERATIVOS ................................................................................................................ 2 PROCESOS E HILOS........................................................................................................................ 2 Procesos .................................................................................................................................... 2 Hilos ........................................................................................................................................... 4 CONCEPTOS BÁSICOS SOBRE HARDWARE ................................................................................... 5 Organización básica de un ordenador....................................................................................... 5 Interrupciones y excepciones.................................................................................................... 5 Modos de ejecución del procesador ......................................................................................... 6 Memoria .................................................................................................................................... 6 Acceso a dispositivos ................................................................................................................. 8 Unidades de almacenamiento................................................................................................. 10 Interfaz de usuario .................................................................................................................. 13 Arranque del sistema .............................................................................................................. 13 Terminología de redes............................................................................................................. 13 CONCEPTOS BÁSICOS SOBRE SISTEMAS OPERATIVOS .............................................................. 14 Llamadas al sistema................................................................................................................. 14 Usuarios ................................................................................................................................... 15 Archivos ................................................................................................................................... 15 Intérprete de comandos.......................................................................................................... 15 Interfaces gráficas de usuario ................................................................................................. 15 MODELOS DE DISEÑO ................................................................................................................. 15 Modelo monolítico .................................................................................................................. 15 Modelo en estratos ................................................................................................................. 16 Modelo micronúcleo ............................................................................................................... 17 Ejemplos de diseño ................................................................................................................. 17

Irene Dominguez

2020/2021

SISTEMA OPERATIVO El Sistema Operativo se define como el software que facilita el uso de un sistema informático. Constituye la interfaz entre usuarios y sistemas y entre aplicaciones y sistema, proporcionando un entorno que simplifica el desarrollo y explotación de aplicaciones. El núcleo del SO es la capa software que se coloca sobre hardware y que proporciona una interfaz con un mayor grado de abstracción. Estructura de un sistema informático

PROCESOS E HILOS Procesos Un proceso es un programa en ejecución. Si se ejecuta dos o más veces un mismo programa tenemos procesos distintos. Un proceso puede pasar a ejecutar otro programa y sigue siendo el mismo proceso pues no puede acceder a la dirección de memoria de otro proceso. Por tanto, un proceso se puede generar a través de otro. El núcleo del SO proporciona un determinado espacio de memoria para cada proceso (direcciones lógicas), mecanismos de comunicación y sincronización e identificación. Además, un proceso puede crear otros procesos y solicitar asignación de recursos del sistema Existe un objetivo multiprogramación, buscar el máximo aprovechamiento de los procesadores. Para ellos, los procesos mezclan periodos de ejecución con periodos de inactividad. •

Abstracción: suponemos que cada proceso tiene un procesador virtual que ejecuta instrucciones a velocidad uniforme.

Comentado [id1]: IDE: herramienta de desarrollo formada por el compilador, montador de enlaces (transforma un archivo de código a un ejecutable) y el depurador (permite ejecutar la aplicación paso a paso) Gestor de dispositivo: programas informáticos que permite al SO interaccionar con un periférico, proporcionando una interfaz para este

Irene Dominguez



2020/2021

Comportamiento real: se reparte entre los procesos el tiempo de cada procesador. Los procesos alternan periodos de ejecución con periodos de inactividad.

Estados de un proceso El planificador de procesos es el componente del núcleo que reparte el tiempo de los procesadores entre los procesos, y decide qué proceso es el que se activa en cada momento.

• • • • •

Estado activo: el proceso está ejecutando instrucciones mediante el procesador. Operación bloqueante: operación que puede requerir más tiempo en orden de magnitud al tiempo de ejecución de una instrucción. Estado bloqueado: el proceso pasa por este estado cuando tiene que esperar a que realice una operación bloqueante. Estado preparado: estado en el que se encuentra un proceso que para activarse sólo necesita que el planificador le asigne un procesador. Apropiación: se produce cuando un proceso está formado por muchas operaciones bloqueantes, por lo que el procesador consume mucho tiempo en ejecutar dicho proceso y, por tanto, puede llegar a un estado de bloqueo.

Irene Dominguez •

2020/2021

Espera activa: esperar que algo ocurra utilizando distintas comprobaciones en el programa.

Consecuencias: • •

El tiempo que tarda en ejecutarse un proceso es distinto al tiempo consumido de CPU. Una misma actividad puede tardar distintos tiempos en distintas ejecuciones. Las operaciones que dependan del tiempo deben realizarse mediante primitivas del sistema. En concreto: esperas activas ¡PROHIBIDAS!

Hilos Supongamos un proceso que realiza dos actividades paralelizables. ¿Sería interesante convertirlo en dos procesos?

• • •



Si más de un procesador: siempre es interesante Si solo un procesador: una actividad puede aprovechar los tiempos de bloqueo de la otra Problema: dependencias entre actividades o Seguramente, compartirán variables, estructuras de datos… o Acceso a dichos recursos mediante mecanismos de IPC: Complicado o ineficiente Solución: implementar actividades A y B mediante hilos

Se denomina hilo a la secuencia de ejecución dentro de un proceso. Comparten todos los recursos del proceso (espacio de memoria, archivos abiertos, código, …). Las primitivas (funciones y librerías incluidas en el SO) sirven para crear, destruir y sincronizar hilos, aunque no implementan mecanismos de protección (destruirían trabajos de otros hilos) ni comunicación (ya se comparte el espacio de memoria) entre hilos de un mismo proceso. Por tanto, un proceso encapsula uno o más hilos, un espacio de memoria compartido por los hilos y el conjunto de recursos hardware/software asignados.

Irene Dominguez

2020/2021

CONCEPTOS BÁSICOS SOBRE HARDWARE Organización básica de un ordenador El ordenador está formado por uno o más procesadores, circuitos de memoria y dispositivos de entrada/salida que se conectan a través de un bus.









Bus: línea digital por la que circula la información. Existen de direcciones, datos y control. En un ordenador suelen existir varios buses para garantizar mayor eficiencia. Si existe un dispositivo de Acceso Directo a Memoria (DMA), la información puede circular directamente de dispositivos a memoria y viceversa. Procesador: CPU. Interpreta las instrucciones y las ejecuta. Un ordenador puede estar formado por uno o más procesadores, que pueden ser multinúcleo y tener su propia memoria local Memoria: puede ser local a un procesador o compartida por todos. o RAM: residen programas y datos sobre la que se pueden efectuar operaciones de lectura y escritura. o ROM: solo lectura en la que se almacenan instrucciones y datos de forma permanente. Dispositivos entrada/salida: se conectan al bus. La CPU accede a ellos mediante instrucciones específicas o como si fueran posiciones de memoria.

Comentado [id2]: La cantidad de memoria que puede direccionar se calcula como 2 n (n=n.º de líneas de direcciones del bus)

Interrupciones y excepciones Una interrupción es una alteración en secuencia de ejecución de instrucciones. Toda interrupción tiene asociado un número de interrupción. Causas: • • •

Interrupción hardware Excepción Ejecución de instrucción de petición de interrupción (INT, TRAP)

Tratamiento: 1. 2. 3. 4. 5.

CPU termina de ejecutar instrucción actual Se almacena estado de CPU en la pila CPU pasa a modo supervisor Determina dirección SSI (normalmente: tabla de vectores) Salta a SSI

Comentado [id3]: Dentro del espacio de memoria del núcleo hay una tabla de vectores de interrupciones que se indexa utilizando ese número de interrupción y de ahí se obtiene la dirección de rutina de interrupción (llamada SSI, subrutina de servicio de interrupción)

Irene Dominguez

2020/2021

6. Al retornar de SSI: se restaura estado (y modo de ejecución) 7. Se prosigue ejecución por siguiente instrucción Una excepción es un error que ocurre durante la ejecución de una instrucción (división por cero, instrucción no válida, ...) Las instrucciones de interrupción simulan la ocurrencia de una interrupción. Llevan como parámetro un número identificador de la interrupción a producir.

Modos de ejecución del procesador Las instrucciones realizan operaciones aritméticas, lógicas o de movimiento de datos. Definimos una instrucción privilegiada como aquella que accede a recursos hardware o software externos al proceso actual. Modos de ejecución: • •

Supervisor/Privilegiado: el procesador puede ejecutar cualquier tipo de instrucción. Se accede a todo el conjunto de la CPU. Un SO se ejecuta en modo privilegiado. Usuario/No privilegiado: el procesador no puede ejecutar instrucciones privilegiadas. Si en modo usuario de intenta ejecutar una instrucción privilegiada salta una excepción o se ignora. Los procesos se ejecutan en modo no privilegiado, en c.c., no requeriría la intervención del SO para usar los recursos fundamentales de la computación.

La utilidad principal es construir un SO robusto. Para ello, lo que se hace es garantizar que el procesador estará en modo supervisor solo cuando esté ejecutando código del núcleo del SO, y estará en modo supervisor en cualquier otro momento, en particular, cuando ejecuta código de los procesos.

Memoria Podemos representar los distintos tipos de memoria como una pirámide

Comentado [id4]: Instrucciones privilegiadas: HALF, INT, OUT

Comentado [id5]: Instrucciones no privilegiadas: UPLOAD, ADD, COMP, JMP, SUM, ST Si un proceso puede ejecutar la instrucción entonces es no privilegiada

Comentado [id6]: Si por ejemplo un proceso quiere leer datos de un archivo, que se encuentra en una unidad del Sistema, el proceso solicita la operación de lectura al núcleo y este accede al hardware. Si, por el contrario, el proceso quisiera saltarse al núcleo y pretendiese accede directamente al hardware de la unidad (por ejemplo, porque desea leer datos de un archivo sobre el cual no tiene derecho de lectura), al detectar el procesador el intento de ejecución privilegiada estando en modo usuario, se generaría una excepción que transferiría el control al núcleo. De esta forma, el núcleo sería informado del intento por parte del proceso, y podría actuar en consecuencia (probablemente, abortando el proceso). Comentado [id7]: Existen registros de uso general, que pueden usarse en modo no privilegiado y otros que solo se pueden usar en modo privilegiado.

• • •

Registros Procesador: controlan las instrucciones de ejecución por lo que su tiempo de acceso es inmediato. Cachés Procesador: el procesador las emplea para mantener los datos utilizadas en el pasado y que espera utilizar en el futuro. Memoria: RAM, es volátil donde se escriben los datos que van generando los procesos cuando se ejecutan.

Irene Dominguez • •

2020/2021

Unidades locales: unidades de estado sólido, magnéticas o externas que poseen mucho más tamaño que la RAM, aunque con una velocidad de acceso menor. Sistemas de archivos remotos y Almacenamiento en la nube: puede tener un tamaño virtual ilimitado, aunque su tiempo de acceso puede ser alto debido a la latencia de red.

La memoria funciona como Array de bytes por lo que se necesita saber una dirección (índice) para acceder a una posición de memoria determinada (la primera es el 0 y la última depende de la memoria). Espacio de memoria paginado La paginación es un proceso que permite traducir las direcciones lógicas a direcciones físicas. Permite a que cada proceso tenga su propio espacio de direcciones de memoria. El traductor divide las direcciones lógicas en n.º de páginas y desplazamiento. Una página de memoria se asigna en exclusividad a un proceso.

Comentado [id8]: Por ejemplo, si tenemos una página de 4KBytes y un proceso necesita 8bytes se le asigna al menos una página completa de memoria y el resto se desperdicia, denominado desperdicio interno. Comentado [id9]: Cada proceso dispone de una tabla de páginas que refleja el mapeo entre direcciones lógicas y físicas. Cada tabla es única por proceso y en “tiempo de conmutación de proceso” se carga la primera dirección de la tabla. Los procesos, cuando hacen LOAD y STORE hacen referencia a posiciones lógicas y en esa referencia, el procesador de manera transparente convierte esas posiciones lógicas a posiciones físicas que no tiene por qué corresponder a la posición lógica. El SO siempre opera con posiciones de memoria física.

Traducción direcciones paginadas: tabla de páginas La CPU viene con un mecanismo llamado dispositivo de traducción de memoria paginada que convierte una dirección lógica en una dirección física. También, valida accesos a paginas incorrectos. La tabla se indexa por n.º de página y proporciona n.º de marco. Cada proceso tiene su propia tabla de páginas (así cada uno tiene su propio espacio de memoria). Comentado [id10]: Ejemplo: 4Kbytes de pagina CPU de 32 bits 2^32 = 4GBytes (2^32 1 Megapágina = 1024000 paginas

• •

PID (Process Identifier): identifica de manera única a un proceso en el sistema. Marco: Número de marco (página física, que son las direcciones reales) en que se encuentra la página.

Irene Dominguez •





2020/2021

Bit P: Bit de Presente. Indica si la página está cargada en un marco de memoria. En caso de no estarlo (P=0), esto genera una excepción que ha de ser tratada por el núcleo del sistema operativo. Será responsabilidad del núcleo localizar el contenido de la página, donde quiera que esté, buscar un marco libre, cargar la página en dicho marco, y actualizar la tabla de páginas. Bit A: Bit de página accedida. El traductor pone automáticamente a 1 el bit de página accedida de cada página cada vez que accede a ella. Será responsabilidad del sistema operativo bajar dicho bit cuando lo considere oportuno (se utiliza en memoria virtual, más adelante se explicarán los algoritmos que usan este bit). Bit M: Bit de página modificada. El traductor pone automáticamente a 1 el bit de página modificada de cada página cada vez que se modifica su contenido. Será responsabilidad del sistema operativo bajar dicho bit cuando lo considere oportuno.

Gracias a la paginación: • • •

Cada proceso sólo ve su propio espacio lógico de direcciones. Dicho espacio está compuesto por direcciones consecutivas, aunque los marcos asignador al proceso no seas consecutivos. Se puede ejecutar un proceso sin necesidad de tener cargadas todas sus páginas.

Memoria virtual El proceso entra en ejecución sin necesidad de transferir ninguna de sus páginas a memoria. Si la página no está cargada, el núcleo la busca y la carga en cualquier marco libre. Inicialmente, todas las páginas están no presentes. Por cada fallo de página, el núcleo busca la página y se carga en cualquier marco libre.

Comentado [id11]: ¿Hay el mismo número de páginas físicas que de páginas lógicas? No, hay muchas más paginas lógica pero el SO le hace creer a la memoria lógica que dispone de tanta memoria como me ofrezca el espacio de direccionamiento de la CPU.

Comentado [id12]: Como la memoria virtual cree que hay más memoria de la que realmente hay, cuando haya llegado al tope de la memoria física, se va almacenando en la zona de intercambio que se encuentra en un dispositivo de E/S de almacenamiento masivo. Comentado [id13]: Hace referencia a una posición de memoria de una página de memoria que no está en la memoria principal Comentado [id14]: Normalmente todos los bits deberían estar a 1, y accedemos directamente a ese marco donde estará el dato que estamos referenciando. Pero, si están a 0 es porque ese marco no está presente, i.e., la página no está en memoria principal y la tabla nos indicará en que zona de la zona de intercambio está. Nos iríamos a la zona 32 (donde está el P=1) de la zona de intercambio, lo cargaríamos en un marco que estuviera disponible y ya dejaría de estar en la zona d intercambio (P=0).

Acceso a los dispositivos Las cajas negras son elementos que reciben órdenes, transfieren información e informan sobre su estado. El SO gobierna dispositivos de E/S mediante gestores de dispositivos (drivers). Existe un controlador que gobierna el funcionamiento del dispositivo y tiene acceso a registros de control, de estado y de datos.

Irene Dominguez

2020/2021

Un adaptador es un dispositivo cuya función es servir como elemento de conexión a otros dispositivos. Proporcionan una interfaz estándar que normaliza las características mecánicas, eléctricas y los protocolos. El adaptador se puede encontrar en el bus de la placa o pude ser un elemento externo de un dispositivo específico (simétrico al adaptador en el ordenador).

Comentado [id15]: VGA y HDMI: son conexión que ofrece el adaptador de video (que sí es un E/S) Pantalla: es un accesorio de la tarjeta de video (E/S), la pantalla se conecta a la tarjeta de video con HDMI y la tarjeta de video (E/S) está conectada a la CPU por el BUS PCI WiFi o Bluetooth: no es un BUS para conectar dispositivo de E/S con CPU

Un dispositivo puede contar con múltiples registros de control que pueden ser de distintos tipos: •

• •

Registros de órdenes: o Registros de selección de modo: se establecen antes de empezar a usar el dispositivo o Registros de comandos: se escriben en ellos los códigos de los comandos que acepta el dispositivo para ordenar las distintas operaciones. Registros de estado: expresan el estado actual del dispositivo. Cada bit o grupo de bits tiene un significado Registros de lectura/escritura: en ellos se escribe o de ellos se leen los datos a transferir. Actúan como buffers de lectura o escritura. Si están mapeados...


Similar Free PDFs