Download Diapositiva 1 - Biblioteca de la UNS

Document related concepts

Sistema operativo wikipedia , lookup

Anillo (seguridad informática) wikipedia , lookup

Tiempo compartido (informática) wikipedia , lookup

Memoria virtual wikipedia , lookup

Proceso de arranque en Linux wikipedia , lookup

Transcript
Introducción a la Ingeniería de Sistemas
SEMANA 03 - 1
Sistemas Operativos
Elementos de un Sistema Informático
Hardware (lo tangible)
Software (programas, lo intangible)
software del sistema
Aplicaciones
Personas (usuarios del sistema)
usuarios
programadores
El SO controla y coordina el uso del hardware entre los distintos
programas para diversos usuarios
¿Que es un Sistema Operativo?
Un programa que sirve de intermediario entre los
usuarios y el hardware
Pertenece al software del sistema
Objetivos:
 Ejecutar las aplicaciones de los usuarios
 Administrar eficientemente los recursos de la
máquina
Eficiencia
 Facilitar la interacción con el computador
Usabilidad
¿Que es un Sistema Operativo?
Es un administrador de recursos
como si fuera un gobierno del hardware
programa de control
ojo, no realiza trabajo productivo
 Es una interfaz con el hardware
añade características no existentes en el hardware
oculta características inconvenientes del hardware
máquina extendida
El SO proporciona un ambiente de ejecución de programas
En caso de conflictos debe decidir de forma eficiente y justa
Definiciones breves
 Un sistema de software cuyo fin es que un
sistema
informático
sea
operativo
(utilizable).
 Conjunto de programas que gestionan los
recursos del sistema, optimizan su uso y
resuelven conflictos.
El SO como administrador de recursos
 Tenemos dos participantes en el sistema: los
procesos y los recursos.
 Un proceso es un programa en ejecución
 Un recurso puede ser real o virtual, físico o
lógico
 Los procesos compiten por el uso de recursos
escasos.
 Necesitamos un árbitro imparcial que asigne
recursos a los procesos, de forma justa y eficiente.
El SO como administrador de recursos
 El SO debe determinar a quién se le entregan
los recursos, qué cantidad de recursos se
conceden, en qué momento y durante cuánto
tiempo.
 Políticas de gestión de recursos
El SO como administrador de recursos
 Criterios de gestión de recursos:
 Optimizar el rendimiento del sistema
 Reparto justo  evitar acaparamientos e
inanición de procesos perjudicados
 Garantizar la seguridad e integridad de la
información
 Normalmente, los distintos criterios entran en
conflicto

Ej. no se puede maximizar el rendimiento y a la
vez dar un reparto justo
El SO como interfaz
 Es una capa entre el usuario y el hardware.
 La interfaz ofrece una máquina extendida que es una
abstracción de la realidad.
Proceso 3
Proceso 1
Maquina
extendida
Maquina
desnuda
Nivel del SO
Proceso 4
Proceso 2
El SO como interfaz
 Esa abstracción es más cómoda, más
conveniente, más usable para el usuario y
para el programador.
 Esta interfaz puede ser independiente del
hardware: ganamos portabilidad.
Recorrido histórico: tipos de sistemas









Primeros sistemas
Sistemas por lotes
Mejoras en la gestión de la E/S
Sistemas por lotes multiprogramados
Sistemas de tiempo compartido
Ordenadores personales
Sistemas paralelos: multiprocesadores
Sistemas distribuidos
Sistemas de tiempo real
Primeros sistemas
 Los primeros sistemas de computación se caracterizaban:
 Gran tamaño
 Prácticamente sin ningún soporte lógico (tableros
enchufables, tarjetas perforadas,...)
?
Primeros sistemas: Organización del trabajo
 Organización del trabajo:
 usuario experto: operador/programador
 un solo usuario en cada momento (tiempo asignado, “listas
de reserva”)
?
?
?
?
Primeras mejoras:
 Dispositivos físicos
 Lectoras de tarjetas, impresoras y cintas magnéticas
 Elementos lógicos:
 Aparece el primer software de sistema,
 Ensambladores, compiladores, cargadores
 Manejadores de dispositivos
 Bibliotecas con subrutinas de uso frecuente
 Finalmente aparecieron los primeros compiladores
