Vous êtes sur la page 1sur 72

Captulo 1 Introduccin a los sistemas operativos

1.1 Introduccin. Ejecucin de un comando.


a) Al escribir cada carcter el teclado transmite su cdigo al ordenador (almacenanndolos en el buffer), emitiendo una interrupcin que activa el programa Manejador de terminal, que utiliza el cdigo de cada carcter para representarlo en la pantalla. b) Cuando se recibe el cdigo de la tecla [return], se activa el interprete de comandos que examina los caracteres almacenados en el buffer del teclado. c) El Sistema de ficheros busca a travs del manejador de disco un fichero ejecutable cuyo nombre coincide con el de la orden tecleada, cargndolo en la memoria principal. d) Se ejecuta el programa, realizndose las operaciones correspondientes. e) Para mostrar en la pantalla la informacin generada por el programa, el manejador de terminal recibe los cdigos de los caracteres.

1.2 Concepto de Sistema operativo


Funciona de la misma manera que el software normal de un computador. Es un programa ejecutado por el procesador que proposciona una mquina virtual. El sistema operativo abandona el control del procesador para ejecutar otros programas, supervisando su ejecucin.
Programa

que controla la ejecucin de los programas de aplicacin. Programa que facilita el uso del Soporte Fsico (recurso) Objetivos desde el punto de vista de usuario: Comodidad Fiabilidad Objetivos desde el punto de vista del sistema: Eficiencia Capacidad de evolucin

Eficiencia

The OS coordinates the sharing and use of all the components in the computer

Abstraccin : Comodidad fiabilidad

print cut save send

open() malloc() fork()

read-disk

Application Software System Software Hardware (a) End User View

Application Software System Software Hardware (b) Application Programmer View

Application Software System Software Hardware (c) OS Programmer View

Herramientas del Programador de aplicaciones

Biblioteca del sistema Bibliotecas de E/S Biblioteca matemtica Bibliotecas grficas Shell Sistema de ventanas

Aplication Program Interface (API)

Application Programmer

Software API
Command Line Interpreter Compiler Loader Libraries Libraries Libraries Window System

Database Management System

OS

r a w f o m e t s y S

Hardware

Abstraccin de recursos

El Sistema Operativo oculta los detalles de de como opera la mquina. Abstraccin del funcionamiento de la mquina. Abstraccin del funcionamiento de los componentes hardware del sistema Recurso (impresora, disco, memoria...)

Abstraccin de la unidad de disco (disquetes, discos USB, pen_drives)


Application Programmer OS Programmer
int fprintf() { ... write() }

load(); seek(); out();

void write() { load(); seek() out() }

(a) Direct Control

(b) write() abstraction

(c) fprintf() abstraction

1.3 Evolucin histrica

1.3.1 Primeros sistemas

Proceso en serie Trabajo (JOB) programa no interactivo Monitores


JCL

(Lenguaje de Control de Trabajos) Proteccin de memoria Temporizadores HW


Monoprogramacin Agrupacin de trabajos similares en lotes (Batch) Multiprogramacin.

Job 19

Job 3

Input Spooler

Output Spooler

Input Spool

Output Spool

Lenguaje de control de trabajos (JCL) Shell (UNIX)


cc -g -c menu.c cc -g -o driver driver.c menu.o driver < test_data > test_out lpr -PthePrinter test_out tar cvf driver_test.tar menu.c driver.c test_data test_out uuencode driver_test.tar driver_test.tar >driver_test.encode
MS_DOS >dir c:\ > directorio >type directorio >sort directorio >del directorio

1.3.1 MULTIPROGRAMACIN Mquinas virtuales proporcionadas por el SO


Abstract Machines Program Idea Program Result Physical Machine Result

Idea

Idea

Program

Result

Multiprogramming
Abstract Machine Pi Abstract Machine Pj Abstract Machine Pk

OS Resource Sharing

P i Memory P k Memory

Time-multiplexed Physical Processor

P j Memory

Space-multiplexed Physical Memory

Multiprogramming Performance
Pis Total Execution Time, ti
0 ti

Time

(a) Pis Use of Machine Resources


P1 P2 Pi PN


Time

(a) All Processes Use of Machine Resources


Using the processor I/O operation

Vacuum Inside

Wash

Dry

(a) The Sequential Car Wash

Vacuum Inside Wash (b) The Parallel Car Wash Dry

