Está en la página 1de 26

SISTEMA OPERATIVO

MULTIUSUARIO
HISTORIA

• Ken Thompson(Laboratorios
Bell) empezó SO multitarea de • Linus Torvalds, buscaba un SO
usuarios múltiples. semejante a UNIX, y se encontró
• Equipo con Dennis Ritchie, con MINIX.
produjeron las primeras • Torvalds encontró que a MINIX le
versiones de UNIX entonces faltaban muchas características
denominado “Unics”. por lo que decidió reescribirlo.

1969 1976 1991

• La versión de UNIX 6 fue


gratuita en las universidades, y
la versión 7 costó 100 dólares.
• Incluía el código fuente que
podía modificarse libremente.
• Podía ejecutarse con unos
cuantos Kilobytes de memoria.
1969
• 1° y 2° versión  lenguaje
Primeras ensamblador.
versiones de • 3° versión  lenguaje C.
Unix

• Ritchie, diseñado como un


lenguaje simple de bajo nivel.
• Creado especialmente para
ignorar detalles de hardware.
Creado por • En la mayor parte de casos a la
vez permitía la escritura de
programas de modo que el
compilador pudiera aprovechar el
hardware.

Registrado
• AT&T, aplico un costo
por razonable.
Minix, un SO semejante a UNIX creado por Andrew Tanenbaum con
fines educativos.
1991 Torvalds usó la PC basada en INTEL 368, empezó a añadir
Usando el compilador C
en MINIX para
características y finalmente escribió un nuevo SO. desarrollarlo.
El núcleo de LINUX no
tiene código UNIX o MINIX.
En poco tiempo LINUX se volvió un SO real. Es solo un núcleo de un
SO.
Linux no es marca registrada de ni una sola compañía. Linux y el El código fuente esta disponible
software GNU son proyectos de fuente abierta. de forma gratuita alentando a
usuarios a corregir el código y
mejorarlo.

La primera vez que Numeración del


Código libre de
LINUX se puso a numero de
LINUX
disposición. versiones

• Se requería que los usuarios • Es gratis, y al mismo tiempo, • La versión preliminar que
fueran expertos en LINUX. cualquiera puede hacer una lanzó Torvalds fue la versión
• Conocer que bibliotecas y copia del sistema y venderla. 0.
ejecutables eran necesarios. • La versión actual es la 2.
Organización Básica de LINUX
Significa que todo el núcleo está
cargado en un programa único
Linux usa que contiene todos los módulos
un núcleo
monolítico del SO.

Todo el código del SO se ejecuta en modo


supervisor, de modo que cualquier erros Cada
provoca problemas drásticos. modulo
Los riesgos Organización tiene
Si los diseñadores no tienen cuidado, el en este
enfoque básica de acceso
código fuente puede volverse Linux directo a
son varios
complicado. cualquier
función
El hecho de agregar soporte para nuevos
dispositivos se vuelve cada vez más difícil
con un núcleo monolítico.

SO
monolíticos
son más
rápidos SO
con micro
núcleos.
Módulos Que Cargan Dinámicamente
Linux fue
previsto como
un proyecto
simple y
sencillo.

El núcleo
básico
contiene una
cantidad
mínima de
funcionalidad
crear mejoras
al sistema
Linux Módulos que se
cargan
dinámicamente

Vinculados con
el núcleo y
estructuras de
datos

Linux un
proyecto de
fuente abierta
Manipuladores De Interrupciones

La manipulación
de dispositivos en
Linux es
controlada por
interruptores.

Los interruptores
de Hardware son
mecanismos
mediante el cual
el hardware
notifica al sistema
operativo de
eventos
asincrónicos.
E
Un adaptador
J recibe un
paquete
E
M genera

Interrupción
P
L
para
O S.O DETENGA
SUS ACCIONES

y
Atienda el
paquete
recién llegado
O
T
Cantidad de
R procesamiento para
atender el paquete puede
O ser extensa
S

El procesamiento del
paquete puede ser menos
importante que cualquier
otro proceso que el S.O
estuviera ejecutando
Están basados en una organización llamada Mitad Superior o de la Mitad
Inferior.

