02.- unidad 1 sistemas operativos

60
Unidad 1 Introducción a los Sistemas Operativos

Upload: xander-xero

Post on 23-Dec-2015

229 views

Category:

Documents


4 download

DESCRIPTION

Información de la unidad 1

TRANSCRIPT

Page 1: 02.- Unidad 1 Sistemas Operativos

Unidad 1

Introducción a los Sistemas Operativos

Page 2: 02.- Unidad 1 Sistemas Operativos

Encuadre de Unidad

PresentaciónObjetivos

ExpectativasCriterios de Evaluación

Page 3: 02.- Unidad 1 Sistemas Operativos

Un sistema operativo explota los recursos

hardware de uno o más procesadores para proporcionar un conjunto de servicios a los usuarios del sistema. El sistema operativo también gestiona la memoria secundaria y los dispositivos de E/S (entrada/salida) para sus usuarios. Por tanto, es importante tener algunos conocimientos del hardware subyacente antes de iniciar el estudio de los sistemas operativos.

Presentación

Page 4: 02.- Unidad 1 Sistemas Operativos

Un sistema operativo hace de intermediario

entre, por un lado, los programas de aplicación, las herramientas y los usuarios, y, por otro, el hardware de una computadora. Para apreciar cómo funciona el sistema operativo y los aspectos de diseño involucrados, se debe tener algún conocimiento de la organización y la arquitectura de las computadoras.

Introducción

Page 5: 02.- Unidad 1 Sistemas Operativos

Describir la organización básica de sistemas

de computadoras. Proveer una visión global a la estructura de los

sistemas operativos. Ofrecer una visión de conjunto a los diferentes

tipos de ambientes de cómputo. Explorar sistemas operativos propietarios

como de fuente abierta.

Objetivos

Page 6: 02.- Unidad 1 Sistemas Operativos

Identificar los componentes de los sistemas

operativos, así como el objetivo, la función y las características de diferentes sistemas operativos.

Competencia específica

Page 7: 02.- Unidad 1 Sistemas Operativos

Que el alumno tenga una visión global de la

arquitectura de las computadoras y el papel que desempeña el Sistema Operativo como administrador de recursos.

Que el alumno comprenda la importancia del estudio de los Sistemas Operativos en el contexto de su carrera.

Que el alumno comprenda la importancia de conocer el software y hardware subyacente a los programas de aplicación.

Expectativas

Page 8: 02.- Unidad 1 Sistemas Operativos

Actividad % Fech

aEntrega

Asistencia 5%

Investigación.- “Evolución de los S.O.” 15% 20/02 23/02

Investigación.- “Componentes de un S.O.” 15% 25/02 27/02

Práctica No. 1.- “Módulos del Kernel” 25% 27/02 02/03

Avance de Proyecto Integrador 40% 04/03 06/03

Criterios de evaluación

Page 9: 02.- Unidad 1 Sistemas Operativos

Contenido Temático

1.1 Definición y concepto.1.2 Funciones y características.1.3 Evolución histórica.1.4 Clasificación.1.5 Estructura: niveles o estratos de diseño.1.6 Núcleo.

Page 10: 02.- Unidad 1 Sistemas Operativos

Definición y concepto

Page 11: 02.- Unidad 1 Sistemas Operativos

Software – hardware. Es un programa que actúa como intermediario

entre el usuario de una computadora y el hardware subyacente.

Objetivos de un sistema operativo: Ejecutar programar de usuario y facilitar la

resolución de problemas. Establecer un uso conveniente de la computadora. Utilizar el hardware de computadora de una

manera eficiente.

¿Qué es un S.O.?

Page 12: 02.- Unidad 1 Sistemas Operativos

Un sistema operativo es un programa que controla la

ejecución de aplicaciones y programas y que actúa como interfaz entre las aplicaciones y el hardware de las computadoras. Se puede considerar que un sistema operativo tiene los siguientes tres objetivos: Facilidad de uso. Un sistema operativo facilita el uso de las

computadoras. Eficiencia. Un sistema operativo permite que los recursos de

un sistema de cómputo se puedan utilizar de una manera eficiente.

Capacidad para evolucionar. Un sistema operativo se debe construir de tal forma que se puedan desarrollar, probar e introducir nuevas funciones en el sistema sin interferir con su servicio.

Objetivos