Efectos de la multiprogramacin
Monoprogramacin Uso del procesador Uso de la memoria Uso del disco Uso de la impresora Tiempo transcurrido Tasa de productividad 22% 30% 33% 33% 30 min. 6 trabajos/hora Multiprogramacin 43% 67% 67% 67% 15 min. 12 trabajos/hora 10 min.

Tiempo medio de respuesta 18 min.

Aportaciones de la multiprogramacin

Procesos. Sistemas multi-proceso con descarga (no multi_programados) Planificacin de los procesos para determinar el orden de ejecucin. Gestin de memoria (asignacin-liberacin). Archivos.

1.3.2 Sistemas de tiempo compartido (TSS) Time Sharing Systems.


Utiliza la multiprogramacin para gestionar varias tareas interactivas. Mltiples usuarios acceden simultneamente al sistema por medio de terminales. El tiempo del procesador se comparte entre los diversos usuarios. Tiempo de respuesta :Tiempo que el sistema invierte en iniciar la respuesta a un usuario que interacciona con l desde un terminal.

Timesharing Systems
Abstract Machines Result
Command

Physical Machine

Result
Command

Result

Multiprogramacin por lotes frente a tiempo compartido


Multiprogramacin por lotes Tiempo compartido

Objetivo principal

Maximizar la utilizacin del procesador

Minimizar tiempo de respuesta

Origen de las instrucciones al sistema operativo

Instrucciones de un lenguaje de control de trabajos incluidas en el trabajo

rdenes dadas en el terminal

Logros principales de Sistemas de tiempo compartido


A)Los procesos (JOB interactivos). B)La gestin de memoria. C)El sistema de ficheros. D)La seguridad y la proteccin de la informacin. E)La planificacin y la gestin de recursos. F)La estructura del sistema.

A) Procesos

Proceso = programa en ejecucin. Similar al concepto de JOB (interactivo). Los procesos comparten los recursos de la mquina.

Dificultades introducidas por los procesos en el diseo de sistemas de tiempo compartido


Sincronizacin:

Asegura que un proceso que espera por un dispositivo de E/S reciba la seal o primitiva de sincronizacin que necesita para continuar su ejecucin. Fallos de exclusin mutua (dos procesos utilizan simultneamente un mismo recurso). El programa debe depender de su cdigo y sus datos, pero no del contenido de zonas de la memoria asignadas a otros procesos.

Funcionamiento no determinista:

Interbloqueos (los procesos esperan unos por otros).

B) Gestin de memoria

Aislamiento del proceso. Asignacin y gestin automticas. Soporte para la programacin modular. Proteccin y control de acceso. Almacenamiento a largo plazo.

Memoria virtual

Permite a los programas direccionar una memoria mayor que la memoria fsica. Permite que los procesos estn formados por varios bloques de tamao fijo, denominados pginas. La direccin virtual est formada por un nmero de pgina y un desplazamiento dentro de la pgina. Cada pgina puede estar ubicada en un lugar cualquiera de la memoria principal o en disco.

C) Sistema de archivos

La informacin de cada usuario se almacena es unos objetos denominados archivos. Debe existir la posibilidad de organizar los archivos (Directorios o carpetas). Son una de las creaciones ms visibles del S.O.

D) Seguridad y proteccin de la informacin


Control de acceso:

Regula el acceso del usuario al sistema. Regula el flujo de datos dentro del sistema y su distribucin a los usuarios. Demuestra que el acceso y el control del flujo se llevan a cabo de acuerdo con las especificaciones.

Control del flujo de informacin:

Certificacin:

E) Planificacin y gestin de recursos

Equidad:

Otorga un acceso igual y equitativo a todos los procesos. Discrimina entre las diferentes clases de trabajos. Maximiza la productividad, minimiza el tiempo de respuesta y aloja a tantos usuarios como sea posible.

Sensibilidades diferenciales:

Eficiencia:

1.3.3 Caractersticas de los sistemas operativos modernos

Multihilos:

El proceso se divide en hilos que pueden ejecutarse concurrentemente. Unidad de trabajo que se puede expedir para su ejecucin Datos privados alojados en una pila especfica. Se ejecuta secuencialmente y es interrumpible. Un conjunto de uno o ms hilos que comparten recursos.

Hilo:

Proceso:

Caractersticas de los sistemas operativos modernos

Multiproceso simtrico (SMP):


Existencia de mltiples procesadores estrechamente acoplados . Estos procesadores comparten la misma memoria principal y dispositivos de E/S. Todos los procesadores pueden ejecutar las mismas funciones. Mejores prestaciones. Resistencia a fallos. Complicacin de la sincronizacin. Planificacin de procesos multiprocesador
(pag notas)

