Sie sind auf Seite 1von 52

Sistemas Operativos

Unidad I
Introduccin
Introduccin

Concepto, historia y evolucin


Clasificacin y estructura
Casos de estudio
Arranque y activacin
Concepto, historia y evolucin
Definiciones:
El software y/o firmware que hace utilizable al
hardware [Deitel].
Es un programa que controla la ejecucin de
los programas de aplicacin y que acta como
interfaz entre los usuarios y el hardware
[Satllings].
Es un programa que acta como intermediario
entre el usuario y el hardware. El primer
objetivo es la comodidad, el segundo la
eficiencia [Silberschatz].
Es un programa que tiene encomendada una
serie de funciones diferentes cuyo objetivo es
simplificar el manejo y utilizacin de la
computadora, hacindolo seguro y eficiente
[Carretero].
Concepto, historia y evolucin
Se puede considerar que un S.O. tiene tres objetivos:
Comodidad.
Hace que un sistema informtico sea ms fcil y
cmodo de utilizar, al funcionar como una interfaz
entre el usuario y el hardware, presentando una
cara amistosa y sencilla.
Eficiencia.
Administrar los recursos del sistema informtico de
forma eficiente. Dichos recursos pueden ser fsicos
(procesador, memoria principal, perifricos, etc.) o
lgicos (archivos, puertos de comunicacin, etc.).
Capacidad de evolucin.
El S.O. debe construirse de modo que permita el
desarrollo efectivo, la verificacin y la introduccin
de nuevas caractersticas al sistema y, a la vez, no
interfiera con los servicios que brinda.
Concepto, historia y evolucin
Jerarqua de elementos en una computadora
Usuario
Final
Programador
Programas de aplicacin
(Resuelven problemas para los usuarios)
(Word, Excel, )
Diseador del
Utilidades Sistema
(Shell, Ensamblador, Enlazador, bibliotecas, ) Operativo
Sistema Operativo
(Windows, Linux, Mac OS X)

Hardware del computador


(PC, Mac, Sun, )

Vistas de un sistema operativo


El sistema operativo como gestor de recursos.
El Sistema operativo como una mquina extendida.
El sistema operativo como una interfaz de usuario.
Concepto, historia y evolucin
El sistema operativo como gestor de recursos.
Asigna recursos
Se encarga de asignar los recursos a los
programas en ejecucin en funcin de la
disponibilidad de estos y la prioridad de los
programas.
Tambin tiene que recuperar los recursos
asignados cuando los programas ya no los
necesiten.
Los recursos pueden ser fsicos o lgicos.
Protege
Tiene que asegurar la confidencialidad de la
informacin y que los trabajos no interfieran
entre s por los recursos asignados.
Hace contabilidad
Mide la cantidad de recursos, que a lo largo de
su ejecucin, utiliza cada programa.
Bitcoras y Monitorizacin
Concepto, historia y evolucin
El Sistema operativo como una mquina extendida.
Ofrece a los programas un conjunto de servicios, o
llamadas al sistema, que pueden solicitar cuando lo
necesiten.
Los servicios se pueden agrupar en cuatro clases:
Ejecucin de programas.
El S.O. incluye servicios para lanzar a ejecucin, parar o abortar
un programa.
rdenes de E/S.
Servicios para proveer a los programas de operaciones de lectura,
escritura y modificacin del estado de los perifrico, de forma
cmoda y protegida.
Operaciones sobre archivos.
Es un nivel de abstraccin mayor que las rdenes de E/S. Estos
servicios permiten: creacin, borrado, apertura, escritura y lectura
de archivos.
Deteccin y tratamiento de errores.
El S.O. debe tratar todas las condiciones de error que detecte el
hardware. Algunos de los errores que pueden aparecer son
provocados por la E/S y otros por la ejecucin de los programas.
Concepto, historia y evolucin
El sistema operativo como una interfaz
de usuario.
Permite que los usuarios dialoguen de forma
interactiva con el sistema. El dialogo puede
ser a travs de:
Interfaz de Texto.
Se conoce como shell o intrprete de mandatos.
Espera que el usuario teclee una orden en el
shell. Despus la analiza y si es vlida la
ejecuta. Una vez que esta concluye retorna a la
espera.
Interfaz grafica.
Existen elementos grficos para comunicarse
con el S.O. (botones, mens, iconos, etc.).
Espera por eventos generados por el ratn y el
teclado. Valida el evento y lo ejecuta. Una vez
ejecutado retorna a la espera de ms eventos.