de lenguajes de alto nivel (FORTRAN, COBOL),
 Simplificando la labor de programación pero
aumentando la carga de trabajo del computador
Problemas:
 El modo de trabajo hacía que la máquina
estuviera parada mucho tiempo:
 tiempo de puesta a punto (setup time)
 tiempo de corrección manual de errores
 tiempo sobrante por finalización
temprana
 Equipos muy caros
Los sistemas por lotes multiprogramados
Los sistemas por lotes multiprogramados proporcionan un entorno en
el que los distintos recursos del sistema (por ejemplo, CPU, memoria,
dispositivos periféricos) se aprovechan de manera efectiva. No obstante,
los sistemas por lotes tienen ciertos problemas desde el punto de vista
del usuario. Puesto que el usuario no puede interactuar con el trabajo
durante su ejecución, debe preparar las tarjetas de control de modo que
manejen todos los resultados posibles. En un trabajo de varios pasos,
los pasos subsecuentes podrían depender del resultado de pasos
anteriores. Por ejemplo, la ejecución de un programa podría depender
de que su compilación tenga éxito. Puede ser difícil definir cabalmente
lo que debe hacerse en todos los casos.
Sistemas de tiempo compartido
Un sistema operativo de tiempo compartido utiliza planificación de la CPU y
multiprogramación para ofrecer a cada usuario una pequeña porción del
tiempo de un computador. Cada usuario tiene por lo menos un programa
individual en la memoria. Un programa que está cargado en la memoria y se
está ejecutando se conoce como proceso. Cuando un proceso se ejecuta,
generalmente lo hace sólo durante un tiempo corto antes de que termine o
necesite realizar operaciones de BIS. La BIS puede ser interactiva: las salidas
podrían enviarse a una pantalla para que el usuario las vea, y las entradas
podrían recibirse del teclado del usuario. Puesto que la FIS interactiva casi
siempre se efectúa a un ritmo humano, puede tardar mucho tiempo en
llevarse a cabo. Las entradas, por ejemplo, pueden estar limitadas por la
velocidad con que el usuario teclea; consideramos que una persona que teclea
a razón de cinco caracteres por segundo es rápida, pero es increíblemente
lenta para los computadores. En lugar de dejar que la CPU esté ociosa
mientras ocurre tal entrada interactiva, el sistema operativo conmuta
rápidamente la CPU al programa de algún otro usuario.
Un sistema operativo de tiempo compartido permite a los
múltiples usuarios compartir el computador simultáneamente.
Puesto que cada acción u orden en un sistema de tiempo
compartido tiende a ser corta, cada usuario necesita sólo un poco
de tiempo de CPU. Como el computador cambia con gran rapidez
de un usuario al siguiente, cada uno recibe la impresión de que
tiene su propio computador, aunque en realidad muchos usuarios
lo estén compartiendo.
Sistemas por lotes:
Objetivo: sacar más provecho a la máquina gracias a
una mejor organización del trabajo
Los operadores agrupaban los trabajos por lotes, que eran
trabajos con necesidades similares
y que eran ejecutados en la computadora como un grupo de
tareas.
A medida que la computadora quedaba libre, se ejecutaba
un lote.
?
?
?
?
?
Sistemas por lotes:
 Primer paso: aparición del operador especialista.
 El programador no manipula directamente el
equipo.
 El programador entrega su trabajo (job) al
operador.
 El operador somete la tarea al sistema y entrega los
resultados al programador.
 El programador corrige sus errores mientras el
operador sigue ejecutando otras tareas.
 Resultado: aumento de la productividad.
