Clases 02 & 03: Revisión de conceptos - eafranco.com

26
Clases 02 & 03: Revisión de conceptos Estructuras de datos (Prof. Edgardo A. Franco) 1 Prof. Edgardo Adrián Franco Martínez http://computacion.cs.cinvestav.mx/~efranco [email protected]

Transcript of Clases 02 & 03: Revisión de conceptos - eafranco.com

Page 1: Clases 02 & 03: Revisión de conceptos - eafranco.com

Clases 02 & 03: Revisión de conceptos

Estructuras de datos (Prof. Edgardo A. Franco)

1

Prof. Edgardo Adrián Franco Martínez http://computacion.cs.cinvestav.mx/~efranco [email protected]

Page 2: Clases 02 & 03: Revisión de conceptos - eafranco.com

Contenido

• Sistema Operativo • Componentes básicos de un sistema operativo • Administrador de procesos • Administración de memoria • Entrada / Salida • Sistema de archivos • Tipos de sistemas operativos • Sistemas operativos batch • Sistemas operativos de multiprogramación • Sistemas operativos de tiempo compartido • Sistemas operativos distribuidos • Sistemas paralelos • Sistemas operativos de tiempo real

2

Sist

emas

op

erat

ivo

s II

C

lase

s 0

2 &

03

Rev

isió

n d

e co

nce

pto

s C

on

ten

ido

Page 3: Clases 02 & 03: Revisión de conceptos - eafranco.com

Sistema Operativo

• Un Sistema operativo (SO) es un software que actúa de interfaz entre los dispositivos de hardware y los programas usados por el usuario para utilizar una computadora. Es responsable de gestionar, coordinar las actividades y llevar a cabo el intercambio de los recursos así como actuar como plataforma para que el resto de aplicaciones del usuario se ejecutan en un equipo de cómputo.

3

Sist

emas

op

erat

ivo

s II

C

lase

01

: P

rese

nta

ció

n d

el c

urs

o

Sist

ema

Op

erat

ivo

Page 4: Clases 02 & 03: Revisión de conceptos - eafranco.com

4

Sist

emas

op

erat

ivo

s II

C

lase

01

: P

rese

nta

ció

n d

el c

urs

o

Sist

ema

Op

erat

ivo

Sistema Operativo

• Objetivos del Sistema Operativo: • Servir como interfaz entre el equipo físico (hardware) de una

computadora y el usuario y resto del software, con el fin de presentar una "cara" más sencilla y amistosa al mismo (fácil interoperabilidad).

• Optimar los recursos (tanto de software como de hardware) con que cuenta una computadora y hacer utilizable ésta última.

Hardware

Sistema Operativo

Software del Sistema

Software de aplicaciones

Usuarios

Page 5: Clases 02 & 03: Revisión de conceptos - eafranco.com

Componentes básicos de un sistema operativo

5

Sist

emas

op

erat

ivo

s II

C

lase

s 0

2 &

03

Rev

isió

n d

e co

nce

pto

s C

om

po

nen

tes

bás

ico

s d

e u

n s

iste

ma

op

erat

ivo

• Núcleo o Kernel

• Administrador de memoria

• Sistema de entrada/salida

• Administrador de archivos

• Intérprete de comandos

Page 6: Clases 02 & 03: Revisión de conceptos - eafranco.com

Núcleo o Kernel

6

Sist

emas

op

erat

ivo

s II

C

lase

s 0

2 &

03

Rev

isió

n d

e co

nce

pto

s C

om

po

nen

tes

bás

ico

s d

e u

n s

iste

ma

op

erat

ivo

• Es el módulo de más bajo nivel de un sistema operativo. Entre las tareas que desempeña se incluyen el manejo de las interrupciones, la asignación de trabajo al procesador y el proporcionar una vía de comunicación entre los distintos programas.

• En general, el núcleo se encarga de controlar el resto de los módulos y sincronizar su ejecución.

• El núcleo contiene un submódulo denominado "planificador", el cual se encarga de asignar tiempo del procesador a los programas, de acuerdo a una cierta política de planificación que varía de un sistema operativo a otro. Normalmente se utiliza una jerarquía de prioridades que determinan cómo se asignará el tiempo del CPU a cada programa. Una política de planificación muy común en los sistemas de multiprogramación y multiproceso son las técnicas de "time slicing" (fracción de tiempo). Se asigna a cada programa un corto intervalo de tiempo del procesador. Si el programa no ha terminado durante este intervalo de tiempo, vuelve a la cola de programas.

