Вы находитесь на странице: 1из 41

Captulo 1: Introduccin

Operating System Concepts with Java 7th Edition, Nov 15, 2006

Silberschatz, Galvin and Gagne 2007

Captulo 1: Introduccin

Qu pueden hacer los sistemas operativos


Organizacin de computadoras
Arquitectura de computadoras
Estructura del sistema operativo
Operaciones del sistema operativo
Manejo de procesos
Manejo de memoria
Manejo de almacenamiento
Proteccin y seguridad
Sistemas distribudos
Sistemas de propsito especial
Ambientes de cmputo

Operating System Concepts with Java 7th Edition, Nov 15, 2006

1.2

Silberschatz, Galvin and Gagne 2007

Objectivos

Ofrecer una visin de los componentes ms


importantes de los sistemas operativos
Cubrir los conceptos bsicos de la organizacin
de computadoras

Operating System Concepts with Java 7th Edition, Nov 15, 2006

1.3

Silberschatz, Galvin and Gagne 2007

Qu es un sistema operativo?

Un programa que acta como intermediario entre el


usuario y el hardware de la computadora.
Metas del sistema operativo:
Ejecutar programas y facilitar la resolucin de
problemas del usuario del sistema.
Facilitar el uso de los recursos de la computadora.
Utilizar el hardware de la computadora de manera
eficiente.

Operating System Concepts with Java 7th Edition, Nov 15, 2006

1.4

Silberschatz, Galvin and Gagne 2007

Estructura de una computadora

Los sistemas de cmputo o computadoras pueden dividirse en


cuatro componentes:
Hardware los recursos bsicos de cmputo
CPU, memora, dispositivos E/S
Sistema operativo
Controla y coordina la utilizacin del hardware entre los
distintos programas de aplicacin y usuarios
Programas de aplicacin definen en qu manera se
utilizan los recursos del sistema para resolver problemas de
cmputo de los usuarios
Procesadores de palabras, compiladores, navegadores,
sistemas manejadores de bases de datos, juegos
Usuarios
Personas, mquinas y otras computadoras.

Operating System Concepts with Java 7th Edition, Nov 15, 2006

1.5

Silberschatz, Galvin and Gagne 2007

Cuatro componentes de una computadora

Operating System Concepts with Java 7th Edition, Nov 15, 2006

1.6

Silberschatz, Galvin and Gagne 2007

Definicin de sistema operativo

El SO es un asignador de recursos
Maneja todos los recursos
Decide entre solicitudes en conflicto a fin de
eficientar y hacer justo el aprovechamiento de
recursos
El OS es un programa de control
Controla la ejecucin de programas para prevenir
errores y un uso inapropiado de la computadora

Operating System Concepts with Java 7th Edition, Nov 15, 2006

1.7

Silberschatz, Galvin and Gagne 2007

Definicin de sistema operativo (Cont.)

No existe una definicin universalmente aceptada


Todo lo que incluye el proveedor cuando ordenas
el sistema operativo es una buena aproximacin
Pero vara grandemente
El programa en ejecucin en todo momento en la
computadora es el kernel. Todo lo dems es o un
programa del sistema (viene con el SO) o un
programa de aplicacin

Operating System Concepts with Java 7th Edition, Nov 15, 2006

1.8

Silberschatz, Galvin and Gagne 2007

Iniciando la computadora

El programa bootstrap se carga al encender o


reiniciar
Almacenado tpicamente en ROM o EPROM y
se conoce como firmware
Inicia todos los aspectos del sistemas
Carga el kernel del sistema operativo e inicia su
ejecucin

Operating System Concepts with Java 7th Edition, Nov 15, 2006

1.9

Silberschatz, Galvin and Gagne 2007

Organizacin de la computadora

Operacin de la computadora
Uno o ms CPUs, controladores de dispositivos conectados
a travs de un bus comn a la memoria compartida
Ejecucin concurrente de CPUs y dispositivos compitiendo
por ciclos de memoria

Operating System Concepts with Java 7th Edition, Nov 15, 2006

1.10

Silberschatz, Galvin and Gagne 2007

Operacin de la computadora

Dispositivos de E/S y el CPU se ejecutan de manera