Sistemas por lotes:
 Segundo paso: agrupar las tareas en lotes que se
procesan de forma automática
 Procesamiento por lotes (batch processing)
 El operador puede preparar lotes con trabajos que
requieren una misma operación (ej. cargar el
compilador)
 El operador lanza el lote, y éste se ejecuta sin más
intervención (secuencia automática de trabajos)
Sistemas por lotes:
 Necesario
comunes
automatizar
ciertas
acciones
 Control de la finalización de tareas
 Tratamiento de errores
 Carga y ejecución automática de la siguiente tarea
 En lugar de dar órdenes al operador, ¿Porqué no
dárselas directamente al computador?
El Primer Sistema Operativo
 Es necesario que el computador tenga un pequeño
monitor residente (controlador) que realice
automáticamente las acciones anteriores. ¿Cómo?
Distinguiendo entre:
 Tarjetas de instrucciones de programas de usuarios
 Tarjetas de control (Primer lenguaje de control de
sistema: $FTN, $ASM, $RUN, $JOB, $END)
Elementos de un sistema por lotes:
Lenguaje de control de tareas (JCL, job control
language)
 el lote se escribe usando un JCL
 define qué programas hay que cargar, qué datos leer,etc.
 se escribe en tarjetas perforadas, cinta, etc.
Monitor residente
 programa fijo en memoria con rutinas imprescindibles para
que el sistema por lotes funcione: intérprete del JCL,cargador
de programas, rutinas de EIS...
 automatiza tareas del antiguo operador
 es el primer sistema operativo auténtico
El monitor residente: Protección
 Se empiezan a considerar aspectos de
protección:
 proteger la memoria ocupada por el monitor
residente
 impedir accesos directos a la E/S
 evitar que una tarea deje bloqueado al
sistema
 Todo ello
hardware
requiere
cierto
apoyo
del
Cuestiones
¿ Quién carga el intérprete del lenguaje de control ?
¿ Cómo se debe actuar en caso de fallo del programa de usuario ?
¿ Cómo garantizar el uso correcto de los dispositivos de E/S ?
¿ Cómo los programas realizan las operaciones de E/S ?
¿ Cómo podemos diferenciar si las instrucciones de E/S son
utilizadas por el usuario o por el monitor residente ?
¿ Cómo proteger al monitor residente ?
¿ Cómo garantizar el control del sistema ?
Monitor residente
La memoria en un sistema con monitor residente
Vector de interrupciones
Interprete de JCL
Cargador de programas
Manejadores de dispositivos E/S
Memorias intermedias (Búferes)
Rutinas de tratamiento de errores
Registro Limite
Memoria del usuario
SO y arquitectura del computador
 Los SO y la arquitectura de los computadores se han
influido mucho entre ellos dos
 Los SO se crearon para facilitar el uso del hardware
 A medida que se diseñaron y usaron los SO, se hizo
evidente que podrían simplificarse si se modificaba
el diseño del hardware
 A lo largo de la evolución de los SO se observa que
los problemas de los SO han dado pie a la
introducción de nuevas características del hardware
El problema de la E/S
 La E/S era muy lenta en comparación con la CPU.
 Esto provocaba que la CPU quedara ociosa mucho
tiempo esperando por la terminación de operaciones
de E/S.
 Algunas técnicas para tratar el problema:
 Operación fuera de línea (offline)
 Uso de búferes
 Spooling
Operación fuera de línea (off-line)
 El computador central dialoga directamente sólo con
dispositivos rápidos (cintas magnéticas).
 Un pequeño computador (satélite o canal) se encarga de las
transferencias con dispositivos lentos (tarjetas, impresora).
Operación fuera de línea (off-line)
 Resultado:
 mejor aprovechamiento del procesador central
 ejecución paralela de cálculos y operaciones de E/S
 Se puede incrementar la velocidad utilizando varios satélites.
 Para trabajar con offline, no hace falta recompilar los
