Está en la página 1de 24

Sistemas Operativos

(16-5949)

Mg. Jorge R. Ardenghi Mg. Karina M. Cenci


jra@cs.uns.edu.ar

kmc@cs.uns.edu.ar

Departamento de Ciencias e Ingeniera de


la Computacin

Objetivos del Curso de Sistemas Operativos


El curso desarrolla los conocimientos de Sistemas Operativos
desde una visin conceptual y estructural. Se presentan todos
los mecanismos de interaccin entre sus partes sin
particularizar en algn sistema operativo en especial.
Se discuten tpicos como: servicios de sistemas operativos,
sistemas de archivos, planificacin de CPU, manejo de
memoria
memoria
virtual,
planificacin
de
discos,
interbloqueos, procesos y programacin concurrente,
proteccin, sistemas distribuidos, etc.
Se presentan algunos ejemplos de estos conceptos en las
familias UNIX, Windows, Solaris, etc a lo largo del desarrollo
de los mdulos, mostrando los matices de implementacin
entre estos sistemas.
El curso requiere conocimientos de arquitectura y
organizacin de computadores y estructura de datos.
KMC-JRA 2014

Sistemas Operativos Introduccin

Programa Sinttico
1.0 Introduccin.
2.0 Estructuras de Sistemas de Cmputo.
3.0 Estructuras de Sistemas Operativos.
4.0 Procesos.
5.0 Planificacin de Procesos.
6.0 Sincronizacin de Procesos.
7.0 Interbloqueos.
8.0 Manejo de Memoria.
9.0 Memoria Virtual.
10.0 Sistema de Archivos.
11.0 Seguridad y Proteccin.

KMC-JRA 2014

Sistemas Operativos Introduccin

Bibliografa de Sistemas Operativos


Silberschatz, A., Gagne G., y Galvin, P.B.; "Operating System
Concepts", Addison-Wesley, 1998, 5ta Edicin; 2001, 6ta
Edicin. 2005, 7ma Edicin. 2009, 8va Edicin
Silberschatz, A., Galvin, P.B. y Gagne, G.; "Applied Operating
System Concepts", 1st Edition, Addison-Wesley, 2000.
Brinch Hansen, "Operating System Principles", Prentice Hall,
1973
Shaw,A. y Bic,L; "The Logical Design of Operating Systems",
Prentice Hall, 1988, 2da Edicin
Krakowiak,S.; "Principles of Operating Systemas", The MIT
Press,1988
Deitel,H.M.; "Sistemas Operativos", Addison-Wesley, 1993, 2da.
Edicin. (o su versin en ingls)
Tanenbaum, A., Woodhull, A. S.; "Operating Systemas: Design
and Implementation", Prentice Hall, 1st edition.,1987 (o su
version en espaol); 2nd edition.Prentice Hall, 1997; 3rd edition,
2006.
KMC-JRA 2014

Sistemas Operativos Introduccin

Bibliografa de Sistemas Operativos (Cont.)


Tanenbaum, A.; "Modern Operating Systems", Addison-Wesley,
1992.(1ra Parte). 2nd Edition, Prentice Hall, 2001. 3rd Edition
2008.
Dhamdhere, D. M. Sistemas Operativos: Un Enfoque basado en
Conceptos , 2da Edicin, Mc Graw Hill, 2006.
Maekawa, M. y otros; "Operating Systems: Advanced Concepts",
The Benjamin /Cummings Pub. 1987.
Nutt, G.; "Centralized and Distributed Operating Systems",
Prentice Hall, 1992.
Nutt, G.; "Operating Systems: A Modern Perspective", AddisonWesley, 1997.
Milenkovic,M. "Sistemas Operativos: Conceptos y Diseo", Mc
Graw Hill, 1994. (o su versin en ingls)
Stallings, W. "Operating Systems: Internals and Design
Principles", Prentice Hall, 3rd Edition, 1998; 4th Edition, 2001; 5th
Edition, 2005. 6th Edition, 2009
KMC-JRA 2014

Sistemas Operativos Introduccin

Bibliografa de Sistemas Operativos


(Cont.)
Presentacin mas descriptiva orientada a aspectos tcnicos:

Madnick y Donovan, "Sistemas Operativos", 1974


Tanenbaum,A.; "Operating Systemas: Design and
Implementation", Prentice Hall, 1997 (o su versin en espaol)
Tanenbaum, A., Woodhull, A. S.; "Operating Systemas: Design
and Implementation", 2nd edition.Prentice Hall, 1997.
Bach,M.J.; "The Design of the UNIX Operating System", Prentice
Hall, 1987
McKusick et l; "The Design and Implementation of the 4.4BSD
Operating System",Addison-Wesley,1996.
Vahalia, U.; "UNIX Internals: The New Frontiers", Prentice Hall,
1996.
Pate, S.D.; "UNIX Internals: A Practical Approach", AddisonWesley, 1996
KMC-JRA 2014

