Está en la página 1de 58

Introducción a los

Sistemas Operativos
El Sistema Operativo 1

• H.M. Deitel : "Un sistema operativo consiste en una serie de programas,


dispuestos en forma de software o en la memoria fija que hacen al hardware
utilizable. El hardware provee poder computacional básico. Los sistemas
operativos ponen ese poder convenientemente a disposición del usuario".
• Stallings (2001): Un Sistema Operativo es un “programa” que actúa como
interface entre el usuario y el hardware de un ordenador, ofreciendo el entorno
necesario para que el usuario pueda ejecutar programas.

Programas de usuario

Sistema Operativo

Hardware
El Sistema Operativo 2

• Conjunto de programas ponen los recursos hardware al servicio de los


usuarios garantizando una gestión la segura y eficaz.
• Conjunto que procesos que se encuentran entre el hardware y el usuario y
aplicaciones.
• Entorno para mantener y ejecutar programas. Conjunto de compiladores y
herramientas que permiten desarrollar y depurar el código, etc.
• Interface eficaz y amigable para la comunicación con el sistema
 Gestión eficiente de los recursos
 Tolerancia a fallos.
Las Máquinas de Babbage

• Primera computadora 1820, Charles


Babbage (1792-1871): Sin sistema operativo.
• Máquina diferencial de Babbage y de su
socia, la matemática británica Augusta Ada
Byron (1815-1852), hija del poeta inglés
Lord Byron.
• Considerada por muchos como predecesora
directa de los modernos dispositivos de
cálculo, la máquina diferencial era capaz de
calcular tablas matemáticas.
• La máquina analítica, ideada también por
Babbage, habría sido una auténtica
computadora programable si hubiera contado
con la financiación adecuada.
• En 1991, un equipo del Museo de las
Ciencias de Londres consiguió construir una
máquina diferencial Nº 2 totalmente
operativa, siguiendo los dibujos y
especificaciones de Babbage.
Tarjetas perforadas: El Telar

• En 1870 el filósofo y matemático alemán


Gottfried Wilhelm Leibniz perfeccionó esta
máquina e inventó una que también podía
multiplicar.
• Joseph Marie Jacquard, diseña un telar
automático, utilizó delgadas placas de
madera perforadas para controlar el tejido
utilizado en los diseños complejos.
• Durante la década de 1880 el estadístico
estadounidense Herman Hollerith concibió la
idea de utilizar tarjetas perforadas, similares
a las placas de Jacquard, para procesar datos.
Hollerith consiguió compilar la información
estadística destinada al censo de población de
1890 de Estados Unidos mediante la
utilización de un sistema que hacía pasar
tarjetas perforadas sobre contactos eléctricos
Generación 1 (1938-1953)
 Válvulas de vacío.
 Carente de sistema operativo.
 Enormes, costosas, alto consumo, poca duración
operando (2horas) y lentas (ms).
 Arquitectura Von Neumann: descomposición en unidades
funcionales (E/S, un. de control, memoria), representación binaria,
programa en memoria
 Colossus (1937-1942).
• Diciembre de 1943, Bletchley Park, Londres, equipo dirigido por Alan
Turing el primer ordenador digital totalmente electrónico: el Colossus.
• 1.500 válvulas.
 ABC 1945.
• En 1939 (independiente de este proyecto), John Atanasoff y Clifford
Berry construyen un prototipo de máquina electro-mecánica en el Iowa
State College (EEUU).
• 18.000 válvulas de vacío
• Velocidad de cientos de operaciones por minuto,
• Debía ser programado manualmente.
ENIAC (1943-1946)
Electronic Numerical Integrator and Computer .

 Calculador e integrador numérico digital electrónico (ENIAC), basado en el


ordenador Atanasoff-Berry (ABC, Electronic Numerical Integrator and
Computer), patente válida hasta .1973
 17.468 válvulas de vacío, 20 registros hechos con válvulas.
 32 toneladas de peso, 2,40 de ancho y 30 metros de largo.
 Las instrucciones se almacenaban dentro de una memoria.
ENIAC

• El calor de las válvulas elevaba la temperatura


del local hasta los 50º.
• Para efectuar diferentes operaciones, debían
cambiarse las conexiones (cables) como en las
viejas centrales telefónicas, lo cual era un trabajo
que podía tomar varios días.
• Era capaz de calcular con gran velocidad la
trayectorias de proyectiles, principal objetivo
inicial de su construcción.
• En 1,5 segundos podía calcular le potencia 5000
de un número de 5 cifras.
• ENIAC podía resolver 5,000 sumas y 360
multiplicaciones por segundo, pero su
programación era terriblemente tediosa y debía
cambiársele de tubos continuamente.
Los Mark