Caractersticas de los sistemas operativos modernos

Sistema operativo distribuido:


Sistemas multiprocesadores dbilmente acoplados Proporciona la ilusin de un nico espacio de memoria principal y un nico espacio de memoria secundaria en sistemas dispersos. Utilizado para el sistema de archivos distribuido (p.ej. NFS). Los S.O. Distribuidos han evolucionado a capas de software que se ejecutan sobre sistemas ya existentes (middleware p.ej. CORBA). (notas)

Caractersticas de los sistemas operativos modernos

Sistema operativo de tiempo real:


Soporta unas limitaciones temporales para la ejecucin de los procesos. Utilizado para controlar instalaciones industriales. En los S.O. de tiempo real es ms importante que los procesos se ejecuten antes de sus tiempos lmite, que las consideraciones de rendimiento del sistema.

Caractersticas de los sistemas operativos modernos

Diseo orientado a objetos:


Aade extensiones modulares a un pequeo ncleo. Permite a los programadores personalizar un sistema operativo sin romper la integridad del sistema.

Caractersticas de los sistemas operativos modernos

Multi-usuario

El sistema operativo ofrece servicio a varios usuarios => multi-programacin. Evitan que el usuario tenga que aprender lenguajes de control, mejoran la productividad del usuario. Sistemas multi-programados mono-usuario en los que mediante un gestor de ventanas el usuario tiene activas varias tareas. Las interfaces grficas tienden a salir del S.O. ejecutndose en modo usuario y siendo intercambiables.

Amigables (amistosos)

Tendencias futuras

Plataformas distribuidas. Construccin de sistemas heterogneos GRIDS (computadores diferentes con distintos S.O. conectados mediante redes). Midleware

Computacin mvil (SCC) Redes inalmbricas. Sistemas multimedia (tiempo real no crtico). Sistemas de bolsillo. Sistemas operativos on chip (SO integrado). Sistemas empotrados (embedded). (notas)

iPhone: 500.000 unidades vendidas en un fin de semana

Informtica mvil

IPHONE
620MHz ARM176JZF chip Puede alcanzar una velocidad maxima de 700 MHz aunque esta funcionando a 620MHz de fabrica. Cuenta con tecnologia ARM para optimizar el consumo del 20-25%. ARM tambien tiene Java integrado y ademas tiene caracteristicas especiales para graficos 3D. Utiliza el OS X la version de este sistema que utilizaba iPhone en Junio 2007 ocupa aproximadamente 300 MB. Algunos Hackers estn instalando LINUX. Durante el primer trimestre de 2005 ms de 160 millones de celulares vendidos.

Sistemas empotrados

Evolucin Microprocesadores: Computadores

Evolucin Microcontroladores: Sistemas Empotrados

75 Millones Microprocesadores/ao

Pequeos Ordenadores
PDAs, STBs (Set Top Box o decodificadores de TV digital) Tienen SO,

No es de propsito general Limitados recursos hardware. Dispositivos de entrada especficos (IPhone)


Touch screen, no tienen keyboard Graffiti (reconocen escritura)

Aparecen nuevos tipos de OS

PalmOS, Pocket PC (WinCE), VxWorks,

Timesharing
Memory Mgmt PC & Wkstation Scheduling Batch Protection System software File System Human-Computer Memory Mgmt Interface Protection Scheduling Files Devices

Network OS
Client-Server Model Protocols

Real-Time
Scheduling

Small Computer

Modern OS

Network storage, Resource management

1.4 Funciones de los sistemas operativos.

El S.O. Ofrece servicios de computo a los procesos y usuarios:


Llamadas al sistema

Servicios elementales (API) Servicios elaborados (Interpretados por el interprete de mandatos, Shell)

Programas del sistema

Deteccin de errores

1.4.1 Clasificacin de los servicios

Programas de aplicacin

Utilidades

Sistema operativo

Hardware del computador

Pueden clasificarse segn el punto de vista

Clasificacin de los servicios que ofrece el sistema operativo


Servicios para el usuario

Ejecucin de programas. Acceso a los dispositivos de E/S a travs del S.O. Acceso controlado a los archivos. Comunicaciones entre procesos (local, red) Acceso al sistema (informacin).

Servicios que ofrece el sistema operativo Para el usuario

Deteccin y respuesta a errores:

Errores internos y externos del hardware.