Sistemas Operativos Introduccin

Bibliografa de Sistemas Operativos


(Cont.)
Revistas Tcnicas
Operating System Review" SIG del ACM.
"Computing Surveys" de ACM.
"Transaction on Computer Systems" de ACM.
"Transaction on Software Engineering" del IEEE.
"Transaction on Computers" del IEEE.
"Computer Magazine" del IEEE.
"Software Magazine" del IEEE.

KMC-JRA 2014

Sistemas Operativos Introduccin

Sistemas Operativos

Mdulo 1:
Introduccin

KMC-JRA 2014

Sistemas Operativos Introduccin

Introduccin
Qu hace un Sistema Operativo?
Organizacin del Sistema de Cmputo
Arquitectura del Sistema de Cmputo
Estructura del Sistema Operativo
Operaciones del Sistema Operativo
Administracin de Procesos
Administracin de Memoria
Administracin del Almacenamiento
Proteccin y Seguridad

Sistemas Distribuidos
Sistemas de Propsito Especial
Ambientes de Computacin
Sistemas Operativos Introduccin

KMC-JRA 2014

Introduccin
Qu es un sistema operativo?
Un programa que acta como un intermediario

entre un usuario de una computadora y el


hardware de la computadora.
Objetivos de Sistema Operativo:

Ejecutar los programas de usuario y permitir la


solucin de problemas del usuario mas
facilmente.

Conveniencia
computadora.

de

uso

del

Uso del hardware de la

sistema

de

la

computadora de

manera eficiente.
KMC-JRA 2014

Sistemas Operativos Introduccin

Introduccin
Componentes del Sistema de Cmputo
1.Hardware provee los recursos bsicos de
computacin (CPU, memoria, dispositivos de E/S).
2. Sistema Operativo controla y coordina el uso del
hardware entre varios programas de aplicacin para
varios usuarios.
3. Programas de Aplicacin define el modo en el cual
los recursos del sistema son usados para resolver los
problemas de computacin de los usuarios
(compiladores, sistemas de bases de datos,
videojuegos, web, programas administrativos, etc).
4.Usuarios (gente, mquinas, otras computadoras).

Sistemas Operativos Introduccin

KMC-JRA 2014

Introduccin
Usuario
1

Compilador

Usuario
2

Usuario
3

Ensamblador

Editor

Usuario
n

Sistema de
Base de Datos

Programas de Sistema y de
Aplicacin

Sistema Operativo

Hardware

KMC-JRA 2014

Sistemas Operativos Introduccin

Introduccin
Definiciones de Sistemas Operativos
Alocador de recursos
administra todos los recursos.
decide sobre requerimientos conflictivos para
asegurar eficiencia y uso imparcial de recursos

Programa de Control
controla ejecucin de los programas para
prevenir errores y el uso impropio de la
computadora.
Sistemas Operativos Introduccin

KMC-JRA 2014

Introduccin
Definiciones de Sistemas Operativos (cont)
No

existe
aceptada.

una

definicin

universalmente

La cosa que un vendedor entrega cuando uno

ordena un sistema operativo resulta una buena


aproximacin
El programa que ejecuta todo el tiempo en la

computadora es el kernel o ncleo. Todo lo


dems es un programa de sistema (viene junto
con el sistema operativo) o un programa de
aplicacin.
KMC-JRA 2014

Sistemas Operativos Introduccin

Introduccin

Inicio de la Computadora
El programa de bootstrap es cargado en el encendido

o reboot

Tipicamente almacenado en ROM o EEPROM,


generalmente conocido como firmware

Inicializa todos los aspectos del sistema

Carga el kernel del sistema operativo y comienza la


ejecucin

Sistemas Operativos Introduccin

KMC-JRA 2014

Introduccin
Organizacin del Sistema de Cmputo
Operacin del Sistema de Cmputo

Una o ms CPUs, se provee acceso a la memoria


compartida por dispositivos de control conectados
a un canal comn.

La ejecucin concurrente de CPUs y dispositivos


compiten por ciclos de memoria.

KMC-JRA 2014

Sistemas Operativos Introduccin

Introduccin

Organizacin del Sistema de Cmputo


teclado

discos

impresora

Controlador

Controlador

Adaptador

disco

USB

grfico

memoria

KMC-JRA 2014

Sistemas Operativos Introduccin