La prxima interfaz ser hardware!!


Concepto, historia y evolucin
Los S.O. han estado evolucionando a travs de los
aos. Su historia y desarrollo esta ligado con las
generaciones de computadoras.
Prehistoria (aos cuarenta).
Prcticamente sin S.O.
Procesamiento en serie.
Primera generacin (aos cincuenta).
Procesamiento por lotes
Segunda generacin (aos sesenta)
Multiprogramacin y tiempo compartido.
Tercera generacin (aos setenta)
Sistemas de propsito general y multimodo de
operacin.
Cuarta generacin (aos ochenta hasta la
actualidad)
Proceso distribuido.
Se difunde el concepto de mquina virtual.
Concepto, historia y evolucin
Prehistoria (aos cuarenta) ENIAC
Mquinas como la ENIAC o la EDVAC.
No exista un S.O. La interaccin se
daba directamente con el hardware.
El usuario deba codificar su
programa en cdigo mquina,
introducirlo mediante tarjetas
perforadas y recibir la salida de forma
impresa.
El procesamiento se dice que se
realiza en serie por que refleja el EDVAC

hecho de que los usuarios tenan que


acceder en serie al computador.
Con el paso del tiempo, para hacer
ms eficiente el proceso en serie, se
desarrollaron bibliotecas de funciones
comunes, montadores, cargadores,
depuradores, etc.
Concepto, historia y evolucin
Primera generacin (aos Disposicin de
la memoria
cincuenta)
Procesaban un nico flujo de
Tratamiento de
interrupciones

trabajos en lotes. Controlador de


Disponan de un conjunto de

Monitor
Dispositivos

rutinas de E/S. Secuenciamiento

Permitan la recuperacin del


de trabajos

sistema si un trabajo acababa en Intrprete del
Lenguaje de Paquete de tarjetas
error. Control
para un sistema
sencillo de por lotes
Tenan un lenguaje de control de
trabajos que permita especificar Zona del
los recursos a utilizar y las Programa
del
$END

operaciones a realizar por cada Usuario

trabajo. $RUN

El software principal del S.O. se $LOAD

denominaba monitor, y era el que


controlaba la secuencia de $FTN
sucesos. $JOB
Programa
a compilar
Concepto, historia y evolucin
Segunda generacin (aos sesenta)
La multiprogramacin se impuso en sistemas de lotes
como una forma de aprovechar el tiempo empleado en
las operaciones de E/S.
Se construyen los primeros multiprocesadores.
Se introduce el concepto de independencia de
dispositivos.
Comienzan los sistemas de tiempo compartido.
Aparecen los primeros sistemas de tiempo real.

Monoprogramacin
Solo un programa Ejecutar Ejecutar
Esperar E/S Esperar E/S
en ejecucin a la vez
Tiempo

Multiprogramacin Ejecutar Ejecutar Ejecutar Ejecutar


Ms de un programa A B Esperar E/S A B Esperar E/S
en ejecucin a la vez
Tiempo
Concepto, historia y evolucin
Tercera generacin (aos cincuenta)
Es la poca de los sistemas de propsito general y
se caracterizan por ser sistemas multimodo, capaces
de operar:
Por lotes
Multiprogramacin
En tiempo real
En tiempo compartido
En modo multiprocesador
Estos S.O. interpusieron entre el usuario el hardware
una gruesa capa de software y ya no haba que
preocuparse por la circuitera.
Los inconvenientes fueron:
Un complejo lenguaje de control
Consuman muchos recursos.
Aparece sistemas de gran difusin principalmente el
UNIX. Este sistema fue el primero en codificarse en
un lenguaje de alto nivel, el C.
Concepto, historia y evolucin

Cuarta generacin (aos ochenta hasta


la actualidad?)
Los S.O. tienden a dar ms importancia a la
productividad del usuario que al rendimiento
de la mquina.
Se hace masivo el uso de la PC y aparecen los
sistemas amistosos (se aade un gestor de
ventanas).
Adquieren tambin ms importancia las redes
de computadoras y surge el proceso
distribuido.
Surgen interfaces de programacin estndar
POSIX