Page 7: Clases 02 & 03: Revisión de conceptos - eafranco.com

Administrador de memoria

7

Sist

emas

op

erat

ivo

s II

C

lase

s 0

2 &

03

Rev

isió

n d

e co

nce

pto

s C

om

po

nen

tes

bás

ico

s d

e u

n s

iste

ma

op

erat

ivo

• Este módulo se encarga de asignar ciertas porciones de la memoria principal (RAM) a los diferentes programas o partes de los programas que la necesiten, mientras el resto de los datos y los programas se mantienen en los dispositivos de almacenamiento masivo. De este modo, cuando se asigna una parte de la memoria principal se hace de una forma estructurada, siguiendo un determinado orden. La forma más común de administración de la memoria supone crear una memoria virtual; con este sistema, la memoria de la computadora aparece, para cualquier usuario del sistema, mucho mayor de lo que en realidad es.

Page 8: Clases 02 & 03: Revisión de conceptos - eafranco.com

Sistema de entrada/salida

8

Sist

emas

op

erat

ivo

s II

C

lase

s 0

2 &

03

Rev

isió

n d

e co

nce

pto

s C

om

po

nen

tes

bás

ico

s d

e u

n s

iste

ma

op

erat

ivo

• Este componente presenta al usuario la E/S de datos como una cuestión independiente del dispositivo; es decir, para los usuarios, todos los dispositivos tienen las mismas características y son tratados de la misma forma, siendo el sistema operativo el encargado de atender las particularidades de cada uno de ellos (como su velocidad de operación). Una técnica muy común, especialmente en salida, es el uso de "spoolers". Los datos de salida se almacenan de forma temporal en una cola situada en un dispositivo de almacenamiento masivo (el spool), hasta que el dispositivo periférico requerido se encuentre libre; de este modo se evita que un programa quede retenido porque el periférico no esté disponible. El sistema operativo dispone de llamadas para añadir y eliminar archivos del spool.

Page 9: Clases 02 & 03: Revisión de conceptos - eafranco.com

Administrador de archivos

9

Sist

emas

op

erat

ivo

s II

C

lase

s 0

2 &

03

Rev

isió

n d

e co

nce

pto

s C

om

po

nen

tes

bás

ico

s d

e u

n s

iste

ma

op

erat

ivo

• Se encarga de mantener la estructura de los datos y los programas del sistema y de los diferentes usuarios (que se mantienen en archivos) y de asegurar el uso eficiente de los medios de almacenamiento masivo.

• El administrador de archivos también supervisa la creación, actualización y eliminación de los archivos, manteniendo un directorio con todos los archivos que existen en el sistema en cada momento y coopera con el módulo administrador de memoria durante las transferencias de datos desde y hacia la memoria principal. Si se dispone de un sistema de memoria virtual, existen transferencias entre la memoria principal y los medios de almacenamiento masivo para mantener la estructura de la misma.

• Los archivos almacenados en los dispositivos de almacenamiento masivo tienen distintos propósitos. Algunos contienen información que puede ser compartida. Otros son de carácter privado, e incluso secreto. Por tanto, cada archivo está dotado de un conjunto de privilegios de acceso, que indican la extensión con la que se puede compartir la información contenida en el archivo.

Page 10: Clases 02 & 03: Revisión de conceptos - eafranco.com

Interprete de comandos

10

Sist

emas

op

erat

ivo

s II

C

lase

s 0

2 &

03

Rev

isió

n d

e co

nce

pto

s C

om

po

nen

tes

bás

ico

s d

e u

n s

iste

ma

op

erat

ivo

• Muchos comandos son proporcionados por el sistema operativo mediante estatutos de control que tienen las siguientes funciones • Creación de procesos y administración

• Administración de E/S

• Administración de almacenamiento secundario

• Administración de memoria principal

• Acceso al sistema de archivos

• Protección

• Acceso a la red

Page 11: Clases 02 & 03: Revisión de conceptos - eafranco.com

Interprete de comandos

11

Sist

emas

op

erat

ivo

s II

C

lase

s 0

2 &

03

Rev

isió

n d

e co

nce

pto

s C

om

po

nen

tes

bás