Page 13: 02.- Unidad 1 Sistemas Operativos

El S.O. como interfaz de usuario/computador

El hardware y software utilizados para proporcionar aplicaciones a los usuarios se pueden ver de forma jerárquica o en capas:

Page 14: 02.- Unidad 1 Sistemas Operativos

Edite, compile y ejecute el siguiente programa#include <stdio.h>int main() {

printf(“Hello World!\n”);return 0;

}

Minipráctica

Page 15: 02.- Unidad 1 Sistemas Operativos

El usuario final no se preocupa por los detalles

del hardware subyacente. El usuario final observa un sistema de

cómputo en términos de un conjunto de aplicaciones.

Si un programador tuviera que desarrollar una aplicación considerando todos los aspectos del hardware subyacente, el desarrollo de aplicaciones requeriría de un esfuerzo enorme y sería una labor extremadamente compleja.

Interfaz de Usuario/Computador

Page 16: 02.- Unidad 1 Sistemas Operativos

Desarrollo de programas.- El sistema

operativo proporciona una variedad de utilidades y servicios, tales como editores y depuradores, para asistir al programador en la creación de los programas de aplicación.

Ejecución de programas.- El sistema operativo proporciona a los programas de aplicación un entorno controlado de acceso a los recursos del procesador, memoria y dispositivos de E/S para la ejecución de sus instrucciones.

Servicios que proporciona un S.O.

Page 17: 02.- Unidad 1 Sistemas Operativos

Acceso a dispositivos de E/S.- Cada dispositivo de E/S

requiere un conjunto de instrucciones específicos de acuerdo a sus características técnicas. El sistema operativo proporciona una interfaz uniforme que esconde esos detalles de forma que los programadores puedan acceder a dichos dispositivos utilizando librerías estandarizadas de lectura y escritura independientes del hardware subyacente de cada dispositivo.

Acceso controlado a los archivos.- Para el acceso a los archivos, el sistema operativo debe reflejar una comprensión detallada no sólo de la naturaleza del dispositivo de E/S (disco, cinta), sino también de la estructura de los datos contenidos en los archivos del sistema.

Servicios

Page 18: 02.- Unidad 1 Sistemas Operativos

Acceso al sistema.- Para sistemas compartidos o públicos,

el sistema operativo controla el acceso al sistema completo y a recursos del sistema específicos. La función de acceso debe proporcionar protección a los recursos y a los datos, evitando el uso no autorizado de los usuarios y resolviendo conflictos en el caso de conflicto de recursos.

Detección y respuesta a errores.- Se pueden dar gran variedad de errores durante la ejecución de un sistema de computación. Éstos incluyen errores de hardware internos y externos, tales como un error de memoria o un fallo en un dispositivo; en cada caso, el sistema operativo debe proporcionar una respuesta que elimine la condición de error, suponiendo el menor impacto en las aplicaciones que están en ejecución.

Servicios

Page 19: 02.- Unidad 1 Sistemas Operativos

El S.O. como gestor de recursos

Un sistema de cómputo representa un conjunto de recursos que se utilizan para el transporte, almacenamiento y procesamiento de la información, así como para llevar a cabo el control de estas funciones.

El sistema operativo se encarga de gestionar estos recursos.

Page 20: 02.- Unidad 1 Sistemas Operativos

Editar, compilar y ejecutar el programa siguiente#include <stdio.h>int main() {

printf(“Hola Mundo!\n”);fprintf(stderr, “Este es un mensaje de

error\n”);fprintf(stdout, “Hola de nuevo!\n”);return 0;

} Redirigir los flujos de salida estándar y error en la

consola.

Minipráctica

Page 21: 02.- Unidad 1 Sistemas Operativos

Procesamiento en Serie.- Con los primeros

computadores, desde finales de los años 40 hasta mediados de los 50, el programador interaccionaba directamente con el hardware de las computadoras; no existía ningún sistema operativo. Los programas en código máquina se cargaban a través del dispositivo de entradas (lectores de tarjetas). Si un error provocaba la parada del programa, se encendían avisos para indicar la condición de error. El programador podía entonces examinar los registros del procesador y la memoria principal para determinar la causa del error.

El S.O. como evolución del hardware

Page 22: 02.- Unidad 1 Sistemas Operativos

Planificación.- La mayoría de las instalaciones utilizaban una plantilla