Error de memoria. Fallo de dispositivos. Desbordamiento aritmtico. Acceso a una posicin prohibida de memoria.

Errores de software.

Incapacidad del sistema operativo para satisfacer la solicitud de una aplicacin.

Servicios que ofrece el sistema operativo Eficiencia

Contabilidad:

Recoger estadsticas. Supervisar el rendimiento del sistema. Utilizado para anticiparse a las mejoras futuras. Utilizado para los usuarios de cuotas.

Asignacin de recursos. Proteccin.

Servicion relacionados con la evolucin del sistema operativo


Actualizaciones del hardware y nuevos tipos de hardware. Introduccin de nuevos servicios. Correcciones.

1.4.2 Estructura de un S.O.

Sistemas monolticos

No tienen un estructura clara y bien definida, todas las funciones que ofrece el sistema se ejecutan en un modo privilegiado (modo del sistema operativo). Sistemas por capas

Sistemas estructurados.

Cada capa ofrece una interfaz bien definida a la capa superior, utilizando los servicios de la capa inferior. La mayor parte de los servicios en procesos de usuario.
Solamente una pequea parte de los servicios se realizan en el sistema operativo. Los procesos que ejecutan las restantes funciones se denominan servidores.

Modelo cliente servidor

1.4.2.1 Sistemas monolticos

El S.O. examina los parmetros de la llamada para determinar cual de ellas se desea realizar (2 en la figura). El S.O. analiza una tabla que contiene en la entrada k un apuntador al procedimiento que implementa la k-sima llamada al sistema. Esta operacin (3 en la figura), identifica el procedimiento de servicio, al cual se llama. Por ltimo, la llamada al sistema termina y el control vuelve al programa del usuario.

Sistemas monolticos

1.4.2.2 Sistemas por capas (THE Dijkstra)

Se puede contemplar el sistema como una serie de niveles (los niveles ms internos se ejecutan en modo del sistema). Cada nivel lleva a cabo un determinado subconjunto de funciones. Cada nivel se basa en el nivel inferior para llevar a cabo funciones ms primitivas. De este modo, se descompone un problema en un nmero de subproblemas ms manejables.

Ncleo

Parte del sistema operativo que se encuentra permanentemente en la memoria principal. Incluye las funciones utilizadas con ms frecuencia. Tambin denominado kernel. Interacciona directamente con el hardware.

Modelo cliente-servidor

Arquitectura microncleo:

Asigna solamente una pocas funciones esenciales al ncleo.


Espacios de direcciones. Comunicacin entre procesos (IPC). Planificacin bsica.

Servidores
P. Usuario

API

Procesos

Memoria

E/S

Archivos

Micro-ncleo Soporte fsico

Mquinas virtuales

Proporciona una una interfaz que es idntica al hardware simple A cada proceso se le presenta una copia virtual del computador con caractersticas adicionales como llamadas al sistema y sistemas de archivos. Ventajas

Proteccin (cada VM est aislada de las dems,no se comparten recursos directamente). Mquina virtual para los programadores del sistema. Independientes del hardware (Java V.M.)

1.5 Funcionamiento interno

El sistema operativo es un programa guiado por interrupciones, puede activarse por:


Llamadas al sistema emitidas por los programas (traps). Interrupciones hardware producidas por perifricos. Condiciones de error (excepciones).

Elementos principales de un sistema operativo


Sistema operativo
Peticin de servicio de un proceso Gestor de peticiones de servicio (cdigo)

Interrupcin de un proceso Interrupci n de E/S

Gestor de interrupciones (cdigo)

Cola a Cola a Cola de largo corto E/S plazo plazo Planificador a corto plazo (cdigo)

Pasar el control al proceso

Figura Elementos clave para la multiprogramacin de un sistema operativo.

Activacin mediante llamadas

El S.O. es un servidor que est a la espera de que se le encargue trabajo con las llamadas al sistema.

Un proceso en ejecucin solicita un servicio al S.O. Se produce un TRAP (interrupcin software) que activa el S.O. El sistema operativo pasa a ejecutarse salvando el estado del proceso solicitante. El S.O. Realiza la tarea solicitada. El planificador del S.O. selecciona el proceso a ejecutar. El activador (dispatcher) cede el control de la UCP al proceso seleccionado.

Llamadas al sistema