ico

s d

e u

n s

iste

ma

op

erat

ivo

• Se encarga de "traducir" las órdenes que el usuario ingresa mediante el teclado u otros dispositivos a un "lenguaje" que la máquina pueda entender.

• Pg. en UNIX

• ANSI C se desarrolló originalmente (conjuntamente con el sistema operativo Unix) por programadores para programadores. Sin embargo, ha alcanzado una popularidad enorme, y se ha usado en contextos muy alejados de la programación de sistemas, para la que se diseñó originalmente.

• POSIX.1, Core Services (implementa las llamadas del ANSI C estándar).

• POSIX.1b, extensiones para tiempo real

• POSIX.1c, extensiones para hilos (threads)

Page 12: Clases 02 & 03: Revisión de conceptos - eafranco.com

Administrador de archivos

12

Sist

emas

op

erat

ivo

s II

C

lase

s 0

2 &

03

Rev

isió

n d

e co

nce

pto

s C

om

po

nen

tes

bás

ico

s d

e u

n s

iste

ma

op

erat

ivo

• Se encarga de mantener la estructura de los datos y los programas del sistema y de los diferentes usuarios (que se mantienen en archivos) y de asegurar el uso eficiente de los medios de almacenamiento masivo.

• El administrador de archivos también supervisa la creación, actualización y eliminación de los archivos, manteniendo un directorio con todos los archivos que existen en el sistema en cada momento y coopera con el módulo administrador de memoria durante las transferencias de datos desde y hacia la memoria principal. Si se dispone de un sistema de memoria virtual, existen transferencias entre la memoria principal y los medios de almacenamiento masivo para mantener la estructura de la misma.

• Los archivos almacenados en los dispositivos de almacenamiento masivo tienen distintos propósitos. Algunos contienen información que puede ser compartida. Otros son de carácter privado, e incluso secreto. Por tanto, cada archivo está dotado de un conjunto de privilegios de acceso, que indican la extensión con la que se puede compartir la información contenida en el archivo.

Page 13: Clases 02 & 03: Revisión de conceptos - eafranco.com

Administrador de procesos

• Un proceso es un programa en ejecución.

• Un proceso necesita ciertos recursos, incluyendo tiempo de CPU, memoria, archivos, y dispositivos de E/S, para lograr su tarea.

• El administrador de procesos del sistema operativo es responsable de las siguientes actividades en la administración de procesos: • Creación de procesos y borrado.

• Suspensión de procesos y resumen.

• Mecanismos de:

• Sincronización de procesos

• Comunicación entre procesos 13

Sist

emas

op

erat

ivo

s II

C

lase

s 0

2 &

03

Rev

isió

n d

e co

nce

pto

s A

dm

inis

trad

or

de

pro

ceso

s

Page 14: Clases 02 & 03: Revisión de conceptos - eafranco.com

Administración de memoria

• La memoria es un array de words y bytes, cada uno con su dirección propia. Es un repositorio de datos de rápido acceso compartido por el CPU y los dispositivos de E/S

• La memoria principal es un dispositivo de almacenamiento volátil. Pierde su contenido en caso de interrupción del sistema y falla.

• El administrador de memoria del sistema operativo es responsable de las siguientes actividades respecto a la administración de memoria : • Llevar cuenta de que partes de la memoria están siendo utilizadas

y por quien.

• Decidir que procesos cargar en memoria cuando esta está disponible.

• Alojar y desalojar espacio de memoria cuando sea requerido. 14

Sist

emas

op

erat

ivo

s II

C

lase

s 0

2 &

03

Rev

isió

n d

e co

nce

pto

s A

dm

inis

trac

ión

de

me

mo

ria

Page 15: Clases 02 & 03: Revisión de conceptos - eafranco.com

Administración de memoria secundaria • Dado que la memoria principal es volátil y muy pequeña

para almacenar todos los datos y los programas en forma permanente, el sistema de cómputo provee memoria secundaria para respaldar la memoria principal.

• La mayoría de las computadoras modernas utilizan discos como medio de almacenamiento en línea, para programas y datos.

• El sistema operativo es responsable de las siguientes actividades respecto a la administración de la memoria secundaria: • Administración del espacio de memoria libre.

• Alojamiento de memoria

• Planificación del disco 15

Sist

emas

op

erat

ivo

s II

C

lase

s 0