• 1944: Manchester Mark I (primer


sistema totalmente digital,
programa almecenado
digitalmente), Whirlwind en el
MIT .
 5 toneladas, 500 millas de cable, Una
multiplicación en 3 segs.
• 1947 : Harvard Mark II, basado en
relés y con almacenamiento en disco
magnético)
 Desarrollado para la Marina de USA.

• 1953: Memoria de núcleos de ferrita.


Primer sistema de almacenamiento
fiable.
Mark II
UNIVAC

1951 : UNIVAC
• Creado para la oficina del censo.
• Procesamiento de datos.
• 1953 Edvac, IBM 701
Generación 2 (1954-1963):
Transistor y procesamiento por lotes.

 Monitor residente, precursor del


Sistema Operativo.
 RCA 501 (1959) primero computador
con SO.
 El transistor, creado en 1947
revoluciona los sistemas.
• 1955 : IBM 650
 Primer ordenador producido en serie.
 Tarjetas perforadas.
 Memoria de tambor magnético.
 Palabras de 10-digitos decimales.
 Cada instrucción con dos direcciones: operador y de la siguiente
instrucción.
Almacenamiento

• 1956 : IBM comercializa


el primer disco duro
RAMAC 305 (Random
Access Method of
Accounting and Control).
• Basado en 50 discos de 61
cm de diámetro y una
capacidad de
almacenamiento de 5 MB.
Integración

• 1958 : Demostración de primer


circuito integrado Texas
Instruments.
• 1961 : Comercialización de los
primeros circuitos integrados
fabricados en serie por Fairchild.
• 1963 : Teletype desarrolla la
primera impresora de chorro de
tinta: la Teletype Inktronic. La
version commerciale de cette
imprimante disposait de 40 buses
fixes permettant d'imprimer des
caractères ASCII 80 columnas, 1200
baudios.
Generación 3 (1964-1972):
Circuito integrado y multiprogramación.

• Chips, Interrupciones, canales de I/O, DMA, memoria cache,


protección de MEM y microprogramación.
• Desarrollo de MULTICS  UNIC  UNIX.
• Durante el desarrollo del proyecto, la programación de una vieja
computadora PDP para hacer un “juego” y “jugar” da lugar al lenguaje
de programación C.
Ley de Moore
• 1965: Gordon Moore enuncia la Ley de Moore:
• El número de transistores disponibles para construir o poblar un
circuito integrado de silicio se duplica cada dos años.
• Lograr este crecimiento exponencial en la densidad de los transistores
requiere que el tamaño de los transistores se reduzca cada vez más.
• Esta constante reducción trae como
resultado menores costos y un mayor
rendimiento de los dispositivos de silicio
construidos con estos transistores
de menor tamaño.
• No hubo previsión de problemas:
 Temperaturas.
 Efectos quánticos.

1965 : ILLIAC IV: Fiasco de IBM


 No funcionó hasta 1975.
 64 procesadores, 1MB.
 Previsto para 1000 Mflops solo rindió
a 15 MFlops.
• 1967 : IBM construye el primer lector de
disquetes.
• 1968 : Douglas C. Engelbart de
Stanford Research Institute, primera
demostración de un entorno basado en
windows trabajando sobre souris.
Procesador de texto, un sistema basado
en hipertexto y sistema de trabajo
colaborativo en grupo.
• 1968 : Burrough primer ordenador
basado en circuitos intégrados, B2500 y
B3500.
• 1969 : Creación de la norma RS232.
• 1970 : Primera memoria Intel capaz de
almacenar el equivalente de 1024
núcleos de ferrita en un espacio de 0.5
mm (1kBit en 128 octetos)
Intel crea Microprocesadores

• Noviembre 1971 : Intel vende el


primer micro 4004.
 Procesador de 4 bits y 108 KHz
Memoria de 640 octetos
60000 instructiones por segundo
2300 transistores en tecnología de
10 micras
Precio : 200 US $
• 1972 : Intel primer microporcesador
de 8 bits, 8008.
 Procesador de 8 bits a 200 KHz
Direccionando 16 KB de memoria
60000 instrucciones por segundo
3500 transistores en tecnología de
10 micras
Generación 4 (1972-1987): Microprocesador.