programas antiguos.
 Los trabajos siguen usando los mismos servicios para la E/S.
Lo que cambia es su implementación en el S.O:
independencia del dispositivo.
Búferes
Esquema de operación de E/S en el que las transferencias de E/S
se realizan a través de un área intermedia de memoria (búfer)
La operación de E/S se realiza sólo cuando el dispositivo está
preparado.
Dispositivo
de entrada
.
Memoria Principal
.
.
Búfer de entrada
CPU
Búfer de Salida
Dispositivo
de salida
.
.
.
Búferes

La CPU sólo espera por E/S cuando el búfer está vacío (entrada) o
lleno (salida)

El uso de búferes permite solapar operaciones de E/S de una tarea con
instrucciones de CPU de esa misma tarea

El uso de búferes no resuelve totalmente el problema de la lentitud de
los equipos de E/S

Los búferes sólo sirven para amortiguar picos de alta actividad de E/S.

Su eficacia depende fundamentalmente de la velocidad de los equipos
de EIS y del tipo de tareas en ejecución
 Si la EIS es muy lenta, los búferes de entrada se vacían y los de salida
se congestionan.
 Las tareas con muchos requerimientos de E/S (I/O-bound jobs/CPUbound jobs) provocaran el mismo efecto
Spooling (Simultaneous Peripheral Operation On-Line)
 Este esquema de funcionamiento de operación de la EIS surge gracias
a la aparición de los discos
 Se utiliza el disco como un enorme búfer.
 El proceso lee/escribe sobre el disco, en lugar del dispositivo de E/S.
 Mientras se ejecuta un trabajo, el S.O.:
 lee los datos del siguiente trabajo de la cinta/tarjetas al disco
 imprime la salida del anterior trabajo, del disco a la impresora
 Permite solapar la EIS de un proceso ya terminado con las operaciones
en CPU de otro proceso.
 Introduce una estructura de control. Fondo de trabajos (job pool): el
lote está en el disco. así que el S.O. puede elegir el trabajo más
adecuado.
Multiprogramación
 El modo de operación offline y el spooling aumentan el
rendimiento de la CPU pero tienen sus limitaciones
 En algún momento la CPU quedará ociosa esperando por
alguna operación de E/S
 Al existir la posibilidad de tener varios trabajos en un
dispositivo de acceso directo. como un disco. es posible la
planificación de trabajos
 El SO puede escoger qué trabajo ejecutara a continuación
Multiprogramación
 Cuando un proceso se bloquea al esperar por la EIS,
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
Multiprogramación
 Los sistemas multiprogramados son más complejos:
 Cuando la CPU queda libre, ¿a qué proceso elegimos?
(planificación de la CPU)
 conflictos por acceso simultáneo a la EIS (planificación de
dispositivos)
 varios procesos a la vez en memoria (gestión de memoria)
 Protección
 Solución a situaciones de interbloqueo
Tiempo compartido (Time Sharing)
 Multiprogramación + interactividad = tiempo compartido
 Los sistemas por lotes no son interactivos (el usuario no
interviene durante la ejecución de su trabajo)
 Con la multiprogramación e interactividad, se replantea su
caracterización: antes era por el agrupamiento de tareas
similares mientras que ahora se caracterizan por la falta de
interacción entre los usuarios y las tareas en ejecución
Tiempo compartido (Time Sharing)
 Idea: la CPU reparte su tiempo entre los distintos
procesos.
 Cada proceso dispone de una rodaja de tiempo
periódica. Si el periodo es lo bastante pequeño, el
usuario no lo percibe.
 Con el t.c. se pierde productividad de CPU, pero se
gana en productividad humana
Tiempo compartido (Time Sharing)
 Por tanto con el tc se consigue:
 tiempos de respuesta cortos
 Los usuarios tienen la impresión de poseer un ordenador