impresa para reservar tiempo de máquina. Típicamente, un usuario podía solicitar un bloque de tiempo en múltiplos de media hora aproximadamente. Un usuario podía obtener una hora y terminar en 45 minutos; esto implicaba malgastar tiempo de procesamiento del procesador. Por otro lado, el usuario podía tener problemas, si no finalizaba en el tiempo asignado y era forzado a terminar antes de resolver su problema.

Tiempo de configuración.- Un único programa, denominado trabajo, podía implicar la carga en memoria del compilador y del programa en lenguaje de alto nivel (programa en código fuente) y a continuación la carga y el enlace del programa objeto y las funciones comunes. Cada uno de estos pasos podían suponer montar y desmontar cintas o configurar tarjetas. Si ocurría un error, el usuario normalmente tenía que volver al comienzo de la secuencia de configuración. Por tanto, se utilizaba una cantidad considerable de tiempo en configurar el programa que se iba a ejecutar.

Problemas principales

Page 23: 02.- Unidad 1 Sistemas Operativos

Los primeros sistemas de cómputo eran muy costosos, y por tanto,

era importante maximizar su utilización. El tiempo malgastado en la planificación y configuración de los trabajos era inaceptable.

Para mejorar su utilización, se desarrolló el concepto de sistema operativo en lotes.

La idea central bajo el esquema de procesamiento en lotes sencillo es el uso de una pieza de software denominada monitor. Con este tipo de sistema operativo, el usuario no tiene que acceder directamente a la máquina. En su lugar, el usuario envía un trabajo a través de una tarjeta o cinta al operador del sistema, que crea un sistema por lotes con todos los trabajos enviados y coloca la secuencia de trabajos en el dispositivo de entrada, para que lo utilice el monitor. Cuando un programa fnaliza su procesamiento, devuelve el control al monitor, punto en el cual dicho monitor comienza la carga del programa siguiente.

Sistemas en Lotes sencillos

Page 24: 02.- Unidad 1 Sistemas Operativos

Estructura del procesamiento

El monitor es un programa residente que controla los recursos del sistema de cómputo.

Al finalizar cada programa de usuario, el monitor toma el control del procesador y ejecuta el siguiente programa de usuario, optimizando así el uso de los recursos del sistema.

Page 25: 02.- Unidad 1 Sistemas Operativos

Sistemas en Lotes multiprogramados

Aun con los sistemas por lotes, se encontró que el tiempo de uso de un procesador se desperdiciaba dado que las operaciones de E/S son muy lentas comparadas con la velocidad del procesador del sistema.

Page 26: 02.- Unidad 1 Sistemas Operativos

Supóngase que hay espacio para el sistema

operativo y dos programas de usuario. Cuando un trabajo necesita esperar por la E/S, se puede asignar el procesador al otro trabajo, que probablemente no esté esperando por una operación de E/S.

Multiprogramación

Page 27: 02.- Unidad 1 Sistemas Operativos

Multiprogramación

Page 28: 02.- Unidad 1 Sistemas Operativos

Editar, compilar y ejecutar el programa siguiente:#include <stdio.h>int main() {

int x,y;printf(“Escribe dos números:\n”);scanf(“%d %d”, &x, &y);printf(“Los dos números son: (%d,%d)\n”, x, y);return 0;

} Modificar el código para imprimir en pantalla la suma de

los dos números.

Minipráctica

Page 29: 02.- Unidad 1 Sistemas Operativos

Funciones y características

Page 30: 02.- Unidad 1 Sistemas Operativos

Un sistema de computadora puede ser dividido en cuatro

componentes: Hardware: provee recursos básicos de computación.

CPU, memoria, dispositivos de E/S. Sistema Operativo: controla y coordina el uso del hardware

entre programas de aplicación y usuarios. Programas de aplicación: define los mecanismos por los

cuáles los recursos del sistema son usados para resolver los problemas de cómputo de los usuarios. Procesadores de texto, compiladores, navegadores de la red,

sistemas de bases de datos, juegos de video. Usuarios.

Personas, dispositivos, otras computadoras.

Estructura de un S.C.

Page 31: 02.- Unidad 1 Sistemas Operativos
Page 32: 02.- Unidad 1 Sistemas Operativos

Editar, compilar y ejecutar el siguiente código#include <stdio.h>int main(int argc, char* argv[]) {