• Mayo de 1973: Primer microordenador, basado en IBM8008.


 Circuitos LSI y VLSI
• Abaratamiento del producto: generalización.
• Sistemas con multiprocesador.
• Sistemas de red (LAN, Internet). Grandes memorias.
Interfaces gráficas.
• Sistemas Operativos estándar (UNIX, MS-DOS, Windows...).
• Lenguajes lógicos, funcionales...
Algunos hitos
• 1968 : Primera simulación/ rendering 3D.
• 1971 : Gary Starkweather primera impresora laser
Xerox PARC.
• 1972 : Primer lector de disquettes 5" 1/4. 1973 : IBM inventa
los discos de tipo Winchester.
• 1974 : Motorola comercializa el primer microprocesador de 8
bits, el 6800
• 1974 : RCA comercializa el procesador 1802 con una
velocidad de 6.4 MHz. Considerado el primero de arquitectura
RISC (Reduced Instruction Set Computer).
• 1976 : Texas Instruments comercializa el primer micro a 16
bits: el TMS 9900.
• 1976 : Zilog comercializa el micro Z80, de 8 bits a 2.5 MHz.
• 1978 : Intel empieza la comercialización del micro 16 bits
8086 a 4.77 MHz.
 29000 transistores en tecnología de 3 micras, 1 MB de
Ram. Capacidad de 0.33 MIPS y un coste de 360 $.
• 1982 : Sony presenta el prototipo del primer lector de
disquetes 3"1/2.
• 1982 : Sony y Phillips anuncian el formato CD Audio y CD-
ROM.
Tipos de microprocesadores

• CISC: maneja bit a bit. Es el más


habitual y posee un conjunto amplio y
complejo de instrucciones incluso para
los ordenadores más grandes, fue
comercializado por la compañía INTEL.
Hoy en día hay dos grandes fabricantes
de microprocesadores CISC: INTEL
(con dos gamas, Pentium y Celeron) y
AMD (con dos gamas, Athlon y Duron).
• RISC: maneja “agrupaciones” de bits. El
microprocesador de tipo RISC se utiliza
para ordenadores más sencillos y
reducidos en funciones, por lo que
resulta más barato que los anteriores. Un
ejemplo es el Power PC desarrollado por
Motorola IBM, los chips de IBM y de
HP.
Intel vs. Motorola

• 1974 : Motorola comercializa el • 1971 : Intel vende el primer micro


primer microprocesador de 8 bits, el 4004.
6800 • 1972 : Intel primer microporcesador de
• 1979 : Motorola lanza el 68000, 8 bits, 8008.
con un micro de 16/32 bits con el • 1982 : Intel lanza el micro 80286 de 16
equivalente de 68000 transistores. bits a 6 MHz, con 134000 transistores,
• 1984 : Motorola anuncia el micro una capacidad de proceso de 0.9 MIPS,
de 32 bits M68020. direccionando una memoria de 16 MB.
• 1986 : Primer micro RISC, MIPS Un coste de 360 $.
R2000, a 8 MHz y una capacidad de • 1985 : Intel lanza el micro de 32 bits
computo de 5 MIPS. 80386DX a 16 MHz. 275000
transistores y un direccionamiento de 4
GB de memoria. Coste de 299 $.
Generación 5 (1988-)

 Computación paralela.
 Generalización de Internet.
 Sistemas de red. Sistemas
distribuidos.
Generaciones/revoluciones en Computación

• Primera computadora, Charles Babbage (1792-1871): Sin sistema operativo.


• Generación 1 (1938-1953):
 Válvulas de vacío.
 Sin SO.
 Enormes, costosas, alto consumo, poca duración
operando (2horas) y lentas (ms).
 Colossus (1937-1942) y ENIAC (1943-1946)
• Generación 2 (1954-1963): Transistor y procesamiento
por lotes.
 Monitor residente, precursor del SO.
 RCA 501 (1959) primero computador con SO.
• Generación 3 (1964-1972):
Circuito integrado y multiprogramación.
 Interrupciones, canales de I/O, DMA, memoria cache,
protección de MEM y microprogramación.
 Desarrollo de MULTICS  UNIC  UNIX.
• Generación 4 (1972-1987): Microprocesador.
 Abaratamiento del producto: generalización.
 Sistemas con multiprocesador.
 Sistemas de red (LAN, Internet). Grandes memorias.