concurrente.
Cada controlador est a cargo de cierto tipo de
dispositivos.
Cada controlador tiene un buffer local.
El CPU mueve datos desde/hacia la memoria
principal hacia/desde buffers locales.
E/S va del dispositivo al buffer local del controlador.
El controlador del dispositivo informa al CPU que
termin su operacin a travs de una interrupcin.

Operating System Concepts with Java 7th Edition, Nov 15, 2006

1.11

Silberschatz, Galvin and Gagne 2007

Funciones usuales de las interrupciones

La interrupcin pasa el control a la rutina de manejo


de interrupciones a travs del vector de interrupcin,
que contiene las direcciones de todas las rutinas de
servicio.
La arquitectura de interrupcin debe salvar la
direccin de la instruccin interrumpida.
Las interrupciones que entran son deshabilitadas
mientras otra interrupcin est siendo procesada.
Una trampa es una interrupcin de software
ocasionada por un error o una solicitud del usuario.
El sistema operativo es dirigido por interrupciones.

Operating System Concepts with Java 7th Edition, Nov 15, 2006

1.12

Silberschatz, Galvin and Gagne 2007

Manejo de interrupciones

El sistema operativo preserva el estado del CPU


almacenando registros y el contador de programa.
Determina que tipo de interrupcin ocurri:
polling
sistema de interrupciones en vector
Segmentos distintos de cdigo determinan qu
accin realizar para cada tipo de interrupcin

Operating System Concepts with Java 7th Edition, Nov 15, 2006

1.13

Silberschatz, Galvin and Gagne 2007

Lnea de tiempo de interrupciones

Operating System Concepts with Java 7th Edition, Nov 15, 2006

1.14

Silberschatz, Galvin and Gagne 2007

Estructura E/S

Una vez que se inicia E/S, el control regresa al programa


usuario hasta que concluye la E/S.
La instruccin Wait reposa el CPU hasta la siguiente
interrupcin
Ciclo Wait (contienda por acceso a memoria).
A lo ms una solicitud de E/S est presente en todo
momento, no hay procesamiento de E/S simultneo.
Una vez que inicia E/S, el control regresa al programa usuario
sin esperar a que concluya la E/S.
Llamada al sistema solicitud al sistema operativo para
permitir al usuario esperar la conclusin de E/S.
Tabla de estado de dispositivos contiene una entrada para
cada dispositivo E/S indicando: tipo, direccin y estado.
Sistema operativo crea un ndice en la tabla de dispositivos
de E/S para determinar el estado y modificar una entrada
para inclur interrupccin.

Operating System Concepts with Java 7th Edition, Nov 15, 2006

1.15

Silberschatz, Galvin and Gagne 2007

Dos mtodos de E/S


Sncrono

Operating System Concepts with Java 7th Edition, Nov 15, 2006

Asncrono

1.16

Silberschatz, Galvin and Gagne 2007

Tabla de estado de dispositivos

Operating System Concepts with Java 7th Edition, Nov 15, 2006

1.17

Silberschatz, Galvin and Gagne 2007

Estructura de Acceso Directo a Memoria

Se utiliza para que dispositivos E/S de alta


velocidad transmitan informacin casi a la
velocidad de la memoria.
El controlador del dispositivo transmite bloques de
datos almacenados en su buffer directo a memoria
principal sin la intervencin del CPU.
Solamente se genera una interrupcin por bloque,
en lugar de una por byte.

Operating System Concepts with Java 7th Edition, Nov 15, 2006

1.18

Silberschatz, Galvin and Gagne 2007

Estructura de almacenamiento

Memoria principal medio de almacenamiento


que el CPU puede acceder directamente.
Almacenamiento secundario extensin de la
memoria principal que provee grandes
capacidades de memoria no voltil.
Discos magnticos discos de metal o cristal
cubiertos de material de grabacin magntico
La superficie est dividida en tracks, que se
dividen en sectores.
El controlador del disco determina la
interaccin lgica entre el dispositivo y la
computadora.

Operating System Concepts with Java 7th Edition, Nov 15, 2006

1.19

Silberschatz, Galvin and Gagne 2007

Jerarqua de almacenamiento

Sistemas de almacenamiento organizados en


jerarqua.
Velocidad
Costo
Volatilidad
Caching copiar informacin a un sistema de
almacenamiento ms rpido; la memoria principal
puede verse como un ltimo cache para
almacenamiento secundario.

