Está en la página 1de 28

SISTEMAS OPERATIVOS

DEFINICION
Un sistema operativo es el software principal o conjunto de programas cuya
característica fundamental es administrar los recursos de la computadora, esto es el
hardware y el software.
PROPÓSITO DEL SISTEMA OPERATIVO

 Compartir eficientemente los recursos del computador entre los usuarios y los
procesos.
 Estos recursos son:
 Procesador (CPU): Ejecuta procesos.
 Dispositivos de Almacenamiento: Almacena procesos, información,
archivos, etc.
 Módulos de Entrada/Salida (I/O): permiten sacar información del
computador hacia el mundo externo y viceversa.
 Bus del Sistema: promover comunicación entre todas las partes del PC.

DIAGRAMA DE LOS PRINCIPALES COMPONENTES DE UN PC

CPU Main Memory

System Bus
PC MAR

IR MBR Instrucción

Instrucción
I/O AR
Execution
Execution
unit
I/O BR
unit
Data

Data
I/O MODULE

BUFFERS

REGISTROS: PC, IR, MAR, MBR, I/O AR, I/O BR.


CPU
Los siguientes registros se utilizan para ejecutar programas localizados en la memoria
principal (main memory):
PC (Program counter)
Identificar cual es la próxima instrucción que se va a tomar de memoria principal para
que la CPU lleve a cabo su ejecución.

IR (Instruction Register)
Almacena la instrucción que se trajo de memoria principal y determina que tipo de
instrucción que estaba en memoria necesita ser ejecutada.

Execution Unit
Ejecuta la instrucción que determina el Instruction Register. Realiza tareas de
operaciones aritméticas, lógicas y otras operaciones para que los programas sean
ejecutados de forma exitosa.

Registros que tienen propósitos específicos:


MAR (memory address register) (registro de direcciones de memoria)
Contiene la dirección del dato a la que se quiere acceder para leer o escribir.

MBR (memory buffer register)


Proporciona la dirección de memoria donde se quiere almacenar o recuperar datos de
forma temporal que están en la memoria RAM.

I/O AR (I/O address register)


Proporciona información de la dirección de memoria para acceder a un dispositivo.

I/O BR (I/O buffer register)


Proporciona información de la dirección para almacenar datos de manera temporal
asociadas a un dispositivo.
MEMORIA PRINCIPAL
Es una zona del computador donde se puede almacenar los datos o instrucciones de
manera temporal, tiene direcciones que incrementan su valor de manera constante.

Main Memory

0
DISCO DURO
1 PROGRAMA QUE ESTA
USB
2 CD
Instrucción
SE CARGA EN
Instrucción

MEMORIA

Data DEJA DE SER PROGRAMA

Data Y SE CONVIERTE EN

n-2
n-1 CONJUNTO DE
PROCESO ES
INSTRUCCIONES

EVOLUCIÓN DEL MICROPROCESADOR


El microprocesador es el núcleo de un computador en donde se llevan a cabo las
diferentes tareas para procesar datos. Antiguamente los computadores no tenían
microprocesadores, tenían elementos conocidos como tubos al vacío. Con los
microprocesadores se logro reducir los costos de producción, consumo de energía y
tiempo de ejecución.
MULTICORE
CPU’s que tienen varias unidades de procesamiento en su interior. Varios
procesadores en una sola pastilla de sicilio. (2, 4 u 8 cores)
GRAPHICAL PROCESSING UNITS (GPUs)
Unidades para procesar datos multimediales (audio, video), representa el corazón o
chip de una tarjeta gráfica. Su uso inicial fue el procesamiento de imágenes hoy en día
se utiliza en muchas tareas, debido a que procesan cualquier otro tipo de datos
(arreglos, matrices, datos de base de datos), pero con ciertas limitaciones. A estos
nuevos procesadores se les conocen como manycore.

MULTICORE MANYCORE

System on a Chip (SoC)


Es un circuito electrónico que integra todos los componentes necesarios como el GPU,
el CPU, controlador me memoria, conectividad inalámbrica, un controlador USB, entre
otros. Consumen poca energía y de fácil transporte.
Permite incursionar en una nueva área conocida como IoT (Internet of Things) o
internet de la cosa, que consiste en la interconexión de un producto con cualquier otro
de su entorno.

EJECUCIÓN DE INSTRUCCIONES

Los programas de computador se encuentran en un medio de almacenamiento


permanente y su funcionamiento se define a través de instrucciones del procesador.
Una vez este en la memoria se le denomina proceso.

HALT
Extraer Ejecutar
START (Detención)
instrucción instrucción

MEMORIA
 El procesador no recibe energía
RAM
 La instrucción es la última del
programa
 Aparece un error irrecuperable
(división por cero, acceder a
región de memoria no asignada)
 Al comienzo de cada ciclo el procesador recupera una instrucción.
 El contador del programa (PC-program counter) contiene la dirección de la
próxima instrucción a recuperar.
 Las instrucciones se encuentran en direcciones de memoria contiguas, luego el
PC incrementa su valor de forma continua excepto cuando ocurren los saltos tales
como el if, que ocasiona que se incremente con un valor mayor.
 La próxima instrucción a ejecutar se almacena en el Instruction Register (IR), esta