printf(“Hola %s\n”, argv[1]);return 0;

} Modificar el código para imprimir dos

argumentos de línea de comandos.

Minipráctica

Page 33: 02.- Unidad 1 Sistemas Operativos

Funciones

Page 34: 02.- Unidad 1 Sistemas Operativos

Un sistema operativo provee un ambiente en el cual otros

programas pueden trabajar. Desde el punto de vista de los usuarios, los S.O. cumplen

diferentes funciones: Monousuario (PC)

Facilidad de uso Mainframe (Terminal)

Uso eficiente de los recursos Estaciones de trabajo

Compromiso entre la facilidad de uso y el uso eficiente de los recursos (compartición de recursos)

Dispositivos móviles Facilidad de uso Uso eficiente de los recursos

Desde el punto de vista del usuario

Page 35: 02.- Unidad 1 Sistemas Operativos

Es el programa directamente involucrado con el

manejo del hardware. Administrador de recursos:

Tiempo de CPU Espacio de Memoria Administración de archivos Administración de dispositivos de E/S

Controlador de recursos Administra de manera eficiente y equitativa los

recursos de cómputo para asegurar que ningún programa se exceda en el uso de los mismos.

Desde el punto de vista del sistema

Page 36: 02.- Unidad 1 Sistemas Operativos

Editar, compilar y ejecutar el programa siguiente:

#include <stdio.h>int main() {

while (1);return 0;

} A continuación, obtener el identificador de

proceso con la instrucción: ps aux Obtenido el identificador de proceso, eliminarlo

con la instrucción: kill <id>

Mini práctica

Page 37: 02.- Unidad 1 Sistemas Operativos

Características

Page 38: 02.- Unidad 1 Sistemas Operativos

Un sistema de cómputo de propósito general

típicamente consiste en uno o más CPUs y una serie de controladores de dispositivos conectados a través de una interfaz común (bus) que provee acceso a la memoria compartida:

Características

Page 39: 02.- Unidad 1 Sistemas Operativos

Al encender un sistema de cómputo, se requiere un

programa inicial “bootstrap” Este programa inicializa los componentes básicos de la

computadora (registro de CPU, contenido de memoria, controladores de dispositivos)

Posteriormente ubica el núcleo del sistema operativo y lo ejecuta.

El núcleo a su vez, inicializa los servicios del sistema cargandolos (procesos del sistema, demonios de sistema)

Una vez que el sistema operativo y los servicios son cargados, el S.O. queda a la espera de interrupciones de hardware para interactuar con el sistema de cómputo.

Secuencia de inicio

Page 40: 02.- Unidad 1 Sistemas Operativos

Evolución histórica

Page 41: 02.- Unidad 1 Sistemas Operativos

La primera computadora digital fue diseñada

por el matemático inglés Charles Babbage (1792-1871).

La “máquina analítica” nunca logró funcionar. El diseño de ésta máquina prevía la necesidad

de uso de software, por lo que Babbage contrató a Ada Lovelace.

El lenguaje de programación Ada lleva su nombre en honor por ser la primera programadora del mundo.

Preludio

Page 42: 02.- Unidad 1 Sistemas Operativos

A finales de la Segunda Guerra Mundial se requirió la

necesidad de máquinas analíticas que resolvieran con gran precisión y rapidez problemas de balística.

1944 – Colossus, Bletchey Park. Mark I, Harvard. ENIAC, Pennsylvania. En estos primeros días, un solo grupo de personas diseñaban,

construían, programaban, operaban y daban mantenimiento a cada máquina.

Toda la programación se realizaba exclusivamente en lenguaje máquina.

Cálculos numéricos. Tarjetas perforadas.

Primera generación (1945-1955): tubos al vacío

Page 43: 02.- Unidad 1 Sistemas Operativos

La introducción del transistor a mediados de la

década de 1950 cambió radicalmente el panorama. Los transistores eran mas confiables que los bulbos

de vacío. Mainframes. Lenguaje de programación FORTRAN (cálculos

numéricos) ó ensamblador. Tarjetas perforadas. Operadores que cargaban los programas utilizando

conjuntos de tarjetas perforadas.

Segunda generación (1955-1965): transistores

Page 44: 02.- Unidad 1 Sistemas Operativos

Se recolectaban lotes de trabajo (tarjetas) en

