Você está na página 1de 60

Unidad 1

Introduccin a los Sistemas Operativos

Encuadre de Unidad

Presentacin
Objetivos
Expectativas
Criterios de Evaluacin

Presentacin

Un sistema operativo explota los recursos


hardware de uno o ms procesadores para
proporcionar un conjunto de servicios a los
usuarios del sistema. El sistema operativo
tambin 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.

Introduccin

Un sistema operativo hace de intermediario


entre, por un lado, los programas de
aplicacin, las herramientas y los usuarios, y,
por otro, el hardware de una computadora.
Para apreciar cmo funciona el sistema
operativo y los aspectos de diseo
involucrados, se debe tener algn
conocimiento de la organizacin y la
arquitectura de las computadoras.

Objetivos

Describir la organizacin bsica de sistemas


de computadoras.
Proveer una visin global a la estructura de los
sistemas operativos.
Ofrecer una visin de conjunto a los diferentes
tipos de ambientes de cmputo.
Explorar sistemas operativos propietarios
como de fuente abierta.

Competencia
especfica

Identificar los componentes de los sistemas


operativos, as como el objetivo, la funcin y
las caractersticas de diferentes sistemas
operativos.

Expectativas

Que el alumno tenga una visin global de la


arquitectura de las computadoras y el papel que
desempea 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
aplicacin.

Criterios de
evaluacin

Actividad
Asistencia

Fech
a

Entre
ga

5%

Investigacin.- Evolucin de los S.O.

15% 20/02

23/02

Investigacin.- Componentes de un S.O.

15% 25/02

27/02

Prctica No. 1.- Mdulos del Kernel

25% 27/02

02/03

Avance de Proyecto Integrador

40% 04/03

06/03

Contenido Temtico

1.1
1.2
1.3
1.4
1.5
1.6

Definicin y concepto.
Funciones y caractersticas.
Evolucin histrica.
Clasificacin.
Estructura: niveles o estratos de diseo.
Ncleo.

Definicin y concepto

Qu es un S.O.?

Software hardware.
Es un programa que acta como intermediario
entre el usuario de una computadora y el
hardware subyacente.
Objetivos de un sistema operativo:
Ejecutar programar de usuario y facilitar la
resolucin de problemas.
Establecer un uso conveniente de la computadora.
Utilizar el hardware de computadora de una
manera eficiente.

Objetivos

Un sistema operativo es un programa que controla la


ejecucin de aplicaciones y programas y que acta 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 cmputo 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.

El S.O. como interfaz de


usuario/computador

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

Miniprctica

Edite, compile y ejecute el siguiente programa


#include <stdio.h>
int main() {
printf(Hello World!\n);
return 0;
}

Interfaz de
Usuario/Computador

El usuario final no se preocupa por los detalles


del hardware subyacente.
El usuario final observa un sistema de
cmputo en trminos de un conjunto de
aplicaciones.
Si un programador tuviera que desarrollar una
aplicacin considerando todos los aspectos del
hardware subyacente, el desarrollo de
aplicaciones requerira de un esfuerzo enorme
y sera una labor extremadamente compleja.

Servicios que proporciona un


S.O.

Desarrollo de programas.- El sistema


operativo proporciona una variedad de
utilidades y servicios, tales como editores y
depuradores, para asistir al programador en la
creacin de los programas de aplicacin.
Ejecucin de programas.- El sistema
operativo proporciona a los programas de
aplicacin un entorno controlado de acceso a
los recursos del procesador, memoria y
dispositivos de E/S para la ejecucin de sus
instrucciones.

Servicios

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


requiere un conjunto de instrucciones especficos de acuerdo
a sus caractersticas tcnicas. El sistema operativo
proporciona una interfaz uniforme que esconde esos detalles
de forma que los programadores puedan acceder a dichos
dispositivos utilizando libreras 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 comprensin
detallada no slo de la naturaleza del dispositivo de E/S
(disco, cinta), sino tambin de la estructura de los datos
contenidos en los archivos del sistema.

Servicios

Acceso al sistema.- Para sistemas compartidos o pblicos, el


sistema operativo controla el acceso al sistema completo y a
recursos del sistema especficos. La funcin de acceso debe
proporcionar proteccin 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.
Deteccin y respuesta a errores.- Se pueden dar gran
variedad de errores durante la ejecucin de un sistema de
computacin. 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 condicin de error, suponiendo el
menor impacto en las aplicaciones que estn en ejecucin.

El S.O. como gestor de


recursos

Un sistema de cmputo
representa un conjunto de
recursos que se utilizan
para el transporte,
almacenamiento y
procesamiento de la
informacin, as como para
llevar a cabo el control de
estas funciones.
El sistema operativo se
encarga de gestionar estos
recursos.