información la lee el procesador para ejecutarla en cuatro formas diferentes:
 Procesador-memoria: Datos que se transfieren del procesador (registro)
a memoria
 Procesador – I/O. Datos que se transfieren hacia o desde un periférico
 Procesamiento de datos: Ejecución de tareas aritmético Lógicas.
 Control. Instrucción que indica que la secuencia de instrucciones se
altera.

CARACTERÍSTICAS DE UNA MÁQUINA HIPOTÉTICA

 Registros son de tamaño 16 bits.


 El formato de una instrucción se codifica: 4 bits para indicar tipo de operación y 12
bits para indicar una dirección de memoria.

3 4 15
0
Opcode Address
 Los enteros se codifican: 1 bit para el signo (+, -) y 15 bits para el valor entero

0 1 15
S Address

INTERRUPCIONES
Las interrupciones tienen como propósito interrumpir la operación del procesador
para maximizar su uso, mezclando operaciones de entrada y salida (I/O) con
operaciones de procesamiento, debido a que el procesador opera más rápido que los
dispositivos de I/O.
TIPOS
1. PROGRAM:
Son las interrupciones generadas por los programas, por ejemplo: el aritmetic
overflow (cuando se asigna valor a una variable y excede la capacidad de la
variable), división por cero, el intento de ejecutar una instrucción ilegal de la
máquina, o una referencia a una zona de memoria fuera del espacio permitido al
usuario.

2. TIMER (Temporizador):
Permite tener sistemas de múltiple procesamiento, es decir tener varios procesos
corriendo, pero el sistema va estar conmutando entre todos esos procesos. Por
ejemplo, el no permitir que ciertos procesos monopolicen el sistema.

3. INTERRUPCIONES DE I/O
Generado por un controlador de entrada y salida, para indicar que una operación
ha terminado.

4. HARDWARE FAILURE
Son ocasionadas por el mal funcionamiento del hardware, por ejemplo, si un
bloque de la memoria este fallando el sistema genera una interrupción por causa
de ese fallo.

FLUJO DE PROGRAMA SIN INTERRUPCIONES

Primera Etapa Etapa para preparar


instrucciones regulares datos que se van
almacenar

Operación de Entrada y Ejecución de la operación


Salida (escritura)
Finalizar la operación

FLUJO DE PROGRAMAS CON INTERRUPCIONES (OPERACIÓN I/O CORTA Y


LARGA)
Se realizan tareas paralelas, mientras realiza el almacenamiento de datos también
ejecuta la instrucción 2a.

INTERRUPCION
INTERRUPCIONES Y EL CICLO DE INSTRUCCIÓN

Ocurre una
Interrupción

PROCESAMIENTO DE INTERRUPCIONES

HARDWARE SOFTWARE

El controlador de dispositivo u Guarda el resto de


otro sistema hardware genera la información del
una interrupción proceso en la
memoria
El procesador termina la
ejecución de la instrucción
actual Procesa la
interrupción
El procesador indica el
reconocimiento de la
interrupción Restaura los valores
del proceso antes
El procesador apila PSW y el de la interrupción
PC en la pila de control

El procesador carga la
dirección de memoria donde Restaura los datos
está el código que va a del PSW y PC
gestionar la interrupción
MULTIPLES INTERRUPCIONES
Cuando se genera una interrupción mientras hay otra que esta siendo procesada.
Solución1 : Deshabilitar otras interrupciones
Solución2 : Dar prioridad a las interrupciones, por ejemplo: impresora tiene valor
2, el disco duro tiene valor 4 y la comunicación tiene valor 5.

JERARQUÍA DE MEMORIA
 Existen tres factores: velocidad, tamaño o capacidad y costo.
 Relaciones:
 más rápido mayor costo
 Mas capacidad menor costo y acceso más lento (cintas de tape)

1. MEMORIA DEL DISPOSITIVO: registros, memoria principal y cache


2. ALMACENAMIENTO EXTERNO: cd-rom, cd-rw, blu-ray
3. ALMACENAMIENTO OFF-LINE: magnetic type.

 En un computador tenemos registros caheRamdisco duro.


 Discos duros y medios persistentes de almacenamiento se conocen como
memoria secundaria o memoria auxiliar. (swap en Linux)

MEMORIA CACHE
 El Sistema operativo no tiene control directo sobre el uso de la memoria cache.
 El acceso a la memoria RAM es mucho mas lento que el acceso que tiene la CPU
a los registros del procesador.
 Los procesadores mejoran sus velocidades, pero no así las velocidades de la
RAM.

PRINCIPIOS DE LA MEMORIA CACHE:


 Dar acceso rápido a datos (instrucciones o datos)
 El acceso de la memoria al cache es por bloques, este hecho favorece el principio
de localidad.

CPU CACHE MAIN MEMORY


FAST SLOW
FAST

 La memoria cache tiene menos capacidad que la memoria RAM


 Cuando el procesador requiere una palabra y no la encuentra dentro de la
memoria cache, procede a buscar el bloque en la RAM que contiene la palabra.
Luego se identifica un slot en la cache para copiar el bloque de la RAM que
contiene la palabra que requiere el procesador.