Mitad Superior
• Consta de procesos que deben ocurrir de inmediato

Mitad Inferior
• Consta de procesos que pueden llevarse a cabo a un ritmo mas
pausado
Tasklet
Es un rediseño de una
mitad inferior

Pueden ejecutarse en mas


de un procesador en un
entorno con múltiples CPU
Árbol de Directorio del Sistema de Archivos

• Linux posee una fuerte orientación alrededor


del sistema de archivos.
• No todas las cosas que aparecen en el sistema
de archivos son archivos.
Ejemplo:
- Los directorios proc y dev no son
directorios.
- Representan procesos en ejecución y
dispositivos hardware en el sistema.
ENTORNO DEL SO MULTIUSUARIO

Un sistema operativo multiusuario es un tipo de sistema al cual pueden


acceder muchos usuarios. Un ejemplo de ello es Linux.

Cuando varios usuarios acceden al sistema al mismo tiempo, se requiere la


identificación de cada uno de ellos para proteger sus respectivos archivos.

El usuario debe entrar a una computadora con una identificación de


usuario y una contraseña.

El sistema debe poseer mecanismos para compartir archivos de interés de


un grupo de usuarios en ciertos casos.
Permisos para Archivos
Comando ls:
Enumera el contenido de un directorio.

Lectura

Escritura Ejecución
Bloques de Control de Archivos

 Varios procesos podrían estar


trabajando con algunos de los mismos
archivos..

 La estructura esta en dos partes para


admitir este uso con un minimo de
duplicación de informacion.

 Cada proceso tiene una tabla de


archivos abierta por proceso.
Procesos e Hilos de Ejecución

Tareas de Linux
 Linux no distingue entre procesos e hilos(tareas).
 FORK, llamada para crear un proceso hijo a partir de un padre, en UNIX.
 Clone, llamada para crear un proceso hijo a partir de un padre, en LINUX.
 Linux debe administrar llamadas normales de UNIX, aunque clone no
proporciona funcionalidad idéntica.
Banderas de llamada clone de linux

 CLONE_VM Memoria compartida.


 CLONE_FILES Descriptores de archivos.
 CLONE_SIGHAND Manipuladores de señales compartidas.
 CLONE_VFORK Permite al hijo enviarle una señal al pare al salir.
 CLONE_PID Comparte el PID(identificador de proceso).
 CLONE_FS Comparte el sistema de archivos.

Estas indican al SO cuales de estos segmentos han de compartirse entre el


proceso padre e hijo.
Multitarea Apropiada

Cuando un usuario único


está ejecutando varios
programas, solo uno de
ellos puede ser
interactivo.

pero si un sistema de
múltiples usuarios, un
programa que está en
ejecución para un solo
usuario no debe poder
tomar la CPU y ejecutar
se de manera indefinida.
Esto significa que cuando un sistema operativo
empieza a ejecutarse un proceso observa un
En general todos los sistemas operativos
cronometro de modo que el sistema operativo se
modernos usan apropiación, excepto en algunas
interrumpe si el proceso se demora mucho
partes del sistema operativo implementadas en
tiempo. esto impide que un proceso único
el hardware de tiempo real.
obtenga el control del CPU. con lo cual se
mantienen la ejecución de otros procesos.
Multiprocesamiento Simétrico
Son aquellos que se
ejecutan múltiples
CPU EN UN SISTEMA
UNICO. A SIDO USADA
EN SISTEMAS QUE NO
DISPONIAN DE
SUFIENTE PODER de la
CPU para ejecutar toda
la carga del proceso. el
multiprocesamiento es
una opción más capas y
Este sistema menos costosa. Ya que es el único
tiene la opción sistema que
puede compartir
de ignorar muchos
algunas componentes de
hardware
complicaciones costosos.
implicadas en 2
CPU a la vez.

El sistema
operativo se
Multiproces ejecuta solo en
amiento el CPU
asimétrico designado. las
otras CPU solo
ejecutan
aplicaciones.
FIN