Este documento presenta la asignatura Plataformas Tecnológicas. Incluye la justificación, objetivos, competencias, contenidos programáticos y metodología de la asignatura. Los objetivos son desarrollar habilidades en sistemas operativos y aplicar conceptos como gestión de procesos, memoria y almacenamiento para resolver problemas. Los contenidos incluyen introducción a sistemas operativos, gestión de procesos, memoria y almacenamiento, entre otros. La metodología incluye clases sincrónicas y
2. FICHA TECNICA
Facultad Ingenierías y Arquitectura
Departamento Eléctrica, Electrónica, Sistemas y Telecomunicaciones
Programa Ingeniería de Sistemas
Curso Plataformas Tecnológicas
Código 167404
Área Tecnologías de la Información y las Comunicaciones
Requisitos 167401
Correquisitos
Créditos 3
Tipo de Curso Teórico Práctico
Fecha última
Actualización
Enero 27 de 2021
Palabras Claves Sistemas operativos, virtualización, linux, windows
3. JUSTIFICACION
Los sistemas operativos son un componente esencial de todo sistema de
computación, por ende esta asignatura es uno de los pilares
fundamentales del programa de Ingeniería de Sistemas. Los conceptos y
evolución de los sistemas operativos están relacionados con el desarrollo
de hardware y han influido en el desarrollo de nuevos modelos y sistemas
computacionales.
Entender y recapacitar acerca del funcionamiento de los sistemas
operacionales dará al estudiante de las ciencias computacionales una
visión global y una mejor comprensión de la interrelación entre los
diversas partes de un sistema computacional.
4. OBJETIVOS GENERAL Y ESPECIFICOS
Desarrollar habilidades en sistema operativo para la identificación de los
aspectos más relevantes en el diseño e implementación de los mismos
mediante técnicas y marcos de referencia sobre plataformas tecnológicas.
OBJETIVOS ESPECIFICOS
Conocer los componentes de un sistema operativo, su estructura y
organización
Estudiar las principales funciones que realiza todo sistema operativo, las
estrategias y algoritmos empleados para manejo de recursos
Conocer la incidencia del hardware sobre el diseño de sistemas
operacionales
Manejar vocabulario técnico en términos de sistemas de acuerdo al marco
de referencia sobre sistemas operativos
5. COMPETENCIAS ESPECIFICAS
Capacidad de comprender los fundamentos teóricos de gestión de
procesos, gestión de memoria y gestión de almacenamiento en la solución
de problemas asociado con los sistemas operativos utilizando técnicas y
marcos de referencia sobre computación
Capacidad de aplicar la programación de hilos en la solución de problemas
asociado con la memoria compartida utilizando técnicas y marcos de
referencia sobre los sistemas de memoria compartida
Capacidad de aplicar la programación de procesos en la solución de
problemas asociado con la memoria distribuida utilizando técnicas y
marcos de referencia sobre los sistemas de memoria distribuida
Capacidad en asesorar en soluciones de conectividad, protección y
seguridad a pequeñas empresas
6. COMPETENCIAS BASICAS
Capacidad de análisis y síntesis.
Habilidad para buscar y analizar información proveniente de fuentes
diversas.
Habilidad de aprender a aprender
Habilidad para el trabajo en equipo
Habilidad para la resolución de problemas
Habilidad en el uso de las TIC
7. COMPETENCIAS BASICAS
Conocer los componentes de un sistema operativo, su estructura y
organización
Estudiar las principales funciones que realiza todo sistema operativo, las
estrategias y algoritmos empleados para manejo de recursos
Conocer la incidencia del hardware sobre el diseño de sistemas
operacionales
Manejar vocabulario técnico en términos de sistemas de acuerdo al marco
de referencia sobre sistemas operativos
8. CONTENIDOS PROGRAMATICOS
UNIDAD 1 INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS
Definición y conceptos de sistema operativo
Estructura de un sistema de cómputo
Estructura de un sistema operativo
UNIDAD 2 GESTIÓN DE PROCESOS
Procesos
Hilos
Planificadores de procesos
Sincronización de procesos
Interbloqueo
9. CONTENIDOS PROGRAMATICOS
UNIDAD 3 GESTIÓN DE LA MEMORIA
Memoria principal
Memoria virtual
UNIDAD 4 GESTIÓN DE ALMACENAMIENTO
Estructura de almacenamiento masivo
Interfaz del sistema de archivos
Implementación del sistema de archivos
Sistemas de Entrada/Salida
UNIDAD 5 TÓPICOS AVANZADOS
Máquinas virtuales
Introducción a los sistemas distribuidos
Introducción a los sistemas clustered
10. METODOLOGIA Y SISTEMA DE EVALUACION
De acuerdo a la naturaleza de la asignatura y a la forma en que el docente
decida desarrollo de contenidos, el Proyecto Educativo del Programa -PEP
define diferentes opciones de metodología a implementar.
Por Pandemia, se usa Ms Teams para las clases sincrónicas y para las
clases asincrónicas Moodle.
EVALUACION
El sistema de evaluación se rige por los lineamientos establecidos en el
reglamento académico estudiantil, Acuerdo No.186 02 de diciembre de
2005, Artículo 30 que define los tipos de evaluación y artículo 32 que
reglamenta su aplicación.
11. BIBLIOGRAFIA
FLYNN, Ida N. Sistemas Operativos. International Thomnson Editores. 2001
MILLENKOVIC Milan, Sistemas operativos, conceptos y diseño, McGraw
Hill. 1.998
RUEDA , Francisco, Sistemas Operativos, Mc Graw Hill. 1.989
TANENBAUM, Andrew , Sistemas operativos distribuidos, Prentice-Hall.
1.996
TANENBAUM, Andrew , Sistemas operativos modernos, Prentice-Hall.
1.993
ANENBAUM, Andrew , Sistemas operativos diseño e implementación,
Prentice-Hall. 1.996
12. INTRODUCCION A LOS SISTEMAS OPERATIVOS
Phd(c) Richard Eliseo Mendoza Gáfaro
Docente
13. Agenda
Sistemas Operativos | Curso 2015 | Introducción 2/23
Introducción a los sistemas operativos.
Evolución histórica de los sistemas operativos:
!Sistemas por lotes.
!Sistemas por lotes multiprogramados.
!Sistemas de tiempo compartido.
!Computadores personales.
!Sistemas paralelos.
!Sistemas de tiempo real.
!Sistemas multimedia.
!Sistemas virtuales.
!Sistemas de mano.
HISTORIA DE LOS SISTEMAS OPERATIVOS
14. Introducción
• Es un programa
• Funciona como intermediario entre el usuario y los programas y el
hardware
Sistemas Operativos | Curso 2015 | Introducción 2/23
¿QUÉ ES UN SISTEMA OPERATIVO?
15. INTRODUCCIÓN
Metas
!Brindar un entorno para que los usuarios puedan ejecutar programas
en forma conveniente
!Brindar un entorno para que los programas usen el hardware con
facilidad Administrar el hardware de forma eficiente y equitativa
!Proveer un entorno sin interferencias a cada usuario
Todas las aplicaciones requieren un conjunto de operaciones comunes
que son incorporadas al sistema operativo.
Funciones básicas:
! Administración de procesos
! Manejo de interrupciones
! Administración de memoria
! Manejo del sistema de archivos
! Administración de seguridad
! Control de entrada/salida
Sistemas Operativos | Curso 2015 | Introducción 2/23
16. INTRODUCCIÓN
Sistemas Operativos | Curso 2015 | Introducción 2/23
El sistema operativo es un Administrador de recursos:
• Administra todos los recursos disponibles.
•Decide como asignar estos recursos según los pedidos
y asignaciones que tenga.
Programa de control y abstracción del hardware:
•Controla la ejecución de los programas para la
prevención de errores y mal uso del sistema.
•Implementa funciones comunes de acceso al
hardware.
Frecuentemente, la porción residente del propio sistema
operativo se denomina núcleo del sistema (kernel).
24. 1945 &1957 1971&Presente Presente Futuro
Primera
generación
Ábaco
Pas calina
Padre de la
Computadora
William B.
Shockley
Transistor
Tercera
Generación
CDC 6000
Se le introdujo la
serie 6600 una de las
mas rápidas
1957&1963 1964 &1971
Maquinas grandes
pasan a ser parte del
diseño de la pc
Cuarta
Generación
En 1976 Steve
Wozniak y Steve
Jobs Crean la
primera
microcomputador
a de uso masivo.
Quinta Generación
El termino quinta
generación fue acuñado
por los japoneses para
describir las potentes e
"inteligentes"
computadoras que
deseaban producir a
mediados de los noventa.
25.
26. PERSPECTIVA HISTÓRICA:
SISTEMAS BATCH ('70)
• En las primeras épocas los sistemas eran
grandes y costosos.
• Constaban de un entrada de trabajos o
cola y una salida impresa.
• Prácticamente no había interacción
alguna con el usuario.
• La función principal era la del cargador
(loader) de programas y soporte de
entrada/salida (E/S) a dispositivos
(operaciones comunes).
• El sistema soportaba un único trabajo a
la vez.
27. PERSPECTIVA HISTÓRICA:
SISTEMAS BATCH ('70)
• Lectora de Entrada ‹ Proceso ‹ Salida y resultado
• Las tareas relacionadas, se agrupaban en conjuntos de trabajos o
lotes (batches) para su procesamiento más eficiente.
• Con el advenimiento de los discos se comenzó a realizar el spool
de los dispositivos haciendo más rápidas las operaciones e
introduciendo por primera vez el solapamiento o concurrencia de
operaciones.
• spool = Simultaneous Peripheral Operations On-Line
• El spooler es un buffer donde se guardan datos a la espera de su
procesamiento por un dispositivo más lento
• El recurso más caro de la época era el procesador (CPU), que
tenía un bajo porcentaje de utilización.
28.
29. Perspectiva histórica:
BATCH MULTIPROGRAMADO ('80)
• Fue una mejora a los sistemas batch en los comienzos de la
década del 80
• El disponer de un conjunto de trabajos (pool de jobs) en memoria
secundaria y la implementación de técnicas de multiprogramación
permitió desarrollar técnicas de planificación de despacho (job
scheduling) así como de multiprogramación.
• El sistema debía seleccionar un subconjunto de trabajos o lotes
(jobs) que estaban en memoria secundaria para cargar en
memoria principal.
• El sistema operativo seleccionaba un trabajo para ejecutar.
Cuando el trabajo seleccionado debía esperar por alguna tarea
(p. ej.: ejecución de una E/S), el sistema elegía otro para utilizar
el procesador.
30. PERSPECTIVA HISTÓRICA:
BATCH MULTIPROGRAMADO ('80)
• Todo esto implicó el desarrollo
de técnicas incipientes para el
manejo de la memoria, ya que
había que compartirla entre
todos los trabajos.
• L a m u l t i p r o g r a m a c i ó n
incrementa la utilización del
recurso procesador.
31.
32. PERSPECTIVA HISTÓRICA:
SISTEMAS DE TIEMPO COMPARTIDO ('80)
Los sistemas batch multiprogramados no tenían interacción con el
usuario además de un tiempo de retorno (turnaround time)
extenso.
El debug de un programa seguía siendo tortuoso (dump de la
memoria). Sistemas de tiempo compartido, ejecutan programas en
forma concurrente con una elevada tasa de despacho de procesador
(context switch) de forma tal de permitir que usuarios interactúen
directamente con el sistema como si fueran su único usuario.
Se debe combinar multiprogramación con técnicas de planificación
de CPU (scheduling) para proveer a cada usuario con una porción
adecuada del sistema.
Los sistemas de tiempo compartido (time sharing systems) son una
extensión lógica de los sistemas multiprogramados.
33. PERSPECTIVA HISTÓRICA:
SISTEMAS DE TIEMPO COMPARTIDO
('80)
! Los usuarios utilizaban terminales para implementar la interacción y
eran atendidos por un intérprete de comandos (multiusuarios).
! La interacción era un resultado de la transmisión carácter a carácter.
Todos los usuarios creían tener el computador a su disposición.
! Si bien un procesador ejecuta un único proceso por vez, el despacho
del mismo 30 ó 40 veces por segundo entre diferentes tareas, le
brinda a los usuarios la sensación de que está para su uso exclusivo.
! Este intercambio es tan frecuente que el usuario puede interactuar
con su trabajo con total comodidad.
! La necesidad de acceder y actualizar datos en forma concurrente,
creó la necesidad de evolucionar el sistema de archivos a uno
multiusuario, incorporando técnicas de protección y serialización del
acceso.
34. PERSPECTIVA HISTÓRICA:
SISTEMAS DE TIEMPO COMPARTIDO ('80)
También apareció el problema de que los usuarios podrían ver la
memoria de los procesos de otros usuarios
En estas condiciones, los procesos deben contar con la memoria y
procesador necesarias para su ejecución eficiente dando forma a los
requerimientos de los sistemas operativos de hoy día.
Comenzó a aparecer la idea de la memoria virtual
• Los procesos ven un espacio de memoria virtual que el sistema
operativo se encarga de mapear a la memoria física
• Permite que varios procesos corran juntos si en memoria sin
requerir modificaciones
35.
36. PERSPECTIVA HISTÓRICA:
COMPUTADORAS PERSONALES ('80)
• Con costos de hardware decrecientes fue posible el diseño
y uso de computadores personales.
• El sistema era diseñando en base a que sería dedicado a un
único usuario.
• Con en un principio modestos recursos de procesador, el
énfasis y desarrollo estuvo por mejorar la interfase con el
usuario.
• Para ello el sistema operativo debió maximizar la habilidad
de interacción con el usuario en vez de uso de CPU, etc.
• La interfase de comandos habitual y diseñada para técnicos
fue sustituida por la interfaz de ventanas que hoy
conocemos.
37. PERSPECTIVA HISTÓRICA:
COMPUTADORAS PERSONALES ('80)
• Se introdujeron nuevos dispositivos que mejoran la interacción
con el usuario (audio, ratón, video, micrófono, cámara, disquete,
etc.).
• Finalmente, los PC invadieron el ambiente empresarial al ser
dispuestos en red. Para ello, utilizando sistemas homogéneos y
servidores con habilidades específicas de impresión, base de
datos, sistema de archivo, seguridad, correo, etc.
• Esta es la disposición reciente dónde las aplicaciones se
implementan en modalidad cliente-servidor.
38.
39. PERSPECTIVA HISTÓRICA:
SISTEMAS PARALELOS ('90)
Desde comienzos de los 90, acompañando el desarrollo del hardware
Sistemas donde se dispone de más de un procesador permiten la
ejecución simultánea y sincronizada de más de un proceso.
Se clasifican en:
• Sistemas altamente integrados (tightly coupled). Son sistemas en
donde los canales de interconexión son de alta velocidad (bus común
o memoria compartida).
• Sistemas poco integrados (loosely coupled). Sistemas en donde los
canales de interconexión son de baja velocidad relativa. Sistemas en
red.
40. PERSPECTIVA HISTÓRICA:
SISTEMAS PARALELOS ('90)
Taxonomía de Flynn (1972):
Caracterizó las arquitecturas de computadores y sobre que
datos se están aplicando:
SISD (Single Instruction, Single Data): Una arquitectura
secuencial donde no existe paralelismo. (Sistemas
monoprocesadores).
SIMD (Single Instruction, Multiple Data): Sistemas que
ejecutan la misma instrucción sobre un conjunto distinto de
datos (Sistemas vectoriales).
MISD (Multiple Instruction, Single Data): Utilizado para
paralelismo redundante.
MIMD (Multiple Instruction, Multiple Data): Sistemas con
procesadores autónomos que ejecutan en forma simultanea
diferentes instrucciones sobre diferentes datos.
41. PERSPECTIVA HISTÓRICA:
SISTEMAS PARALELOS ('90)
Dentro de los sistemas MIMD se suelen hacer dos divisiones:
• Sistemas de memoria compartida: Son sistemas donde
los procesadores coexisten en un único nodo o en un
sistema altamente integrado. Escalan poco debido a que
el acceso a memoria desde los procesadores se convierte
en un “cuello de botella”.
• Sistemas de memoria distribuida: Son sistemas donde los
nodos son independientes que se interconectan a través
de una red de alta velocidad. Escalan a miles de
procesadores.
45. PERSPECTIVA HISTÓRICA:
SISTEMAS MULTIPROCESADORES('90)
Sistemas asimétricos:
• Al surgir los sistemas multiprocesadores los núcleos de
los sistemas operativos se modificaron para soportar
este tipo de sistema. La forma más sencilla fue asignar
la ejecución de código del núcleo a un único procesador.
• De esta forma, los sistemas operativos no tenían que
lidiar con la programación concurrente, ya que su código
estaba restringido a ejecutarse en un único procesador.
• Posteriormente, se empezó a asignar ciertas tareas a
otros procesadores, generando una jerarquía entre ellos.
46. PERSPECTIVA HISTÓRICA:
SISTEMAS MULTIPROCESADORES ('90)
Sistemas simétricos:
• Al avanzar el diseño de los sistemas operativos se desarrollaron sistemas en
donde el código del núcleo se dispone en la memoria común y puede ser
ejecutado por cualquier procesador. Se pierde la jerarquía de los sistemas
asimétricos y todos los procesadores pasan a ser simétricos.
• Pasó a ser una necesidad crítica que el núcleo sea reentrante. Los
proveedores debieron rediseñar totalmente sus sistemas.
• El código del sistema operativo, al igual que el ancho de banda de la
memoria, se transforman en recursos críticos, que determinan la escalabilidad
del sistema.
Dentro de los sistemas multiprocesadores se los caracteriza en dos tipos:
Sistemas UMA (Uniform Memory Access):
•Acceso uniforme a la memoria. Cada procesador accede a cualquier lugar de memoria
con el mismo costo en cuanto al tiempo.
Sistemas NUMA (Non-Uniform Memory Access):
•Acceso no uniforme a la memoria. Los procesadores tienen conjuntos de memoria a la
cual acceden más rápido que el resto.
47.
48. PERSPECTIVA HISTÓRICA:
SISTEMA DE TIEMPO REAL ('00)
• En sistemas de este tipo estricto, todo resultado debe producirse
en un cierto tiempo, o de lo contrario el sistema falla.
• En la práctica, un sistema de tiempo compartido con prioridades
dinámicas y despacho preemptivo en general puede ser utilizado
en estas condiciones.
Dos tipos
Hard
•Todas las demoras del sistema deben estar acotadas
•En general no se usa almacenamiento secundario en disco
•Sistemas especializados
Soft
•Sistemas de propósito general con procesos de tiempo real con mayor prioridad
•No son tan estrictos como los otros pero pueden combinar otros procesos de
menor prioridad
49. PERSPECTIVA HISTÓRICA
Sistemas multimedia
Sistemas especializados en la incorporación de datos multimedia (audio y
video).
Estos tipos de datos deben reproducirse bajos ciertas restricciones de tiempo a
los usuarios.
Sistemas virtuales
Sistemas que corren como aplicaciones de otros sistemas operativos.
Permiten mover un sistema de un hardware a otro sin detenerlo.
Sistemas de mano
Estos utilizan sistemas operativos embebidos que tienen limitaciones de
recursos y altos requerimientos de prestaciones.
Actualmente se parecen cada vez más a computadores personales y usan
sistemas operativos similares.
Sistemas en la nube
Toda la infraestructura del sistema se encuentra en un centro de datos remoto
Usan virtualización como forma de implementación
51. ESTRUCTURA DE UN SISTEMA OPERATIVO
Phd(c) Richard Eliseo Mendoza Gáfaro
Docente
52. Agenda
52
Componentes de un sistema:
–
–
–
–
Introducción.
CPU (procesador).
Memoria.
Dispositivos de Entrada/Salida (IO).
§ Protección de hardware:
–
–
–
–
Modo dual. Protección de
E/S.
Protección de Memoria.
Protección de CPU.
§ Red:
–
–
–
Local Area Networks.
Wide Area Networks.
Topologías de red.
53. Componentes de un sistema
53
Sistemas Operativos | 2017
CPU (procesador)
– Unidad central de procesamiento. Permite ejecutar
un conjunto de instrucciones. Su velocidad es varios
órdenes mayor con respecto al acceso a la
memoria.
Memoria
– Permite mantener la información disponible. Existe
una jerarquía de memoria: registros, caches,
memoria física de tipo RAM (Random Access
Memory), dispositivos magnéticos, ópticos.
Dispositivos de Entrada/Salida (IO)
– Permiten interactuar con el sistema. Algunos
dispositivos más comunes: impresoras, teclados,
ratón, video, disco, red, etc.
54. Componentes de un sistema
Esquema gráfico:
54
Sistemas Operativos | 2017
55. CPU (procesador)
55
Sistemas Operativos | 2017
La unidad central de procesamiento es la que ejecuta los programas.
En un sistema puede haber más de una.
El ciclo básico consiste en tomar la instrucción apuntada por el PC
(program counter) (fetching), decodificarla para determinar su tipo
y operandos (decoding), ejecutarla (executing), y luego continuar
con la siguiente instrucción.
Arquitecturas modernas aumentan la performance ejecutando las
operaciones en paralelo (fetching, decoding, executing). Esta
técnica es conocida como pipelining.
Existen varias arquitecturas de procesador que se clasifican en RISC
(Reduced Instruction Set Computer) o CISC (Complex Instruction Set
Computer).Algunas arquitecturas: SP
ARC, POWER, x86, Itanium.
56. CPU (procesador)
56
Sistemas Operativos | 2017
La velocidad del procesador es varios órdenes de magnitud mayor que
la velocidad de acceso a información que está en la memoria
volátil (RAM).
Esto implicó la creación de registros a nivel del procesador y
finalmente una cache de memoria (caches de 1er. Nivel, 2do. Nivel
y hasta 3er. Nivel).
Los registros son la memoria más rápida que accede un procesador y
están integrados al chip.
En los últimos años han surgido procesadores que en un mismo chip
contienen varios núcleos de ejecución. Esto ha llevado a una nueva
terminología: single-core, dual-core, quad-core, etc.
57. CPU (procesador)
57
Sistemas Operativos | 2017
Dentro del mismo chip del procesador se
incluyen registros de rápido acceso:
– Registros punto fijo y punto flotante.
– Registros de direccionamiento ES, SS, DS, CS, etc..
– Registro de Estado. Incluye PC y banderas con zero, carry.
– Caches:
•
•
•
1er. Nivel (del orden de 20 Kb).
2do. Nivel (del orden de 512Kb a
2Mb). 3er. Nivel (del orden de 8Mb).
58. CPU: Instrucciones
58
Sistemas Operativos | 2017
Instrucciones
– Operador Operandos...
Los operandos pueden ser inmediatos, registros, relativos, de
memoria DS:[SI] según diferentes técnicas. (vistos en Arquitectura
de computadores).
Las familias de instrucciones incluyen aritméticas, lógicas,
transferencia control (Jmp, Call, Loop, etc), de memoria, de stack,
de sincronización (Lock:XChg ax, bx) y de entrada salida.
Las instrucciones de sincronización sirven para resolver problemas
de concurrencia.
59. CPU: Instrucciones privilegiadas
59
Sistemas Operativos | 2017
Se establecen niveles de ejecución y un conjunto de instrucciones
para cada nivel.
Un protocolo seguro para aumentar el nivel de ejecución que se basa
en siempre transferir el control a código autenticado (trusted) para
aumentar el nivel de ejecución.
Por ejemplo:
–
–
–
Detener el procesador
Cambiar el vector de
interrupciones Cambiar las
tablas de páginas
60. CPU: Interrupciones
Interrumpen el flujo normal de un programa.
Es la forma principal de comunicarse con el sistema operativo.
El sistema operativo preserva el estado actual (previo a la
interrupción) del procesador (registros, etc.)
Se determina que tipo de interrupción ocurrió.
Se ejecuta la rutina de atención correspondiente.
60
Sistemas Operativos | 2017
61. Memoria
El sistema de memoria es construido en base a una jerarquía, que permite
mejorar la utilización del procesador:
61
Sistemas Operativos | 2017
62. Memoria: Memoria principal (RAM)
62
Sistemas Operativos | 2017
Memoria de tipo volátil, con direcciones de palabra o byte.
Palabra de 32, 48, 64 bits
Transferencia en un ciclo del bus y acceso en paralelo
(interleaving) a más de un módulo de memoria.
Existen instrucciones que toman como argumentos direcciones de
memoria.
Es útil también para hacer transferencias con controladoras de
dispositivos. Las controladoras tienen su propio buffer de memoria,
y existen instrucciones de E/S que permiten la transferencia
directa desde el buffer a memoria principal.
63. Memoria: Discos
magnéticos (hard disk)
63
Sistemas Operativos | 2017
Dispositivos de velocidad de acceso mucho menor que la memoria principal, pero de
mayor capacidad.
Tiene componentes mecánicas a diferencia de la memoria principal, cache y registros. Consta
de:
– platos de metal que giran a alta velocidad (entre 6.000 y 10.000 rpm).
– un brazo mecánico que contiene las cabezas de lectura/escritura para cada plato.
§
La superficie de los platos se divide en secciones:
– Pistas (tracks): La superficie de los platos es dividida lógicamente en pistas circulares.
– Sectores (sectors): Cada pista es dividida en un conjunto de sectores.
– Cilindros (cylinders): El conjunto de pistas (de todos los platos) que están en una posición del
brazo mecánico forman un cilindro.
65. Memoria: Discos magnéticos
(hard disk)
65
Sistemas Operativos | 2017
§ La velocidad del disco tiene dos
componentes:
– Tasa de transferencia (transfer rate): Es la tasa con la cual los datos
van entre el disco y la computadora.
– Tiempo de posicionamiento (positioning time): Es el tiempo que se tarda
en ubicar el brazo en el cilindro adecuado (seek time), mas el tiempo
de rotar el plato al sector adecuado (rotational latency).
La unidad de transferencia es el bloque. Ocasionalmente los
bloques pueden estar con interleaving.
Existen distintos tipos de buses de conexión:
– IDE (Integrated drive electronics)
– A
T
A(Advanced T
echnology Attachment)
– SATA(Serial Advanced Technology Attachment)
– SCSI (Small Computer-Systems Interface)
– SAS (Serial Attached SCSI)
66. MEMORIA: CACHE
66
Sistemas Operativos | 2017
El cache es un principio muy importante, es utilizado a
varios niveles en el sistema de computación (hardware,
sistema operativo, software).
El concepto es mantener una copia de la memoria que está
siendo utilizada en un medio temporal de mayor velocidad
de acceso.
El medio de memoria cache es mucho menor en capacidad,
pero más veloz que el dispositivo principal. Esto genera que
el manejo de cache es un problema de diseño importante.
El tamaño del cache y sus políticas de reemplazo tienen un
alto impacto en la mejora real de la performance.
67. MEMORIA: COHERENCIA DE CACHE
67
Sistemas Operativos | 2017
Un problema que introduce la memoria cache en
ambientes de multiprocesadores, es la coherencia y
consistencia de los datos que están replicados.
Caches en multiprocesadores:
• Mayor rendimiento, no se satura el bus del sistema
(cuello de botella).
• Aún en un monoprocesador, hay que contemplar a
los controladores de dispositivos.
• Problemas de coherencia entre caches, ya que una
palabra puede estar replicada en diferentes
caches de los procesadores. El problema de
coherencia se torna mucho más complicado.
• Surgen técnicas como write-through y write-back.
68. DISPOSITIVOS DE
ENTRADA/SALIDA (I/O)
68
Sistemas Operativos | 2017
Los dispositivos, por lo general, se componen de una
controladora y el dispositivo en sí.
La controladora es un chip que controla físicamente al
dispositivo. Acepta comandos del sistema operativo y
los ejecuta (genera las correspondientes señales sobre
el dispositivo para realizar la tarea).
La interfaz que le presenta la controladora al
sistema operativo es bastante más simple que la
provista por el dispositivo.
En un sistema existen distintas controladoras
(de discos, red, etc.), por eso es necesario distintos
componentes de software para manejar cada uno.
69. Dispositivos de entrada/salida:
Device drivers
69
Sistemas Operativos | 2017
Al software que se comunica con la controladora se le denomina
device driver.
Para cada controladora se debe proveer el device driver adecuado.
Estos son incorporados al sistema operativo dado que son la vía
de comunicación con los dispositivos.
Los device drivers son cargados de diferentes formas:
–
–
Ensamblados estáticamente al núcleo del sistema.
Cuando se carga el sistema se lee un archivo de configuración que
menciona cuales device drivers cargar.
Cargar dinámicamente a demanda.
–
70. Dispositivos de
entrada/salida
70
Sistemas Operativos | 2017
Las controladorascontienenun conjunto de registros que sirven para
comunicarse con ella y ejecutar comandos. Ej.: la controladora de
un disco podría tener registros para especificar la dirección en
disco, la dirección en memoria principal, el número de sectores y el
sentido (lectura y escritura).
Acceso a los registros de la controladora:
§
– Memory mapped I/O: Los registros son “mapeados” a direcciones de
memoria principal.
– Direct I/O instructions: Alos registros se le asigna una dirección de
puerto (I/O port address).
71. Dispositivos de entrada/salida:
Memory mapped IO
71
Sistemas Operativos | 2017
Para facilitar el acceso a registros de los dispositivos, se reserva un
espacio de la memoria principal que mapea a los registros del
dispositivo.
Leer o escribir en los registros de los dispositivos se traduce en leer
o escribir sobre las direcciones de memoria. Al operar sobre estas
direcciones de memoria se genera la transferencia a los registros
del dispositivos en forma transparente.
Las direcciones de memoria deben ser puesta fuera del alcance de
los procesos del usuario.
Ej.: La pantalla es mapeada a un lugar de memoria. Para desplegar
un carácter en pantalla solo basta con escribir sobre el lugar
correcto de la memoria principal.
72. Dispositivos de entrada/salida:
I/O port address
Acada registro se le asigna una dirección de puerto.
El sistema cuenta con instrucciones privilegiadas IN y OUT que permiten
a los device drivers leer o escribir en los registros de la controladora.
La instrucción genera señales en el bus del sistema para seleccionar el
dispositivo adecuado.
72
Sistemas Operativos | 2017
73. Dispositivos de entrada/salida:
Comparación de acceso
73
Sistemas Operativos | 2017
Memory-mapped I/O:
–
–
No necesita de instrucciones especiales: simplifica la CPU.
Tiene el problema de que hay que excluir esas direcciones de los
procesos de usuarios.
Direct I/O instructions:
–
–
No consume memoria principal.
Las instrucciones de I/O deben ser
privilegiadas.
74. Dispositivos de entrada/salida:
Interacción con la controladora
74
Sistemas Operativos | 2017
Métodos para efectuar una operación de entrada-salida:
– Espera activa (Polling): El procesador le comunica un pedido a la
controladora del dispositivo y queda en un busy waiting consultando a
la controladora si está listo el pedido.
controladora y se libera para realizar otras tareas. Al culminar el pedido
dispositivo, la controladora genera una interrupción al
procesador.
Acceso directo a memoria (DMA – Direct Memory Access): Se utiliza un
chip especial que permite transferirdatos desde alguna controladora a
memoria sin que el procesador tenga que intervenir en forma continua.
– Interrupciones(Interrupts):El procesador le comunica el pedido a la
el
–
75. Dispositivos de
entrada/salida: Espera activa
75
Sistemas Operativos | 2017
p = copy_from_user (buffer, k_buffer, count);
for (i = 0; i < count; i++) {
while (*printer_status_reg != READY);
*printer_data.register = p[i];
}
return_to_user ( );
El sistema queda en busy waiting consultando un registro del
controlador para saber si está listo.
Ej.: Imprimir un buffer en una impresora.
76. Dispositivos de entrada/salida:
Interrupciones
76
Sistemas Operativos | 2017
El sistema se independiza del controlador
, que
genera una interrupción cuando finaliza el pedido.
Es necesario tenerun vector de rutinas de atención de
interrupciones (interrupt vector), que es cargado cuando se
inicia el sistema operativo.
Ej.: Imprimir un buffer en una impresora.
p = copy_from_user(buffer, k_buffer, count); while
(*printer_status_reg != READY);
i = 0;
*printer_data.register = p[i];
scheduler();
78. Dispositivos de
entrada/salida: DMA
78
Sistemas Operativos | 2017
Se dispone de un dispositivo especializado que permite realizar
transferencias desde ciertos dispositivos a memoria. La
transferencia sea hace en paralelo mientras el procesador realiza
otras tareas.
El procesador carga ciertos registros en el controlador DMA para
realizar el pedido. El controlador DMA se encarga de la tarea de
transferencia, interrumpiendo al procesador cuando finalizó.
Ej.: Imprimir un buffer en una impresora.
p = copy_from_user(buffer, k_buffer, count);
set_up_DMA_controller();
scheduler();
Ej.: Rutina de atención de la interrupción de DMA.
unblock_user();
return_from_interrupt();
79. Protección de hardware
79
Sistemas Operativos | 2017
Con la introducción de sistemas multiprogramados y multiusuarios se
empezaron a generar problemas en el uso de los recursos debido a
procesos “mal programados” o “mal intencionados”.
Fue necesario la introducción de protección entre los distintos
procesos que ejecutaban en un sistema.
El hardware fue suministrando a los sistemas operativos de
mecanismos para la protección:
– Modo Dual: Se provee de al menos dos modos de operación.
– Protección de E/S: Todas las instrucciones de Entrada/Salida son
privilegiadas.
– Protección de Memoria: Evaluación de las direcciones de memoria a
través de la MMU.
Protección de CPU: Introducción de un timer que permite limitar el
uso de CPU.
–
80. Modo dual
80
Sistemas Operativos | 2017
El hardware provee al menos dos modos de ejecución:
– Modo usuario (user mode): en este modo de ejecución se puede ejecutar
un conjunto reducido de instrucciones de hardware. Los procesos a
nivel de usuarios ejecutan en este modo.
Modo monitor (monitor mode): en este modo todas las instrucciones de
hardware están disponibles. El sistema operativo es el único que debe
ejecutar en este modo.
–
Un bit, llamado mode bit, es agregado al hardware para indicar
el modo actual.
81. Modo dual
81
Sistemas Operativos | 2017
La ejecución de instrucciones privilegiadas en el modo monitor
garantiza que los procesos, a nivel de usuario, no accedan
directamente a los dispositivos de E/S.
El acceso a un dispositivo se realiza a través de los servicios que
brinda el sistema operativo (syscall).
La solicitud de un servicio al sistema operativo es tratado como una
interrupción a nivel de software (trap), y en ese momentoel
sistema pasa de modo usuario a modo monitor.
En Intel la instrucción int 0x80 genera el cambio de modo.
Posteriormente, se ejecuta el handler de la excepción 0x80
(128 decimal).
83. Protección de E/S
83
Sistemas Operativos | 2017
Es necesario restringir que los procesos a nivel de usuario no accedan
directamente a los dispositivos, sino que deban hacerlo a través
del sistema operativo.
Por eso, se define que todas las instrucciones de E/S son
privilegiadas.
De esa forma, se asegura que un programa a nivel de usuario nunca
pueda lograr cambiar el modo a monitor.
Un usuario podría ingresar una nueva interrupción, modificar una ya
existente, o cambiar el vector de interrupción y luego generar un
trap (interrupción por software) para que ejecute.
84. Protección de memoria
84
Sistemas Operativos | 2017
Es necesario proteger la memoria del núcleo (p.ej.: el vector de
interrupciones) y, a su vez, proteger el acceso de memoria entre
los distintos procesos (un proceso no debería acceder a la
memoria de otro).
El sistema debe lograr saber si cada dirección generada por un
proceso es válida.
Una forma es utilizar dos registros:
–
–
Base: Contiene la dirección de memoria física más baja que puede
acceder.. Límite: Contiene el tamaño del bloque de memoria a
partir del registro base.
85. Protección de memoria
Esquema gráfico de la protección a través de registro base y límite:
85
Sistemas Operativos | 2017
86. Protección de memoria
86
Sistemas Operativos | 2017
Cada dirección física generada por la CPU es controlada para
comprobar si es una dirección válida.
En caso de una acceso inválido se genera un trap al sistema
operativo.
La unidad que convierte direcciones lógicas a físicas es la MMU
(Memory Management Unit), y es la que controla el acceso a
memoria. Esta es un dispositivo de hardware.
La unidad MMU únicamente debe ser administrada en modo monitor.
Por ejemplo cargar los registros base y límite.
87. Protección de CPU
87
Sistemas Operativos | 2017
Una vez que a un proceso se le asigna un recurso procesador,
puede entrar en una iteración infinita (infinite loop) y no retornar
nunca más el control al sistema.
Deben existir mecanismos de protección de uso del procesador.
Una alternativa es la utilización de un timer que interrumpa el
procesador cada cierto tiempo.
El sistema operativo al asignar la CPU carga un contador
. Cada
vez que la interrupción de timer se genera se ejecuta la rutina de
atención correspondiente.
En la rutina de atención de la interrupción el contador es
disminuido. Si alcanza al valor 0, se le quita el recurso
procesador al proceso y se invoca al planificador para que
seleccione otro.
La instrucción que permite cargar el contador debe ser privilegiada.
88. Red
88
Sistemas Operativos | 2017
Las redes se puedenclasificar,
básicamente, en dos tipos:
– Red LAN (Local Area Network):
• Las redes LAN son pequeñas y su alcance está limitado por lo general a
no más de un edificio.
• Velocidades de 10, 100, 1000 Mbits/s, o más.
– Red W
AN (Wide Area Network):
• Las redes WAN son redes distribuidas sobre una región
grande.
• 1,5 a 100 Mbits/s.
La diferencia principal es como están distribuidas
geográficamente
.
89. LAN: Local Area Networks
Son redes que interconectan sistemas a
89
Sistemas Operativos | 2017
corta distancia y se tiende a
tenerinterconexiones de alta velocidad con baja tasa de error.
90. WAN: Wide Area
Networks
Son redes que interconectan sistemas remotos.
Los enlaces, por lo general, son provistos por empresas de telecomunicaciones.
90
Sistemas Operativos | 2017
91. Topologías de red
91
Sistemas Operativos | 2017
Las redes pueden estar interconectadas de diferentes formas.
Esto dependerá de:
–Costos básicos: Qué costo a nivel monetario implica interconectar la red.
– Costo a nivel de comunicación: Qué tiempo lleva enviar un mensaje desde un nodo a otro de la red.
– Nivel de confianza:Qué tan resistente es la red ante eventuales fallos de componentes.
Las topologías que se implementen dependerán de estás tres variables.