Interfaces gráficas.
• Generación 5 (1988-)
 Computación paralela.
 Generalización de Internet.
 Sistemas de red. Sistemas distribuidos.
Objetivos de diseño.

• Interfaz de usuario: llamadas y órdenes.


• Compartición de h/w entre usuarios.
• Compartición de datos entre usuarios.
• Protección de los usuarios.
• Planificación de recursos.
• Facilidad de E/S.
• Recuperación frente a errores.
• Contabilidad de uso.
• Facilidad de operaciones paralelas.
• Organización de datos para acceso rápido y seguro.
• Gestión de comunicaciones de red.
Estructura jerárquica del sistema operativo.

• Introduce simplicidad en el diseño y operación con sistemas


operativos.
• Se abordan los problemas en escalones.
• Cada capa ofrece servicios a las capas superiores y esta los recibe de
los inferiores
• Se trasladan los servicios de la capa inferior a la capa superior.
• Ventajas:
 Los detalles de cada capa no son visibles a los demás.
 Las herramientas que se crean en una determinada capa son utilizables por
el resto.
 El sistema puede evolucionar con mayor facilidad.
 Cada capa se puede comprobar y codificar independientemente.
Implementación jerárquica.

• Nivel de gestión del procesador.


 Compartir la CPU entre los distintos procesos.
 Sincronización de procesos, conmutación de la CPU, IRQ, configuración y arranque inicial del
sistema.
• Nivel de gestión de la memoria.
 Repartir la memoria entre los distintos procesos.
 Realiza control del acceso a las regiones de memoria y gestiona las asignaciones.
• Nivel de gestión de procesos.
 Gestión de procesos.
 Creación, destrucción, comunicación, etc. de procesos.
•  Nivel de gestión de dispositivos.
 Creación de procesos de I/O,
asignación de dispositivos de I/O.
• Nivel de gestión de información.
 Gestión del espacio de nombres lógicos.
 Protección de la privacidad.
 Manejo de ficheros.
Conceptos básicos.
1.2 El núcleo: Concepto.
• Tiene una fuerte dependencia del hardware que se emplea.
• Es la parte más dependiente del hardware del SO.
• Modelos de diseño: Monitores monolíticos y Micronúcleo.

 Funciones.
 Tratamiento de interrupciones: (oculta a las capas superiores).
 Conmutación de procesos en la CPU: Rutinas para la gestión de los procesos.
 Comunicación entre procesos.
 Carga inicial y activación de la configuración del sistema.
 Protección: Protección de I/O, protección de memoria, protección de la CPU.
Conceptos básicos.
1.2 El núcleo: Protección.
1. Protección de I/O:
 Códigos de control en la entrada ==> el sistema retoma el control de la máquina.
 El usuario no ha de gestionar I/O.
 Las instrucciones de I/O se realizan mediante llamadas al sistema que se ejecutan en
modo supervisor (Modo Dual de Ejecución).
2. Protección de memoria.
 Ningún programa de usuario puede hacerse con el control del sistema. El sistema
operativo SI tiene un acceso total a la memoria de la máquina.
 Toda interrupción o llamada al sistema ha de ser ejecutada en modo supervisor
(Modo Dual de Ejecución). Esto reclama protección en el vector de interrupciones y
sus rutinas (zonas de MEM bajas).
 Control en registros base, límite, tablas de página, etc.
3.  Protección de la CPU.
 Temporizador: Impide que cualquier programa monopolice el uso de la CPU. Cada
cierto intervalo de tiempo (1/60 s) el control es transferido al monitor del sistema.
Conceptos básicos.
1.2 El núcleo: Modos de ejecución.
• Existe instrucciones restringidas asociadas a la lectura o modificación
de registros de control (modo privilegiado o supervisor o modo núcleo,
o modo sistema o modo de control).
 Gestión de procesos.  Creación y terminación de procesos.
 Gestión de la memoria  Planificación.
 Sincronización y comunicación de
 Gestión de la I/O
procesos.
 Gestión de las IRQ.  Gestión de bloques de control de
 Contabilidad. proceso.

• El modo con menores privilegios es el modo usuario.


Conceptos básicos.
1.2 El núcleo: Modos de ejecución.
• Existe instrucciones restringidas asociadas a la lectura o modificación
de registros de control (modo privilegiado o supervisor o modo núcleo,
o modo sistema o modo de control).
 Gestión de procesos.  Asignación de espacios de direcciones a
 Gestión de la memoria procesos.
 Swapping.
 Gestión de la I/O  Gestión de páginas y segmentos.
 Gestión de las IRQ.
 Contabilidad.