Win32
Concepto, historia y evolucin
Actualmente existe una gran diversidad de
sistemas operativos. Los que se consideran como
de amplia difusin en PC son: Los sistemas tipo
Unix (Linux, Mac OS X) y los sistemas Windows
(Microsoft). Cada uno de ellos tiene su historia y
desarrollo, con cada nueva versin se intenta
mejorar la comodidad y la eficiencia.
Concepto, historia y evolucin
Cul es mejor?
http://hanggeek.wordpress.com/2008/03/18/batalla-de-sistemas-operativos/

?
Concepto, historia y evolucin
Cul SO mvil es el ms utilizado?
Concepto, historia y evolucin
Qu equipo se usa ms para navegar?
Clasificacin y estructura
Existen diversas clasificaciones desde distintos puntos de
vista para los sistemas operativos.
Monousuarios
Por el nmero Multiusuarios
de usuarios
Monotareas
Por el nmero
de tareas Multitareas

Por el nmero Uniproceso


de procesadores Multiproceso Simtricos
Asimtricos
Clasificacin
Especfico
de los Por el propsito General
Sistemas
Operativos Monolticos
Por el tipo de Modulares
diseo Por capas
Microncleo
Mquinas virtuales
Por el tipo de Abiertos
desarrollo Cerrado
Clasificacin y estructura
Los componentes del sistema operativo se
pueden clasificar de la siguiente forma:
Bsicos:
Gestor de procesos
Gestor de memoria
Gestor de E/S y almacenamiento secundario
Servidores:
Servidor de archivos
Servidor de proteccin y seguridad
Utilidades:
Interprete de comandos
Programas del sistema
Clasificacin y estructura
Gestor de procesos
Un proceso es un programa en ejecucin que
consume recursos (memoria, archivos, etc.)
El SO debe gestionar lo siguiente de los procesos:
Creacin y destruccin.
Suspensin y reanudacin.
Asignacin de los recursos al proceso.
Mecanismos de comunicacin y sincronizacin
Gestor de memoria
La memoria se visualiza como un vector enorme de
bytes (direcciones) y es compartida por el CPU y
dispositivos de E/S.
El SO debe gestionar lo siguiente:
Qu partes estn en uso y quin las esta ocupando.
Qu procesos se deben cargar y dnde.
Asigna y libera espacio cuando se requiere
Gestiona la memoria virtual
Clasificacin y estructura
Gestor de E/S
El SO debe encargarse de gestionar los distintos
dispositivos de E/S: terminales, dispositivos de
almacenamiento secundario y terciario, teclado, etc.
El SO gestiona, entre otras cosas:
Copiado de memoria hacia y desde el controlador.
Controla transferencias por DMA
Planificacin de acceso a los discos
Asignacin y liberacin de espacio en los dispositivos de
almacenamiento secundario
Servidor de Archivos y directorios
El archivo es visto como una unidad de almacenamiento
lgico no voltil que agrupa un conjunto de informacin
relacionada entre s bajo un mismo nombre.
Los directorios son objetos que relacionan de forma
unvoca un nombre con un archivo. Es decir un mismo
nombre no puede identificar dos archivos.
El SO gestiona lo siguiente respecto a los archivos y
directorios:
Creacin, apertura, cerrado, borrado y leer archivos y
directorios, as como escritura de archivos.
Clasificacin y estructura
Servidor de proteccin y seguridad
Por el lado de la proteccin se debe:
Controlar el acceso a los recursos por parte de los procesos
(usuarios)
Distinguir entre el uso autorizado y no autorizado para
acceder a un recurso.
Proporcionar mtodos de control de acceso.
Por el lado de la seguridad:
Proteger al sistema de un uso indebido (fraudulento).
Autentificar a los usuarios.
Evitar amenazas al sistema (gusanos, virus, piratas, etc.)
Evitar intercepcin de comunicaciones (cifrado, etc.)
Intrprete de comandos
Programa cuya funcin es obtener los comandos del
usuario y lanzar su ejecucin.
Existen bsicamente dos tipos:
Intrprete de comandos en lnea (shell Linux)
Interfaz grfico de usuario (Windows)
Clasificacin y estructura

Programas de sistema
Proporcionan un entorno adecuado para el
desarrollo y ejecucin de programas.
Existen diversas categoras:
Manipulacin de archivos y directorios: copiar,
mover, renombrar, etc.
Informacin de estado: monitores, bitcoras.

Programacin: compiladores, enlazadores,


ensambladores, bibliotecas, etc.
Carga y ejecucin: cargador.