La forma en que se realiza una llamada al sistema consiste en colocar una serie de parmetros en un lugar especfico (como los registros del procesador), para despus ejecutar una instruccin del lenguaje mquina del procesador denominada trap (en castellano, trampa), syscall, int. Varios lenguajes C, C++ y Perl tienen una (o varias) rutinas de biblioteca por cada llamada al sistema. API (Application Program Interface)

Activacin por interrupciones de E/S.


Constituyen la mayor parte de los eventos que maneja un S.O.) - Peticin de E/S producida por una llamada al sistema. Pet. E/S INT (fin E/S)

- El dispositivo de E/S interrumpir cuando finalice la peticin de E/S, para sincronizarse con el proceso.

Posibilidades de sincronizacin
A) Esperamos a que la E/S termine (interrupcin E/S) para devolver el control al programa de usuario. E/S activa : bucle de espera hasta interrupcin E/S. E/S pasiva: instruccin que mantiene inactivo el proceso hasta que se produce la correspondiente interrupcin de E/S. Sncrona B) Devolvemos el control al programa de usuario al que le notificaremos cuando se produce el fin de la E/S (interrupcin). Asncrona

Activacin por deteccin de errores

Cuando sucede un error de programa (excepcin), el S.O. toma el control salvando el estado del proceso interrumpido. La rutina del S.O. debe mostrar un mensaje de error y transferir el control a la rutina de tratamiento correspondiente al error producido.

Si el error es subsanable el proceso podr continuar. Si el error no puede subsanarse el proceso finaliza anormalmente.

El planificador del S.O. selecciona un proceso a ejecutar. El activador cede el control de la UCP al proceso seleccionado. (nota)

1.6 Casos prcticos


Windows 2000 Unix

Windows 2000

Aprovecha las capacidades de los microprocesadores de 32 bits. Ofrece una multitarea en un entorno monousuario. Basado en el proceso cliente/servidor.

Arquitectura de Windows 2000


Estructura modular que proporciona flexibilidad. Se ejecuta sobre distintas plataformas hardware HAL(Capa Abstraccin del Hardware). Soporta aplicaciones escritas para distintos sistemas operativos.

Organizacin del sistema operativo (SO WINDOWS)

Modificacin de la arquitectura microncleo:


No tiene una arquitectura microncleo pura. La mayora de las funciones externas al microncleo se ejecutan en modo ncleo.

Cualquier mdulo puede ser eliminado, actualizado o reemplazado sin volver a escribir el sistema completo.

Niveles

Capa de abstraccin del hardware (HAL):

Asla el sistema operativo de las diferencias de hardware especficas de cada plataforma. Componentes ms usados y fundamentales del sistema operativo. Traducen las llamadas a funciones de E/S del usuario a peticiones en los dispositivos hardware de E/S especficos.

Microncleo:

Controladores de dispositivo:

Ejecutor de W2K (modo ncleo)


Administrador de E/S. Administrador de objetos. Monitor de seguridad. Administrador de procesos/hilos. Servicio de llamadas a procedimientos locales (LPC). Administrador de memoria virtual. Administrador de cache. Mdulos para grficos/ventanas.

Procesos del sistema


Controlador de servicio WinLogon Gestor de sesin

Servicios
Replicador Alerta RPC Registro de sucesos

Aplicaciones

Subsistemas de entorno

Aplicacin de usuario Subsistema de DLL

Modo usuario Modo ncleo Sistema de hilos

NTDLL.DLL

API del ejecutor Ejecutor de Windows 2000 Administrador de E/S Sistemas de archivo Utilidad LPC
Administrador de cache Administrador de procesos/ hilos Monitor de referencia de seguridad Administrador de memoria virtual Administrador de ventanas

Administrador de objetos/ejecutor RTL Microncleo Capa de abstraccin hardware (HAL)

Controladores de dispositivo

Interfaces hardware (buses, E/S, interrupciones, temporizadores, relojes, DMA, control de cache, etc.)

Figura 2.13. Arquitectura de Windows 2000.

The Microsoft OS Family


Win32 API Win32 API Subset Win32 API SubSet Windows CE (Pocket PC) Windows 95/98/Me

Windows NT/2000/XP

UNIX

El hardware estn rodeado por el software del sistema operativo. El sistema operativo se llama kernel. Est equipado con varios servicios e interfaces intercambiables:

Intrprete de rdenes (shell). Compilador de C.

UNIX

Bibliotecas y rdenes UNIX


Interfaz de llamadas al sistema

Ncleo

Hardware

Aplicaciones escritas por el usuario

Arquitectura general de UNIX.

Vous aimerez peut-être aussi