• El modo con menores privilegios es el modo usuario.


Conceptos básicos.
1.2 El núcleo: Modos de ejecución.
• Existen instrucciones restringidas asociadas a la lectura o modificación
de registros de control (modo privilegiado o supervisor o modo núcleo,
o modo sistema o modo de control).
 Gestión de procesos.
 Gestión de la memoria Asignación de buffers.
 Gestión de la I/O Asignación de canales de I/O y
 Gestión de las IRQ. dispositivos.
 Contabilidad.

• El modo con menores privilegios es el modo usuario.


Conceptos básicos.
1.2 El núcleo: Modos de ejecución.
• Existe instrucciones restringidas asociadas a la lectura o modificación
de registros de control (modo privilegiado o supervisor o modo núcleo,
o modo sistema o modo de control).
 Gestión de procesos.
 Gestión de la memoria
 Gestión de la I/O
Contabilidad.
 Gestión de las IRQ.
Supervisión.
 Contabilidad.

• El modo con menores privilegios es el modo usuario.


Conceptos básicos.
1.2 El núcleo: Diseño Monolítico.
• Todo el SO Se diseña como un único módulo formado por distintas funciones que inter-
operan. Dependencias entre los componentes internos.
• Un núcleo central (monitor) permite la comunicación entre los procesos de usuario y las
I/O (Modo Supervisor).
• Comunicación entre procesos compartiendo memoria.
• La mayor parte del código del sistema operativo se ejecuta en el mismo espacio de
memoria ==> fácil corromper datos del sistema.
• Gran velocidad.
• Poca versatilidad.
• Todo el sistema se ejecuta en modo supervisor: poco robusto.
Conceptos básicos.
1.2 El núcleo: Diseño Micronúcleo.
• Núcleo reducido. Funciones en procesos de sistema externos al núcleo.
• Varios procesos de servidor: administración de memoria, creación y gestión de procesos,
planificación del procesador, gestión de interrupciones, sincronización y comunicación
entre procesos.
• Un gran número de procesos del sistema se pueden ejecutar en modo usuario.
• Comunicación mediante intercambio de mensajes. Soporte natural para el proceso
distribuido. En sistemas distribuidos son comunes las RPC llamadas a procedimientos
remotos y el intercambio de mensajes entre clientes y servidores. Los clientes no necesitan
saber si una solicitud es atendida por un servidor local o remoto
• No todos los procesos de sistema comparten el mismo espacio de direcciones.
• Mejor portabilidad / versatilidad.
• Modificación del sistema en caliente.
• Simplifica el sistema operativo base.
Conceptos básicos.
Conceptos básicos.
1.3 Interrupciones 1.
Def.: Mecanismos proporcionados por el hardware que rompen la ejecución normal de los
programas.
 Presentes en todos los sistemas.
 En todos los ordenadores: gestión de errores, desbordamientos, divisiones por cero, etc,
dispositivo está listo, proceso a espera, RESET, reloj del sistema.
 Interrupción del proceso en ejecución, pasa el control al sistema.
 En la actualidad varios canales de IRQ, distintos niveles.
 Se ordenan jerárquicamente las interrupciones para ser procesadas en orden de importancia
cuando se produce una interrupción durante la ejecución de otra (DPC y APC son los niveles más
bajos en WNT).
Tipos:
 Internas síncronas. Externas asíncronas.
• Conocidas como traps. •Son las conocidas propiamente como interrupciones.
• Las provoca el proceso en ejecución. •Se producen fuera del control del proceso de usuario.
 Llamadas al sistema. •El sistema operativo toma el control.
 Errores de ejecución. Interrupciones de reloj.
 Accesos no permitidos. Liberación de dispositivos.
 Divisiones por cero.
 Fallos de página.
Conceptos básicos
1.3 Interrupciones 2.
Pasos de una interrupción.
1. El dispositivo emite la IRQ.
2. La CPU finaliza la instrucción en curso.
3. Se identifica y confirma la existencia de la IRQ, el dispositivo del que procede y la naturaleza
de la IRQ. Se anula la señal de IRQ.
4. El hardware salva el contador del programa en la pila.
5. Se carga el nuevo contador del programa desde el vector de interrupciones.
6. Se salvan los registros.
7. Se cambia el valor del puntero de pila.
8. Se conmuta el proceso que estaba en estado de espera de esa interrupción a listo y
9. El planificador pasa a seleccionarlo para ejecución.
10. Se cede el control al nuevo proceso.
11. Tras procesar la IRQ se carga el estado del proceso interrumpido.