DISEÑO DE CACHE
 Tamaño del cache (espacio de cache de un computador)
 Tamaño del bloque (a mayor tamaño de bloque mas datos se cargan en cache)
 Función de asociación (mapping function), determina que slot del cache se va a
usar.
 Algoritmo de reemplazo, cuando el cache esta lleno y se debe remover un slot.
 Política de escritura, cuando el bloque del cache esta sucio, es decir cundo su
valor no coincide con el valor que se encuentra en la memoria RAM.
 Número de niveles de cache.

MEMORIA DE ACCESO DIRECTO

Como hacer para que la CPU pueda acceder de forma eficiente a los datos que se
encuentran en dispositivos de entrada y salida.

1. I/O PROGRAMADO
El procesador emite una solicitud de operación de I/O al módulo encargado de
ejecutar la operación, y validará periódicamente cuando el módulo termine la
operación.

2. I/O DIRIGIDO POR LAS INTERRUPCIONES


El procesador emite una solicitud de operación de I/O al módulo encargado de
ejecutar la operación, y el módulo encargado al concluir la operación procederá a
interrumpir al procesador que deberá transmitir los datos desde el buffer del
dispositivo hasta la región de la RAM.

3. MEMORIA DE ACCESO DIRECTO (DMA – Direct Memory Access)


Se usa para mover grandes volúmenes de datos. Cuando se levanta el sistema
operativo, este le asigna al módulo de I/O (disco duro) una región de la memoria
RAM, para que cuando se emita una operación el módulo encargado (disco duro
en este caso), recoja los datos y los ponga en la memoria RAM. Una vez que el
módulo encargado termina la transferencia comunica al procesador por medio de
una interrupción que la operación ha finalizado. La ventaja en que mientras se
realiza la transferencia el procesador puede realizar otras operaciones.

ORGANIZACIÓN DE MULTIPROCESADOR Y MULTICORE

El computador se ha pensado como una máquina secuencial, sin embargo, al interior


de los computadores se desarrolla una técnica conocida como pipelining. El pipelining
es la ejecución de instrucciones en paralelo.

Naturaleza de la Instrucción:
- Instrucciones para mover datos de la memoria al procesador
- Mover datos de los dispositivos de entrada y salida al procesador
- Hacer tareas de procesamiento como suma, resta y multiplicación
- Instrucciones que se dedican hacer los saltos o condicionales.

ETAPAS:

1. Fetch: Recuperar la instrucción de la memoria


y colocarla en el procesador.
2. Decode: El procesador identifica la naturaleza
de la instrucción que trajo de memoria RAM.
3. Execute: Se ejecuta la instrucción
4. Write: Se escribe la instrucción
En la primera imagen se demora 8 ciclos de cpu mientras que en la segunda solo se
demora 5 ciclos.

CARACTERISTICAS DE UN SMP (Symmetric MultiProcessor)


 Hay dos o más procesadores similares que comparten memoria
 Los procesadores comparten acceso a dispositivos I/O
 Todos los procesadores son capaces de hacer las mismas funciones
 El sistema es controlado por un SO especial.

VENTAJAS DE UN SMP

 Rendimiento: hacer muchas tareas en forma paralela


 Disponibilidad: si un procesador falla otro procesador lo reemplaza
 Crecimiento incremental: se puede adicionar nuevos elementos
 Escalamiento: a más necesidades de cómputo se puede adquirir más unidades
de procesamiento.

COMPUTADORES MULTICORE

 Existe una sola CPU con diferentes núcleos, cada núcleo con su propia
memoria cache y una memoria cache mucho más grande que es compartida.

 Tienen ciertos elementos que permite acceder más rápido a la memoria RAM y
a los dispositivos de entrada y salida.

 DDR CONTROLLER: elimina el bus para llevar una comunicación más


rápida entre los módulos de la RAM.
 QUICKPATH: provee tecnología para llevar una comunicación más
rápida entre los núcleos.

PROCESO

 Gestionar la ejecución concurrente de procesos. (cuando dos o más procesos


comparten algún tipo de recurso o escenario).
 Problemas a la hora de gestionar múltiples procesos_
- Inadecuada sincronización
- Fallos de exclusión mutua
- Operación de programas no determinista.
- Abrazos mortales (deadlocks) (cuando un proceso no puede avanzar por culpa
de otro)

El proceso1 requiere
el recurso 2, pero le
asignan el recurso1.
El proceso2 requiere el recurso1, pero le asignan el recurso2.

Figura sobre deadlocks

GESTIÓN DE MEMORIA

 Aislamiento de procesos, los procesos no deben interferir entre ellos.


 Gestión y asignación automática de la memoria, en tiempo de ejecución el
proceso puede solicitar mas memoria al SO para almacenar datos que el proceso
requiera.
 Soporte a la programación modular, por ejemplo, las librerías gráficas que sea
compartido. Reutilizar las regiones de memoria.
 Protección y control de acceso, restricciones a zonas de memoria que
requieran ser compartidas.
 Almacenamiento de larga duración, el SO debe brindar servicios de
almacenamiento de largo plazo (disco duro, dvd, etc).

Región de memoria compartida