Operating System Concepts with Java 7th Edition, Nov 15, 2006

1.20

Silberschatz, Galvin and Gagne 2007

Jerarqua dispositivos almacenamiento

Operating System Concepts with Java 7th Edition, Nov 15, 2006

1.21

Silberschatz, Galvin and Gagne 2007

Caching

Principio importante, se realiza a muchos niveles en la


computadora (en hardware, sistema operativo y software)
Informacin en uso es copiada temporalmente de
almacenamiento ms lento a ms rpido
Almacenamiento ms rpido (cache) se revisa primero
para determinar si la informacin est ah
Si est, se utiliza la informacin del cache (rpido)
Si no est, se copian los datos al cache y se utilizan
El cache es ms pequeo que el almacenamiento
cachado
Manejo del cache, importante problema de diseo
Tamao del cache y poltica de reemplazo

Operating System Concepts with Java 7th Edition, Nov 15, 2006

1.22

Silberschatz, Galvin and Gagne 2007

Rendimiento de niveles de almacenamiento

El movimiento entre niveles de jerarqua de


almacenamiento puede ser explcito o implcito

Operating System Concepts with Java 7th Edition, Nov 15, 2006

1.23

Silberschatz, Galvin and Gagne 2007

Migracin del entero A de disco a registros

Ambientes multitarea deben ser cuidadosos al usar el valor


ms reciente, sin importar su lugar en la jerarqua

Ambientes multiprocesador deben proveer coherencia de


cache en hardware, para que todos los CPUs tengan el valor
ms reciente en su cache
Ambientes distribudos, situaciones an ms complejas
Pueden existir varias copias de un dato
Varias soluciones en el Captulo 17

Operating System Concepts with Java 7th Edition, Nov 15, 2006

1.24

Silberschatz, Galvin and Gagne 2007

Estructura del sistema operativo

Multiprogramacin necesaria por razones de eficiencia


Un slo usuario no puede mantener CPU y
dispositivos E/S ocupados en todo momento
La multiprogramacin organiza trabajo (cdigo y
datos) para que el CPU siempre tenga uno que
ejecutar
Un subconjunto de los trabajos totales del sistema se
mantiene en memoria
Un trabajo es seleccionado y se ejecuta via job
scheduling
Cuanto tiene que esperar (E/S por ejemplo), el SO
cambia a otro trabajo

Operating System Concepts with Java 7th Edition, Nov 15, 2006

1.25

Silberschatz, Galvin and Gagne 2007

Estructura del sistema operativo (Cont.)

Timesharing (multitarea) extesin lgica en la cual el


CPU cambia de trabajos tan frecuentemente que los
usuarios pueden interactuar con cada trabajo mientras
se ejecuta, dando nacimiento al cmputo interactivo
Tiempo de respueta debe ser < 1 segundo
Cada usuario tiene al menos un programa en
ejecucin en memoria proceso
Si hay varios trabajos listos para ejecucin al
mismo tiempo CPU scheduling
Si los procesos no caben en la memoria,
swapping los mueve dentro y fuera para ejecucin
Memoria virtual permite la ejecucin de procesos
que no estn completamente en memoria

Operating System Concepts with Java 7th Edition, Nov 15, 2006

1.26

Silberschatz, Galvin and Gagne 2007

Disposicin de memoria para un sistema con


multiprogramacin

Operating System Concepts with Java 7th Edition, Nov 15, 2006

1.27

Silberschatz, Galvin and Gagne 2007

Operaciones del sistema operativo

Dirigido por interrupciones del hardware


Un error de software o solicitud genera una excepcin o
tramp
Divisin por cero, solicitud de servicio al sistema operativo
Otros problemas de procesos incluyen ciclos infinitos,
procesos que modifican otros procesos o el SO
Modo dual de operacin permite al SO protegerse y a otros
componentes del sistema
Modo usuario y modo kernel
Modo bit provisto por el hardware
Provee la habilidad de distinguir cuando el sistema
ejecuta cdigo de usuario o kernel
Algunas instrucciones son diseadas como
privilegiadas, slo se ejecutan en modo kernel
Llamada al sistema cambia a modo kernel, regreso de
la llamada cambia a usuario