cintas magnéticas y la cinta magnética se llevaba para su ejecución.

Mejor eficiencia en el uso de mainframes. Aplicaciones para resolver ecuaciones

diferenciales parciales.

Sistemas de procesamiento por lotes

Page 45: 02.- Unidad 1 Sistemas Operativos

Unificación de arquitecturas de hardware para

la compatibilidad en la ejecución de programas.

Aparición de circuitos integrados. La unificación de arquitecturas obligó a pensar

a un Sistema Operativo como un administrador de recursos que pudiera adaptarse de manera flexible a los requerimientos y características (a menudo muy diferentes) de hardware.

Multiprogramación.

Tercera generación (1965-1980): circuitos integrados

Page 46: 02.- Unidad 1 Sistemas Operativos

Microcomputadoras CP/M (Control Program for Microcomputers) MS-DOS Interfaz Gráfica de Usuario Apple Macintosh. Windows.

Cuarta generación (1980-): computadoras personales

Page 47: 02.- Unidad 1 Sistemas Operativos

Clasificación

Page 48: 02.- Unidad 1 Sistemas Operativos

Sistemas operativos de mainframe

Computadoras de gran capacidad orientadas hacia procesamiento de muchos datos.

Por ende, tienen capacidades muy específicas para E/S.

Los sistemas operativos para mainframes están orientados hacia el procesamiento de muchos trabajos a la vez, de los cuales la mayor parte requiere de muchas operaciones de E/S. Procesamiento por lotes. Procesamiento de

transacciones. Tiempo compartido.

Page 49: 02.- Unidad 1 Sistemas Operativos

Sistemas operativos de servidores

Computadoras con capacidades muy específicas de E/S y procesamiento compartido.

Servicios a redes (servidor web, bases de datos, servidores de impresión, etc).

Multiprocesamiento y administración eficiente de recursos.

Page 50: 02.- Unidad 1 Sistemas Operativos

Sistemas operativos de computadoras personales

Monousuario (o multiusuario pero sin ejecución simultánea)

Soporte para aplicaciones de escritorio.

Eficiencia de recursos.

Multitarea

Page 51: 02.- Unidad 1 Sistemas Operativos

Sistemas operativos para dispositivos móviles.

PDA’s: Palm Desktop, Palm OS.

Sistemas operativos para dispositivos móviles: Tablets. Teléfonos celulares.

Android. Os X Windows mobile/CE

Page 52: 02.- Unidad 1 Sistemas Operativos

Sistemas operativos integrados

Sistemas operativos para dispositivos limitados y muy específicos en su funcionamiento.

Electrodomésticos.

Page 53: 02.- Unidad 1 Sistemas Operativos

Sistemas operativos en tiempo real.

Especificaciones de tiempo muy precisas.

Control de procesos industriales.

Page 54: 02.- Unidad 1 Sistemas Operativos

Estructura

Page 55: 02.- Unidad 1 Sistemas Operativos

Monolíticos

No hay separación precisa de las funcionalidades a cubrir por el Sistema Operativo respecto a las operaciones de los programas de aplicación.

Page 56: 02.- Unidad 1 Sistemas Operativos

Por capas

Cada capa del S.O. se encarga de una operación específica y se diseña de acuerdo a su operatividad con el hardware subyacente.

Esta abstracción permite un mejor diseño e implementación de la arquitectura del S.O.

Page 57: 02.- Unidad 1 Sistemas Operativos

Funciones del núcleo diseminadas a lo largo

de pequeños módulos denominados “microkernels”

Microkernels

Page 58: 02.- Unidad 1 Sistemas Operativos

En la interfaz de línea de comandos, utilizar la función syslog

para enviar mensajes de error a la bitácora del sistema.#include <stdio.h>#include <syslog.h>int main() {

printf(“Enviando mensajes de logging\n”);openlog(“Syslogging”, LOG_PID | LOG_CONS,

LOG_USER);syslog(LOG_INFO, “Mensaje de usuario %d\n”, 5);closelog();

return 0;}

Minipráctica

Page 59: 02.- Unidad 1 Sistemas Operativos

En la interfaz del S.O. virtual, identificar los

diferentes compontes que arroja el comando siguiente: dmesg

Minipráctica

Page 60: 02.- Unidad 1 Sistemas Operativos

Núcleo