El proceso2 no puede acceder a una región de memoria del proceso1

Región de memoria

MEMORIA VIRTUAL
 Permite que los procesos accedan a regiones de memoria independiente de su
ubicación física.
 Procesos tienen diferentes tamaños y necesidades de memoria.
 La memoria es dividida lógicamente en páginas.
 Cuando un procesador emite la ejecución de una instrucción, esa instrucción
puede solicitar un dato de memoria, es decir solicita una dirección de memoria
virtual que a través de una unidad de gestión de memoria convierte la dirección de
memoria virtual en una dirección de memoria física.

PROTECCIÓN DE LA INFORMACIÓN Y SEGURIDAD


 Disponibilidad, evitar interrupción de acceso a datos
 Confidencialidad, evitar acceso no autorizado
 Integridad de datos, evitar modificación de datos no autorizado
 Autenticidad, verificar la autenticidad de los usuarios
PLANIFICACIÓN Y GESTION DE RECURSOS

 Fairness, procesos y usuarios puedan acceder a los recursos del sistema de


manera justa e igualitaria.
 Respuesta diferenciada, el sistema operativo debe responder dinámicamente
dando prioridades a los procesos.
 Eficiencia, el sistema operativo debe maximizar la atención de los procesos y
minimizar el tiempo de respuesta.

ELEMENTOS CLAVES DE UN SISTEMA OPERATIVO


 Gestor de interrupciones, modulo donde se encuentra las diferentes interrupciones
que puede procesar el SO.
 Manejador de llamadas del sistema, realiza operaciones críticas.
 Colas, es una lista de procesos.

DESARROLLOS QUE DIERON PASO A LOS SISTEMAS OPERATIVOS


MODERNOS
 Capacidad de procesamiento
 Miniaturización de componentes
 Diversidad de tecnologías de almacenamiento
 Variedad de tecnología de conectividad
 Incorporar nuevos dispositivos gráficos

KERNEL MONOLÍTICO A MICROKERNEL

Servicios
externos

MICROKERNEL: Binario pequeño con funcionalidades básicos como comunicaciones


entre procesos, gestionar la memoria virtual y planificación de procesos y algunos
procesos externos al sistema operativo.
MULITHREADING
Colocar en un solo hilo (thread) una serie de instrucciones que se ejecutaran sobre un
núcleo, en este caso se procesan muchos hilos.

MULTIPROCESAMIENTO SIMÉTRICO
Colocar varios procesadores dentro de una misma placa madre, conocido como
Arequitectura SMP – Symmetric Multiprocessor System.

SISTEMA OPERATIVO DISTRIBUIDOS


Múltiples nodos conectados a través de la red, donde el sistema operativo administra
los recursos de esos computadores.
DISEÑO ORIENTADO A OBJETOS
Brinda facilidades para el diseño de sistemas de software extensibles y modulares, y
requiere mayor cantidad de recursos del sistema operativo.
OBJETIVOS DEL SISTEMA OPERATIVO Y SU FUNCIÓN
El sistema operativo es un programa que controla la ejecución de aplicaciones y es
una interfaz entre las aplicaciones y el hardware.
OBJETIVOS
1. Simplificar el uso del computador
2. Ser eficiente en la gestión de los recursos del sistema
3. Capacidad de evolucionar.
DISEÑO DE UN SISTEMA OPERATIVO (POR CAPAS)

DISEÑO POR CAPAS EN SOFTWARE DE REDES POR COMPUTADORA

HTTP, FTP, SSH

TCP
IP

Enlace de datos

SERVICIOS DEL SISTEMA OPERATIVO


 Desarrollo de programas: librerías, compiladores que permitan construir
programas eficientes.
 Ejecución de programas: el sistema operativo debe brindar mecanismos que
permitan que las aplicaciones puedan ejecutarse de manera fluida.
 Acceso a dispositivos de E/S
 Acceso controlado a archivos (o recursos)
 Detección de errores
 Accouting (el sistema debe llevar un registro de que tanto recurso consume un
proceso)

SERVICIOS DEL SISTEMA OPERATIVO


 Instruction Set Architecture (ISA), conjunto de instrucciones que ofrece el
hardware y que utiliza el sistema operativo.
 Application Binary Interface (ABI), como el sistema operativo interpreta los 0 y 1.
 Application Programming Interface (API), nivel mas alto que permite a un
programador acceder a la funcionalidad que ofrece el sistema operativo a través
de librerías o utilidades.
EL SISTEMA OPERATIVO COMO GESTOR DE RECURSOS
El sistema operativo, es un programa que periódicamente entrega el control de los
recursos a otros programas y gestiona el acceso a esos recursos del hardware.
- El sistema debe tener una estructura que permita que nuevos drivers se inserten
en él.
- Proveer nuevos servicios
- Permitir reparación de posibles vulnerabilidades

TOLERANCIA O FALLOS

 Capacidad de un sistema a continuar la normal operación a pesar de la presencia


de falos de hardware o software.
 La redundancia se usa como mecanismo para lograr dicha tolerancia, es decir
duplicar recursos por si alguno de los recursos falla.
 Implementar mecanismos de tolerancia a fallos puede generar mayores costos e