Operating System Concepts with Java 7th Edition, Nov 15, 2006

1.28

Silberschatz, Galvin and Gagne 2007

Transicin de modo Usuario a Kernel

Contador para prevenir ciclos infinitos / procesos apoderados


de recursos
Asignar interrupcin despus de un perido especificado
El sistema operativo decrementa el contador
Cuando llega a cero genera interrupcin
Se asigna antes del proceso de asignacin (scheuling)
para retomar el control o terminar programa que exceda
su tiempo de ejecucin

Operating System Concepts with Java 7th Edition, Nov 15, 2006

1.29

Silberschatz, Galvin and Gagne 2007

Manejo de procesos

Un proceso es un programa en ejecucin. Es una unidad de tiempo


dentro del sistema. Programa es una entidad pasiva, proceso es
una entidad activa.
El proceso necesita recursos para llevar a cabo su tarea
CPU, memoria, E/S, archivos
Datos de inicializacin
La terminacin de un proceso requiere recuperar de los recursos
reutilizables
Procesos de un slo hilo tienen un contador de programa que
especifica la localidad de la sig. instruccin a ejecutar
Proceso ejecuta instrucciones secuencialmente, una a la vez,
hasta terminar
Procesos de varios hilos tienen un contador por hilo
Tpicamente el sistema tiene varios procesos, algunos de usuario,
otros del sistema operativo, corriendo concurrentemente en uno o
ms CPUs
Concurrencia multiplexando el/los CPUs entre todos los
procesos/hilos

Operating System Concepts with Java 7th Edition, Nov 15, 2006

1.30

Silberschatz, Galvin and Gagne 2007

Actividades del manejo de procesos


El sistema operativo es responsable de las siguientes
actividades en relacin con el manejo de procesos:
Crear y eliminar tanto procesos de usuario como del
sistema
Suspender y reiniciar procesos
Proveer mecanismos para sincronizacin de procesos
Proveer mecanismos para comunicacin de procesos
Proveer mecanismos para manejar abrazos mortales
(deadlock)

Operating System Concepts with Java 7th Edition, Nov 15, 2006

1.31

Silberschatz, Galvin and Gagne 2007

Manejo de memoria

Todos los datos en memoria antes y despus de procesar


Todas las instrucciones en memoria en el orden de ejecucin
Manejo de memoria determina qu est en memoria y
cundo
Optimizando la utilizacin del CPU y la respuesta de la
computadora a los usuarios
Actividades en el manejo de memoria
Mantener un registro de qu partes de la memoria estn
en uso y por quin
Decidir qu procesos (o partes de) y qu datos mover o
sacar de la memoria
Asignar o liberar espacio en memoria conforme se
requiera

Operating System Concepts with Java 7th Edition, Nov 15, 2006

1.32

Silberschatz, Galvin and Gagne 2007

Manejo de almacenamiento

SO provee una vista lgica uniforme del almacenamiento de


informacin
Abstrayendo propiedades fsicas en una unidad de
almacenamiento lgica - archivo
Cada medio es controlado por un dispositivo (i.e., disk drive,
tape drive)
Propiedades variables incluyen, velocidad de acceso,
capacidad, ritmo de transferencia, mtodo de acceso
(secuencial o aleatorio)
Manejo del sistema de archivos
Archivos organizados en directorios
Control de acceso para determinar quin puede acceder qu
Actividades del SO incluyen:
Crear y borrar archivos y directorios
Primitivas para manipular archivos y directorios
Mapeo de archivos en almacenamiento secundario
Archivos de respaldo en medios de almacenamiento estable
(no voltil)

Operating System Concepts with Java 7th Edition, Nov 15, 2006

1.33

Silberschatz, Galvin and Gagne 2007

Manejo de almacenamiento masivo

Se utilizan discos para almacenar datos que no caben en memoria


principal o datos que deben mantenerse por mucho tiempo.
Muy importante tener un manejo adecuado.
La velocidad de operacin de la computadora depende en el
subsistema de disco y sus algoritmos
Actividades del SO
Manejo de espacio libre
Asignacin de almacenamiento
Calendarizacin (scheduling) de disco
Cierto almacenamiento no tiene que ser rpido
Almacenamiento terciario usualmente incluye discos pticos,
robots de cintas magnticas
An as, el SO debe manejarlo
Vara entre WORM (write-once, read-many-times) y RW (readwrite)

