Documentos de Académico
Documentos de Profesional
Documentos de Cultura
So Perati Vos
So Perati Vos
Operativos
Objetivos
Conceptos Básicos
¿Qué es un Sistema Operativo?
aplicaciones.
◼ Actúa como intermediario entre el
usuario y el hardware.
Funciones de los S.O.
◼ Gestión de los recursos de la computadora.
◼ Ejecución de servicios para los programas.
◼ Ejecución de los mandato: de los usuarios.
Funciones de los S.O.
◼ Gestión de los recursos de la computadora.
◼ Ejecución de servicios para los programas.
◼ Ejecución de los mandato: de los usuarios.
Funciones de los S.O.
➢ La capa mas cercana al hardware se denomina
núcleo (kernel).
Estructura
COMPONENTES Y ESTRUCTURA DEL
SISTEMA OPERATIVO
◼ Nucleo
◼ Servicios
◼ intérprete de mandatos o shell.
COMPONENTES DEL SISTEMA
OPERATIVO
EL NUCLEO
Glosario
POSIX es el acrónimo de Portable Operating System
Interface, y X viene de UNIX como seña de identidad de la
API. El término fue sugerido por Richard Stallman en la década
de 1980, respuesta a la demanda de la IEEE, que buscaba un
nombre fácil de recordar.
WIN32 API de Microsoft proporciona un kit de desarrollo de
software en el que se incluyen la documentación y las
herramientas necesarias para que los programadores puedan
crear sus aplicaciones y aprovechar los recursos del sistema.
Las versiones modernas de Windows utilizan la API de 32 bits
llamada Win32.
COMPONENTES DEL SISTEMA
OPERATIVO
Estructura del S.O.
◼ Ejemplos de perspectivas desde las
que se puede analizar un S.O. son:
• Examinar los servicios que proporciona
• Explorar la interfaz que ofrece a los
usuarios y programadores.
• Desglosar el sistema en sus componentes y
estudiar sus interconexiones.
Componentes Comunes del S.O.
◼ No existe una división única de componentes
de un S.O.
◼ Las siguiente división de componentes es una
propuesta general
• Administración de Procesos
• Administración de Memoria
• Administración de Archivos
• Administración de E/S
• Administración de almacenamiento secundario
• Networking
• Sistema de Seguridad
• Interprete de órdenes
Administración de Procesos
◼ Un proceso necesita ciertos recursos para su
ejecución como: tiempo del CPU, memoria,
archivos y operaciones de E/S para hacer su
tarea.
◼ El S.O. es responsable de la siguientes
actividades asociadas a los procesos:
• Creación y Eliminación de procesos
• Suspensión y Reanudación de procesos
• Provisión de mecanismos para:
✓ Sincronización de procesos
◼ Por capas
◼ Sistemas cliente-servidor.
Estructura del Sistema Operativo
Sistemas operativos Estructurados por capas
programa a la vez
◼ MULTITAREA: los que permiten ejecutar varias
tareas o programas al mismo tiempo
◼ ADMINISTRACIÓN DE USUARIOS
◼ MONOUSUARIO: aquellos que sólo permiten
◼ Cliente-servidor
un solo ordenador
◼ DISTRIBUIDOS: si permite utilizar los recursos
(CPU, memoria, periféricos...) de más de un ordenador
al mismo tiempo
BASH WINDOWS
Programación en consola y
ejecución de comandos
INTRODUCION AL SHELL
WINDOWS
◼ Creando mi primer script
◼ Estructuras del lenguaje. (cmd)
◼ Trabajando con variables
◼ Operaciones aritméticas
◼ Usando comandos propios de windows
CREANDO MI PRIMER SCRIPT
◼ Abrir el editor de texto (bloc de notas o
notepad ++)
◼ Escribir las lineas de condigo
◼ Guardar archivo en una ruta:
ejemplo.bat
◼ Abrir la consola de ejecucion (CMD o
POWERSHELL) en la ruta especifica.
◼ Ejecutar el script
Ejemplo
Ejemplo
COMANDOS BASICOS
◼ cd
◼ mkdir
◼ cp
◼ mv
◼ dir *.bat /s /p
◼ > or >> or |
◼ rmdir /S /Q move
◼ SETX ADIVINA "BARZA/ADIVINA" /M
COMANDOS BASICOS
• help
• env
• find
• d:
• cd ..
• cd /
• @
• pause
• set /p
• Set /a
Ejemplo
Variables de Entorno
◼ Nivel de Usuario
◼ Nivel de Sistema
◼ Dinámicas
Trabajando con variables y
parámetros
Variables de Entorno
◼ Nivel de Usuario
◼ Nivel de Sistema
◼ Dinámicas
GNU/Linux
Comandos básicos
◼ La mayor parte de los usuarios de
GNU/Linux terminan prefiriendo los
comandos a la gestión gráfica del sistema.
◼ Múltiples razones:
◼ Rapidez.
◼ Comodidad (a veces es más cómodo escribir 3
palabras que hacer 27 veces clic en un
asistente).
Comandos básicos
◼ Comandos en una terminal o shell:
◼ Existen muchas shells: sh, csh, ksh, bash, etc.
◼ Entorno de trabajo:
◼ Case sensitive: sensible a mayúsculas (ECHO !=
echo).
◼ Sintáxis: comando arg1 arg2... argn
◼ Si un programa no está en el PATH: ./programa
◼ Prompt:
◼ $: usuario normal
◼ #: usuario administrador/a (root)
Comandos básicos
◼ ¿Dónde están los comandos
normalmente?
◼ /bin: comandos estándar para todos los
usuarios (ls, cat, cp, mv, etc.).
◼ /sbin: comandos estándar para root
(shutdown, mkfs, etc.)
◼ /usr/bin: comandos o programas para todos
los usuarios no presentes en todo sistema
UNIX-like.
◼ /usr/sbin: comandos para root no presentes
Comandos básicos
◼ Movimientos por el árbol de directorios:
◼ ls: listado del contenido del directorio
◼ ls -alh /etc
◼ octal:
◼ R W X R W X R W X
◼ 1 1 1 1 0 1 1 0 1
◼ 7 5 5
◼ chmod 755 fichero (= rwxr-xr-x)
Comandos básicos
◼ Buscar ficheros y dentro de ficheros:
◼ find: busca ficheros.
◼ find DondeEmpezar –name NombreFichero
◼ find /home/ubuntu –name cancion.mp3
◼ grep: busca dentro del contenido de los
ficheros:
◼ grep “palabra” fichero
◼ Patrones:
◼ . (un carácter cualquiera)
◼ * (cero o más ocurrencias del carácter anterior)
◼ ^ (principio de línea)
◼ $ (fin de línea)
◼ [a-f] (cualquier carácter del rango)
Comandos básicos
◼ Salida y tuberías:
◼ La salida de un comando se puede guardar en
un fichero con >:
◼ dpkg –l > listadepaquetes.txt
◼ La entrada de un comando puede alimentarse
con el contenido de un fichero con <:
◼ tr a A < fichero.txt
◼ La entrada de un comando puede ser la salida
del anterior, utilizando una tubería |:
◼ cat fichero.txt | tr a A
SERVIDORES
En la tecnología de la información, un servidor es un sistema
informático que proporciona servicios a otros sistemas informáticos
llamados clientes -más de una red. El servidor término puede referirse
a hardware (como un sistema informático Sun) o software (como un
servidor RDBMS).
◼ Principios de la comunicación
◼ Emisor/Cliente
host or host or
server server
Aplicaciones Cliente/Servidor
EJEMPLO 1 EJEMPLO 2
Virtualización
Tipos de Virtualización
◼ Virtualización Hospedada Tipo 2:
Tipos de Virtualización
Virtualización Nativa
Virtualizadores nativos utilizados
para virtualizar servidores
Principales sistemas virtualizadores nativos utilizados para virtualizar
servidores. Fuente: Schoelten, 2012
• Full virtualización.
• Paravirtualización.
• Virtualización asistida por
hardware.
Virtualización
◼ Esta capa de software maneja, gestiona y arbitra los
cuatro recursos principales de una computadora
(CPU, Memoria, Red, Almacenamiento) .
◼ Actualmente existen diversas soluciones de
Virtualizacion:
◼ Virtualización de Servidores
◼ Virtualización de Escritorios
◼ Virtualización de Redes
◼ Virtualización de Almacenamiento
Virtualización de Servidores
Virtualización de Servidores
Virtualización de Servidores
Virtualización de Escritorios
Virtualización de Escritorios
EJEMPLO
Virtualización de Escritorios
Virtualización de Redes
Virtualización de Redes
Virtualización de Redes
Virtualización
Almacenamiento
Virtualización en la Nube
Requisitos Básicos
Virtualización en la Nube
Virtualización en la Nube
Diferencia entre Virtualización y
Computación en la Nube
◼ La Computación en Nube opera sobre la
Virtualización, casi en su totalidad.
PROCESOS
Programación
◼ Se llama Programación a la implementación de un algoritmo en un determinado
lenguaje de programación, para realizar un programa.
◼ Programa es una secuencia de instrucciones que una computadora puede
interpretar y ejecutar.
◼ Las computadoras son un ejemplo de sistemas basados en programa almacenado,
todos estos sistemas poseen un procesador central, cuya actividad de una forma simple
puede resumirse a:
1. Obtener una instrucción.
2. Determinar que instrucción es.
3. Ejecutar la instrucción
4. Ir al paso número 1
172
Estructura de un ordenador
Estructura de un ordenador
Unidad Aritmética
• Los datos sobre los que opera esta unidad están almacenados en un
conjunto de registros, o bien provienen directamente de memoria
principal.
• Localizar datos
Nivel de Nucleo:
Los hilos son mucho más ligeros que los procesos. En la creación de
procesos se necesita un tiempo para la adjudicación de memoria y de
recursos que no es necesaria en el caso de cambio entre hilos. También el
cambio de contexto es mucho más “Pesado” en el caso de los procesos.
La utilización de hilos hace que los procesos sean más ágiles, debido a que
si una de las partes del proceso se bloquea esperando un recurso, otra en
otro hilo puede avanzar con otras tareas.
En caso de procesadores multinúcleo o sistemas multiprocesador, la
eficiencia de los procesos que utilizan hilos es evidente, al poder realizar
varias tareas realmente en paralelo (un hilo en cada procesador).
Un proceso multihilo no desaparece hasta que no han terminado todos sus
hilos
El Planificador. Algoritmos De Planificación De
Procesos
Los sistemas pueden incluir varios niveles de planificación de procesos. La Figura 3.22 muestra
el caso de tres niveles: corto, medio y largo plazo. La planificación a largo plazo tiene por
objetivo añadir nuevos procesos al sistema, tomándolos de la lista de espera. Estos procesos
son procesos de tipo batch, en los que no importa el instante preciso en el que se ejecuten
(siempre que se cumplan ciertos límites de espera). La planificación a medio plazo trata la
suspensión de procesos. Es la que decide qué procesos pasan a suspendido y cuáles
dejan de estar suspendidos. Añade o elimina procesos de memoria principal modificando,
por tanto, el grado de multiprogramación. La planificación a corto plazo se encarga de
seleccionar el proceso en estado de listo que pasa a estado de ejecución. Es, por tanto, la que
asigna el procesador.
Sección crítica:
La seccion critica de un programa es la zona del programa en
la que se puede modificar el recurso que comparten varios
procesos.
Exclusión mutua
Aunque este requerimiento evita las condiciones de carrera,
no es suficiente para que los procesos en paralelo cooperen
de la manera correcta y eficiente al utilizar datos compartidos.
Necesitamos cumplir con cuatro condiciones para tener una
buena solución:
◼ No puede haber dos procesos de manera simultánea
dentro de sus regiones críticas.
◼ No pueden hacerse suposiciones acerca de las velocidades
o el número de CPUs.
◼ Ningún proceso que se ejecute fuera de su región crítica
puede bloquear otros procesos.
◼ Ningún proceso tiene que esperar para siempre para entrar
a su región crítica.
Exclusión mutua
Las soluciones de exclusión mutua con espera ocupada
funcionan de la siguiente manera:
Cuando un proceso intenta entrar a su región crítica, verifica
si está permitida la entrada. Si no, el proceso se queda
esperando hasta obtener el permiso. Para ello se pueden
utilizar diferentes métodos como son:
1) Desactivación de interrupciones.
2) Variables cerradura
3) Alternancia estricta
4) Instrucción TSL
5) Monitores
Desactivación de
interrupciones
El método más simple para evitar las condiciones de
competencia es hacer que cada proceso desactive todas sus
interrupciones antes de entrar a su sección crítica y las active
una vez que salió de la misma. De esta forma, no sale de la
cpu hasta que no ha terminado la ejecución del la sección
crítica.
• Tasa de aciertos o hit ratio (Hr): (Hrk) del nivel k de la jerarquía se define
como la probabilidad de encontrar en ese nivel la información referenciada. La
tasa de fallos Frk es 1 - Hrk. La tasa de aciertos ha de ser alta para que sea
rentable el uso del nivel k de la jerarquía. Los factores más importantes que
determinan Hrk son los siguientes:
• Tamaño de la porción de información que se transfiere al nivel k.
• Capacidad de almacenamiento del nivel k.
• Política de reemplazo.
• Política de ubicación.
• Programa específico que esta ejecutándose (cada programa tiene un
comportamiento propio).
JERARQUIA DE MEMORIA
PARAMETROS IMPORTANTES
Tiempo medio de acceso efectivo (Tef) : De un programa se obtiene
promediando los tiempos de todos los accesos que realiza el programa a largo
de su ejecución. Tomar en consideración que este tiempo es variable debido
a que el tiempo de acceso a una información depende de que se produzca o no
un fallo en el nivel k. Denominaremos tiempo de acierto al tiempo de acceso
cuando la información se encuentra en nivel k. mientras que denominaremos
penalización de fallo al tiempo que se tarda en realizar migración de la
porción cuando se produce fallo. Tef depende básicamente de los factores
siguientes:
• Tiempo de acierto.
• Penalización de fallo.
• Tasa de aciertos (Hrk) del nivel k.
JERARQUIA DE MEMORIA
EFECTOS COLATERALES
Coherencia: Efecto colateral de la jerarquía de memoria es que existen varias
copias de determinadas porciones de información en distintos niveles. Al escribir
sobre la copia del nivel k, se produce una discrepancia con la copia del nivel k +
1; esta situación se denomina falta de coherencia. Se dice que una porción de
información está sucia si ha sido escrita. La coherencia de la jerarquía de
memoria exige medidas para eliminar la falta de coherencia.
• Las direcciones generadas por las instrucciones máquina, tanto para referirse
a datos como a otras instrucciones, están referidas al espacio virtual, es decir,
forman parte del mapa de memoria virtual. En este sentido se suele decir que
el procesador genera direcciones virtuales.
• Cada marco de página es capaz de albergar una página virtual cualquiera, sin
ninguna restricción de direccionamiento.
Los fallos de página son atendidos por el sistema operativo (por software) que
se encarga de realizar la adecuada migración de páginas, para traer la página
requerida por el programa a un marco de página. Se denomina paginación
al proceso de migración necesario para atender los fallos de pagina.
Finalmente, conviene resaltar que el tamaño del espacio virtual suele ser muy
grande. En la actualidad se emplean direcciones de 32, 48 o hasta 64 bits. Dado
que los programas requieren en general mucho menos espacio, una de las
funciones que realiza el sistema operativo es la asignación de espacio virtual
a los programas para su ejecución.
HIPERPAGINACIÓN
Si el número de marcos de página
asignados a un proceso no es suficiente
para almacenar las páginas referenciadas
activamente por el mismo, se producirá
un número elevado de fallos de página. A
esta situación se le denomina
MEMORIA VIRTUAL
El programa no podrá utilizar todo el espacio virtual sino que ha de restringirse a
la zona o zonas que le asigne el sistema operativo. El espacio virtual reservado al
programa A puede estar en una única zona o puede estar dividido en varias
zonas, que se denominan segmentos.
El número de la página virtual se utiliza como índice para entrar en la tabla. Cada
elemento de la tabla tiene un bit para indicar si la página está en memoria
principal y el número de marco en el que se encuentra la mencionada página o
un valor nulo.
TABLAS DE PAGINAS
EJEMPLO PAGINAS DE 1 NIVEL
Se supone que las página son de 2 KB, por lo que los 11 bits inferiores de
la dirección virtual sirven para especificar el byte dentro de la pagina,
mientras que el resto especifican la página virtual, que en este caso es la
5. Entrando en la posición N 5 de la tabla observamos que la página está
en memoria principal y que esta en el marco numero 6.738.
TABLAS DE PAGINAS
EJEMPLO PAGINAS DE 1 NIVEL
Sin embargo, los programas están compuestos por varios elementos, como
son el
propio programa objeto, la pila y los bloques de datos. Además, tanto la
pila como los bloques de datos han de poder crecer. Por ello, un esquema
de tabla de un nivel obliga a dejar grandes huecos de memoria virtual sin
utilizar , pero que están presentes en la tabla con el consiguiente
desperdicio de espacio.
Cada segmento está formado por una serie contigua de byte. que puede
variar su tamaño, siempre y cuando no choque con otro segmento. La
dirección se divide en tres partes:
La ventaja del diseño con varios niveles es que permite una asignación de
memoria más flexible que con un solo nivel, puesto que se pueden asignar
bloques de memoria virtual disjuntos, por lo que pueden crecer de forma a
independiente. Además, la tabla de páginas no tiene espacios vacíos, por
lo que ocupa solamente el espacio imprescindible.
Es, por tanto, muy conveniente que mientras se está esperando a que se
complete una operación de E/S el procesador esté ejecutando un programa
útil y no un bucle de espera.
Nota curiosa:
Una computadora de 300 MHZ puede ejecutar 600 MIPS (600 millones de
instrucciones por segundo). Si se compara esto con el tiempo de acceso de
un disco, que es en el orden de los 15 ms, se puede calcular que en este
tiempo la computadora ha ejecutado unos 9 millones de instrucciones de
maquina.