incremento de la complejidad de la gestión de la infraestructura.

CONCEPTOS FUNDAMENTALES RELATIVOS A LA TOLERANCIA A FALLOS


 Confiabilidad R(t) es la probabilidad de encontrar correcta operación de un
sistema en tiempo t.
 El tiempo promedio de falla (MTTF-mean time to failure) es

X
MTTF=∫ R (t)
0
 El tiempo promedio de reparación (MTTR- mean time to repair) es el tiempo que
toma reparar o reemplazar un sistema que falla.
 La disponibilidad es la correcta operación de un sistema en un tiempo dado.
 El downtime es el tiempo en el que un sistema no se encuentra disponible
 El uptime es el tiempo en el cual un sistema se encuentra disponible.

FALLAS
Estado erróneo de software o hardware causado por error de diseño, error de
programación, error de manejo o interferencia con el ambiente, se pueden categorizar
en:
 Permanentes: la falla siempre está presente y en es necesario su reemplazo
 Temporales:
- Transitoria: ocurre solo una vez
- Intermitente: ocurre varias veces, ejemplo: fallos de conexión

FALLAS - REDUNDANCIAS

Redundancia espacial: copias de un mismo componente que realiza la misma


funcionalidad. Ejemplo: múltiples fuentes de poder.

Redundancia temporal: repetir una operación, por ejemplo: retrasmitir un dato.

Redundancia de la información: se tiene la información replicada en diferentes de tal


manera que si una se pierde existe en otra parte. Ejemplo: dos discos duros con la
misma información.

MECANISMOS DE TOLERANCIA A FALLOS EN SO

Aislamiento de procesos: procesos que no comparten su arquitectura con otros


procesos.
Controles de concurrencia: varios procesos tratando de acceder a un recurso
compartido.
Máquinas virtuales: Proveen alto nivel de aislamiento de las aplicaciones y por tanto
aisla de fallos.
Checkpoints y rollbacks: se utilizan mucho en las bases de datos para garantizar las
transacciones en bases de datos.

EVOLUCIÓN DE LOS SITEMAS OPERATIVOS

 Procesamiento serial
 Sistema por lotes
 Sistema multiprogramación por lotes
 Sistema de tiempo compartidos

1. PROCESAMIENTO SERIAL
 Los primeros computadores aparecieron entre los 40 y 50.
 Los mensajes de error se indicaban a través de luces
 Tarjetas perforadas indicaban a los computadores como llevar a cabo sus
operaciones.
 Impresoras permitían visualizar la salida de los programas.

Scheduling: usuarios firmaban una hoja donde indicaban que tiempo utilizarían la
máquina.
Setup: Cargar el compiladorcargar el códigocompilarguardar el código fuente
compiladoenlazar el programa para luego ser ejecutado.

2. SISTEMA POR LOTES


 Cada computador costaba cerca de 850 000 dólares.
 Aparecen los primeros sistemas por lotes, que fue el primer indicio de un sistema
operativo.
 Cargar unas tarjetas perforadas a un trabajo, ese trabajo es leído por una lectora
de tarjetas perforadas y se acumula en un grupo de tareas por lotes.
Posteriormente el monitor lee un trabajo de ese lote de tareas, ejecuta un
programa y lo envía a una impresora.
La memoria del computador estaba dividida en dos segmentos:

1. MONITOR:
- Procesamiento de interrupciones
- Dispositivos
- Próximo trabajo a ejecutarse
- Interprete de las tareas que debía ejecutar el sistema

2. PROGRAMA DE USUARIO

MODOS DE OPERACIÓN:
- Modo de usuario: cada vez que entraba a ejecutarse una tarea de usuario
- Modo de Kernel: cada vez que el monitor entra en operación.

SISTEMAS MULTIPROGRAMACIÓN POR LOTES

Es tener varios programas dentro de la memoria y tratar de optimizar el uso de la CPU.


Normalmente el problema con las aplicaciones es que cuando hay muchas
operaciones de entrada y salida la cpu se encuentra subutilizada.

Leer un registro de un archivo  15 us


Ejecutar 100 instrucciones  1us
Escribir un registro de archivo  15us
Total  31 us

Porcentaje de utilización de la CPU es 1/32 = 0.032 = 32%

Entonces podemos decir que el programa está esperando el 96% de tiempo por
operación de entrada y salida, lo que quiere decir que la cpu esta subutilizada.

Por lo tanto, la idea es tener más de un programa en memoria, para reducir los
tiempos de espera. A estos sistemas se llama multitareas o multiprogramación.

ELEMENTOS QUE AGILIZAN EL USO DE LA CPU


- Funcionalidad DMA: direct memory acces, los drivers de dispositivos de
entrada y salida trabajan de manera coordinada con la CPU.

- Gestión de Interrupciones

- Gestión de memoria
SMP – HYPER THREADING – MULTICORE

- Dual Core: dos unidades de procesamiento, pero solo un chip


- Dual Processor: dos chips de procesadores independientes.
- Hyper-threading: es un tipo de tecnología que divide un núcleo físico en dos
núcleos lógicos, también podemos decir que es un chip capaz de ejecutar más
de una secuencia de un programa a la vez.