2 &

03

Rev

isió

n d

e co

nce

pto

s A

dm

inis

trac

ión

de

me

mo

ria

Page 16: Clases 02 & 03: Revisión de conceptos - eafranco.com

Entrada / Salida

• El sistema de entradas y salidas consiste de: • Un sistema de buffer-caching

• Una interface general de drivers de dispositivos

• Drivers para dispositivos específicos

16

Sist

emas

op

erat

ivo

s II

C

lase

s 0

2 &

03

Rev

isió

n d

e co

nce

pto

s En

trad

a /

Salid

a

Page 17: Clases 02 & 03: Revisión de conceptos - eafranco.com

Tipos de sistemas operativos

• Breve Historia de los Sistemas Operativos • 1940. Primeras Computadoras • 1950. Sistemas en Batch • 1960. Multiprogramacion y Timesharing. • 1970. Minicomputadoras y Microprocesadores. • Finales de 70’s y 80’s. Computadoras personales, Redes, Sistemas

Distribuidos y Sistemas Paralelos, Sistemas de Tiempo Real. • 1990. WWW, Sistemas de Computo Mobil, PC’s. • 2010. Cloud computing • 20XX Computación ubicua

17

Sist

emas

op

erat

ivo

s II

C

lase

s 0

2 &

03

Rev

isió

n d

e co

nce

pto

s Ti

po

s d

e si

stem

as o

per

ativ

os

Page 18: Clases 02 & 03: Revisión de conceptos - eafranco.com

Tipos de sistemas operativos

• Primeros sistemas - principios de los 1940s • Estructura

• Grandes maquinas ejecutándose desde una consola • Computadora dedicada a un usuario/programador a la vez. • Programador / usuario como operador • Tarjetas perforadas o cintas programadas • Programación y depuración mediante switches y focos de luz.

• Primer Software • Ensambladores, cargadores, linkers, Librerías de subrutinas comunes • Compiladores • Drivers de dispositivos

• Uso ineficiente de recursos • Baja utilización del CPU • Mucho tiempo en inicialización del sistema (setup time) • Programación y depuración es lenta y tediosa.

18

Sist

emas

op

erat

ivo

s II

C

lase

s 0

2 &

03

Rev

isió

n d

e co

nce

pto

s Ti

po

s d

e si

stem

as o

per

ativ

os

Page 19: Clases 02 & 03: Revisión de conceptos - eafranco.com

Sistemas operativos batch

• Los sistemas operativos por lotes requieren que la información esté reunida en bloque o "lote" (el programa, los datos, y las instrucciones). Los trabajos son procesados en el orden de admisión, según el modelo de "primero en llegar primero en ser atendido". En estos sistemas la memoria se divide en dos zonas. Una de ellas es ocupada por el sistema operativo, y la otra se usa para cargar programas transitorios para su ejecución. Cuando termina la ejecución de un programa se carga un nuevo programa en la misma zona de memoria.

19

Sist

emas

op

erat

ivo

s II

C

lase

s 0

2 &

03

Rev

isió

n d

e co

nce

pto

s Ti

po

s d

e si

stem

as o

per

ativ

os

Page 20: Clases 02 & 03: Revisión de conceptos - eafranco.com

Sistemas operativos de multiprogramación • Los sistemas de multiprogramación son capaces de

soportar dos o más procesos concurrentes múltiples, permiten que residan al mismo tiempo en la memoria primaria las instrucciones y los datos procedentes de dos o más procesos. Estos sistemas implican la operación de multiproceso, para el manejo de la información. Se caracterizan principalmente por un gran número de programas activos simultáneamente que compiten por los recursos del sistema, como el procesador, la memoria , y los "dispositivos de E/S". Estos sistemas monitorean el estado de todos los programas activos y recursos del sistema. 20

Sist

emas

op

erat

ivo

s II

C

lase

s 0

2 &

03

Rev

isió

n d

e co

nce

pto

s Ti

po

s d

e si

stem

as o

per

ativ

os

Page 21: Clases 02 & 03: Revisión de conceptos - eafranco.com

Los sistemas operativos multiusuario • Los sistemas operativos multiusuario permiten acceder

simultáneamente a un sistema de computadoras a través de dos o más terminales. Este tipo de sistema operativo es fundamental en el manejo de redes de computadoras actualmente.

21

Sist

emas

op