Comunicaciones: ssh, sftp, etc.

Aplicaciones: navegadores, editores, etc.


Clasificacin y estructura

Metodologas de diseo de sistemas


operativos
La metodologa empleada en el diseo de la
estructura permite abordar la complejidad de
los SO de distintas formas.
Los objetivos de diseo en un SO son:
Para el usuario
Fcil de usar, fiable, seguro, potente y sencillo.
Internamente
Fcil de implementar y mantener
Flexible, fiable, eficiente y estar libre de errores
Diferenciar claramente entre:
Mecanismos: qu cosas se pueden hacer.
Polticas: criterios para decidir que hacer.
Clasificacin y estructura

Ncleo (kernel)
El ncleo o kernel es la parte fundamental del
SO.
Es el cdigo responsable de controlar y
administrar los servicios y peticiones de
recursos y hardware con respecto a uno o
varios procesos.
Para esquematizar las estrategias de
diseo se suele mostrar el SO como una
serie de niveles partiendo del hecho de
que el kernel esta directamente en
contacto con el hardware.
Clasificacin y estructura

Niveles de un sistema con kernel Aplicaciones de Usuario


monoltico.
Es la organizacin ms comn, no Programas
tiene una estructura bien clara y Shell
definida. de Sistema
Todos sus componentes se
encuentran integrados en un nico Servicios y llamadas al sistema
programa (el SO).
Normalmente han surgido de SO
pequeos y fueron hacindose ms
grandes debido a su popularidad Gestor de Gestor de
procesos E/S

Ncleo
(MS-DOS, UNIX en sus orgenes).
El problema que plantean estos
sistemas radica en lo complicado Gestor de memoria
que es modificar el SO para aadir
nuevas funcionalidades y servicios.
Adems no existe el principio de Controladores
ocultacin de la informacin.

Hardware
Clasificacin y estructura

Niveles en un sistema con diseo Aplicaciones de Usuario


modular.
El ncleo esta dividido en mdulos Programas