CONSIDERACIONES DEL SO EN SMP


Cada procesador puede tratar de acceder a un mismo recurso en un momento dado,
entonces el sistema no debe permitir ese acceso de manera concurrente, al contrario,
debe garantizar que los procesadores accedan a ese recurso de manera ordena.
ASPECTOS CLAVES DE DISEÑO EN UN SO SMP
- El gestor de tareas ubica las tareas en un arreglo de tareas, para que los
procesadores las ejecuten de manera ordenada. Asimismo, cuando se termina
de ejecutar la tarea, esta es almacenada en un arreglo de tareas también de
manera ordenada.

- Si hubiera alguna falla, el sistema debe anunciar al usuario sobre esta falla sin
detener la operación.

- Proveer un mecanismo de sincronización para acceder de forma confiable a los


recursos del sistema.

ASPECTOS CLAVES EN EL DISEÑO DE SISTEMAS MANY-CORE


- Many- core tiene un subjunto de elementos que permiten hacer procesamiento
duplicados.
- Los many-core son más eficientes en la gestión del paralelismo.

ESTRATEGIAS PARA EXPLOTAR EL PARALELISMO EN MANY-CORE SYSTEMS


- Hay un elemento dentro del sistema operativo que identifica las tareas a
procesar y se encarga de entregar cada tarea a los núcleos del sistema.

- Máquinas virtuales, garantizan el procesamiento aislado de servicios.

SISTEMAS DE TIEMPO COMPARTIDO


Nacen por la necesidad que tienen los usuarios de saber que el sistema está
respondiendo a sus comandos.
El tiempo compartido es cuando muchos usuarios acceden simultáneamente a los
sistemas de cómputos. Si ingresan “n” usuarios, entonces cada usuario tiene 1/n parte
de la capacidad de cómputo efectiva.
Tanto el sistema por lotes como el sistema de tiempo compartido tenían el concepto
de multiprogramación, de decir mas de una tarea estaba en la memoria principal.
HISTORIA
- El sistema de tiempo compartido (CTSS), fue desarrollado en la época de los
60.
- Es un sistema de 32000 palabras, cada palabra tiene una longitud de 36 bits.
- Monitor consumía 5,000 palabras.
- Una interrupción de reloj se generaba cada 0,2 segundos.
- Los programas eran escritos a discos para poder ser re-ejecutados.
ESTRUCTURA DE PROGRAMACIÓN EN C

GIT: https://git-scm.com
Herramienta de gestión de versiones de software.
https://github.com/josanabr/CCrashCourse.

El lenguaje C aparece en los años 70. Es uno de los lenguajes de bajo nivel y es
mucho más fácil para la computadora poder interpretarlo. El lenguaje C permite
ejecutar códigos en diferentes computadoras, es decir que es portable.
Dennis Ritchie y otros colegas desarrollan el lenguaje C, que hasta la actualidad sigue
siendo vigente.
COMPILADORES EN C
La forma más básica de uso del compilador GNU C es como sigue:
gcc archivo.c
Intentaron crear sistema operativo GNU HURD.

MAYORES LOGROS DEL SISTEMA OPERATIVO


1. PROCESO: Es un programa en ejecución.

CONTEXTO DE EJECUCIÓN O ESTADO DEL PROCESO


- El contexto de ejecución son aquellos elementos que requiere el procesador
para poder correr un proceso. (código, datos y recursos)
- Dentro del contexto también existen la prioridad del proceso, propietario del
proceso, regiones de memoria asignada al proceso.

DESCRIPCIÓN Y CONTROL DE PROCESOS

TERMINOS:
- OS: Operating System (s)
- SO: Sistema(s) Operativo(s)
- I/O: Input/Output
- E/S: Entrada y Salida
- PCB: Process Control Block o Bloque de control de proceso.
INTRODUCCIÓN
- Todos los SO tienen que gestionar procesos
- Interleaving es ejecución entrelazada. El procesador realiza diferentes
procesos en tiempos diferentes.

- El sistema operativo debe asignar recursos a los procesos y permitir la


comunicación entre procesos (IPC – Inter – Process Communication)

¿QUÉ ES UN PROCESO?
Es un código binario que está constituido por un conjunto de datos y que tiene un
estado de ejecución asociado a unos recursos.

- Cada proceso tiene un ID que es el PID.


- Puede tener diferentes estados (ejecución, bloqueado, espera)
- Debe tener una prioridad
- Tiene un program counter, que indica en que línea de instrucción va el proceso
- Punteros a memoria (código, pila)
- Tiene registros
- Que dispositivos están asignados al proceso
- Que tiempo lleva el proceso en la CPU

BLOQUE DE CONTROL DE PROCESOS – CPU


Es un registro especial donde el sistema operativo agrupa toda la información que se
necesita saber acerca de un proceso.
Todos los procesos tienen un PCB asociado.

PRELIMINARES SOBRE PROCESOS


Un programa es un archivo que codifica en binario una secuencia de instrucciones,
que una vez cargadas a la memoria se configura un proceso o una tarea.
Cada proceso tiene una traza (trace) que es la secuencia de instrucciones ejecutadas
por un proceso.