Miniprctica

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 estndar y error en la
consola.

El S.O. como evolucin del


hardware

Procesamiento en Serie.- Con los primeros


computadores, desde finales de los aos 40 hasta
mediados de los 50, el programador interaccionaba
directamente con el hardware de las computadoras; no
exista ningn sistema operativo. Los programas en
cdigo mquina se cargaban a travs del dispositivo
de entradas (lectores de tarjetas). Si un error
provocaba la parada del programa, se encendan
avisos para indicar la condicin de error. El
programador poda entonces examinar los registros del
procesador y la memoria principal para determinar la
causa del error.

Problemas principales

Planificacin.- La mayora de las instalaciones utilizaban una plantilla


impresa para reservar tiempo de mquina. Tpicamente, un usuario poda
solicitar un bloque de tiempo en mltiplos de media hora aproximadamente.
Un usuario poda obtener una hora y terminar en 45 minutos; esto implicaba
malgastar tiempo de procesamiento del procesador. Por otro lado, el usuario
poda tener problemas, si no finalizaba en el tiempo asignado y era forzado a
terminar antes de resolver su problema.
Tiempo de configuracin.- Un nico programa, denominado trabajo,
poda implicar la carga en memoria del compilador y del programa en
lenguaje de alto nivel (programa en cdigo fuente) y a continuacin la carga
y el enlace del programa objeto y las funciones comunes. Cada uno de estos
pasos podan suponer montar y desmontar cintas o configurar tarjetas. Si
ocurra un error, el usuario normalmente tena que volver al comienzo de la
secuencia de configuracin. Por tanto, se utilizaba una cantidad considerable
de tiempo en configurar el programa que se iba a ejecutar.

Sistemas en Lotes
sencillos

Los primeros sistemas de cmputo eran muy costosos, y por tanto,


era importante maximizar su utilizacin. El tiempo malgastado en la
planificacin y configuracin de los trabajos era inaceptable.
Para mejorar su utilizacin, 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 mquina. En su lugar, el usuario enva un trabajo a travs 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.

Estructura del
procesamiento

El monitor es un
programa residente que
controla los recursos del
sistema de cmputo.
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.

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.

Multiprogramacin

Supngase 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 operacin de E/S.

Multiprogramacin

Miniprctica

Editar, compilar y ejecutar el programa siguiente:


#include <stdio.h>
int main() {
int x,y;
printf(Escribe dos nmeros:\n);
scanf(%d %d, &x, &y);
printf(Los dos nmeros son: (%d,%d)\n, x, y);
return 0;
}
Modificar el cdigo para imprimir en pantalla la suma de
los dos nmeros.

Funciones y
caractersticas

Estructura de un S.C.

Un sistema de computadora puede ser dividido en cuatro


componentes:
Hardware: provee recursos bsicos de computacin.

CPU, memoria, dispositivos de E/S.

Sistema Operativo: controla y coordina el uso del hardware


entre programas de aplicacin y usuarios.
Programas de aplicacin: define los mecanismos por los
cules los recursos del sistema son usados para resolver los
problemas de cmputo de los usuarios.

Procesadores de texto, compiladores, navegadores de la red,


sistemas de bases de datos, juegos de video.

Usuarios.

Personas, dispositivos, otras computadoras.

Miniprctica

Editar, compilar y ejecutar el siguiente cdigo


#include <stdio.h>
int main(int argc, char* argv[]) {
printf(Hola %s\n, argv[1]);
return 0;
}
Modificar el cdigo para imprimir dos
argumentos de lnea de comandos.

Funciones

Desde el punto de vista del


usuario

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


(comparticin de recursos)

Dispositivos mviles

Facilidad de uso
Uso eficiente de los recursos

Desde el punto de vista del


sistema

Es el programa directamente involucrado con el


manejo del hardware.
Administrador de recursos:

Tiempo de CPU
Espacio de Memoria
Administracin de archivos
Administracin de dispositivos de E/S

Controlador de recursos
Administra de manera eficiente y equitativa los
recursos de cmputo para asegurar que ningn
programa se exceda en el uso de los mismos.

Mini prctica

Editar, compilar y ejecutar el programa siguiente:


#include <stdio.h>
int main() {
while (1);
return 0;
}

A continuacin, obtener el identificador de


proceso con la instruccin: ps aux
Obtenido el identificador de proceso, eliminarlo
con la instruccin: kill <id>

Caractersticas

Caractersticas

Un sistema de cmputo de propsito general


tpicamente consiste en uno o ms CPUs y una serie de
controladores de dispositivos conectados a travs de
una interfaz comn (bus) que provee acceso a la
memoria compartida:

Secuencia de inicio

Al encender un sistema de cmputo, se requiere un


programa inicial bootstrap
Este programa inicializa los componentes bsicos de la
computadora (registro de CPU, contenido de memoria,
controladores de dispositivos)
Posteriormente ubica el ncleo del sistema operativo y lo
ejecuta.
El ncleo 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 cmputo.

Evolucin histrica

Preludio

La primera computadora digital fue diseada


por el matemtico ingls Charles Babbage
(1792-1871).
La mquina analtica nunca logr funcionar.
El diseo de sta mquina preva la necesidad
de uso de software, por lo que Babbage
contrat a Ada Lovelace.
El lenguaje de programacin Ada lleva su
nombre en honor por ser la primera
programadora del mundo.

Primera generacin (1945-1955): tubos al


vaco

A finales de la Segunda Guerra Mundial se requiri la necesidad


de mquinas analticas que resolvieran con gran precisin y
rapidez problemas de balstica.
1944 Colossus, Bletchey Park.
Mark I, Harvard.
ENIAC, Pennsylvania.
En estos primeros das, un solo grupo de personas diseaban,
construan, programaban, operaban y daban mantenimiento a
cada mquina.
Toda la programacin se realizaba exclusivamente en lenguaje
mquina.
Clculos numricos.
Tarjetas perforadas.

Segunda generacin (1955-1965):


transistores

La introduccin del transistor a mediados de la


dcada de 1950 cambi radicalmente el panorama.
Los transistores eran mas confiables que los bulbos
de vaco.
Mainframes.
Lenguaje de programacin FORTRAN (clculos
numricos) ensamblador.
Tarjetas perforadas.
Operadores que cargaban los programas utilizando
conjuntos de tarjetas perforadas.

Sistemas de procesamiento por


lotes

Se recolectaban lotes de trabajo (tarjetas) en


cintas magnticas y la cinta magntica se
llevaba para su ejecucin.
Mejor eficiencia en el uso de mainframes.
Aplicaciones para resolver ecuaciones
diferenciales parciales.

Tercera generacin (1965-1980): circuitos


integrados

Unificacin de arquitecturas de hardware para


la compatibilidad en la ejecucin de
programas.
Aparicin de circuitos integrados.
La unificacin de arquitecturas oblig a pensar
a un Sistema Operativo como un
administrador de recursos que pudiera
adaptarse de manera flexible a los
requerimientos y caractersticas (a menudo
muy diferentes) de hardware.
Multiprogramacin.

Cuarta generacin (1980-): computadoras


personales

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

Clasificacin

Sistemas operativos de
mainframe

Computadoras de gran
capacidad orientadas hacia
procesamiento de muchos datos.
Por ende, tienen capacidades
muy especficas para E/S.
Los sistemas operativos para
mainframes estn 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.

Sistemas operativos de
servidores

Computadoras con
capacidades muy
especficas de E/S y
procesamiento
compartido.
Servicios a redes
(servidor web, bases de
datos, servidores de
impresin, etc).
Multiprocesamiento y
administracin eficiente
de recursos.

Sistemas operativos de computadoras


personales

Monousuario (o
multiusuario pero sin
ejecucin
simultnea)
Soporte para
aplicaciones de
escritorio.
Eficiencia de
recursos.
Multitarea

Sistemas operativos para dispositivos


mviles.

PDAs: Palm Desktop,


Palm OS.
Sistemas operativos
para dispositivos
mviles:
Tablets.
Telfonos celulares.

Android.
Os X
Windows mobile/CE

Sistemas operativos
integrados

Sistemas operativos
para dispositivos
limitados y muy
especficos en su
funcionamiento.
Electrodomsticos.

Sistemas operativos en tiempo


real.

Especificaciones de
tiempo muy
precisas.
Control de procesos
industriales.

Estructura

Monolticos

No hay separacin
precisa de las
funcionalidades a
cubrir por el Sistema
Operativo respecto a
las operaciones de
los programas de
aplicacin.

Por capas

Cada capa del S.O. se


encarga de una
operacin especfica y
se disea de acuerdo a
su operatividad con el
hardware subyacente.
Esta abstraccin
permite un mejor
diseo e
implementacin de la
arquitectura del S.O.

Microkernels

Funciones del ncleo diseminadas a lo largo


de pequeos mdulos denominados
microkernels

Miniprctica

En la interfaz de lnea de comandos, utilizar la funcin syslog


para enviar mensajes de error a la bitcora 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;
}

Miniprctica

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


diferentes compontes que arroja el comando
siguiente:
dmesg

Ncleo

Você também pode gostar