Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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.
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
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.
Main Memory
0
DISCO DURO
1 PROGRAMA QUE ESTA
USB
2 CD
Instrucción
SE CARGA EN
Instrucción
MEMORIA
Data Y SE CONVIERTE EN
n-2
n-1 CONJUNTO DE
PROCESO ES
INSTRUCCIONES
MULTICORE MANYCORE
EJECUCIÓN DE INSTRUCCIONES
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.
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.
INTERRUPCION
INTERRUPCIONES Y EL CICLO DE INSTRUCCIÓN
Ocurre una
Interrupción
PROCESAMIENTO DE INTERRUPCIONES
HARDWARE SOFTWARE
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)
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.
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.
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.
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:
VENTAJAS DE UN SMP
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.
PROCESO
El proceso1 requiere
el recurso 2, pero le
asignan el recurso1.
El proceso2 requiere el recurso1, pero le asignan el recurso2.
GESTIÓN DE MEMORIA
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.
Servicios
externos
MULTIPROCESAMIENTO SIMÉTRICO
Colocar varios procesadores dentro de una misma placa madre, conocido como
Arequitectura SMP – Symmetric Multiprocessor System.
TCP
IP
Enlace de datos
TOLERANCIA O FALLOS
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
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 compiladorcargar el códigocompilarguardar el código fuente
compiladoenlazar el programa para luego ser ejecutado.
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.
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.
- Gestión de Interrupciones
- Gestión de memoria
SMP – HYPER THREADING – MULTICORE
- Si hubiera alguna falla, el sistema debe anunciar al usuario sobre esta falla sin
detener la operación.
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.
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.
¿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.
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.
El proceso que esta en estado de bloqueo suspendido debe pasar a listo suspendido y luego a
listo, para luego recién ejecutarse.
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
El
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)
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.
Es un algoritmo no expropiativa, una vez el algoritmo esta en la CPU no se retira de esta hasta
que no termine.
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.
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.
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
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