UN MODELO DE PROCESO DE ESTADOS

Un proceso puede estar en dos estados: Ejecución y No Ejecución. Cuando un nuevo


proceso se crea también se crea un nuevo PCB, pero los procesos una vez se crear
no se ejecutan inmediatamente.

Cuando los procesos no son ejecutados se guardan en una cola de procesos y el


dispatcher se encarga de selecciona un proceso y lo pone el procesador luego de un
tiempo lo retira y lo envia a la cola nuevamente hasta que finalice su ejecución de
instrucciones.

¿CUÁNDO SE CREA UN PROCESO?

- Cuando se crea un script con diferentes comandos.


- Cuando un usuario se logea.
- El sistema operativo puede crear sus propios procesos. Por ejemplo, acceder a
una página web.

RAZONES POR LA QUE SE TERMINA UN PROCESO

- Cuando se completa la tarea


- El proceso excedió el tiempo límite en el sistema
- No hay suficiente memoria para que el proceso corra
- Cuando está tratando de acceder a una región de memoria que no le
corresponde.
¿QUÉ PASA CUANDO UN PROCESO TERMINA?

- Un proceso cuando entra en estado EXIT no puede ejecutarse nuevamente.


- No se borra totalmente del sistema, pero el usuario no puede tener acceso a
este.

MODELO DE PROCESOS DE CINCO ESTADOS

DOS COLAS PARA EL MANEJO DE PROCESOS

MÚLTIPLES COLAS PARA MANEJAR MÚLTIPLES EVENTOS.

Tener una cola para diferentes eventos de bloqueo tales como proceso de salida al disco duro,
salida a impresora, etc.
PROCESOS SUSPENDIDOS

La memoria cuando se satura ya no puede albergar más procesos, es por ello que el proceso
es llevado a otro espacio conocido como memoria de intercambio o memoria swapp.

SWAPPING: Es un mecanismo que permite mover procesos bloqueados de memoria principal a


Disco, con el propósito de crear espacio en RAM.

RAZONES PARA SUSPENDER UN PROCESO

- Hacer Swapping, para tratar de liberar espacio en la memoria física.


- El usuario suspenda la ejecución o lo bloquee
- Cuando un proceso se ejecuta eventualmente, entonces el SO lo pasa a un estado
suspendido.
- Crear espacios en RAM.
- Existen procesos que pueden llegar a bloquear el sistema.
- Procesos que presentan un alto nivel de inactividad.

El proceso que esta en estado de bloqueo suspendido debe pasar a listo suspendido y luego a
listo, para luego recién ejecutarse.

WINDOWS SUBSYSTEM LINUX 2 (WSL2) EN WINDOWS 10


Es un sistema que permite poder ejecutar una instancia de una distribución de Linux dentro de
Windows sin tener que pasar por una capa de virtualización, utilizando los recursos del
hardware.

SCHEDULING – PLANIFICACIÓN

PLANIFICACIÓN – MOTIVACIÓN
- En ambientes de multiprogramación múltiples procesos existen concurrentemente en
memoria principal.
- Procesos son alternados gracias a: Temporizador (genera una interrupción), llamadas
bloqueantes al sistema (cuando el proceso hace una solicitud de entrada y salida
entonces el sistema operativo quita ese proceso y busca otro que necesita usar la CPU)
- Los algoritmos de planificación intervienen para determinar cuál es el próximo proceso
que va hacer uso de la CPU.
TIPOS DE PLANIFICACION
- Largo plazo
- Mediano plazo
- Corto plazo

La planificación se usa en ambientes de uniprocesador, multiprocesador y multicomputador:

El

objetivo de la planificación es asignar procesos al procesador considerando aspectos como:

- Tiempo de respuesta (debe ser el mínimo posible)


- Throughput (cantidad de tareas que se puede procesar en un momento dado un
sistema de cómputo)
- Eficiencia de uso en el procesador (reducir los tiempos en los cuales el procesador se
encuentre subutilizado)

PLANIFICADOR DE CORTO PLAZO, determina cuando un proceso, que esta en estado listo pasa
a utilizar la CPU. Esta planificación se invoca cada vez que ocurre un evento:
- Interrupción de reloj
- Interrupción de I/O
- Llamadas al sistema operativo
- Señales (ejemplo: semáforos)

PLANIFICADOR DE MEDIANO PLAZO, determina cuando un procesador que está en estado


suspendido pasa a listo suspendido o bloqueado suspendido.

PLANIFICADOR DE LARGO PLAZO, determina si un proceso va a estar en la memoria RAM o la


memoria SWAP.
- El manejo de los procesos puede ser:
First-in/First-out, First-come/First-served=FIFO, FCFS
Prioridades
Tiempo de Ejecución
Requerimiento de I/O

ALGORITMOS DE PLANIFICACIÓN
Los algoritmos de planificación se utilizan dependiendo de algún tipo de criterio:
- Criterio de usuario, tiempo de respuesta percibido por el usuario
- Criterio del sistema, tasa de atención de procesos
- Cuantitativo, querer mejorar el tiempo de respuesta de ejecución de procesos en un
sistema.
- Cualitativo, que tan fácil es reproducir la ejecución de los procesos en un sistema.
- El sistema sea justo
- Se respete las prioridades
- Los recursos sean distribuidos equitativamente entre todos los procesos del sistema.
Algunos criterios son contraproducentes, como proveer buen tiempo de respuesta implica que
haya una mayor participación del sistema operativo tratando de gestionar los proceso que
quieren utilizar la CPU  Esto reduciría el trhoughput.