particular
?
?
?
?
Ordenadores personales
La aparición del microprocesador permitió fabricar
computadores baratos, asequibles para el consumo de masas =>
ordenadores personales (años 80)
Destinados al uso individual y no experto.
Máxima importancia a la facilidad de uso, bajos tiempos de
respuesta, etc.
Interfaces de usuario: sistemas WIMP (windows, icons, menus,
pointers).
Utilizan tecnología de los grandes S.O., pero prescinden de
ciertos servicios (protección, multiprogramación, etc.)
Sistemas paralelos -multiprocesadores
Sistemas con más de un procesador. Pueden ejecutar varias
instrucciones simultáneamente (en paralelo).
Sistemas estrechamente acoplados: los procesadores comparten
una memoria común.
Sólo hasta decenas o centenares de procesadores.
Ventajas:
 aumento de velocidad de procesamiento con bajo coste cierta
tolerancia a fallos
Inconvenientes:
 necesidad de sincronización entre procesos
Sistemas distribuidos
Múltiples procesadores conectados mediante
una red.
Sistemas
débilmente
acoplados:
los
procesadores no comparten memoria ni reloj.
Escalable hasta millones de procesadores
(ejm. Internet)
Sistemas distribuidos
Ventajas:
 compartición de recursos dispersos
 ayuda al trabajo cooperativo de equipos humanos
 aumento de velocidad
 fiabilidad (tolerancia a fallos, alta disponibilidad)
Complicaciones:
 Uno comparten memoria: la comunicación es más compleja
y no se puede tener un estado global visible por todos los
nodos al instante.
 red de comunicaciones no fiable
 heterogeneidad de los nodos
Sistemas de tiempo real
Para poder ejecutar satisfactoriamente tareas que han
de completarse en un plazo prefijado (ejm. sistemas de
control industrial, sistemas multimedia)
Dos tipos:
 s.t.r. crítico: para tareas que siempre deben
cumplir los plazos de terminación. Adecuados para
la industria. Muy simples, incompatibles con
tiempo compartido, memoria virtual, etc.
 s.t.r. no crítico: intentan cumplir los plazos, pero
no los garantizan al 100%. Adecuados para
multimedia, etc.
Otros sistemas
Sistemas empotrados (embedded systems)
Sistemas de propósito especifico
Teléfonos móviles
Consolas de videojuegos
…
Estructura del
computador
Estructura del computador
CPU
Controlador
de discos
La CPU y los Controladores de
dispositivos funcionan
concurrentemente
compitiendo por la memoria
Controlador
de
impresora
Controlador de
memoria
Memoria
Controlador
de puerto
PS/2
bus del
sistema
Estructura de la E/S
Los dispositivos se conectan al bus a través de
controladores de E/S.
La CPU se comunica con los controladores a través de
instrucciones especiales o de direcciones de memoria
concretas.
Cada controlador tiene un búfer local. La CPU envía y
recoge datos del búfer.
El controlador notifica a la CPU la finalización de una
operación o la llegada de nuevos datos mediante una
interrupción
Interrupciones
Cuando llega una señal de interrupción a la
CPU, ésta suspende lo que está haciendo y
ejecuta una rutina de servicio de
interrupción (RSI).
Antes de ejecutar la RSI, hay que guardar
el estado de la CPU, para que pueda
reanudar lo que estaba haciendo después de
completar la RSI.
Estructura del
sistema
operativo
Componentes típicos de un SO
procesos
memoria
Entrada/salida
redes
proteccion
archivos
Interprete de ordenes
Gestión de procesos
procesos
Un proceso es un programa en ejecución. Para poder
ejecutarse, un proceso necesita tiempo de CPU, una
porción de memoria, archivos, E/S y demás recursos.
Responsabilidades del S.O.:
creación y eliminación de procesos
planificación de procesos: repartir la CPU entre los
procesos activos
sincronización entre procesos
comunicación entre procesos
Gestión de memoria
memoria
La memoria es un recurso escaso por el que compiten
los distintos procesos.
Responsabilidades del S.O.:
conocer qué zonas de memoria están libres y cuáles
están ocupadas
decidir qué procesos hay que cargar cuando haya
memoria libre
reservar y liberar zonas de memoria según se solicite
memoria virtual: utilizar el almacenamiento
secundario como una extensión de la memoria
principal
Gestión de entrada/salida
Entrada/Salida
La E/S es un conjunto de dispositivos muy variados y
de programar.
complejos
Objetivos del S.O.:
 proporcionar una interfaz uniforme para el acceso a los