con interfaces y funcionalidades Shell
de Sistema
claramente definidas.
Son sistemas altamente Interfaz de llamadas al sistema
estructurados y modulares donde
se pueden sustituir componentes
por otros con el mismo interfaz Ncleo Gestor de
E/S
(controladores, manejo de
archivos, etc.
Estos sistemas se consideran como Gestor de Gestor de
Facilidades
de kernel monoltico hibrido debido Memoria Comunes Procesos
a la capacidad de cargar y
descargar los controladores y
extensiones del sistema mientras
el sistema contina trabajando sin Controladores de Controladores de
ser interrumpido. disp por bloques disp por flujo

Hardware
Clasificacin y estructura

Sistemas estructurados en capas


El sistema se organiza en una jerarqua de capas, donde cada
capa ofrece una interfaz clara y bien definida a la capa
superior y solamente utiliza los servicios que ofrece la capa
inferior.
La principal ventaja de estos sistemas es la modularidad y
ocultamiento de la informacin. La desventaja es que una
orden tiene que pasar por varias capas antes de ser
ejecutada.

Aplicaciones
Gestor de de usuario
Procesos

Kernel Gestor de
(Administracin
del CPU) Memoria
Gestor de
E/S
Interfaz de
Llamadas al
Sistema
Clasificacin y estructura

Sistemas con microncleo


Consiste en implementar la mayor parte de los servicios y
funciones del sistema operativo en procesos de usuario,
dejando solo una pequea parte del SO ejecutndose en
modo ncleo.
A la pequea parte que del SO que se ejecuta en modo
ncleo se le conoce como microncleo y a los procesos que
ejecutan el resto de las funciones se les denomina
servidores.
La desventaja radica en que una llamada puede necesitar
muchos mensajes entere los distintos servidores.

Aplicaciones Servidor Servidor Servidor


de Usuario de de de
API API Memoria Procesos E/S

Microncleo
Hardware
Clasificacin y estructura

Mquina virtual
El corazn del sistema, conocido
como monitor de la mquina virtual,
se ejecuta directamente en el Aplicaciones Aplicaciones Aplicaciones
hardware y realiza la De De De
multiprogramacin, presentando no Usuario Usuario Usuario
una, sino varias mquinas virtuales
al usuario donde cada mquina
virtual puede estar ejecutando un
SO diferente.
La mquina virtual que se presenta Llamadas Llamadas Llamadas
al usuario pretende ser idntica a la al Sistema al Sistema al Sistema
que en realidad se tiene. Sin
embargo no es sencillo lograr
duplicados exactos.
Compartir recursos se torna Ncleo 1 Ncleo 2 Ncleo 3
complicado.
Estos principios se utiliza para
Monitor de Mquina Virtual
emular SO sobre otros SO y en
Sistemas Distribuidos. Hardware
Casos de estudio (Unix/Linux)

Estructura general de un sistema


Unix/Linux
Programas de
Aplicacin

Interfaz de
Llamadas al Sistema

Ncleo

Hardware
Hardware
Hardware

Shell
Comandos y
Libreras
Componentes
del compilador

Compilador
Casos de estudio (Unix/Linux)

Adaptado de Unix. Programacin avanzada


Programas de usuario
del ncleo Unix/Linux
Diagrama de bloques

Nivel Usuario Libreras

Interfaz de llamadas al sistema

Subsistema de Comunicacin
Archivos entre procesos
Sistema
de control Planificador
Buffer cache de procesos
Nivel Kernel Gestor de
memoria
Caracter Bloque
Controladores
de dispositivos

Control del hardware


Nivel Hardware Hardware



Vista particionada
del kernel
Tomado de Linux device drivers 2 Ed.
Casos de estudio (Unix/Linux)
Casos de estudio (Unix/Linux)
Subsistema de archivos
Controla los recursos del sistema de archivos, tiene
funciones como:
Reservar espacio para los archivos.
Administrar el espacio libre
Controlar el acceso a los archivos
Permitir el intercambio de datos entre los archivos y el
usuario.
Los procesos interaccionan con el subsistema de archivos
a travs de unas llamadas especficas (open, read, write,
status, etc).
Se comunica con los dispositivos de almacenamiento
secundarios a travs de los controladores de dispositivos.
Se consideran dos tipos segn el acceso: bloques y
caracteres. Un mismo dispositivo puede ser manejado en
modo bloque o en modo carcter, depende del controlador
que se este usando.
Subsistema de control de procesos
Es el responsable de la planificacin de los procesos, su
sincronizacin, comunicacin entre los mismos y del
control de la memoria principal.
Casos de estudio (Unix/Linux)
El mdulo de gestin de memoria
Se encarga de controlar qu procesos estn
cargados en la memoria principal en cada instante.
Cuando no hay memoria suficiente se recurre al
swaping (intercambio).
El planificador
Se encarga de gestionar el tiempo del CPU que
tiene asignado cada proceso.
Entra en ejecucin cada cuanto de tiempo y decide
si el proceso actual tiene derecho a seguir
ejecutndose o a de conmutarse de contexto.
La comunicacin entre procesos
Puede realizarse de forma asncrona (seales) o
sncrona (colas de mensajes, semforos).
El mdulo de control de hardware
Es la parte del kernel encargada del manejo de las
interrupciones y de la comunicacin con la mquina.
Casos de estudio (Windows)

Arquitectura simplificada de Windows


(NT)
Procesos de Procesos Aplicaciones Subsistemas
Soporte del de de de
Sistema Servicio Usuario Ambiente

Modo
Usuario Subsistema de DLLs

Modo Ejecutor
Kernel Sistema de
Controladores de Ventanas
Kernel
Dispositivos y Grficos
Capa de Abstraccin de Hardware (HAL)
Casos de estudio (Windows)
Modo Kernel
Capa de Abstraccin de Hardware (HAL)
(1) Separa al kernel, los controladores de dispositivos y al
administrador del hardware, y (2) Oculta las diferencias
especficas de hardware, (tarjetas madre x86, MIPS,
PowerPC, y otras).
Kernel
Se encarga entre otras cosas de: (1) Las funciones del S. O. a
bajo nivel, (2) Sincronizacin de mltiples microprocesadores,
y (3) Administracin de hilos.
Controladores de dispositivos
Traducen las llamadas de Entrada/Salida provocadas por el
usuario en la informacin especfica que los dispositivos de
Entrada/Salida requieren.
Ejecutor
Son los servicios del sistema operativo de base, se encarga,
entre otras cosas de: (1) El manejo de memoria, (2) Manejo
de procesos e hilos, (3) Seguridad, (4) Entrada/Salida, (5)
Comunicacin entre procesos.
Sistema de ventanas y Grficos.
Funciones de la Interfaz Grfica de Usuario (GUI), Ventanas,
Controles para la GUI y trazado.
Casos de estudio (Windows)
Modo Usuario
Procesos de soporte del sistema
Entre otras cosas, tiene las tareas de: (1) Acceso al
sistema (nombre de usuario y contrasea) y (2)
Administrar la sesin.
Procesos de servicio
Son servicios anfitriones de Windows, como: (1) El
planificador de tareas, (2) Servicios de Spooler (ej.
Impresin). Y muchas otras aplicaciones servidor
de Windows.
Subsistema de DLLs (Libreras de Enlace Dinmico)
Traduce de una funcin documentada a una
llamada interna del sistema Windows apropiada (no
documentada).
Subsistemas de Ambiente
Maneja los procesos del cliente en su mundo.
Windows API (originalmente de 32 bits, ahora de 64 bits)
POSIX (escasos servicios Unix)
Casos de estudio (Windows)

MS-DOS, Windows 95, 98 y ME (16 0K


bits) sobre Windows XP (32 bits). Aplicacin MS-DOS
Aplicacin de 16 bits
640 K
Windows corre una Mquina DOS Emulacin MS-DOS
1 MB
16 bits
Virtual NT (NTVDM.EXE), la cual es Memoria Extendida de MS-DOS
una imagen Windows de 16 bits 16 MB
montada sobre el Subsistema de Emulacin de MS-DOS a 32 bits
DLLs. En realidad CMD.EXE es una Controladores de dispositivos
aplicacin de consola de Windows. Virtuales (COM, LPT, Teclado) 32 bits

Para aplicaciones de 16 bits NTVDM Subsistema de DLLs


7FFFFFFF
carga WOW, un traductor de API de
16 a 32 bits.
Procesos de Procesos Aplicaciones Subsistemas
Soporte del de de de
Sistema Servicio Usuario Ambiente

Modo
Usuario Subsistema de DLLs

Modo Administrador Sistema de


Kernel Controladores de Ventanas
Kernel y Grficos
Dispositivos
Capa de Abstraccin de Hardware (HAL)
Casos de estudio (Windows)
System Processes Services Applications
Service
Control Mgr.
Windows
SvcHost.Exe Task Manager
LSASS WinMgt.Exe Explorer
WinLogon SpoolSv.Exe OS/2
User
User Application
Services.Exe POSIX
Mode Session Manager
Subsystem DLLs Windows DLLs

System NTDLL.DLL
Threads

Kernel
System Service Dispatcher
Mode
(kernel mode callable interfaces) Windows
USER,
I/O Mgr
GDI

Configura-
Processes

Procedure
Reference
Play Mgr.

(registry)
Plug and

tion Mgr
Security

Threads
Memory
Monitor
System

Object

Virtual
Power
Cache

Local
Mgr.

Mgr.

Call
File

&
Device & Graphics
File Sys. Drivers
Drivers

Kernel
Hardware Abstraction Layer (HAL)
hardware interfaces (buses, I/O devices, interrupts, Original copyright by Microsoft Corporation.
interval timers, DMA, memory cache control, etc., etc.) CRK.
Casos de estudio (Linux/Windows)
Al final del da, en la prctica, ambos se pueden clasificar
como monolticos:
Todo el ncleo del sistema operativo y sus servicios se ejecutan
en un espacio de direcciones compartido y en modo kernel.
El ncleo y los servicios forman parte de un mdulo
En Linux: vmlinuz
En Windwos: ntoskrnl.exe
La interfaz grfica de usuario se maneja diferente
En Windows es un subsistema del kernel
En Linux se maneja en modo usuario Application

Application
X-Windows
Windows Linux
User Mode User Mode
Kernel Mode Kernel Mode
System Services System Services
Process Management, Process Management,
Device Device
Win32 Memory Management, Memory Management,
Drivers Drivers
Windowing I/O Management, etc. I/O Management, etc.

Hardware Dependent Code Hardware Dependent Code


Casos de estudio (Linux/Windows)
Linux Windows
Tambin es modular por: Tambin es modular, pero en menor
Opciones en tiempo de compilacin grado:
La mayora de los componentes del La inclusin de nuevos drivers
kernel pueden ser construidos para extienden la funcionalidad del kernel.
cargarse de forma dinmica (DLKMs) Algunas versiones cuentan con
DLKMs herramientas para configurar kernels
ms a la medida.
Se pueden construir de forma
separada del ncleo principal. Los drivers son cargados
Se cargan en el kernel en tiempo de dinmicamente como mdulos
ejecucin y sobre demanda. Una cantidad significativa cdigo se
Los mdulos del kernel pueden ser ejecuta como drivers.
actualizados. Se construyen de manera
Se pueden configurar kernels independiente del kernel
mnimos. Pueden ser cargados por demanda.
Portabilidad Portabilidad
La codificacin se realiza La codificacin se realiza
principalmente en C y es libre. principalmente en C y no es libre
Arquitecturas: Arquitecturas
Alpha, ARM, ARM26, CRIS, H8300, x86, IA-64,
M68000, MIPS, PA-RISC, PowerPC, S/390, x86, MIPS, PowerPC, Alpha, IA-64, x86-64
SuperH, SPARC, VAX, v850, x86-64 Requiere memoria > 64MB
Requiere memoria > 4MB Solo un par de supercomputadoras
La gran mayora del supercmputo usan Windows (versin Server)
usa Linux (diferentes distribuciones)
Casos de estudio (Linux/Windows)
Uso de los Sistemas Operativos hasta
julio 2017 [http://www.netmarketshare.com/]
Casos de estudio (Linux/Windows)
Uso de los Sistemas Operativos en las 500
supercomputadoras ms poderosas del mundo en 2013
[www.top500.org]
Casos de estudio (Android)
Casos de estudio
Arranque y activacin
El arranque de una computadora actual tiene dos
fases:
La fase de arranque del hardware
La fase de arranque del SO
S.O
(Wnd, Linux, Mac OS X)
Bajo el control del Bajo el control del Inicializacin bajo el control
Inicador ROM Cargador del SO de la parte residente del SO

S.O.
ROM HDD
-Test del sistema de
archivos
-Creacin de ED internas

Test del Hardware Carga en - Completa carga del SO


residente
memoria - Creacin de proceso
Carga en memoria del Componentes login
cargador del SO del SO

RAM CPU

Arranque del Hardware Arranque del SO


Arranque y activacin
Los programas en ROM en el arranque de la
computadora realizan tres cosas:
Una comprobacin del sistema, que sirve para
detectar sus caractersticas (cantidad de memoria,
perifricos instalados, etc.) y comprobar si
funcionan correctamente.
Fase de lectura y almacenamiento en memoria del
programa cargador del SO.
Finalmente cede el control al programa recin
cargado en memoria. El cargador del SO es
independiente del SO.
En el caso de una PC, la ROM tambin contiene el
software de E/S llamado BIOS.
Firmware que contiene los procedimientos para leer
y escribir de disco, leer caracteres del teclado y
escribir en la pantalla
Arranque y activacin
En el arranque del SO incluye las operaciones de:
Comprobacin del sistema.
Se completan las pruebas del hardware realizadas
por la ROM.
Se comprueba si el sistema de archivos tiene un
estado coherente.
Se establecen las estructuras de datos (ED) propias
del SO para almacenar informacin referente a:
tablas de procesos, tablas de memoria, E/S, etc.
Se carga en memoria principal aquella parte del SO
que ha de estar siempre presente en memoria (SO
residente).
Se crea un proceso de login (inicio) por cada sesin
en el sistema
Arranque y activacin
Una vez cargado el SO, la acciones que activan su
ejecucin son:
Llamadas al sistema emitidas por los programas.
Interrupciones emitidas por los perifricos.
Condiciones de excepcin o error del hardware.
En todos los casos anteriores se deja de ejecutar
el proceso en ejecucin y se entra a ejecutar el
SO. (Recurdese el funcionamiento general de una computadora bajo
el control de un programa FuncionamientoGral.ppt).
Arranque y activacin
Secuencia de sucesos en una llamada al sistema:
El programa de usuario entra en el kernel por una
trampa (trap) (1).
El SO determina el nmero de servicio requerido
(2).
El SO invoca el procedimiento de servicio (3).
Devuelve el control al programa de usuario (4).

Programa de usuario 2
Los programas de
Programa de usuario 1 usuario se ejecutan
Llamada al kernel en modo usuario.

Memoria principal 4
Procedimiento
3 de servicio El sistema operativo
1 se ejecuta en modo
de kernel

2 Tabla de despacho