POLÍTICAS DE PLANIFICACIÓN
- W  tiempo en el sistema
- E  tiempo en ejecución
- S  tiempo estimado del proceso en el sistema
- Normalized turnaround time = Tr / Ts donde:
Tr = tiempo del proceso en el sistema
Ts= tiempo en el servicio.

Los algoritmos de planificación pueden ser Expropiativo y No-expropiativo.

ROUND-ROBIN (cinta circular) (planificador)


- Es un algoritmo que se caracteriza por ser expropiativo, es decir si un proceso esta en
la CPU esta puede ser removido dando paso a otro proceso.
- Cada proceso tiene un quantum de tiempo para hacer uso del procesador
- En el tiempo t
 un proceso A en la CPU termina su quantum
 Existe una cola en el sistema con los procesos B Y C
 Llega un proceso D
 AL FINAL QUEDARIA EN CICLO t+1 , B EN LA CPU Y LA COLA QUEDARÁ C,D,A

QUE TAN LARGO DEBE SER ESE QUANTUM DE TIEMPO


- Debe ser lo suficientemente largo de modo que el overhead causado por la
participación del dispatcher no sea alta.
- No tan largo que cause que el algoritmo se termine comportando como FCFS.

SHORTEST – PROCESS NEXT (SPN) - (ALGORITMO DE PLANIFICACIÓN)

Es un algoritmo no expropiativa, una vez el algoritmo esta en la CPU no se retira de esta hasta
que no termine.

SPN: Cuanto le falta a un proceso para terminar su ejecución.

SHORTEST REMAINING TIME – SRT

Es un algoritmo expropiativo, cuando un proceso llega a la cola de listos podría expropiar a un


proceso en ejecución si este tiene un menor tiempo de determinación.
HIGHEST RESPONSE RATIO NEXT
Minimizar el tiempo en el que un proceso esta en un sistema, y es un algoritmo no
expropiativo. El proceso con el normalized turnaround time mas alto es seleccionado para ser
ejecutado. Cuando un proceso termina o es bloqueado, el próximo proceso a ser ejecutado es
aquel que tenga el normalized turnaround.

PLANIFICACIÓN JUSTA
Se puede planificar como:
- Procesos de usuario
- Proceso de aplicación
- Proceso de Grupo de Investigación

VIRTUALIZACIÓN

Su aplicación va más allá de los sistemas operativos. ¿Qué es?, beneficios y tipos.

¿POR QUÉ ES IMPORTANTE LA VIRTUALIZACIÓN?


Para controlar los grandes centros de datos, para servir las necesidades de los usuarios, tales
como redes sociales, o brindar servicios.

Tenant: Un grupo de personas que requieren un tipo de aplicación y una base de datos.
Multi Tenant: Lograr que todas las personas que tiene diferentes requerimientos puedan
acceder a un único recurso. Por ejemplo: los cluster computacionales.

La virtualización es la representación de algún recurso tecnológico.

BENEFICIOS DE VIRTUALIZACIÓN:
Permiten tener varias máquinas virtuales en un solo servidor físico.
Incrementa la agilidad de los negocios
Incrementa la flexibilidad operacional TI
Reduce los costos de operación TI
Virtualización es una tecnología amigable con el ambiente.

¿QUÉ ES VIRTUALIZACIÓN?
Es el acto de crear una versión virtual de hardaware de computador, dispositivos de
almacenamiento o recursos del computador.
logical Resources

Abstraction (Virtualización)

Physical Resources

Hypervisor: es el encargado de llevar la virtualización y compartir recursos de la plataforma


física. Puede ser de TIPO I y TIPO II.
Las máquinas virtuales son archivos.
PROPIEDADES DE VIRTUALIZACIÓN
1. Particionamiento de recursos, permite tener varios sistemas operativos corriendo
sobre una misma máquina.
2. Aislamiento de recursos, si falla una maquina virtual esta no afecta a otra.
3. Encapsulación, se puede poner todo el estado de una máquina en un archivo.

TIPOS DE VIRTUALIZACIÓN

FULL VIRTUALIZACIÓN
La maquina virtual no se entera que esta en un ambiente virtualizado.
Los dispositivos se emulan en software.
Herramientas: virtualbox, vmware, etc.

PARAVIRTUALIZACIÓN
Los sistemas operativos si son conscientes que son virtualizados.
Los sistemas operativos de las máquinas virtuales son modificados y optimizados para acceder
a los recursos a través del hypervisor. Ejemplo: Vmware

EMULACIÓN
Se usa para hacer desarrollos multiplataformas.
Herramientas:
- Bochs
- QEMU

VIRTUALIZACIÓN DEL SISTEMA OPERATIVO


Se crean espacios de usuario aislados que contienen sus propios ids e identificadores únicos de
los recusos.

También podría gustarte