dispositivos (independencia del dispositivo)
 proporcionar manejadores para los dispositivos concretos
 tratar automáticamente los errores más típicos
 para los dispositivos de almacenamiento, utilizar cachés
 para los discos, planificar de forma óptima las peticiones
Sistema de archivos
Archivos
Un archivo es un conjunto de datos identificado por un
nombre. Los archivos se almacenan en dispositivos de
E/S. Un archivo es un concepto de alto nivel que no
existe en el hardware.
Funciones del S.O.:
manipulación de archivos: crear. borrar. leer. escribir...
manipulación de directorios
ubicar los archivos y directorios en los dispositivos de
almacenamiento secundario
automatizar ciertos servicios: copia de seguridad.
versiones. etc.
Sistema de proteccion
Protección
La protección abarca los mecanismos destinados a
controlar el acceso de los usuarios a los recursos, de
acuerdo con los privilegios que se definan.
Objetivos del S.O.:
definir el esquema general de protección: clases de
usuarios, clases de permisos/privilegios, etc.
definir mecanismos de acceso a los recursos:
contraseñas, llaves, capacidades, etc.
controlar el acceso a los recursos, denegando el
acceso cuando no esté permitido
Redes
Redes
En un sistema distribuido, existen varios ordenadores
con sus propios recursos locales (memoria, archivos,
etc.), conectados mediante una red.
Objetivos del S.O.:
proporcionar primitivas para conectarse con equipos
remotos y acceder de forma controlada a sus recursos:
primitivas de comunicación (enviar y recibir datos)
sistema de ficheros en red (ejm. NFS) llamada remota
a procedimiento (RPC) etc.
Interprete de ordenes
Interprete de ordenes
 Para que un usuario pueda dialogar directamente con
el S.O., se proporciona una interfaz de usuario básica
para:
 cargar programas
 abortar programas
 introducir datos a los programas
 trabajar con archivos
 trabajar con redes
 Ejemplos:
JCL
en
sistemas
por
lotes,
COMMAND.COM en MS-DOS, shell en UNIX
Procesos
Concepto de proceso
Un proceso es un programa en ejecución
Un proceso necesita recursos para poder ejecutarse:
memoria, dispositivos de E/S, la CPU, etc.
Áreas típicas de la memoria:
código
datos (variables globales, memoria dinámica)
pila (parámetros y variables locales de subrutinas)
Estados de un proceso
A medida que un proceso se ejecuta, cambia de
estado:
 nuevo: recién creado por el S.O.
 en ejecución: está en la CPU ejecutando
instrucciones
 bloqueado: esperando a que ocurra algún evento (ej.
una operación de E/S)
 preparado: esperando a que le asignen un
procesador
 terminado: no ejecutará más instrucciones y el S.O.
le retirará los recursos que consume
Estados de un proceso
Admitido
Nuevo
Planificador
Llamada al
sistema o
excepción
Terminado
Ejecución
Preparado
Interrupción
Finaliza la operación
u ocurre el evento
Bloqueado
Llamada al sistema
de E/S o espera por
un evento
Concurrencia
¿Que es concurrencia?
Definición de diccionario: coincidir en el
espacio o en el tiempo dos o más personas o
cosas.
En Informática, se habla de concurrencia cuando
hay una existencia simultánea de varios
procesos en ejecución.
Ojo, concurrencia existencia simultánea no
implica ejecución simultánea
Paralelismo y concurrencia
 El paralelismo es un caso particular de la