Nota: En muchos casos procesar una IRQ no implica el cambio de contexto del proceso.
Conceptos básicos.
1.4 Llamadas al sistema.
Def.: Interface normalizada entre el sistema operativo y proceso.
• Acceso controlado a los servicios de nivel bajo.
• Después de recibir la llamada el SO recupera el control.
• Tipos:
 Control de procesos y trabajos: Ordenes para la creación, destrucción, ejecución, etc.
de procesos.
 Manipulación de ficheros: Ordenes dedicadas a borrar, leer, escribir,, abrir, cerrar, etc.
, ficheros.
 Manipulación de dispositivos: Peticiones de atributos, estado (ocupado/libre), lectura,
escritura, etc. de dispositivos.
 Mantenimiento de información: Fecha, hora, datos y variables del sistema, atributos
de dispositivo y de ficheros, etc.

Las llamadas al sistema más comunes (sólo en UNIX) realizadas mediante C son:
Abrir: int open (char *fichero, int modo);
Cerrar: int close (descriptor);
Crear: int creat (char *fichero, int modo);
Borrar: int unlink (char *fichero)
Leer y escribir: int read (int descriptor, char *buff, ,int nbytes);
int write (int descriptor, char *buff, ,int nbytes);
Conceptos básicos.
1.4 Llamadas al sistema.
• Programas para la resolución de problemas corrientes. Entorno más adecuado
para la ejecución de los programas.
• Manipulación de ficheros: Crear, copiar, destruir, listar ficheros y directorios.
• Información de estado: Fecha, hora, cantidad de memoria disponible, espacio
en disco, número de usuarios, etc. La información se formatea y se visualiza.
• Modificación de ficheros: Editores de textos.
• Soporte a lenguajes de programación: Compiladores, ensambladores,
linkadores.
• Carga y ejecución de programas: Depuradores y cargadores en memoria.
• Aplicaciones: Sistemas de bases de datos, sistemas de gráficos, procesadores
de texto, sistemas de análisis estadístico, etc.
• Interprete de comandos es el programa más útil de los que acompañan al
sistema operativo. Su función es la de captar el siguiente comando en la línea
de ordenes y realizar su ejecución.
Conceptos básicos.
1.4 Llamadas al sistema:
Ej.: Programa de lectura de datos de un fichero y escritura en otro.
.  Se arranca el programa (llamada al sistema): necesita los nombre de archivos de
entrada y salida. Si el programa pregunta por los nombre, escribe la petición en
pantalla (llamada al sistema) y leerla del teclado, o leerla del dispositivo de entrada
(llamada al sistema).
 Apertura del fichero de entrada y creación del de salida (llamadas al sistema)
 Si se generan errores (archivo1 no existe o disco lleno) (llamada al sistema).
 Si el fichero de salida existe se puede borrar (llamada al sistema) y se crea uno
nuevo (llamada al sistema), o bien se pide otro nombre al usuario (llamadas al
sistema para salidas por monitor y recogida de información).
 El copiado de los ficheros se hace mediante llamadas al sistema para la lectura y otras
para la escritura.
 El proceso se finaliza (llamada al sistema) con las ordenes de cerrar archivos y
terminación del proceso (llamadas al sistema).
Conceptos básicos.
1.5 Programas de sistema.
Programas para la resolución de problemas corrientes. Entorno más adecuado
para la ejecución de los programas.
 
 Manipulación de ficheros: Crear, copiar, destruir, listar ficheros y directorios.
 Información de estado: Fecha, hora, cantidad de memoria disponible, espacio en
disco, número de usuarios, etc. La información se formatea y se visualiza.
 Modificación de ficheros: Editores de textos.
 Soporte a lenguajes de programación: Compiladores, ensambladores, linkadores.
 Carga y ejecución de programas: Depuradores y cargadores en memoria.
 Aplicaciones: Sistemas de bases de datos, sistemas de gráficos, procesadores de texto,
sistemas de análisis estadístico, etc.
 Interprete de comandos es el programa más útil de los que acompañan al sistema