Introduccin
Operacin del Sistema de Cmputo
Los dispositivos de E/S y la CPU pueden ejecutar

concurrentemente.
Cada controlador de dispositivos est encargado de un
tipo particular de dispositivo.
Cada controlador de dispositivos tiene un buffer local.
La CPU mueve datos desde/hacia la memoria principal
a/desde los buffers locales.
La E/S es desde el dispositivo al buffer local del controlador.
El controlador de dispositivo informa a la CPU que ha
finalizado su operacin por medio de una interrupcin.

KMC-JRA 2014

Sistemas Operativos Introduccin

Introduccin
Funcionamiento de las Interrupciones
Una interrupcin transfiere el control a la rutina de servicio

de la misma, generalmente por medio del vector de


interrupcin, que contiene las direcciones de todas las rutinas
de servicio.
La arquitectura de la interrupcin debe salvar la direccin de
la instruccin interrumpida.
Las interrupciones entrantes son deshabilitadas mientras
otra interrupcin est siendo procesada para prevenir una
prdida de interrupcin.
Un trap es una interrupcin generada por el software causada
por un error o por un requerimiento de usuario.
Un sistema operativo es manejado por las interrupciones.

Sistemas Operativos Introduccin

KMC-JRA 2014

Introduccin
Manejo de Interrupciones
El sistema operativo preserva el estado de la CPU

almacenando los registros y el contador de programa.


Determina que tipo de interrupcin ha occurrido:

polling

Sistema de interrupcin vectoreado

Segmentos de cdigo separados determinan que tipo

de accin deberan llevarse a cabo para cada tipo de


interrupcin.

KMC-JRA 2014

Sistemas Operativos Introduccin

10

Introduccin
Dos Mtodos de E/S
Sincrnico

usuario

kernel

Asincrnico

proc que requiere

proc que requiere

driver de disp

driver de disp

espera

manejador de
int

manejador de
int
Hardware
transf de datos

Hardware
transf de datos

usuario

kernel

tiempo

tiempo
Sistemas Operativos Introduccin

KMC-JRA 2014

Introduccin
Tabla de estado de dispositivos
disp: lect tarjetas 1
status: ociosa
disp: impresora 3
status: ocupada

req para imp


direc: 38769
long: 1245

disp: unidad disco 1


status: ociosa

disp: unidad disco 2


status: ociosa
disp: unidad disco 3
status: ocupada

KMC-JRA 2014

req para
unidad
de disco 3
arch: xxx
oper: lect
dir:43098
Long: 20000

req para
unidad
de disco 3
arch: yyy
oper: esc
dir: 05678
Long: 500

Sistemas Operativos Introduccin

11

Introduccin
Estructura de Acceso Directo a Memoria (DMA)
CPU

Memoria

Disp E/S

Instrucciones de
E/S

Usado por dispositivos de E/S de alta velocidad para

transmitir informacin a velocidades similares a la de la


memoria.
El controlador de dispositivos transfiere bloques de datos

desde el buffer de almacenamiento directamente a la


memoria principal sin la intervencin de la CPU.
Solo una interrupcin es generada por bloque, y no una por
byte.
Sistemas Operativos Introduccin

KMC-JRA 2014

Introduccin
Estructura de almacenaje
Memoria principal nico medio de almacenaje que la

CPU puede acceder directamente.


Almacenaje Secundario extensin de la memoria
principal que provee una gran capacidad de
almacenaje no voltil.
Discos Magnticos
La superficie del disco est logicamente dividida en
tracks (pistas), los cuales estn subdivididas en
sectores.

KMC-JRA 2014

El controlador de disco determina la interaccin


lgica entre el dispositivo y la computadora.

Sistemas Operativos Introduccin

12

Introduccin
Jerarqua de Dispositivos de Almacenaje
registros
cache
memoria principal
disco electrnico
disco magntico
disco ptico
cinta magntica
Sistemas Operativos Introduccin

KMC-JRA 2014

Introduccin
Caching
Principio importante que es llevado a cabo por varios

niveles en una computadora (en hardware, sistema


operativo, software)
La informacin en uso copiada desde un almacenaje
lento a uno ms rpido temporariamente.
El almacenaje ms rpido (cache) es verificado primero
para determinar si la informacin est alli:

KMC-JRA 2014

Si est, es usada directamente del cache (rpido)

Si no, el dato es copiado al cache y usado all.

Sistemas Operativos Introduccin

13

Introduccin
Caching (Cont.)
El cach es ms pequeo que el almacenaje de

donde se ha trado la informacin:

La administracin del cache es un problema


importante de diseo.

