Publicado el 16 de Junio del 2020
830 visualizaciones desde el 16 de Junio del 2020
1,6 MB
46 paginas
Creado hace 10a (21/01/2015)
Fundamentos de los
Sistemas Operativos
Tema 1. Conceptos generales
¿Qué es un sistema operativo?
© 2015 ULPGC - José Miguel Santos Espino
Bibliografía para el Tema 1
• Texto principal
– Fundamentos de los sistemas operativos
(Silberschatz, 2006, 7ª ed.)
Capítulos 1 y 2
• Textos alternativos
– Sistemas Operativos: aspectos internos y
principios de diseño (Stallings, 2005, 5ª ed.)
Capítulo 2
– Fundamentos de Sistemas Operativos. Teoría y
ejercicios resueltos
(Candela, García, Quesada, Santana, Santos, 2007)
Capítulo 1
(o las ediciones originales en inglés)
© 2015 ULPGC - José Miguel Santos
2
¿QUÉ ES UN SO?
© 2015 ULPGC - José Miguel Santos
3
Primero: ¿qué hay en
un sistema informático?
• Hardware
– Procesador y memoria
– Dispositivos de E/S: almacenamiento, red, HCI,
impresión, etc.
• Software
– Software de sistema: compilador, GUI, shell, etc.
– Aplicaciones
• Personas
– Usuarios en general
– Administradores del sistema
– Desarrolladores / programadores
© 2015 ULPGC - José Miguel Santos
4
Y ahora: ¿qué es un SO?
• Un programa que actúa de intermediario
entre los usuarios y el hardware
• Pertenece al software del sistema
• Objetivos:
– Proveer un entorno para ejecutar las aplicaciones
– Administrar eficientemente los recursos
– Facilitar la interacción con el computador
– Facilitar la evolución del software y del hardware
© 2015 ULPGC - José Miguel Santos
5
Definiciones breves
1. Un sistema de software cuyo fin es que un
sistema informático sea operativo.
2. Conjunto de programas que gestionan los
recursos del sistema, optimizan su uso y
resuelven conflictos.
3. Cualquier cosa que un fabricante de software
te venda como un «sistema operativo».
© 2015 ULPGC - José Miguel Santos
6
Los dos roles del SO
• Interfaz con el hardware
– Añade características no existentes en el hw
– Oculta características inconvenientes del hw
– Ofrece una «máquina extendida»
• Administrador de recursos
– Como si fuera un «gobierno del hardware»
– Concede recursos de forma segura, justa y
eficiente
– No realiza trabajo productivo
© 2015 ULPGC - José Miguel Santos
7
El SO como interfaz
• Visión: una «capa» que envuelve el hardware
• Ofrece una «máquina abstracta» con otras características
– Oculta detalles incómodos del hardware
– Amplía características no presentes en el hardware
Sistema operativo
proceso
proceso
hardware
proceso
© 2015 ULPGC - José Miguel Santos
8
Interfaz del SO
• ¿Para quién es la interfaz?
– Usuarios en general entorno de ejecución
– Administradores entorno de administración
– Desarrolladores interfaz de programación
• ¿Qué aspecto tiene la interfaz?
– Texto (CLI = Command Line Interface)
– Gráfica (GUI = Graphical User Interface)
– Servicios de programación (API)
© 2015 ULPGC - José Miguel Santos
9
Entorno de trabajo del SO
• El SO suele proporcionar utilidades básicas
para que el usuario pueda realizar tareas
comunes:
– Trabajar con archivos y discos
– Ejecutar aplicaciones cargador de programas
– Imprimir
– Administrar el sistema: backups, usuarios…
© 2015 ULPGC - José Miguel Santos
10
CLI = Command Line Interface
• Incorpora un lenguaje sencillo para dar
instrucciones al SO:
– Cargar programas, trabajar con archivos, etc.
• Se le llama shell, intérprete de órdenes, consola…
© 2015 ULPGC - José Miguel Santos
11
GUI = Graphical User Interface
© 2015 ULPGC - José Miguel Santos
12
API del SO: llamadas al sistema
• API = Application Programming Interface
• El SO ofrece a los desarrolladores y a los
procesos un conjunto de servicios públicos,
accesibles mediante una API
llamadas al sistema (system calls)
© 2015 ULPGC - José Miguel Santos
13
Llamadas al sistema: ejemplo
Llamada write() de UNIX. Escribe un bloque de datos
en un fichero o en un dispositivo de E/S.
int write ( int fd, void* buffer, size_t size )
Resultado:
número de bytes
escritos
Descriptor de fichero
(identifica el fichero
donde vamos a escribir)
Apuntador a la zona
de memoria donde
están los datos
Longitud de los
datos en bytes
© 2015 ULPGC - José Miguel Santos
14
Beneficios
¿Qué ganamos interponiendo esta interfaz entre los
programas y el hardware?
• Usabilidad (la interfaz es más cómoda que el hw)
• Seguridad (se ocultan vulnerabilidades del interior del
hardware)
• Portabilidad (independencia del hardware)
• Interoperabilidad (podemos compartir información
con otros sistemas que usen la misma interfaz)
• Mantenibilidad (podemos hacer mejoras o
adaptaciones dentro del SO sin obligar a hacer cambios
en los programas de usuario)
• Productividad (por todo lo anterior)
© 2015 ULPGC - José Miguel Santos
15
El SO como administrador de recursos
• Procesos y recursos
– Proceso: programa en ejecución
– Recurso: algo físico o virtual que necesita un
proceso para ejecutarse
• Los recursos son escasos los procesos
compiten por ellos
• El SO actúa como árbitro/mediador, que
asigna recursos de forma justa y eficiente
© 2015 ULPGC - José Miguel Santos
16
El SO como administrador de recursos
• El SO debe determinar a quién se le entregan
los recursos, qué cantidad, en qué momento y
por cuánto tiempo.
políticas de gestión de recursos
© 2015 ULPGC - José Miguel Santos
17
El SO como administrador de recursos
• Criterios que deben cumplir las políticas del SO:
– optimizar el rendimiento del sistema
– justicia en el reparto evitar acaparamientos e
inanición de los procesos perjudicados
– garantizar la seguridad del sistema (confidencialidad,
integridad, disponibilidad)
• Estos criterios entran en conflicto
– Ej. no se puede dar el máximo rendimiento y al mismo
tiempo dar un reparto justo
© 2015 ULPGC - José Miguel Santos
18
Seguridad: los tres elementos
• CIA = Confidentiality + Integrity + Availability
• Confidencialidad intimidad, privacidad, etc.
• Integridad que la información no se
corrompa
• Disponibilidad que el sistema continúe
prestando servicio
© 2015 ULPGC - José Miguel Santos
19
GRANDES LOGROS DEL S.O.
© 2015 ULPGC - José Miguel Santos
20
Algunos logros históricos de los SO
• Interfaz uniforme con la E/S
• Multiprogramación
• Memoria paginada
• Memoria virtual
• Sistemas de archivos
• Control del acceso concurrente
• Protección y seguridad
© 2015 ULPGC - José Miguel Santos
21
Interfaz uniforme con la E/S
• La E/S es tremendamente diversa
• Ej. almacenamiento: óptico, disco magnético,
SSD, cinta magnética…
• Cada clase de dispositivo se programa de forma
distinta:
– Tamaño de la unidad de transferencia de datos
– Protocolo de comunicación (síncrono, asíncrono…)
– Codificación de la información
– Control de errores
– …
© 2015 ULPGC - José Miguel Santos
22
Interfaz uniforme con la E/S
• Solución del SO: ofrecer a los desarrolladores una API
uniforme para acceder a cualquier dispositivo de E/S,
ej.:
readIO ( int device_id, void* data, int length )
writeIO ( int device_id, void* data, int length )
• Para cada clase de dispositivo existe una
implementación de esta API
manejador de dispositivo (device driver)
– Interno del SO, es transparente para el usuario
final
© 2015 ULPGC - José Miguel Santos
23
Interfaz uniforme con la E/S
• ¿Qué conseguimos? independencia del dispositivo
– Abstraemos los detalles de implementación de
cada clase de periférico
– Ganamos en portabilidad (el mismo código sirve
para dispositivos diferentes)
– Adaptación a futuras clases de periféricos
– Podemos prohibir el acceso directo a la E/S (sólo
trabajar con la API del SO) más seguridad
© 2015 ULPGC - José Miguel Santos
24
Multiprogramación
• También llamada multitarea (multitasking)
• Cuando un proceso se bloquea al esperar por la E/S, ejecutamos en
•
•
la CPU instrucciones de otro proceso.
Los procesos entrelazan su ejecución: concurrencia.
La CPU y la E/S trabajan a la misma vez se terminan más trabajos
en menos tiempo
© 2015 ULPGC - José Miguel Santos
25
La memoria en un sistema
multiprogramado
S.O.
programa 1
programa 2
(libre)
programa 3
(libre)
© 2015 ULPGC - José Miguel Santos
26
Multiprogramación
• Cuestiones que surgen en un sistema
multiprogramado (y que no existen en un
sistema sin multiprogramación):
– Cuando el procesador queda libre, ¿a qué proceso
elegimos? planificación de CPU
– Competencia por el consumo de la memoria
– Protección de las zonas privadas de memoria
– Conflictos ante el acceso simultáneo a los recursos
– Riesgo de interbloqueo (deadlock)
© 2015 ULPGC - José Miguel Santos
27
Paginación y memoria virtual
• Paginación. Podemos trocear un programa en
pequeñas «páginas» que se pueden colocar en
zonas diferentes de la memoria.
• Memoria virtual. El programa no necesita estar
cargado totalmente en memoria. El almacén
secundario se usa como extensión de la memoria
principal.
• Todo se resuelve automáticamente, sin que el
usuario ni el programador tengan que intervenir.
© 2015 ULPGC - José Miguel Santos
28
Paginación y memoria virtual
(Silberchatz, Galvin, Gagne, 2013)
© 2015 ULPGC - José Miguel Santos
29
Sistemas de archivos
• Usuarios trabajan con documentos,
programas, imágenes, música…
• Almacenamiento físico trabaja con bloques de
datos de tamaño fijo.
– Extraño para los usuarios
• Creamos un recurso virtual, llamado «archivo»,
que tiene nombre y contiene información.
• También el concepto «carpeta» o «directorio»
para organizar los archivos.
• Abstracción muy útil del almacenamiento físico.
© 2015 ULPGC - José Miguel Santos
30
Control del acceso concurrente
• ¿qué pasa si varios procesos intentan trabajar
al mismo tiempo con un recurso que no se
puede compartir?
– Ej. una impresora
• El SO debe conocer quién está usando el
recurso y forzar la espera si está ocupado
• No es trivial resolver este problema de forma
segura y eficiente…
(la solución, en el Tema 3)
© 2015 ULPGC - José Miguel Santos
31
Pro
Comentarios de: ¿Qué es un sistema operativo? - Tema 1. Conceptos Generales (0)
No hay comentarios