operativo. Su función es la de captar el siguiente comando en la línea de ordenes y
realizar su ejecución.
Conceptos básicos.
1.5 Programas de sistema.
Comandos
 Pueden estar implementados en el código del interprete (él hace la llamada
al sistema).
 Pueden estar implementados en archivos especiales.
 En este último caso ha de existir un mecanismo para que el interprete de
comandos le pueda pasar argumentos al programa comando.

Shell
 Las SHELLs no pertenecen al SO. Están al nivel de los compiladores,
linkadores, ensambladores, etc.
 El nombre SHELL es el nombre del interprete de comandos del UNÍS. En
DOS recibe el nombre de COMMAND.COM.
 La salida y entrada standard es la terminal.
 Los comandos son ejecutados como procesos hijos.
2. Procesos .

2.1 Introducción (1).


• La primera idea de proceso surge tras el MULTICS (1968).
• El sistema ha de gestionar y controlar los procesos.
• Definiciones.
 Programa en ejecución.
 Instancia de un programa funcionando en el ordenador.
 Entidad que puede ser asignada a un procesador y ejecutada por él.
 Es el conjunto formado por el programa ejecutable, pila, datos, punteros y todo lo necesario para hacer
correr un programa.
 Unidad de actividad. Ejecución secuencial, estado actual y recursos asignados.
• Se busca:
 Mejor aprovechamiento de los recursos físicos.
 Mejor compartición de recursos lógicos.
• Creación de un proceso se realiza por (por la emisión de un trabajo).
 Login del user.
 Lanzado por lotes.
 Creado por el SO. Para un servicio.
 Generado por un proceso.
2. Procesos.
2.2 Partes de un proceso.
• Partes del proceso.
 Programa ejecutable.
 Datos. Variables, buffer, etc.
 Contexto. Información para la
administración del proceso por
parte del SO. Registro de contador
y datos en la CPU.
 PCB o Bloque Control Proceso
• Ubicación.
 Imagen.
• Constituida por el programa y los datos.
• Formada según el esquema de gestión de la MEM del sistema.
 Para un bloque contiguo:
• Datos de usuario (modificable).
• Programa a ejecutar (programa de usuario).
• Pila del sistema (LIFO). Para el retorno de las llamadas al sistema y a procedimientos.
• Bloque de control del proceso (PCB).
2. Procesos.
2.3 Conceptos asociados a proceso.
• Multiprogramación: Varios procesos simultáneos (pseudoparalelismo) para
compartir recursos y CPU buscando eficiencia.
• Tiempo compartido. Sistema sensible a las necesidades del usuario. Varios
usuarios.
• Planificación: Proceso Planificador y Scheduler
 Distribución adecuada del uso del tiempo de la CPU, equitativa para todo proceso.
 Eficiencia: Mantener ocupada la CPU al 100%.
 Tiempo de respuesta mínimo para las peticiones que los usuarios realizan (tiempo
real).
 Mínimo tiempo de respuesta para la realización de trabajos.

 Número máximo de trabajos por unidad de tiempo.


Planificación de procesos
Planificación.
• FirstCome-FirstServerd
• Round Robin.
• Shortest Job First
• Prioridades.
• Prioridades múltiples colas.
2. Procesos.

2.4 Pasos en la creación de un proceso (1).


• Asigna un identificador único (id).
• Asigna espacio. Imagen del proceso (proceso+datos).
• Inicia el PCB. El estado es de listo, el resto de los valores es dado por
defecto o nulo.
• Enlaces. Se generan e insertan en las colas de planificación.
• Crean o amplían las estructuras de datos.
2. Procesos.
2.4 Pasos en la creación de un proceso (2). Atributos.
.• Identificador de proceso (único). Será utilizado en las referencias al proceso a MEM,
comunicaciones, sistema de archivos, etc.
• Estado (información) del procesador.
 Registros de la CPU:
 Visibles por el usuario.
 Control y estado:
• Contador de programa.
• Estado de esperas por IRQ.
• Códigos de condición: resultado de operaciones aritméticas.
 Puntero a Pila.
• Inf. control de proceso.
 Planificación: Estado, prioridad, suceso en espera, alg. de planificación.
 Estructuración (enlaces a otros procesos, similares o padre-hijo).
 Comunicación. Almacenamiento de Señales, mensajes enviados.
 Privilegios. MEM, instrucciones, recursos.
 Punteros a MEM, tablas de páginas, segmentos, etc.
 Recursos asignados, historial.
• Área de salvaguarda de registros (c. de contexto).
2. Procesos.
2.5 Estados de un proceso (1).