El tamao del cache y la poltica de reemplazo.

Sistemas Operativos Introduccin

KMC-JRA 2014

Introduccin
Estructura del Sistema Operativo
La Multiprogramacin es necesaria para lograr eficiencia:

KMC-JRA 2014

Un simple usuario no puede mantener la CPU y los


dispositivos de E/S ocupados todas las veces.
La multiprogramacin organiza las tareas (cdigo y
datos) de tal manera que la CPU siempre tiene uno
ejecutando.
Un subconjunto del total de tareas en el sistema se
mantienen en memoria.
Una tarea es selecionada y ejecuta va una
planificacin de tareas.
Cuando tiene que esperar (p.e. E/S), el sistema
operativo conmuta a otra tarea.
Sistemas Operativos Introduccin

14

Introduccin
Estructura del Sistema Operativo
El Tiempo Compartido (multitarea) es una extensin lgica
en la cual la CPU conmuta tareas tan frecuentemente que
los usuarios pueden interactuar con cada tarea mientras
est ejecutando, creando la computacin interactiva.
El tiempo de respuesta debera ser < 1 second

Cada usuario tiene al menos un programa ejecutando en


memoria proceso
Si hay varias tareas listas para ejecutar al mismo tiempo
planificacin de CPU.
Si un proceso no entra en memoria, el swapping lo
mueve fuera y hacia dentro de la memoriamoves para
ejecutar.
La Memoria Virtual permite la ejecucin de procesos no
completos en la memoria.
Sistemas Operativos Introduccin

KMC-JRA 2014

Introduccin
Distribucin de la memoria en un sistema
multiprogramado
0

Sistema Operativo
job 1
job 2
job 3
job 4
512 k
KMC-JRA 2014

Sistemas Operativos Introduccin

15

Introduccin
Operaciones del Sistema Operativo
Las interrupciones son manejadas por el
hardware
El error o requerimiento de software crea una
excepcin o trap

Division por cero, requiere por un servicio del sistema


operativo

Otros problemas de procesos incluyen lazos

infinitos, procesos que se modifican unos con


otros o el sistema operativo.

Sistemas Operativos Introduccin

KMC-JRA 2014

Introduccin
Operaciones del Sistema Operativo
La

operacin en modo dual permite al sistema


operativo protegerse a si mismo y otros compionentes
del sistema
Modo usuario y modo kernel
El bit de modo es provisto por el hardware
Provee

la habilidad para distinguir cuando el


sistema est ejecutando cdigo de usuario o
cdigo kernel.
Algunas instrucciones son privilegiadas, slo se
ejecutan en modo kernel.
La llamada a sistema cambia el modo a kernel, el
retorno de la llamada reinicia al modo usuario.
KMC-JRA 2014

Sistemas Operativos Introduccin

16

Introduccin
Transicin del modo usuario al modo kernel
Timer

para prevenir lazos infinitos / alto


consumo de recursos por procesos

Produce un interrupcin luego de un perodo


especfico.

El SO decrementa un contador.

Cuando el contador llega a cero genera una


interrupcin.

Se inicia antes que el proceso planificado gane el


control o termina el programa que excede el tiempo
fijado.

KMC-JRA 2014

Sistemas Operativos Introduccin

Introduccin
Transicin del modo usuario al modo kernel
(cont)

KMC-JRA 2014

Sistemas Operativos Introduccin

17

Introduccin
Administracin de Procesos
Un proceso es un programa en ejecucin. Es una

unidad de trabajo dentro del sistema. Un


programa es una entidad pasiva, el proceso es
una entidad activa.
El proceso necesita recursos para realizar su
tarea.
CPU, memoria, E/S, archivos
Initializacin de datos
La terminacin de procesos require reclamar los
recursos reusables.

Sistemas Operativos Introduccin

KMC-JRA 2014

Introduccin
Administracin de Procesos (cont.)
Los procesos de hilo simple tienen un contador de

programa especificando la locacin de la prxima


instruccin a ejecutar.

El
proceso
ejecuta
instrucciones
secuencialmente, una por vez hasta terminar.

Procesos

multihilados
programa por hilo.

tienen

un

contador

de

Tipicamente un sistema tiene muchos procesos,

algn
usuario,
algn
SO
ejecutando
concurrentemente en una o ms CPUs.
Concurrencia por multiplexado de CPUs entre
procesos / hilos.

KMC-JRA 2014

Sistemas Operativos Introduccin

18

Introduccin
Actividades de la Administracin de
Procesos
El sistema operativo es responsable por las siguientes

actividades en conexin con la administracin de


procesos.

Creacin y eliminacin de procesos.