erat

ivo

s II

C

lase

s 0

2 &

03

Rev

isió

n d

e co

nce

pto

s Ti

po

s d

e si

stem

as o

per

ativ

os

Page 22: Clases 02 & 03: Revisión de conceptos - eafranco.com

Sistemas operativos de tiempo compartido • Los sistemas operativos de tiempo compartido tratan de

proporcionar un reparto equitativo de los recursos comunes para dar la impresión a los usuarios de que poseen una computadora independiente. En estos sistemas el administrador de memoria proporciona aislamiento y protección de los programas, ya que generalmente no tienen necesidad de comunicarse entre ellos. El control de E/S se encarga de proporcionar o retirar la asignación a los dispositivos de forma que se preserve la integridad del sistema y se proporcione servicio a todos los usuarios. El administrador de archivos proporciona protección y control en el acceso de la información, dada la posibilidad de concurrencia y conflictos al tratar de acceder a los archivos.

22

Sist

emas

op

erat

ivo

s II

C

lase

s 0

2 &

03

Rev

isió

n d

e co

nce

pto

s Ti

po

s d

e si

stem

as o

per

ativ

os

Page 23: Clases 02 & 03: Revisión de conceptos - eafranco.com

Sistemas operativos distribuidos • Un sistema distribuido es una colección de procesadores que

no comparten memoria ni reloj. Cada proceso tiene su propia memoria local.

• Los procesadores en el sistema están conectados a través de una red de comunicaciones

• El sistema distribuido provee acceso a varios recursos compartidos.

• Sistemas débilmente acoplados, cada procesador tiene su propia memoria local y el procesador se comunica con los demás procesadores mediante líneas de comunicación.

• El acceso a recursos compartidos permite: • Incremento el velocidad de cómputo

• Incremento en disponibilidad de los datos

• Mejora en la confiabilidad 23

Sist

emas

op

erat

ivo

s II

C

lase

s 0

2 &

03

Rev

isió

n d

e co

nce

pto

s Ti

po

s d

e si

stem

as o

per

ativ

os

Page 24: Clases 02 & 03: Revisión de conceptos - eafranco.com

Sistemas paralelos

• Los sistemas paralelos son sistemas de múltiples procesadores con mas de 1 procesador con comunicación entre ellos.

• Sistema fuertemente acoplado, ya que los procesadores comparten memoria y reloj; la comunicación usualmente se realiza mediante memoria compartida.

• Ventajas: • Incremento de throughput (volumen de trabajo o información

procesable)

• Relativamente económicos

• Incremento en la confiabilidad

24

Sist

emas

op

erat

ivo

s II

C

lase

s 0

2 &

03

Rev

isió

n d

e co

nce

pto

s Ti

po

s d

e si

stem

as o

per

ativ

os

Page 25: Clases 02 & 03: Revisión de conceptos - eafranco.com

Sistemas operativos de tiempo real • A menudo utilizados como dispositivo de control en

aplicaciones dedicadas, como control de experimentos científicos, sistemas de procesamiento de imágenes médicas, sistemas de control industrial, etc...

• Exige cumplimiento de restricciones de tiempos. • Sistemas de tiempo real críticos.

• Cumplimiento forzoso de plazos de respuesta.

• Predictibilidad y análisis de cumplimiento de plazos de respuesta

• Sistemas de tiempo real acríticos. • Exigencia “suave” de plazos de respuesta.

• Atención lo mas rápido posible a eventos, en promedio. 25

Sist

emas

op

erat

ivo

s II

C

lase

s 0

2 &

03

Rev

isió

n d

e co

nce

pto

s Ti

po

s d

e si

stem

as o

per

ativ

os

Page 26: Clases 02 & 03: Revisión de conceptos - eafranco.com

Generalización

• En la actualidad clasificar estrictamente a todos los llamados sistemas operativos ya no es una tarea sencilla, ya que se habla de sistemas operativos de red, sistemas operativos móviles, sistemas operativos web, etc.

• Básicamente todos tienen los mismos objetivos que en sus inicios y son de arquitecturas similares simplemente adecuadas al hardware y plataforma sobre la que se implementan.

26

Sist

emas

op

erat

ivo

s II

C

lase

s 0

2 &

03

Rev

isió

n d

e co

nce

pto

s Ti

po

s d

e si

stem

as o

per

ativ

os