1. El proceso no puede continuar la ejecución. Realiza una llamada al sistema y este lo


descarga.
2. y 3. El planificador decide descargar o cargar el proceso. La elección del proceso a entrar en
la CPU se realiza solo de entre los procesos que están listos para ejecución.
4. El proceso sale de su bloqueo/espera, se lo notifica al sistema operativo y pasa a formar
parte de la cola de procesos listos para ejecución.
2. Procesos.
2.5 Estados de un proceso (2).
• Observaciones:
 Los procesos pasan la mayor parte de su vida esperando por una I/O.
 Los procesos en ejecución ocupan memoria.
 El grado de multiprogramación en relación con la capacidad de la CPU es bajo.
 Solución: Intercambio (swap).
• Def. Intercambio (swapping) es el desplazamiento de un proceso de memoria
principal al disco duro.
• Es necesario un planificador de la carga y descarga de procesos de memoria a
disco.

• Proceso Suspendido:
 No estará disponible de inmediato para su ejecución.
 Proceso situado en Suspendido por el SO o por él mismo para evitar su ejecución.
 Un proceso que no puede liberarse del estado hasta que se le ordene.
 Para un proceso Suspendido el cambio de bloqueado a listo no implica que deje de
estar Suspendido.
Actuaciones del Sistema sobre los procesos

 Crear (carga de programa e inicio de ejecución)


 Destruir (fin de la ejecución)
 Suspender
 Reanudar
 Cambiar prioridad
 Bloquear (pasaje de ACT a BLOQ)
 Despertar (pasaje de BLOQ a LISTO)
 Despachar (pasaje de LISTO a ACT)

• Suspensión.
 Equilibrar la carga del sistema (ante sobrecargas)
 En lugar de abortar un proceso que puede estar funcionando mal.
 del sistema)
 proceso suspendido no puede proseguir hasta que otro lo reanude.
2. Procesos.
2.5 Estados de un proceso (3).
Cambio de proceso.
• Interrupción.
 Interrupción de reloj: Finalización del tiempo concedido por el sistema.
 Interrupcuón de I/O: Modificación del estado de procesos en ejecución a bloqueado o
liberación de los procesos en espera.
 Fallo de memoria.
• Traps.
 Error o condición excepcional.
 Provocadas por el proceso en curso.
 Fatal  terminación de proceso.
• Llamada del supervisor / llamada al sistema.
Pasos en un cambio de proceso:
1. Salvar el contexto del procesador (contador y registros).
2. Actualizar el Bloque de C. del proceso en ejecución (estado de ejecución a listo o
bloqueado, etc.) junto con info. de la razón del cambio.
3. Mover el BCP a la cola apropiada a su estado.
4. Seleccionar otro proceso para ejecución.
5. Actualizar el BCP del proceso seleccionado (modo ejecución).
6. Actualizar la información de la gestión de la memoria.
7. Restaurar el estado del procesador para el nuevo proceso.
2. Procesos.
2.6 Hilos o threads (1).
 Los procesos comunes son independientes, con espacios de memoria separados. En determinadas ocasiones
se necesita que los procesos colaboren.

 Def. Entidad básica de ejecución que únicamente posee como propio el contador de programa, los registros
del procesador y la pila.
 Los hilos pertenecen a una unidad de mayor nivel, la tarea.
 La tarea carece de capacidad de ejecución, pero dispone de recursos. La tarea en ejecución ha de poseer al
menos un hilo.

 Proceso = tarea con único hilo

Ventajas:
 Menor coste de creación: Menores estructuras de información. Recursos de la tarea.
 Cambio de contexto dentro de la tarea es poco costoso.
 Comunicación ágil (MEM). No interviene el núcleo.

Estructura.
 Área de programa (RO) de instrucciones.
 Área de datos o variables (RW).
 Heap para asignación dinámica de MEM. Compartida.
 Pila para cada hilo
Proceso Hilo
2. Procesos.
2.4 Hilos o threads (2).
Los hilos. • Elementos por hilo
• Estado de ejecución.  Contador de programa
• Contexto del procesador.  Pila
• Pila de ejecución.  Conjunto de registros
• Variables locales.  Hilos hijos
• Acceso a MEM y variables del proceso.  Estado
• Elementos por proceso
 Espacio de direcciones
 Variables globales
 Archivos abiertos
 Procesos hijos
 Cronómetros
 Señales
 Semáforos
 Información contable

También podría gustarte