Suspensin y reactivacin de procesos.

Provisin de mecanismos para:


sincronizacin

de procesos

comunicacin

de procesos

manejo

de interbloqueos

Sistemas Operativos Introduccin

KMC-JRA 2014

Introduccin
Administracin de Memoria
Todos los datos antes y despus del procesamiento.
Todas las instrucciones en memoria para ejecutar.
Determina que hay en memoria cuando es necesario

optimizar la utilizacin de CPU y el tiempo de


respuesta a los
Actividades de la administracin de memoria:

KMC-JRA 2014

Lleva control de que partes de la memoria estn siendo


usadas y por quien.
Decide que procesos cargar cuando hay espacio de
memoria disponible.
Ocupa y desocupa espacio de memoria cuando
necesite.
Sistemas Operativos Introduccin

19

Introduccin
Administracin del almacenaje
El SO provee una visin lgica y uniforme del

almacenaje de informacin
Hace abstraccin de las propiedades fsicas a
una unidad lgica de almacenaje archivo.
Cada medio es controlado por un dispositivo
(p.e. disco, cinta, etc)
Propiedades variables incluyen velocidad de
acceso, capacidad, mtodo de acceso
(secuencial o al azar)

Sistemas Operativos Introduccin

KMC-JRA 2014

Introduccin
Administracin del almacenaje (cont.)
Administracin del Sistema de Archivos

Los archivos, usualmente estn organizados en


directorios
El control de acceso en la mayora de los sistemas
determina quien puede acceder a que

Las actividades del SO incluyen:


Creacin y destruccin de archivos y directorios.
Soporte

de primitivas para el manejo de archivos y


directorios.
Mapeo de archivos sobre el almacenaje secundario.
Respaldo sobre medios de almacenajes estables .

KMC-JRA 2014

Sistemas Operativos Introduccin

20

Introduccin
Administracin de Almacenaje Secundario
Los discos son usados para almacenar datos que no

entran en memoria principal o para datos que tienen que


ser guardados un largo perodo de tiempo.
Su administracin es de vital importancia.
La velocidad de operacin de la computadora dependen

del subsistema de discos y sus algoritmos.

Sistemas Operativos Introduccin

KMC-JRA 2014

Introduccin
Administracin de Almacenaje Secundario
Las actividades del SO:

Administracin del espacio libre

Alocacin del almacenaje

Planificacin del disco (no hoy en da .)

Algunos tipos de almacenajes no necesitan ser rpidos:

Almacenaje
magnticas

Pero an as deben ser administrados.

Varian entre WORM (write-once, read-many-times) y RW


(read-write)

KMC-JRA 2014

terciario

como

el

ptico

las

cintas

Sistemas Operativos Introduccin

21

Introduccin
Subsistema de E/S
Uno

de los propsitos del SO es esconder las


peculiaridades de los dispositivos de hardware de los
usuarios.

Los subsistemas de E/S son responsables de:

Administracin de memoria de las E/S incluyendo el


buffering (almacena datos temporariamente mientras
estn siendo transferidos), caching (almacena partes
de datos en almacenamiento rpido por rendimiento),
spooling (el solapado de la salida de un job con la
entrada a otros)

Interfaz general de drivers de dispositivos.

Drivers especficos para dispositivos de hardware


Sistemas Operativos Introduccin

KMC-JRA 2014

Introduccin
Proteccin y Seguridad
mecanismo para controlar el
acceso de procesos o usuarios a recursos
definido por el SO
Seguridad defensa del sistema contra ataques
internos y externos
Proteccin

KMC-JRA 2014

Amplio rango, incluyendo DoS, worms, virus, robo de


identidad, robo de servicios

Sistemas Operativos Introduccin

22

Introduccin
Ambientes de Computacin
Computadora Tradicional

Borrosa en el tiempo

Ambiente de oficina

Redes hogareas

Computacin Distribuida

Cliente-Servidor

Computacin Peer-to-Peer

Computacin basada en la web

KMC-JRA 2014

Sistemas Operativos Introduccin

Introduccin
Se recomienda:
Repasar los conceptos sobre:
Interrupciones y dma,
entradas/salidas
memoria
VISTOS en Organizacin de Computadoras y en la
materia sobre arquitectura correspondiente a la
carreras de Ingeniera en Computacin y Licenciatura
en Ciencias de la Computacin.
Estos temas pueden ser tomados en los exmenes
parciales y finales y se consideran conocidos y
estudiados por los alumnos que cursan esta materia
KMC-JRA 2014

Sistemas Operativos Introduccin

23

Fin del Mdulo 1

24

También podría gustarte