Title: CAPTULO I: Introduccin a los Sistemas Operativos
1CAPÍTULO I Introducción a los Sistemas Operativos
Realizado por Ing. Samanta CuevaDocentes
Ing. Carlos Córdova Ing. Alexander
López Ing. Julia Pineda
Abril-Agosto 2008
2CAPÍTULO I Introducción a los Sistemas Operativos
1.1 Objetivos y funciones de los SO
1.2 Evolución de los SO 1.3 Principales
logros de los SO
3Introducción a los Sistemas Operativos
- Antes de revisar Qué son los Sistemas
Operativos? partamos de Cuáles son los
elementos de un sistema informático?
41. SISTEMA OPERATIVO
- Es un programa que actúa como intermediario
entre el usuario y el hardware de una
computadora. - Es un programa que controla la ejecución de
programas de aplicación y actúa como una interfaz
entre el usuario y el hardware de una
computadora. - Es un medio de interacción entre el usuario y
los recursos de la máquina, permitiéndonos
abstraernos de su administración. - Es similar a un gobierno, ya que proporciona los
medios para el uso apropiado de los recursos. (
proporciona un ambiente dentro del cual otros
programas puedan realizar un trabajo útil)?
51. SISTEMA OPERATIVO
- Al SO se lo puede ver como
- Asignador de recursos El sistema computacional
tiene muchos recursos de Hardware y Software por
lo cual SO actúa como gestor de recursos y los
asigna a programas y usuarios específicos según
los necesiten para sus tareas de manera justa y
eficiente. - Programa de control Controla la ejecución de
los programas de los usuarios a fin de evitar
errores y el uso incorrecto del computador.
61.1 OBJETIVOS DEL SO
1. LA COMODIDAD DEL USUARIO (interacción del
usuario con los recursos en un alto grado de
abstracción). 2.USO EFICIENTE DE LA COMPUTADORA
(Administración eficiente de los recursos)
7SERVICIOS DEL SO
- Controlar la ejecución de procesos permitiendo
su creación, terminación o suspensión y
comunicación - Planificar el uso de la CPU a través del
scheduling de procesos. - Asignar memoria principal para el proceso en
ejecución - Asignar memoria secundaria para uso eficiente y
recuperación de datos del usuario - Permitir el acceso controlado desde los procesos
a los dispositivos. - Compartir el hardware entre usuarios.
- Permitir a los usuarios compartir datos entre
ellos. - Facilitar la entrada /salida
81.2 EVOLUCIÓN SISTEMA OPERATIVO
Los sistemas operativos y la arquitectura de los
computadores han influido mucho uno sobre otro,
tomando en cuenta que los SO se crearon para
facilitar el uso del hardware. Hay que recalcar
que los problemas de los SO dieron pie a la
introducción de nuevas características de
hardware.
9Generación 0 (hasta 1945)?
- Ábacos
- Calculadoras mecánicas.
- Sistemas basados en relés.
Primera Computadora Digital (mecánica)?. Diseñada
por Charles Babbage y Ada Lovelace. Fue usada
para calcular tablas numéricas,
funciones algebraicas y almacenaba números.
Difference Engine (1822)?
Edopena
9
Sistemas Operativos
Präsentation
10Primera generación (1940-1955)?
- Se utilizan tubos al vacío
- Eran enormes (20.000 tubos) y lentas (un ciclo
1 seg.)? - Un solo grupo diseñaba, construía, programaba,
operaba y mantenía cada máquina. - Toda la programación se hacía en lenguaje máquina
- No existían los sistemas operativos.
- En 1950 se introducen las tarjetas perforadas.
Fue usada en la Segunda Guerra Mundial para
decifrar los mensajes de los alemanes.
Colossus (1945)?
11Segunda generación (1955-1965)?
- Se introducen los transistores.
- Existe distinción entre diseñadores,
constructores, programadores, operadores y
personal de mantenimiento. - Mainframes en salas acondicionadas.
- Se escribían los programas en papel, luego se
perforaban las tarjetas, cuarto de entrada y
esperar la salida. - Los operadores toman las tarjetas del programa y
colocan también los del compilador. - Se crea el proceso por lotes que agrupa trabajos.
Tarjeta sin perforar
JOHNNIAC (1954)?
12Tercera generación (1965-1980)?
- Se introducen los circuitos integrados, lo cual
es una gran ventaja en el precio y desempeño del
computador. - Se introduce el sistema IBM 360 altamente
compatible. - Se introduce el sistema operativo OS/360
(enorme y complejo) que tenía que ser eficiente
en todos los equipos. - El sistema operativo tenía muchísimos errores
(dinosaurios). - Se introduce la multiprogramación
- Se introducen los discos duros y con ello el
spooling. - Se introduce el tiempo compartido entre usuarios.
IBM 360 (1964)?
13Apple II (1978)?
Apple I (1976)?
14Cuarta generación (desde 1980)?
- Usaban LSI (large scale integration).
- Intel 8080 (8 bits) -gt IBM PC (1980) con DOS.
- Intel 80286 (1983), 80386 (1985) y 80486 (1989).
- Macintosh creó la GUI (graphical User
Interface)? - Microsoft adopta GUI y desarrolla Windows (sobre
DOS)? - Microsoft saca Windows 95 como sistema
operativo, luego Windows 98 (basado en 16 bits),
Windows NT (32 bits). - Windows NT 5.0 se transformó en Windows 2000
- Windows 98 nueva se transformó Windows Me.
- Windows XP
- UNIX se mantiene para computadores potentes
(servidores)? - En Pentium Linux es una alternativa a Windows
- Unix saca las X basado en GUI
- Se introducen sistemas operativos en red y
sistemas operativos distribuidos
IBM PC (1981)?
151.2 EVOLUCIÓN
- Para profundizar el tema de la evolución de los
SO revisemos los siguientes tipos de sistemas - Sistemas por lotes sencillos.
- Los primeros equipos grandes y caros que se
controlaban desde una consola. - Dispositivos de entrada comunes eran lectores
de tarjetas y unidades de cinta. - Los usuarios no interactuaban directamente con
el computador.(Sólo el operador). - La función del SO era transferir el control
automáticamente de un trabajo al siguiente. - El SO estaba siempre residente en memoria.
- Para agilizar el procesamiento se agrupaban los
trabajos comunes en lotes y se introducían al
computador como un grupo.
16- Sistemas por lotes sencillos.
- El SO por lotes sencillo lee un flujo de
trabajos individuales, cada uno con sus propias
tarjetas de control que predefinen lo que el
trabajo hace y su trabajo se imprime en líneas
(después de algunos minutos e inclusive horas).
Luego aparece el spooling el cual tiene efecto
benéfico directo sobre el desempeño del sistema
(mantiene la CPU como los dispositivos de E/S
trabajando con un rendimiento mucho mayor.
17Sistema por lotes Multiprogramados.
- El spooling da origen a una importante estructura
de datos la reserva de trabajos. Lo cual implica
la planificación de trabajos. - Lo más importante de la planificación es la
capacidad de multiprogramar (aprovechando
eficientemente la CPU). - La técnica de permitir varios programas en
memoria se la llama multiprogramación. - La multiprogramación debe permitir tomar
decisiones por los usuarios, por lo cual son
relativamente complejos.
18- Sistemas de Tiempo compartido (Multitarea)?
- Time sharing es una consecuencia lógica de la
multiprogramación. Se ejecutan varias tareas
mientras la CPU se conmuta entre ellos, pero la
conmutación es tan frecuente que los usuarios
pueden interactuar con cada programa durante su
ejecución. - El usuario interactúa directamente con el equipo
puede ver los resultados inmediatamente. - Se crearon para brindar el uso interactivo de un
sistema de computador a un costo razonable.
Utiliza planificación de la CPU y
multiprogramación para ofrecer a cada usuario una
pequeña porción del tiempo de un computador. - Muchos usuarios pueden compartir el computador
al mismo tiempo.
19- Sistemas monousuario
- Las PCs (personal computers) son computadoras
dedicadas a un solo usuario, que aparecieron en
los 70s. - Eran microcomputadoras más baratas y más chicas
que un mainframe. - El abaratamiento no proviene sólo del hardware
el sistema operativo es menos complejo pues es un
ambiente de ejecución mucho más simple. - No son ni multiusuario ni multitarea.
20- Sistemas paralelos
- Hoy la tendencia es hacia los sistemas
multiprocesador. - Es decir, aquellos que cuentan con más de un
procesador. - Permiten mejorar el throughput (productividad).
No obstante debemos considerar un overhead
(carga) adicional por sincronizar estos
procesadores y los recursos compartidos a los que
acceden.
21- Sistemas distribuidos
- Los sistemas distribuidos comparte la carga
entre varios procesadores. - Las razones para su uso son
- Compartir recursos.
- Aceleración de los cálculos
- Confiabilidad
- Comunicación
22- Sistemas de tiempo real
- Cuando los requisitos de tiempo de la operación
de un procesador o del flujo son estrictos, por
lo que por lo general se utilizan como
dispositivos de control en las aplicaciones
dedicadas. - Hay dos tipos
- Sistema de tiempo real duro Garantiza que las
tareas críticas se terminarán a tiempo. Por lo
que no se combinan con los sistemas de tiempo
compartido. - Sistema de tiempo real blando El que una tarea
de tiempo real crítica goza de prioridad respecto
a otras tareas y conserva esa prioridad hasta que
se lleva a cabo.
231.3 COMPONENTES
- Como se ha visto el SO es el encargado de asignar
los recursos necesarios para la ejecución de
programas lo cual requiere de un conjunto de
componentes que le permiten cumplir su función.
241.3 COMPONENTES
De acuerdo al papel que desempeñan los
componentes del SO son
- Gestión de procesos
- Gestión de Memoria Principal
- Gestión de Archivos
- Gestión de los sistemas de Entrada/Salida
- Gestión de Almacenamiento Secundario
- Trabajo con redes
- Sistema de Protección
- Sistema de Interpretación de Órdenes
25GESTIÓN DE PROCESOS
Se puede pensar en un proceso como una parte o
todo un programa en ejecución. Para la ejecución
requiere recursos como CPU, memoria, archivos y
dispositivos de E/S, asignados al crearse el
proceso o durante su ejecución. Las actividades
del SO relacionadas con la gestión de procesos
son
- Crear y eliminar procesos tanto de usuarios como
del sistema . - Suspender y reanudar procesos
- Proveer mecanismos para la sincronización de
procesos - Proveer mecanismos para la comunicación de
procesos - Manejo de bloques mutuos (deadlocks).
26GESTIÓN DE MEMORIA PRINCIPAL
La memoria principal constituye uno de los
recursos principales para el funcionamiento del
sistema. Es además, un recurso escaso por el que
compiten distintos procesos. Las actividades con
la gestión de memoria son
- Saber que partes de la memoria se están
utilizando actualmente. - Decidir cuáles procesos se cargarán en la memoria
cuando se disponga de espacio. - Asignar y liberar espacios de memoria según se
necesite - Utilizar el almacenamiento secundario como una
extensión de la memoria principal.
27GESTIÓN DE ARCHIVOS
Un archivo es un conjunto de datos identificados
por un nombre, suelen almacenarse en dispositivos
de E/S. El SO establece una correspondencia entre
el archivo y los medio físicos. Las funciones
son
- Crear y eliminar archivos
- Crear y eliminar directorios
- Proveer las primitivas para manipulación de
archivos y directorios - Establecer la correspondencia de los archivos con
el almacenamiento secundario. - Resguardar los archivos en medios de
almacenamiento estables (no volátiles).
28GESTIÓN DEL SISTEMA DE E/S
El SO tiene como objetivo ocultar las
peculiaridades del sistema de los dispositivos
hardware específicos de modo que el usuario no
las perciba, puesto que la entrada/salida es un
conjunto de dispositivos complicados de
programar. Las funciones son
- 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
optima las peticiones, etc.
29GESTIÓN DE ALMACENAMIENTO SECUNDARIO
- El almacenamiento secundario surge con la
finalidad de respaldar la memoria principal. - El SO se encarga de las siguientes actividades
relacionadas con la gestión de discos. - Administración del espacio libre
- Asignación del almacenamiento
- Planificación del disco.
30TRABAJO CON REDES
- Propios de los SO distribuidos, en los que una
colección de procesadores que no comparten
memoria, dispositivos periféricos ni reloj. Los
diferentes procesadores del sistema se conectan
mediante una red de comunicaciones que se puede
configurar de distintas maneras. El objetivo del
SO con respecto al trabajo con red es - 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 (ej NFS) llamada remota al procedimiento
(RPC) etc.
31SISTEMAS DE PROTECCIÓN
- A fin de garantizar que únicamente los procesos
que han obtenido la autorización debida del SO
pueden operar con los recursos del computador. - En éste aspecto los objetivos del SO son
- 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.
32SISTEMAS DE INTERPRETACIÓN DE ORDENES
- Interfaz entre el usuario y el SO permite al
usuario dialogar con el SO, a fin de facilitar
tareas como - 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
33SERVICIOS
- Interfaz entre el usuario y el SO, permite al
usuario dialogar con el SO, a fin de facilitar
tareas como - Ejecución de Programas
- Operaciones de E/S
- Manipulación de archivos y directorios
- Comunicación entre procesos
- Comunicación con equipos remotos
- Administración de la protección y seguridad
- Leer el estado del sistema (hora, nº de procesos,
etc. )?
34SERVICIOS ADICIONALES
- Aparte de los servicios básicos, el SO puede
ofrecer algunas funciones para optimizar el uso
del sistema - Compartición de recursos
- Contabilidad (accounting).- conocer el consumo de
recursos.
35INTERFACES CON LOS SERVICIOS DEL SO
- Para el programador
- Llamadas al sistema en lenguaje máquina o en alto
nivel(ej. Lenguaje C)? - Para el usuario
- Intérprete de órdenes
- Programas del sistema.
36LLAMADAS AL SISTEMA
- El SO ofrece una gama de servicios a los
programas. Los programas acceden a estos
servicios mediante llamadas al sistema. - Son la interfaz entre el programador en ejecución
y el SO. - Es la única forma en la que un programa puede
solicitar operaciones al SO. - Ejemplo
- Windows
- Handle Open File(minifichero, ofstruct,
OF_READ)? - UNIX
- Fd open(mifichero, O_RDONLY)
- MS-DOS
- Mov ah, servicio
- Mov al, modo
37IMPLEMENTACIÓN DE LAS LLAMADAS AL SISTEMA
- Cómo se implementa la llamada?
- Habitualmente, mediante una instrucción especial
de la máquina (syscall, int, trap)? - La instrucción cambia automáticamente a modo
privilegiado - Si programamos en un lenguaje de alto nivel,
escribimos la llamada al sistema como una
subrutina, y el compilador la sustituye por la
instrucción de máquina correspondiente. - Muchas llamadas necesitan parámetros, cómo los
pasamos al SO? - Usando registros de la máquina
- En una tabla en memoria principal
- Poniéndolos en la pila (stack)?
38LLAMADAS AL SISTEMA DE UNIX
- Procesos crear proceso, enviar señal a un
proceso, tratar señales, etc. - Memoria pedir más memoria, liberar memoria
- Archivos abrir, crear, cerrar, leer, escribir,
borrar, crear, directorio, crear enlace, bloquear
fichero - Redes abrir conexión (socket), cerrar conexión
- Protección cambiar permisos, cambiar propietario.
39PROGRAMAS DEL SISTEMA
- Las llamadas al sistema nos proporcionan una
interfaz para el programador un usuario final
interactúa con el sistema operativo mediante
programas que han sido previamente compilados. Sí
el entorno del SO. Suele proveer programas del
sistema para - Manipular ficheros (ls, cp, dir, etc.)?
- Editar documentos (emacs, edit, etc.)?
- Proporcionar entornos de trabajo (escritorio
Windows)? - Desarrollar programas( compiladores,
enlazadores)? - Comunicarnos con otros equipos (telnet, ftp,
etc.).
40EL NÚCLEO
- Software del Sistema Operativo que reside
permanentemente en memoria, atiende las llamadas
al sistema. - El núcleo se distingue de los programas del
sistema, porque estos utilizan los servicios del
núcleo.
41ARQUITECTURA DEL SISTEMA OPERATIVO
- La arquitectura de un Sistema Operativo se
refiere a la organización interna que esté tiene,
las mismas que pueden ser - Bloque único y sólido de servicios (Sistema
Monolítico)? - Capas de Software delimitadas y jerarquizadas
(Sistemas por capas)? - Modelo de Máquinas Virtuales
- Modelo Cliente-Servidor
42SISTEMAS MONOLÍTICOS
- Arquitectura Simple, núcleo compacto que tiene
todas las rutinas del SO, las mismas están
enlazadas entre sí, de tal manera que cada una
pueda llamar a otra. Carece de técnicas de
protección y manejo de privilegios.
43SISTEMAS POR CAPAS
- Arquitectura Modular, define capas o niveles de
abstracción, cada uno de los cuáles aprovecha el
servicio de la capa inferior. - Es mucho más escalable que el anterior.
44NIVELES
45SISTEMAS POR CAPAS
- Cada capa del SO consistiría en la implementación
de un objeto abstracto. - Datos
- Operaciones
- Es mucho más estable que el anterior.
46SISTEMA POR CAPAS
- VENTAJAS
- Modularidad
- Depuración y Verificación
- Una vez depurada la primera capa se puede dar
por sentado su funcionamiento correcto mientras
se trabaja con la segunda capa. - Mantenimiento
- Es posible por ejemplo cambiar las rutinas de
bajo nivel siempre que la interfaz externa de la
rutina no cambie y la rutina realice la misma
tarea anunciada.
47SISTEMA POR CAPAS
- DESVENTAJAS
- Problema definición apropiada de las distintas
capas. - Tienden a ser menos eficientes.
- Llamadas entre capaz ? paso de parametros.
- En definitiva cada capa implica un gasto extra.
- Tendencia Equilibrio, menos capas con más
funcionalidad - Ventajas de la modularidad.
- Evitan los problemas de definición e interacción
entre capas.
48MÁQUINA VIRTUAL
- Mediante software, se proporciona a los programas
la emulación de un Hardware que no existe. - El software emulador convierte las peticiones
hechas a la máquina virtual en operaciones sobre
la máquina real. - Se pueden ejecutar varias máquinas virtuales al
mismo tiempo (ej. Mediante tiempo compartido). - Los recursos reales se reparten entre las
distintas máquinas virtuales.
49EJEMPLOS
- IBM VM ofrecería a cada usuario su propia
máquina virtual mono tarea las m.v se
planificaban con tiempo compartido. - Java los programas compilados en Java corren
sobre una máquina virtual (JVM)- - VM Ware en un PC es capaz de ejecutar al mismo
tiempo varias sesiones Windows, Linux, OS/2, etc. - Nachos S.O. que se ejecuta en una máquina
virtual, MIPS, cuyo emulador corre sobre UNIX.
50VENTAJAS Y DESVENTAJA
- Protección cada máquina virtual esta aislada de
las otras y no puede interferir. - Investigación y desarrollo se puede desarrollar
y ejecutar para u hardware que no tenemos. - Independencia del Hardware (ej. java).
- Pervivencia de sistemas antiguos (ej. Emuladores
MS-DOS). - La implementación de la m.v. puede ser compleja y
lenta.