Operating System Concepts with Java 7th Edition, Nov 15, 2006

1.34

Silberschatz, Galvin and Gagne 2007

Subsistema de E/S

Un propsito del SO es esconder al usuario las


particularidades de dispositivos de hardware
El subsistema de E/S es responsable de
Manejo de memoria para E/S incluyendo
buffering (almacenar datos temporalmente
mientras se transmite), caching (almacenar
partes de los datos en almacenamiento ms
rpido por rendimiento), spooling (encimar la
salida de un trabajo, con la entrada de otros)
Interfaz general para manejadores de
dispositivos
Manejadores para dispositivos especficos

Operating System Concepts with Java 7th Edition, Nov 15, 2006

1.35

Silberschatz, Galvin and Gagne 2007

Proteccin y seguridad

Proteccin cualquier mecanismo para controlar el acceso de


procesos o usuarios a recursos definidos por el SO
Seguridad defensa del sistema contra ataques internos o
externos
Enorme rango de ataques, incluyendo denial-of-service,
gusanos, virus, robo de identidad
Sistemas usualmente distinguen primero entre usuarios, para
determinar cules pueden hacer qu
Identificacin de usuarios, incluyendo nombre y nmero
asociado, uno por usuario
Nombre de usuario, ID, se asocia con todos los archivos y
procesos del usuario para determinar el control de acceso
Identificador de grupo (group ID) permite definir un conjunto de
usuarios y manejarlos en grupo, tambin se asocia con cada
proceso y archivo
Escalar privilegios permite a los usuarios cambiar a un ID con
ms privilegios

Operating System Concepts with Java 7th Edition, Nov 15, 2006

1.36

Silberschatz, Galvin and Gagne 2007

Abientes de cmputo

Computadora tradicional
Definicin borrosa en el tiempo
Ambiente de oficina
PCs conectadas a una red, terminales conectadas a
un servidor o minicomputadoras con timesharing y
procesamiento por lotes
Portales que permiten accesos remotos y via la red a
los mismos recursos
Redes caseras
Antes eran un nico sistema, luego modems
Hoy redes a travs de firewalls

Operating System Concepts with Java 7th Edition, Nov 15, 2006

1.37

Silberschatz, Galvin and Gagne 2007

Ambientes de cmputo (Cont.)

Cmputo cliente-servidor
Terminales delgadas/tontas suplantando PCs
Muchos sistemas hoy son servidores, respondiendo a
solicitudes de clientes
Servidor de aplicacin provee interfaz al cliente para
solicitar servicios (i.e. base de datos)
Servidor de archivos provee interfaz para que los
clientes almacenen y recuperen archivos

Operating System Concepts with Java 7th Edition, Nov 15, 2006

1.38

Silberschatz, Galvin and Gagne 2007

Cmputo Peer-to-Peer (P2P)

Otro modelo de sistema distribudo


P2P no distingue entre clientes y servidores
Todos los nodos se consideran iguales (peers)
Cada uno acta como cliente, servidor o ambos
Cada nodo debe unirse a la red P2P
Registra sus servicios con un servidor central
en la red, o
Enva una solicitud de servicio a todos
(broadcast) y responde a solicitudes de
servicio via discovery protocol
Ejemplos incluyen Napster and Gnutella

Operating System Concepts with Java 7th Edition, Nov 15, 2006

1.39

Silberschatz, Galvin and Gagne 2007

Cmputo basado en web

Web est en todos lados


PCs son los dispositivos prevalentes
Ms dispositivos se pueden integrar a la red para
acceso web
Nueva categora de dispositivos para manejar el
trfico de web entre servidores: balanceadores de
carga
Uso de sistemas operativos para cliente, como
Windows 95, evolucionaron a Linux y Windows XP
que pueden ser clientes o servidores

Operating System Concepts with Java 7th Edition, Nov 15, 2006

1.40

Silberschatz, Galvin and Gagne 2007

Final del Captulo 1

Operating System Concepts with Java 7th Edition, Nov 15, 2006

Silberschatz, Galvin and Gagne 2007

Вам также может понравиться