concurrencia.
 Se habla de paralelismo cuando ocurre la
ejecución simultánea de instrucciones
Interbloqueo
El problema
 Un conjunto de procesos bloqueados, cada uno de
ellos esperando por un recurso que retiene otro
proceso de ese conjunto.
 ningún proceso del conjunto puede avanzar
 interbloqueo, bloqueo mutuo, abrazo mortal
(deadlock).
¿De quien es la culpa del interbloqueo?
Muchas veces, el interbloqueo no es responsabilidad de
las aplicaciones, sino del sistema de gestión de recursos
Ejemplo: Los procesos A y B se pueden interbloquear,
aunque están escritos correctamente
Proceso A
Proceso B
Pide (escaner)
Pide (Impresora)
Pide (Impresora)
Pide (escaner)
Usa Impresora y escaner
Usa Impresora y escaner
Libera (Impresora)
Libera (escaner)
Libera (escaner)
Libera (Impresora)
Memoria
Gestión de la memoria: Antecedentes
 La memoria física es un conjunto de celdas
referenciables por medio de una dirección lineal (p.ej.
de la 00000h a la FFFFFh)
 Para que un programa se ejecute, su código y sus
datos necesitan estar cargados en memoria (al menos
en parte)
 En un sistema multitarea, la memoria ha de repartirse
entre los diferentes procesos
Gestión de la memoria: Antecedentes
 Las rutinas del sistema operativo también deberán
residir en memoria, en todo o en parte
 Puede ser que la memoria principal no tenga
capacidad suficiente para todos los procesos en
ejecución
Gestión de la memoria: Objetivo principal
Conseguir que varios procesos puedan ejecutarse de forma
concurrente,
 evitando los conflictos de uso
 protegiendo al sistema operativo
 aprovechando eficazmente el espacio disponible:
 Minimizar la memoria desaprovechada
 Evitar fragmentación
 Memoria ocupada por varias copias de un mismo objeto
 Memoria ocupada por las estructuras de datos necesarias
para la operación del gestor de memoria
Carga parcial de programas
sin perjudicar el rendimiento:
Complejidad temporal
Tiempo de acceso a memoria
Gestión de la memoria: Objetivo principal
 Un gestor de memoria ideal debería por tanto,
 minimizar la memoria desaprovechada
 tener una complejidad temporal mínima
 y presentar un recargo por acceso a memoria
mínimo
 además de proporcionar una buena protección y una
compartición flexible
Ciclo de vida de un programa
Programa fuente
Compilador
Otros objetos y
bibliotecas
Modulo objeto
Compilación
Enlazador
Bibliotecas del
sistema
Bibliotecas
dinámicas
Programa ejecutable
Cargador
Carga
Programa y datos binarios en
memoria
HARDWARE
Ejecución
Sistema de
archivos
Concepto de archivo
En general un archivo es una secuencia de bits
cuyo significado el creador y usuario define
SISTEMA DE ARCHIVOS: conjunto de
módulos del SO que se encargan de la gestión de
la información (archivos)
Entrada/Salida
Definición y objetivos
Subsistema de entrada/salida: conjunto de módulos
software del sistema operativo que manejan los
dispositivos de entrada/salida con la finalidad de:
 Soportar sus especificidades.
 Manejarlos de forma eficiente y segura.
 Proporcionar una disciplina de manejo de uso
uniforme.
 Lograr un grado alto de Independencia de los
programas en el uso los dispositivo de entrada/ salida.
Estructura del subsistema de E/S
Principales componentes:
 Elementos hardware: dispositivos de entrada/salida,
controladores de dispositivos, controlador de
interrupciones y controlador de DMA.
 Elementos software: manejadores de dispositivos,
gestor de interrupciones, gestor de búferes de memoria
y spooler.